@proveanything/smartlinks-utils-ui 0.10.5 → 0.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2924,9 +2924,10 @@ function useEditorBridge(args) {
2924
2924
  }
2925
2925
  if (isEqualSpec(target, lastTargetRef.current)) return;
2926
2926
  lastTargetRef.current = target;
2927
+ const isCreate = !!target.createMode;
2927
2928
  const id = selection.selectTarget({
2928
2929
  spec: target,
2929
- seed: resolved.source === "empty" ? void 0 : {
2930
+ seed: isCreate || resolved.source === "empty" ? void 0 : {
2930
2931
  value: resolved.data ?? (defaultData?.() ?? null),
2931
2932
  facetRule: resolved.facetRule ?? null,
2932
2933
  source: resolved.source,
@@ -2941,8 +2942,9 @@ function useEditorBridge(args) {
2941
2942
  const id = editorIdRef.current;
2942
2943
  if (!id) return;
2943
2944
  if (resolved.source === "empty" && !resolved.recordId) return;
2945
+ if (target?.createMode) return;
2944
2946
  selection.hydrate(id, resolved);
2945
- }, [resolved.source, resolved.recordId, resolved.sourceRef, resolved.data, resolved.facetRule]);
2947
+ }, [resolved.source, resolved.recordId, resolved.sourceRef, resolved.data, resolved.facetRule, target?.createMode]);
2946
2948
  const editorId = selection.currentEditorId ?? editorIdRef.current;
2947
2949
  const session = useEditorSession(editorId);
2948
2950
  const prevStatusRef = useRef(null);
@@ -3028,7 +3030,7 @@ function useShellEditorTarget(args) {
3028
3030
  } = args;
3029
3031
  const editorTargetSpec = useMemo(() => {
3030
3032
  if (!editingTargetScope) return null;
3031
- const initialFacetRule = editingTargetScope.kind === "rule" ? ruleWizardStep === 2 && ruleWizardRule ? ruleWizardRule : resolved.facetRule ?? { all: [] } : ruleWizardStep === 2 && ruleWizardRule && isCollection && !!selectedItemId ? ruleWizardRule : null;
3033
+ const initialFacetRule = editingTargetScope.kind === "rule" ? ruleWizardStep === 2 && ruleWizardRule ? ruleWizardRule : resolved.facetRule ?? { all: [] } : ruleWizardStep === 2 && ruleWizardRule && isCollection && !!selectedItemId ? ruleWizardRule : isCollection && !!selectedItemId && isDraftId2(selectedItemId) ? resolved.facetRule ?? null : null;
3032
3034
  const label = deriveDraftLabel ? deriveDraftLabel(resolved.data, editingTargetScope) : void 0;
3033
3035
  const rawScope = editingTargetScope.raw ?? "";
3034
3036
  const isDraftScope = rawScope.includes("__draft__") || rawScope.includes("item:draft:");
@@ -7760,13 +7762,9 @@ function RecordsAdminShellInner(props) {
7760
7762
  enabled: !!editingTargetScope
7761
7763
  });
7762
7764
  const refetchAll = useCallback(() => {
7763
- productBrowse.refetch();
7764
7765
  recordList.refetch();
7765
- facetBrowse.refetch();
7766
- variantChildren.refetch();
7767
- batchChildren.refetch();
7768
7766
  if (isCollection) collectionItems.refetch();
7769
- }, [productBrowse, recordList, facetBrowse, variantChildren, batchChildren, isCollection, collectionItems]);
7767
+ }, [recordList, isCollection, collectionItems]);
7770
7768
  const { editorCtx } = useShellEditorTarget({
7771
7769
  editingTargetScope,
7772
7770
  isCollection,
@@ -7793,7 +7791,7 @@ function RecordsAdminShellInner(props) {
7793
7791
  setDraftKind(null);
7794
7792
  }
7795
7793
  if (isCreate && selectedRecordId === DRAFT_ID3) {
7796
- setSelectedRecordId(null);
7794
+ setSelectedRecordId(savedRecordId ?? null);
7797
7795
  setDraftKind(null);
7798
7796
  }
7799
7797
  if (isCreate && isCollection && savedRecordId && isDraftId3(selectedItemId)) {
@@ -7809,6 +7807,9 @@ function RecordsAdminShellInner(props) {
7809
7807
  setSelectedVariantId(void 0);
7810
7808
  } else if (drillTab === "batch") {
7811
7809
  setSelectedBatchId(void 0);
7810
+ } else if (selectedRecordId) {
7811
+ setSelectedRecordId(null);
7812
+ setDraftKind(null);
7812
7813
  }
7813
7814
  refetchAll();
7814
7815
  }
@@ -8414,7 +8415,12 @@ function RecordsAdminShellInner(props) {
8414
8415
  ref: "",
8415
8416
  scope: parseRef(""),
8416
8417
  data: null,
8417
- status: "empty",
8418
+ // The dashed/dotted circle is the "empty / not set" affordance. The
8419
+ // synthetic All-items row aggregates every item-level record under the
8420
+ // collection scope, so it should read as "configured" whenever any
8421
+ // items exist — otherwise users see the same missing-data indicator
8422
+ // they (correctly) see next to truly empty rows on the Products tab.
8423
+ status: collectionItems.items.length ? "configured" : "empty",
8418
8424
  label: i18n.itemsAllLabel,
8419
8425
  subtitle: collectionItems.items.length ? `${collectionItems.items.length} ${itemNoun}${collectionItems.items.length === 1 ? "" : "s"}` : void 0
8420
8426
  }),