@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.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(!0, ["active"])]);
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, patchActiveFalseEvent = () => set(!1, ["active"]), patchClearEvent = () => {
6421
- const experiment = [experimentId], variants = [experimentNameOverride];
6422
- return [unset(experiment), unset(variants)];
6423
- }, handleClearAction = () => {
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
- }, newActions = ({
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, oldActions = props.actions || [], withActionProps = {
6458
- ...props,
6459
- actions: [
6460
- newActions({ onChange, inputId, active, experimentNameOverride, experimentId }),
6461
- ...oldActions
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"]), aditionalChangePath = useMemo(
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(aditionalChangePath), { patch } = useDocumentOperation(id.replace("drafts.", ""), props.schemaType.name), handleChange = useCallback(
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: [aditionalChangePath.join(".")]
6516
+ unset: [additionalChangePath.join(".")]
6503
6517
  };
6504
6518
  patch.execute([patchEvent]);
6505
6519
  }
6506
6520
  },
6507
- [patch, subValues, aditionalChangePath]
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
  },