@sanity/personalization-plugin 2.2.0 → 2.2.1
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.
- package/dist/index.js +41 -26
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +42 -27
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/ExperimentField.tsx +53 -28
- package/src/components/ExperimentInput.tsx +7 -6
- package/src/fieldExperiments.tsx +1 -0
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useClient, useWorkspace, useFormValue, defineDocumentFieldAction, set, unset, useDocumentOperation, isReference, isImage, isDocumentSchemaType, definePlugin, isObjectInputProps, defineType, defineField } from "sanity";
|
|
2
|
+
import { useClient, useWorkspace, useFormValue, defineDocumentFieldAction, set, unset, useDocumentOperation, getPublishedId, isReference, isImage, isDocumentSchemaType, definePlugin, isObjectInputProps, defineType, defineField } from "sanity";
|
|
3
3
|
import { Stack, Inline, Button, Select as Select$1, Card, Text } from "@sanity/ui";
|
|
4
4
|
import { uuid } from "@sanity/uuid";
|
|
5
5
|
import { createContext, useMemo, useContext, useCallback, forwardRef, useState, useEffect } from "react";
|
|
@@ -6406,9 +6406,9 @@ const icons = {
|
|
|
6406
6406
|
});
|
|
6407
6407
|
Icon.displayName = "ForwardRef(Icon)";
|
|
6408
6408
|
const useAddExperimentAction = (props) => {
|
|
6409
|
-
const { onChange, experimentNameOverride } = props, handleAddAction = () => {
|
|
6410
|
-
onChange([set(!
|
|
6411
|
-
};
|
|
6409
|
+
const { onChange, active, experimentNameOverride } = props, handleAddAction = useCallback(() => {
|
|
6410
|
+
onChange([set(!active, ["active"])]);
|
|
6411
|
+
}, [onChange, active]);
|
|
6412
6412
|
return {
|
|
6413
6413
|
title: `Add ${experimentNameOverride}`,
|
|
6414
6414
|
type: "action",
|
|
@@ -6417,13 +6417,10 @@ const useAddExperimentAction = (props) => {
|
|
|
6417
6417
|
renderAsButton: !0
|
|
6418
6418
|
};
|
|
6419
6419
|
}, useRemoveExperimentAction = (props) => {
|
|
6420
|
-
const { onChange, experimentId, experimentNameOverride } = props,
|
|
6421
|
-
const experiment = [experimentId], variants = [
|
|
6422
|
-
|
|
6423
|
-
},
|
|
6424
|
-
const clearEvents = patchClearEvent(), activeEvent = patchActiveFalseEvent();
|
|
6425
|
-
onChange([activeEvent, ...clearEvents]);
|
|
6426
|
-
};
|
|
6420
|
+
const { onChange, active, experimentId, experimentNameOverride, variantNameOverride } = props, handleClearAction = useCallback(() => {
|
|
6421
|
+
const activeId = ["active"], experiment = [experimentId], variants = [`${variantNameOverride}s`];
|
|
6422
|
+
onChange([set(!active, activeId), unset(experiment), unset(variants)]);
|
|
6423
|
+
}, [onChange, active, experimentId, experimentNameOverride, variantNameOverride]);
|
|
6427
6424
|
return {
|
|
6428
6425
|
title: `Remove ${experimentNameOverride}`,
|
|
6429
6426
|
type: "action",
|
|
@@ -6431,36 +6428,53 @@ const useAddExperimentAction = (props) => {
|
|
|
6431
6428
|
onAction: handleClearAction,
|
|
6432
6429
|
renderAsButton: !0
|
|
6433
6430
|
};
|
|
6434
|
-
},
|
|
6431
|
+
}, createActions = ({
|
|
6435
6432
|
onChange,
|
|
6436
6433
|
inputId,
|
|
6437
6434
|
active,
|
|
6438
6435
|
experimentNameOverride,
|
|
6439
|
-
experimentId
|
|
6436
|
+
experimentId,
|
|
6437
|
+
variantNameOverride
|
|
6440
6438
|
}) => {
|
|
6441
6439
|
const removeAction = defineDocumentFieldAction({
|
|
6442
6440
|
name: `Remove ${experimentNameOverride}`,
|
|
6443
6441
|
useAction: (props) => useRemoveExperimentAction({
|
|
6442
|
+
active: !0,
|
|
6444
6443
|
onChange,
|
|
6445
6444
|
experimentNameOverride,
|
|
6446
|
-
experimentId
|
|
6445
|
+
experimentId,
|
|
6446
|
+
variantNameOverride
|
|
6447
6447
|
})
|
|
6448
6448
|
}), addAction = defineDocumentFieldAction({
|
|
6449
6449
|
name: `Add ${experimentNameOverride}`,
|
|
6450
6450
|
useAction: (props) => useAddExperimentAction({
|
|
6451
|
+
active: !1,
|
|
6451
6452
|
onChange,
|
|
6452
6453
|
experimentNameOverride
|
|
6453
6454
|
})
|
|
6454
6455
|
});
|
|
6455
6456
|
return active ? removeAction : addAction;
|
|
6456
6457
|
}, ExperimentField = (props) => {
|
|
6457
|
-
const { onChange } = props.inputProps, { inputId, experimentNameOverride, experimentId } = props, active = props.value?.active,
|
|
6458
|
-
|
|
6459
|
-
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
|
|
6463
|
-
|
|
6458
|
+
const { onChange } = props.inputProps, { inputId, experimentNameOverride, experimentId, variantNameOverride } = props, active = props.value?.active, actionProps = useMemo(
|
|
6459
|
+
() => ({
|
|
6460
|
+
onChange,
|
|
6461
|
+
inputId,
|
|
6462
|
+
active,
|
|
6463
|
+
experimentNameOverride,
|
|
6464
|
+
experimentId,
|
|
6465
|
+
variantNameOverride
|
|
6466
|
+
}),
|
|
6467
|
+
[onChange, inputId, active, experimentNameOverride, experimentId, variantNameOverride]
|
|
6468
|
+
), memoizedActions = useMemo(() => {
|
|
6469
|
+
const oldActions = props.actions || [];
|
|
6470
|
+
return [createActions(actionProps), ...oldActions];
|
|
6471
|
+
}, [actionProps, props.actions]), withActionProps = useMemo(
|
|
6472
|
+
() => ({
|
|
6473
|
+
...props,
|
|
6474
|
+
actions: memoizedActions
|
|
6475
|
+
}),
|
|
6476
|
+
[props, memoizedActions]
|
|
6477
|
+
);
|
|
6464
6478
|
return props.renderDefault(withActionProps);
|
|
6465
6479
|
}, Select = (props) => {
|
|
6466
6480
|
const {
|
|
@@ -6491,20 +6505,20 @@ const useAddExperimentAction = (props) => {
|
|
|
6491
6505
|
title: experiment.label,
|
|
6492
6506
|
value: experiment.id
|
|
6493
6507
|
})), ExperimentInput = (props) => {
|
|
6494
|
-
const { experiments } = useExperimentContext(), id = useFormValue(["_id"]),
|
|
6495
|
-
() => [...props.path.slice(0, -1), props.variantNameOverride],
|
|
6508
|
+
const { experiments } = useExperimentContext(), id = useFormValue(["_id"]), additionalChangePath = useMemo(
|
|
6509
|
+
() => [...props.path.slice(0, -1), `${props.variantNameOverride}s`],
|
|
6496
6510
|
[props.variantNameOverride, props.path]
|
|
6497
|
-
), subValues = useFormValue(
|
|
6511
|
+
), subValues = useFormValue(additionalChangePath), { patch } = useDocumentOperation(getPublishedId(id), props.schemaType.name), handleChange = useCallback(
|
|
6498
6512
|
(event, onChange) => {
|
|
6499
6513
|
const inputValue = event.currentTarget.value;
|
|
6500
6514
|
if (onChange(inputValue ? set(inputValue) : unset()), subValues) {
|
|
6501
6515
|
const patchEvent = {
|
|
6502
|
-
unset: [
|
|
6516
|
+
unset: [additionalChangePath.join(".")]
|
|
6503
6517
|
};
|
|
6504
6518
|
patch.execute([patchEvent]);
|
|
6505
6519
|
}
|
|
6506
6520
|
},
|
|
6507
|
-
[patch, subValues,
|
|
6521
|
+
[patch, subValues, additionalChangePath]
|
|
6508
6522
|
);
|
|
6509
6523
|
return experiments.length ? /* @__PURE__ */ jsx(Select, { ...props, listOptions: formatlistOptions(experiments), handleChange }) : /* @__PURE__ */ jsx(Card, { padding: [3, 3, 4], radius: 2, shadow: 1, tone: "caution", children: /* @__PURE__ */ jsxs(Text, { align: "center", size: [2, 2, 3], children: [
|
|
6510
6524
|
"There are no defined ",
|
|
@@ -6584,7 +6598,8 @@ const createExperimentType = ({
|
|
|
6584
6598
|
{
|
|
6585
6599
|
...props,
|
|
6586
6600
|
experimentId,
|
|
6587
|
-
experimentNameOverride
|
|
6601
|
+
experimentNameOverride,
|
|
6602
|
+
variantNameOverride
|
|
6588
6603
|
}
|
|
6589
6604
|
)
|
|
6590
6605
|
},
|