@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
|
-
}, [
|
|
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
|
-
|
|
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
|
}),
|