Skip to content

Commit ac86ce8

Browse files
committed
prevent dom updates for container fields that are still loading in
1 parent 4728978 commit ac86ce8

File tree

2 files changed

+58
-49
lines changed

2 files changed

+58
-49
lines changed

src/js/ContainerField.js

Lines changed: 53 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -563,62 +563,67 @@
563563
{
564564
var self = this;
565565

566-
this.base();
567-
568-
if (self.children.length > 0)
569-
{
570-
$(self.getContainerEl()).addClass("alpaca-container-has-items");
571-
$(self.getContainerEl()).attr("data-alpaca-container-item-count", self.children.length);
572-
}
573-
else
566+
// Don't update if field is still loading in
567+
if (!self.loading)
574568
{
575-
$(self.getContainerEl()).removeClass("alpaca-container-has-items");
576-
$(self.getContainerEl()).removeAttr("data-alpaca-container-item-count");
577-
}
578-
579-
for (var i = 0; i < self.children.length; i++)
580-
{
581-
var child = self.children[i];
582-
583-
// set path if not set
584-
if (!child.path)
569+
this.base();
570+
571+
if (self.children.length > 0)
585572
{
586-
if (child.schema.type === "array")
587-
{
588-
child.path = self.path + "[" + i + "]";
589-
}
590-
else
591-
{
592-
child.path = self.path + "/" + child.propertyId;
593-
}
573+
$(self.getContainerEl()).addClass("alpaca-container-has-items");
574+
$(self.getContainerEl()).attr("data-alpaca-container-item-count", self.children.length);
594575
}
595-
596-
child.calculateName();
597-
598-
$(child.containerItemEl).removeClass("alpaca-container-item-first");
599-
$(child.containerItemEl).removeClass("alpaca-container-item-last");
600-
$(child.containerItemEl).removeClass("alpaca-container-item-index");
601-
$(child.containerItemEl).removeClass("alpaca-container-item-key");
602-
603-
$(child.containerItemEl).addClass("alpaca-container-item");
604-
605-
if (i === 0)
576+
else
606577
{
607-
$(child.containerItemEl).addClass("alpaca-container-item-first");
578+
$(self.getContainerEl()).removeClass("alpaca-container-has-items");
579+
$(self.getContainerEl()).removeAttr("data-alpaca-container-item-count");
608580
}
609-
if (i + 1 === self.children.length)
581+
582+
for (var i = 0; i < self.children.length; i++)
610583
{
611-
$(child.containerItemEl).addClass("alpaca-container-item-last");
584+
var child = self.children[i];
585+
586+
// set path if not set
587+
if (!child.path)
588+
{
589+
if (child.schema.type === "array")
590+
{
591+
child.path = self.path + "[" + i + "]";
592+
}
593+
else
594+
{
595+
child.path = self.path + "/" + child.propertyId;
596+
}
597+
}
598+
599+
child.calculateName();
600+
601+
$(child.containerItemEl).removeClass("alpaca-container-item-first");
602+
$(child.containerItemEl).removeClass("alpaca-container-item-last");
603+
$(child.containerItemEl).removeClass("alpaca-container-item-index");
604+
$(child.containerItemEl).removeClass("alpaca-container-item-key");
605+
606+
$(child.containerItemEl).addClass("alpaca-container-item");
607+
608+
if (i === 0)
609+
{
610+
$(child.containerItemEl).addClass("alpaca-container-item-first");
611+
}
612+
if (i + 1 === self.children.length)
613+
{
614+
$(child.containerItemEl).addClass("alpaca-container-item-last");
615+
}
616+
617+
$(child.containerItemEl).attr("data-alpaca-container-item-index", i);
618+
$(child.containerItemEl).attr("data-alpaca-container-item-name", child.name);
619+
$(child.containerItemEl).attr("data-alpaca-container-item-parent-field-id", self.getId());
620+
621+
self.updateChildDOMWrapperElement(i, child);
622+
623+
child.updateDOMElement();
612624
}
613-
614-
$(child.containerItemEl).attr("data-alpaca-container-item-index", i);
615-
$(child.containerItemEl).attr("data-alpaca-container-item-name", child.name);
616-
$(child.containerItemEl).attr("data-alpaca-container-item-parent-field-id", self.getId());
617-
618-
self.updateChildDOMWrapperElement(i, child);
619-
620-
child.updateDOMElement();
621625
}
626+
622627
},
623628

624629
/**

src/js/fields/basic/ObjectField.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -774,7 +774,11 @@
774774
item.onDependentConceal();
775775
}
776776

777-
item.getFieldEl().trigger("fieldupdate");
777+
// Only fire the update event if we're not loading in
778+
if (!item.loading)
779+
{
780+
item.getFieldEl().trigger("fieldupdate");
781+
}
778782
},
779783

780784
/**

0 commit comments

Comments
 (0)