@payloadcms/ui 3.24.0 → 3.25.0-canary.6d6bbd2

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.
Files changed (69) hide show
  1. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  2. package/dist/elements/ConfirmationModal/index.js +2 -3
  3. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  4. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  5. package/dist/elements/DeleteMany/index.js +2 -2
  6. package/dist/elements/DeleteMany/index.js.map +1 -1
  7. package/dist/elements/DeleteMany/index.scss +16 -0
  8. package/dist/elements/EditMany/index.d.ts.map +1 -1
  9. package/dist/elements/EditMany/index.js +22 -14
  10. package/dist/elements/EditMany/index.js.map +1 -1
  11. package/dist/elements/EditMany/index.scss +5 -19
  12. package/dist/elements/ListControls/index.d.ts +8 -0
  13. package/dist/elements/ListControls/index.d.ts.map +1 -1
  14. package/dist/elements/ListControls/index.js +3 -19
  15. package/dist/elements/ListControls/index.js.map +1 -1
  16. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  17. package/dist/elements/ListDrawer/DrawerContent.js +4 -1
  18. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  19. package/dist/elements/ListDrawer/Provider.d.ts +8 -1
  20. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  21. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  22. package/dist/elements/ListSelection/index.d.ts +4 -0
  23. package/dist/elements/ListSelection/index.d.ts.map +1 -1
  24. package/dist/elements/ListSelection/index.js +44 -23
  25. package/dist/elements/ListSelection/index.js.map +1 -1
  26. package/dist/elements/ListSelection/index.scss +4 -0
  27. package/dist/elements/PublishMany/index.d.ts +1 -0
  28. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  29. package/dist/elements/PublishMany/index.js +3 -2
  30. package/dist/elements/PublishMany/index.js.map +1 -1
  31. package/dist/elements/PublishMany/index.scss +21 -0
  32. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  33. package/dist/elements/TableColumns/RenderDefaultCell/index.js +1 -0
  34. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  35. package/dist/elements/UnpublishMany/index.d.ts +1 -0
  36. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  37. package/dist/elements/UnpublishMany/index.js +3 -2
  38. package/dist/elements/UnpublishMany/index.js.map +1 -1
  39. package/dist/elements/UnpublishMany/index.scss +21 -0
  40. package/dist/elements/WhereBuilder/field-types.d.ts.map +1 -1
  41. package/dist/elements/WhereBuilder/field-types.js +9 -5
  42. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  43. package/dist/exports/client/index.js +23 -23
  44. package/dist/exports/client/index.js.map +4 -4
  45. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  46. package/dist/fields/Blocks/BlocksDrawer/index.js +85 -103
  47. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  48. package/dist/fields/Blocks/BlocksDrawer/index.scss +43 -0
  49. package/dist/fields/Upload/Input.js +13 -13
  50. package/dist/fields/Upload/Input.js.map +1 -1
  51. package/dist/forms/Form/context.d.ts +3 -3
  52. package/dist/forms/Form/context.js +3 -3
  53. package/dist/forms/Form/context.js.map +1 -1
  54. package/dist/forms/useField/index.d.ts +1 -1
  55. package/dist/forms/useField/index.js +1 -1
  56. package/dist/forms/useField/index.js.map +1 -1
  57. package/dist/styles.css +1 -1
  58. package/dist/utilities/upsertPreferences.d.ts +5 -1
  59. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  60. package/dist/utilities/upsertPreferences.js +11 -14
  61. package/dist/utilities/upsertPreferences.js.map +1 -1
  62. package/dist/views/List/ListHeader/index.d.ts +2 -0
  63. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  64. package/dist/views/List/ListHeader/index.js +5 -0
  65. package/dist/views/List/ListHeader/index.js.map +1 -1
  66. package/dist/views/List/index.d.ts.map +1 -1
  67. package/dist/views/List/index.js +11 -20
  68. package/dist/views/List/index.js.map +1 -1
  69. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ConfirmationModal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAM1C,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAA;AAEjC,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACtC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBA4E9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ConfirmationModal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAK1C,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAA;AAEjC,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACtC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBA4E9D"}
@@ -4,10 +4,9 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { Modal, useModal } from '@faceless-ui/modal';
6
6
  import React, { useCallback } from 'react';
7
- import { useEditDepth } from '../../providers/EditDepth/index.js';
8
7
  import { useTranslation } from '../../providers/Translation/index.js';
9
8
  import { Button } from '../Button/index.js';
10
- import { drawerZBase } from '../Drawer/index.js';
9
+ import { drawerZBase, useDrawerDepth } from '../Drawer/index.js';
11
10
  import './index.scss';
12
11
  const baseClass = 'confirmation-modal';
13
12
  export function ConfirmationModal(props) {
@@ -23,7 +22,7 @@ export function ConfirmationModal(props) {
23
22
  onCancel: onCancelFromProps,
24
23
  onConfirm: onConfirmFromProps
25
24
  } = props;
26
- const editDepth = useEditDepth();
25
+ const editDepth = useDrawerDepth();
27
26
  const [confirming, setConfirming] = React.useState(false);
28
27
  const {
29
28
  closeModal
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","useCallback","useEditDepth","useTranslation","Button","drawerZBase","baseClass","ConfirmationModal","props","$","body","cancelLabel","className","confirmingLabel","confirmLabel","heading","modalSlug","onCancel","onCancelFromProps","onConfirm","onConfirmFromProps","editDepth","confirming","setConfirming","useState","closeModal","t","t0","t1","t2","filter","Boolean","t3","join","t4","t5","t6","t7","_jsx","slug","style","zIndex","children","_jsxs","buttonStyle","disabled","id","onClick","size","type"],"sources":["../../../src/elements/ConfirmationModal/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\n\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase } from '../Drawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'confirmation-modal'\n\nexport type OnCancel = () => void\n\nexport type ConfirmationModalProps = {\n body: React.ReactNode\n cancelLabel?: string\n className?: string\n confirmingLabel?: string\n confirmLabel?: string\n heading: React.ReactNode\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}\n\nexport function ConfirmationModal(props: ConfirmationModalProps) {\n const {\n body,\n cancelLabel,\n className,\n confirmingLabel,\n confirmLabel,\n heading,\n modalSlug,\n onCancel: onCancelFromProps,\n onConfirm: onConfirmFromProps,\n } = props\n\n const editDepth = useEditDepth()\n\n const [confirming, setConfirming] = React.useState(false)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const onConfirm = useCallback(async () => {\n if (!confirming) {\n setConfirming(true)\n\n if (typeof onConfirmFromProps === 'function') {\n await onConfirmFromProps()\n }\n\n setConfirming(false)\n closeModal(modalSlug)\n }\n }, [confirming, onConfirmFromProps, closeModal, modalSlug])\n\n const onCancel = useCallback(() => {\n if (!confirming) {\n closeModal(modalSlug)\n\n if (typeof onCancelFromProps === 'function') {\n onCancelFromProps()\n }\n }\n }, [confirming, onCancelFromProps, closeModal, modalSlug])\n\n return (\n <Modal\n className={[baseClass, className].filter(Boolean).join(' ')}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{heading}</h1>\n <p>{body}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n disabled={confirming}\n id=\"confirm-cancel\"\n onClick={onCancel}\n size=\"large\"\n type=\"button\"\n >\n {cancelLabel || t('general:cancel')}\n </Button>\n <Button id=\"confirm-action\" onClick={onConfirm} size=\"large\">\n {confirming\n ? confirmingLabel || `${t('general:loading')}...`\n : confirmLabel || t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","useCallback","useTranslation","Button","drawerZBase","useDrawerDepth","baseClass","ConfirmationModal","props","$","body","cancelLabel","className","confirmingLabel","confirmLabel","heading","modalSlug","onCancel","onCancelFromProps","onConfirm","onConfirmFromProps","editDepth","confirming","setConfirming","useState","closeModal","t","t0","t1","t2","filter","Boolean","t3","join","t4","t5","t6","t7","_jsx","slug","style","zIndex","children","_jsxs","buttonStyle","disabled","id","onClick","size","type"],"sources":["../../../src/elements/ConfirmationModal/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase, useDrawerDepth } from '../Drawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'confirmation-modal'\n\nexport type OnCancel = () => void\n\nexport type ConfirmationModalProps = {\n body: React.ReactNode\n cancelLabel?: string\n className?: string\n confirmingLabel?: string\n confirmLabel?: string\n heading: React.ReactNode\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}\n\nexport function ConfirmationModal(props: ConfirmationModalProps) {\n const {\n body,\n cancelLabel,\n className,\n confirmingLabel,\n confirmLabel,\n heading,\n modalSlug,\n onCancel: onCancelFromProps,\n onConfirm: onConfirmFromProps,\n } = props\n\n const editDepth = useDrawerDepth()\n\n const [confirming, setConfirming] = React.useState(false)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const onConfirm = useCallback(async () => {\n if (!confirming) {\n setConfirming(true)\n\n if (typeof onConfirmFromProps === 'function') {\n await onConfirmFromProps()\n }\n\n setConfirming(false)\n closeModal(modalSlug)\n }\n }, [confirming, onConfirmFromProps, closeModal, modalSlug])\n\n const onCancel = useCallback(() => {\n if (!confirming) {\n closeModal(modalSlug)\n\n if (typeof onCancelFromProps === 'function') {\n onCancelFromProps()\n }\n }\n }, [confirming, onCancelFromProps, closeModal, modalSlug])\n\n return (\n <Modal\n className={[baseClass, className].filter(Boolean).join(' ')}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{heading}</h1>\n <p>{body}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n disabled={confirming}\n id=\"confirm-cancel\"\n onClick={onCancel}\n size=\"large\"\n type=\"button\"\n >\n {cancelLabel || t('general:cancel')}\n </Button>\n <Button id=\"confirm-action\" onClick={onConfirm} size=\"large\">\n {confirming\n ? confirmingLabel || `${t('general:loading')}...`\n : confirmLabel || t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,KAAK,EAAEC,QAAQ,QAAQ;AAChC,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAEnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,WAAW,EAAEC,cAAc,QAAQ;AAC5C,OAAO;AAEP,MAAMC,SAAA,GAAY;AAgBlB,OAAO,SAAAC,kBAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EACL;IAAAa,IAAA;IAAAC,WAAA;IAAAC,SAAA;IAAAC,eAAA;IAAAC,YAAA;IAAAC,OAAA;IAAAC,SAAA;IAAAC,QAAA,EAAAC,iBAAA;IAAAC,SAAA,EAAAC;EAAA,IAUIZ,KAAA;EAEJ,MAAAa,SAAA,GAAkBhB,cAAA;EAElB,OAAAiB,UAAA,EAAAC,aAAA,IAAoCvB,KAAA,CAAAwB,QAAA,MAAe;EAEnD;IAAAC;EAAA,IAAuB1B,QAAA;EACvB;IAAA2B;EAAA,IAAcxB,cAAA;EAAA,IAAAyB,EAAA;EAAA,IAAAlB,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAa,UAAA,IAAAb,CAAA,QAAAO,SAAA,IAAAP,CAAA,QAAAW,kBAAA;IAEgBO,EAAA,SAAAA,CAAA;MAAA,KACvBL,UAAA;QACHC,aAAA,KAAc;QAAA,IAEV,OAAOH,kBAAA,KAAuB;UAAA,MAC1BA,kBAAA;QAAA;QAGRG,aAAA,MAAc;QACdE,UAAA,CAAWT,SAAA;MAAA;IAAA;IAEfP,CAAA,MAAAgB,UAAA;IAAAhB,CAAA,MAAAa,UAAA;IAAAb,CAAA,MAAAO,SAAA;IAAAP,CAAA,MAAAW,kBAAA;IAAAX,CAAA,MAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EAXA,MAAAU,SAAA,GAAkBQ,EAWwC;EAAA,IAAAC,EAAA;EAAA,IAAAnB,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAa,UAAA,IAAAb,CAAA,QAAAO,SAAA,IAAAP,CAAA,QAAAS,iBAAA;IAE7BU,EAAA,GAAAA,CAAA;MAAA,KACtBN,UAAA;QACHG,UAAA,CAAWT,SAAA;QAAA,IAEP,OAAOE,iBAAA,KAAsB;UAC/BA,iBAAA;QAAA;MAAA;IAAA;IAGNT,CAAA,MAAAgB,UAAA;IAAAhB,CAAA,MAAAa,UAAA;IAAAb,CAAA,MAAAO,SAAA;IAAAP,CAAA,MAAAS,iBAAA;IAAAT,CAAA,MAAAmB,EAAA;EAAA;IAAAA,EAAA,GAAAnB,CAAA;EAAA;EARA,MAAAQ,QAAA,GAAiBW,EAQwC;EAAA,IAAAC,EAAA;EAAA,IAAApB,CAAA,SAAAG,SAAA;IAI1CiB,EAAA,IAAAvB,SAAA,EAAYM,SAAA,EAAAkB,MAAA,CAAAC,OAAkB;IAAAtB,CAAA,OAAAG,SAAA;IAAAH,CAAA,OAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAA9B,MAAAuB,EAAA,GAAAH,EAA8B,CAAAI,IAAA,CAAc;EAG7C,MAAAC,EAAA,GAAA9B,WAAA,GAAciB,SAAA;EAAA,IAAAc,EAAA;EAAA,IAAA1B,CAAA,SAAAC,IAAA,IAAAD,CAAA,SAAAE,WAAA,IAAAF,CAAA,SAAAK,YAAA,IAAAL,CAAA,SAAAa,UAAA,IAAAb,CAAA,SAAAI,eAAA,IAAAJ,CAAA,SAAAM,OAAA,IAAAN,CAAA,SAAAO,SAAA,IAAAP,CAAA,SAAAQ,QAAA,IAAAR,CAAA,SAAAU,SAAA,IAAAV,CAAA,SAAAiB,CAAA,IAAAjB,CAAA,SAAAuB,EAAA,IAAAvB,CAAA,SAAAyB,EAAA;IAAA,IAAAE,EAAA;IAAA,IAAA3B,CAAA,SAAAE,WAAA,IAAAF,CAAA,SAAAiB,CAAA;MAiBjBU,EAAA,GAAAzB,WAAA,IAAee,CAAA,CAAE;MAAAjB,CAAA,OAAAE,WAAA;MAAAF,CAAA,OAAAiB,CAAA;MAAAjB,CAAA,OAAA2B,EAAA;IAAA;MAAAA,EAAA,GAAA3B,CAAA;IAAA;IAAA,IAAA4B,EAAA;IAAA,IAAA5B,CAAA,SAAAK,YAAA,IAAAL,CAAA,SAAAa,UAAA,IAAAb,CAAA,SAAAI,eAAA,IAAAJ,CAAA,SAAAiB,CAAA;MAGjBW,EAAA,GAAAf,UAAA,GACGT,eAAA,IAAmB,GAAGa,CAAA,CAAE,uBAAuB,GAC/CZ,YAAA,IAAgBY,CAAA,CAAE;MAAAjB,CAAA,OAAAK,YAAA;MAAAL,CAAA,OAAAa,UAAA;MAAAb,CAAA,OAAAI,eAAA;MAAAJ,CAAA,OAAAiB,CAAA;MAAAjB,CAAA,OAAA4B,EAAA;IAAA;MAAAA,EAAA,GAAA5B,CAAA;IAAA;IA1B9B0B,EAAA,GAAAG,IAAA,CAAAxC,KAAA;MAAAc,SAAA,EACaoB,EAA4C;MAAAO,IAAA,EACjDvB,SAAA;MAAAwB,KAAA;QAAAC,MAAA,EAEIP;MAAc;MAAAQ,QAAA,EAGxBC,KAAA,CAAC;QAAA/B,SAAA,EAAe,GAAAN,SAAA,WAAuB;QAAAoC,QAAA,GACrCC,KAAA,CAAC;UAAA/B,SAAA,EAAe,GAAAN,SAAA,WAAuB;UAAAoC,QAAA,GACrCJ,IAAA,CAAC;YAAAI,QAAA,EAAI3B;UAAA,C,GACLuB,IAAA,CAAC;YAAAI,QAAA,EAAGhC;UAAA,C;YAENiC,KAAA,CAAC;UAAA/B,SAAA,EAAe,GAAAN,SAAA,YAAwB;UAAAoC,QAAA,GACtCJ,IAAA,CAAAnC,MAAA;YAAAyC,WAAA,EACc;YAAAC,QAAA,EACFvB,UAAA;YAAAwB,EAAA,EACP;YAAAC,OAAA,EACM9B,QAAA;YAAA+B,IAAA,EACJ;YAAAC,IAAA,EACA;YAAAP,QAAA,EAEJN;UAAiB,C,GAEpBE,IAAA,CAAAnC,MAAA;YAAA2C,EAAA,EAAW;YAAAC,OAAA,EAA0B5B,SAAA;YAAA6B,IAAA,EAAgB;YAAAN,QAAA,EAClDL;UAEqB,C;;;;;;;;;;;;;;;;;;;;SA1B9BF,E","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,OAAO,KAAsB,MAAM,OAAO,CAAA;AAY1C,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsItC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuItC,CAAA"}
@@ -15,7 +15,6 @@ import { useTranslation } from '../../providers/Translation/index.js';
15
15
  import { requests } from '../../utilities/api.js';
16
16
  import { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js';
17
17
  import { ConfirmationModal } from '../ConfirmationModal/index.js';
18
- import { Pill } from '../Pill/index.js';
19
18
  import './index.scss';
20
19
  const baseClass = 'delete-documents';
21
20
  export const DeleteMany = props => {
@@ -116,11 +115,12 @@ export const DeleteMany = props => {
116
115
  return null;
117
116
  }
118
117
  return /*#__PURE__*/_jsxs(React.Fragment, {
119
- children: [/*#__PURE__*/_jsx(Pill, {
118
+ children: [/*#__PURE__*/_jsx("button", {
120
119
  className: `${baseClass}__toggle`,
121
120
  onClick: () => {
122
121
  openModal(modalSlug);
123
122
  },
123
+ type: "button",
124
124
  children: t('general:delete')
125
125
  }), /*#__PURE__*/_jsx(ConfirmationModal, {
126
126
  body: t('general:aboutToDeleteCount', {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","useSearchParams","qs","React","useCallback","toast","useAuth","useConfig","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","mergeListSearchAndWhere","ConfirmationModal","Pill","baseClass","DeleteMany","props","collection","slug","labels","plural","singular","permissions","config","routes","api","serverURL","openModal","count","getQueryParams","selectAll","toggleAll","i18n","t","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","modalSlug","addDefaultError","error","handleDelete","queryWithSearch","collectionConfig","search","get","queryString","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","label","errors","message","description","map","join","replace","stringify","page","undefined","addQueryPrefix","_err","None","_jsxs","Fragment","_jsx","className","onClick","body","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-documents'\n\nexport type Props = {\n collection: ClientCollectionConfig\n title?: string\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { collection, collection: { slug, labels: { plural, singular } } = {} } = props\n\n const { permissions } = useAuth()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { openModal } = useModal()\n const { count, getQueryParams, selectAll, toggleAll } = useSelection()\n const { i18n, t } = useTranslation()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete\n\n const modalSlug = `delete-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleDelete = useCallback(async () => {\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n const queryString = getQueryParams(queryWithSearch)\n\n await requests\n .delete(`${serverURL}${api}/${slug}${queryString}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:deletedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n\n return null\n }\n\n if (json.errors) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n } else {\n return addDefaultError()\n }\n return false\n } catch (_err) {\n return addDefaultError()\n }\n })\n }, [\n searchParams,\n addDefaultError,\n api,\n getQueryParams,\n i18n,\n plural,\n router,\n selectAll,\n serverURL,\n singular,\n slug,\n t,\n toggleAll,\n clearRouteCache,\n collection,\n ])\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </Pill>\n <ConfirmationModal\n body={t('general:aboutToDeleteCount', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","useSearchParams","qs","React","useCallback","toast","useAuth","useConfig","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","mergeListSearchAndWhere","ConfirmationModal","baseClass","DeleteMany","props","collection","slug","labels","plural","singular","permissions","config","routes","api","serverURL","openModal","count","getQueryParams","selectAll","toggleAll","i18n","t","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","modalSlug","addDefaultError","error","handleDelete","queryWithSearch","collectionConfig","search","get","queryString","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","label","errors","message","description","map","join","replace","stringify","page","undefined","addQueryPrefix","_err","None","_jsxs","Fragment","_jsx","className","onClick","type","body","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-documents'\n\nexport type Props = {\n collection: ClientCollectionConfig\n title?: string\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { collection, collection: { slug, labels: { plural, singular } } = {} } = props\n\n const { permissions } = useAuth()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { openModal } = useModal()\n const { count, getQueryParams, selectAll, toggleAll } = useSelection()\n const { i18n, t } = useTranslation()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete\n\n const modalSlug = `delete-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleDelete = useCallback(async () => {\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n const queryString = getQueryParams(queryWithSearch)\n\n await requests\n .delete(`${serverURL}${api}/${slug}${queryString}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:deletedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n\n return null\n }\n\n if (json.errors) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n } else {\n return addDefaultError()\n }\n return false\n } catch (_err) {\n return addDefaultError()\n }\n })\n }, [\n searchParams,\n addDefaultError,\n api,\n getQueryParams,\n i18n,\n plural,\n router,\n selectAll,\n serverURL,\n singular,\n slug,\n t,\n toggleAll,\n clearRouteCache,\n collection,\n ])\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <button\n className={`${baseClass}__toggle`}\n onClick={() => {\n openModal(modalSlug)\n }}\n type=\"button\"\n >\n {t('general:delete')}\n </button>\n <ConfirmationModal\n body={t('general:aboutToDeleteCount', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,5 +7,21 @@
7
7
  align-items: center;
8
8
  justify-content: center;
9
9
  height: 100%;
10
+
11
+ &__toggle {
12
+ font-size: inherit;
13
+ line-height: inherit;
14
+ display: inline-flex;
15
+ background: transparent;
16
+ color: var(--theme-elevation-800);
17
+ white-space: nowrap;
18
+ overflow: hidden;
19
+ text-overflow: ellipsis;
20
+ border: 0;
21
+ padding: 0;
22
+ align-items: center;
23
+ cursor: pointer;
24
+ text-decoration: underline;
25
+ }
10
26
  }
11
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/EditMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAuB,MAAM,SAAS,CAAA;AAE1E,OAAO,KAAmB,MAAM,OAAO,CAAA;AAMvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,cAAc,CAAA;AAEpC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA2C5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/EditMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAuB,MAAM,SAAS,CAAA;AAG1E,OAAO,KAAmB,MAAM,OAAO,CAAA;AAQvC,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,cAAc,CAAA;AAEpC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA6C5C,CAAA"}
@@ -2,17 +2,18 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ import { useModal } from '@faceless-ui/modal';
5
6
  import React, { useState } from 'react';
6
7
  import { useAuth } from '../../providers/Auth/index.js';
7
8
  import { EditDepthProvider } from '../../providers/EditDepth/index.js';
8
9
  import { SelectAllStatus, useSelection } from '../../providers/Selection/index.js';
9
10
  import { useTranslation } from '../../providers/Translation/index.js';
10
- import './index.scss';
11
- import { Drawer, DrawerToggler } from '../Drawer/index.js';
11
+ import { Drawer } from '../Drawer/index.js';
12
12
  import { EditManyDrawerContent } from './DrawerContent.js';
13
+ import './index.scss';
13
14
  export const baseClass = 'edit-many';
14
15
  export const EditMany = props => {
15
- const $ = _c(7);
16
+ const $ = _c(10);
16
17
  const {
17
18
  collection: t0
18
19
  } = props;
@@ -22,6 +23,9 @@ export const EditMany = props => {
22
23
  const {
23
24
  permissions
24
25
  } = useAuth();
26
+ const {
27
+ openModal
28
+ } = useModal();
25
29
  const {
26
30
  selectAll
27
31
  } = useSelection();
@@ -43,23 +47,26 @@ export const EditMany = props => {
43
47
  return null;
44
48
  }
45
49
  let t2;
46
- if ($[1] !== drawerSlug || $[2] !== props.collection || $[3] !== selected || $[4] !== t) {
50
+ if ($[1] !== drawerSlug || $[2] !== openModal || $[3] !== props.collection || $[4] !== selected || $[5] !== t) {
47
51
  let t3;
48
- if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
52
+ if ($[7] !== drawerSlug || $[8] !== openModal) {
49
53
  t3 = () => {
54
+ openModal(drawerSlug);
50
55
  setSelected([]);
51
56
  };
52
- $[6] = t3;
57
+ $[7] = drawerSlug;
58
+ $[8] = openModal;
59
+ $[9] = t3;
53
60
  } else {
54
- t3 = $[6];
61
+ t3 = $[9];
55
62
  }
56
63
  t2 = _jsxs("div", {
57
64
  className: baseClass,
58
- children: [_jsx(DrawerToggler, {
65
+ children: [_jsx("button", {
59
66
  "aria-label": t("general:edit"),
60
67
  className: `${baseClass}__toggle`,
61
68
  onClick: t3,
62
- slug: drawerSlug,
69
+ type: "button",
63
70
  children: t("general:edit")
64
71
  }), _jsx(EditDepthProvider, {
65
72
  children: _jsx(Drawer, {
@@ -74,12 +81,13 @@ export const EditMany = props => {
74
81
  })]
75
82
  });
76
83
  $[1] = drawerSlug;
77
- $[2] = props.collection;
78
- $[3] = selected;
79
- $[4] = t;
80
- $[5] = t2;
84
+ $[2] = openModal;
85
+ $[3] = props.collection;
86
+ $[4] = selected;
87
+ $[5] = t;
88
+ $[6] = t2;
81
89
  } else {
82
- t2 = $[5];
90
+ t2 = $[6];
83
91
  }
84
92
  return t2;
85
93
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useState","useAuth","EditDepthProvider","SelectAllStatus","useSelection","useTranslation","Drawer","DrawerToggler","EditManyDrawerContent","baseClass","EditMany","props","$","collection","t0","slug","permissions","selectAll","t","t1","Symbol","for","selected","setSelected","collectionPermissions","collections","hasUpdatePermission","update","drawerSlug","None","t2","t3","_jsxs","className","children","_jsx","onClick","Header"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldWithPathClient } from 'payload'\n\nimport React, { useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { EditManyDrawerContent } from './DrawerContent.js'\n\nexport const baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n}\n\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const {\n collection: { slug },\n } = props\n\n const { permissions } = useAuth()\n\n const { selectAll } = useSelection()\n const { t } = useTranslation()\n const [selected, setSelected] = useState<FieldWithPathClient[]>([])\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n const drawerSlug = `edit-${slug}`\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <DrawerToggler\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSelected([])\n }}\n slug={drawerSlug}\n >\n {t('general:edit')}\n </DrawerToggler>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <EditManyDrawerContent\n collection={props.collection}\n drawerSlug={drawerSlug}\n selected={selected}\n />\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,OAAO,QAAQ;AACxB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,OAAO;AACP,SAASC,MAAM,EAAEC,aAAa,QAAQ;AACtC,SAASC,qBAAqB,QAAQ;AAEtC,OAAO,MAAMC,SAAA,GAAY;AAMzB,OAAO,MAAMC,QAAA,GAAoCC,KAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAC/C;IAAAe,UAAA,EAAAC;EAAA,IAEIH,KAAA;EADU;IAAAI;EAAA,IAAAD,EAAQ;EAGtB;IAAAE;EAAA,IAAwBf,OAAA;EAExB;IAAAgB;EAAA,IAAsBb,YAAA;EACtB;IAAAc;EAAA,IAAcb,cAAA;EAAA,IAAAc,EAAA;EAAA,IAAAP,CAAA,QAAAQ,MAAA,CAAAC,GAAA;IACkDF,EAAA;IAAEP,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAAlE,OAAAU,QAAA,EAAAC,WAAA,IAAgCvB,QAAA,CAAgCmB,EAAE;EAElE,MAAAK,qBAAA,GAA8BR,WAAA,EAAAS,WAAA,GAA2BV,IAAA;EACzD,MAAAW,mBAAA,GAA4BF,qBAAA,EAAAG,MAAA;EAE5B,MAAAC,UAAA,GAAmB,QAAQb,IAAA,EAAM;EAAA,IAE7BE,SAAA,KAAAd,eAAA,CAAA0B,IAAkC,KAAKH,mBAAA;IAAA;EAAA;EAAA,IAAAI,EAAA;EAAA,IAAAlB,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAD,KAAA,CAAAE,UAAA,IAAAD,CAAA,QAAAU,QAAA,IAAAV,CAAA,QAAAM,CAAA;IAAA,IAAAa,EAAA;IAAA,IAAAnB,CAAA,QAAAQ,MAAA,CAAAC,GAAA;MAS5BU,EAAA,GAAAA,CAAA;QACPR,WAAA,GAAc;MAAA;MAChBX,CAAA,MAAAmB,EAAA;IAAA;MAAAA,EAAA,GAAAnB,CAAA;IAAA;IANJkB,EAAA,GAAAE,KAAA,CAAC;MAAAC,SAAA,EAAAxB,SAAA;MAAAyB,QAAA,GACCC,IAAA,CAAA5B,aAAA;QAAA,cACcW,CAAA,CAAE;QAAAe,SAAA,EACH,GAAAxB,SAAA,UAAsB;QAAA2B,OAAA,EACxBL,EAET;QAAAhB,IAAA,EACMa,UAAA;QAAAM,QAAA,EAELhB,CAAA,CAAE;MAAA,C,GAELiB,IAAA,CAAAjC,iBAAA;QAAAgC,QAAA,EACEC,IAAA,CAAA7B,MAAA;UAAA+B,MAAA;UAAAtB,IAAA,EAA4Ba,UAAA;UAAAM,QAAA,EAC1BC,IAAA,CAAA3B,qBAAA;YAAAK,UAAA,EACcF,KAAA,CAAAE,UAAA;YAAAe,UAAA;YAAAN;UAAA,C;;;;;;;;;;;;SAdpBQ,E;CAsBJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","React","useState","useAuth","EditDepthProvider","SelectAllStatus","useSelection","useTranslation","Drawer","EditManyDrawerContent","baseClass","EditMany","props","$","collection","t0","slug","permissions","openModal","selectAll","t","t1","Symbol","for","selected","setSelected","collectionPermissions","collections","hasUpdatePermission","update","drawerSlug","None","t2","t3","_jsxs","className","children","_jsx","onClick","type","Header"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldWithPathClient } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { EditManyDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n}\n\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const {\n collection: { slug },\n } = props\n\n const { permissions } = useAuth()\n const { openModal } = useModal()\n\n const { selectAll } = useSelection()\n const { t } = useTranslation()\n const [selected, setSelected] = useState<FieldWithPathClient[]>([])\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n const drawerSlug = `edit-${slug}`\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <button\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n openModal(drawerSlug)\n setSelected([])\n }}\n type=\"button\"\n >\n {t('general:edit')}\n </button>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <EditManyDrawerContent\n collection={props.collection}\n drawerSlug={drawerSlug}\n selected={selected}\n />\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,OAAO,QAAQ;AACxB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,OAAO,MAAMC,SAAA,GAAY;AAMzB,OAAO,MAAMC,QAAA,GAAoCC,KAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAC/C;IAAAe,UAAA,EAAAC;EAAA,IAEIH,KAAA;EADU;IAAAI;EAAA,IAAAD,EAAQ;EAGtB;IAAAE;EAAA,IAAwBd,OAAA;EACxB;IAAAe;EAAA,IAAsBlB,QAAA;EAEtB;IAAAmB;EAAA,IAAsBb,YAAA;EACtB;IAAAc;EAAA,IAAcb,cAAA;EAAA,IAAAc,EAAA;EAAA,IAAAR,CAAA,QAAAS,MAAA,CAAAC,GAAA;IACkDF,EAAA;IAAER,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAlE,OAAAW,QAAA,EAAAC,WAAA,IAAgCvB,QAAA,CAAgCmB,EAAE;EAElE,MAAAK,qBAAA,GAA8BT,WAAA,EAAAU,WAAA,GAA2BX,IAAA;EACzD,MAAAY,mBAAA,GAA4BF,qBAAA,EAAAG,MAAA;EAE5B,MAAAC,UAAA,GAAmB,QAAQd,IAAA,EAAM;EAAA,IAE7BG,SAAA,KAAAd,eAAA,CAAA0B,IAAkC,KAAKH,mBAAA;IAAA;EAAA;EAAA,IAAAI,EAAA;EAAA,IAAAnB,CAAA,QAAAiB,UAAA,IAAAjB,CAAA,QAAAK,SAAA,IAAAL,CAAA,QAAAD,KAAA,CAAAE,UAAA,IAAAD,CAAA,QAAAW,QAAA,IAAAX,CAAA,QAAAO,CAAA;IAAA,IAAAa,EAAA;IAAA,IAAApB,CAAA,QAAAiB,UAAA,IAAAjB,CAAA,QAAAK,SAAA;MAS5Be,EAAA,GAAAA,CAAA;QACPf,SAAA,CAAUY,UAAA;QACVL,WAAA,GAAc;MAAA;MAChBZ,CAAA,MAAAiB,UAAA;MAAAjB,CAAA,MAAAK,SAAA;MAAAL,CAAA,MAAAoB,EAAA;IAAA;MAAAA,EAAA,GAAApB,CAAA;IAAA;IAPJmB,EAAA,GAAAE,KAAA,CAAC;MAAAC,SAAA,EAAAzB,SAAA;MAAA0B,QAAA,GACCC,IAAA,CAAC;QAAA,cACajB,CAAA,CAAE;QAAAe,SAAA,EACH,GAAAzB,SAAA,UAAsB;QAAA4B,OAAA,EACxBL,EAGT;QAAAM,IAAA,EACK;QAAAH,QAAA,EAEJhB,CAAA,CAAE;MAAA,C,GAELiB,IAAA,CAAAjC,iBAAA;QAAAgC,QAAA,EACEC,IAAA,CAAA7B,MAAA;UAAAgC,MAAA;UAAAxB,IAAA,EAA4Bc,UAAA;UAAAM,QAAA,EAC1BC,IAAA,CAAA5B,qBAAA;YAAAK,UAAA,EACcF,KAAA,CAAAE,UAAA;YAAAgB,UAAA;YAAAN;UAAA,C;;;;;;;;;;;;;SAfpBQ,E;CAuBJ","ignoreList":[]}
@@ -3,33 +3,19 @@
3
3
  @layer payload-default {
4
4
  .edit-many {
5
5
  &__toggle {
6
- font-size: 1rem;
7
- line-height: base(1.2);
6
+ font-size: inherit;
7
+ line-height: inherit;
8
8
  display: inline-flex;
9
- background: var(--theme-elevation-150);
9
+ background: transparent;
10
10
  color: var(--theme-elevation-800);
11
- border-radius: $style-radius-s;
12
11
  white-space: nowrap;
13
12
  overflow: hidden;
14
13
  text-overflow: ellipsis;
15
14
  border: 0;
16
- padding: 0 base(0.4);
15
+ padding: 0;
17
16
  align-items: center;
18
17
  cursor: pointer;
19
- text-decoration: none;
20
-
21
- &:active,
22
- &:focus {
23
- outline: none;
24
- }
25
-
26
- &:hover {
27
- background: var(--theme-elevation-100);
28
- }
29
-
30
- &:active {
31
- background: var(--theme-elevation-100);
32
- }
18
+ text-decoration: underline;
33
19
  }
34
20
 
35
21
  &__form {
@@ -5,7 +5,15 @@ export type ListControlsProps = {
5
5
  readonly beforeActions?: React.ReactNode[];
6
6
  readonly collectionConfig: ClientCollectionConfig;
7
7
  readonly collectionSlug: string;
8
+ /**
9
+ * @deprecated
10
+ * These are now handled by the `ListSelection` component
11
+ */
8
12
  readonly disableBulkDelete?: boolean;
13
+ /**
14
+ * @deprecated
15
+ * These are now handled by the `ListSelection` component
16
+ */
9
17
  readonly disableBulkEdit?: boolean;
10
18
  readonly enableColumns?: boolean;
11
19
  readonly enableSort?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAInF,OAAO,KAAgD,MAAM,OAAO,CAAA;AAoBpE,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACvD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CACpE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyMpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAInF,OAAO,KAAsC,MAAM,OAAO,CAAA;AAgB1D,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACvD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CACpE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2LpD,CAAA"}
@@ -3,7 +3,7 @@
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useWindowInfo } from '@faceless-ui/window-info';
5
5
  import { getTranslation } from '@payloadcms/translations';
6
- import React, { Fragment, useEffect, useRef, useState } from 'react';
6
+ import React, { useEffect, useRef, useState } from 'react';
7
7
  import { Popup, PopupList } from '../../elements/Popup/index.js';
8
8
  import { useUseTitleField } from '../../hooks/useUseAsTitle.js';
9
9
  import { ChevronIcon } from '../../icons/Chevron/index.js';
@@ -13,12 +13,8 @@ import { useListQuery } from '../../providers/ListQuery/index.js';
13
13
  import { useTranslation } from '../../providers/Translation/index.js';
14
14
  import { AnimateHeight } from '../AnimateHeight/index.js';
15
15
  import { ColumnSelector } from '../ColumnSelector/index.js';
16
- import { DeleteMany } from '../DeleteMany/index.js';
17
- import { EditMany } from '../EditMany/index.js';
18
16
  import { Pill } from '../Pill/index.js';
19
- import { PublishMany } from '../PublishMany/index.js';
20
17
  import { SearchFilter } from '../SearchFilter/index.js';
21
- import { UnpublishMany } from '../UnpublishMany/index.js';
22
18
  import { WhereBuilder } from '../WhereBuilder/index.js';
23
19
  import validateWhereQuery from '../WhereBuilder/validateWhereQuery.js';
24
20
  import { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js';
@@ -34,8 +30,6 @@ export const ListControls = props => {
34
30
  beforeActions,
35
31
  collectionConfig,
36
32
  collectionSlug,
37
- disableBulkDelete,
38
- disableBulkEdit,
39
33
  enableColumns = true,
40
34
  enableSort = false,
41
35
  listMenuItems,
@@ -107,18 +101,8 @@ export const ListControls = props => {
107
101
  className: `${baseClass}__buttons`,
108
102
  children: /*#__PURE__*/_jsxs("div", {
109
103
  className: `${baseClass}__buttons-wrap`,
110
- children: [!smallBreak && /*#__PURE__*/_jsxs(React.Fragment, {
111
- children: [beforeActions && beforeActions, !disableBulkEdit && /*#__PURE__*/_jsxs(Fragment, {
112
- children: [/*#__PURE__*/_jsx(EditMany, {
113
- collection: collectionConfig
114
- }), /*#__PURE__*/_jsx(PublishMany, {
115
- collection: collectionConfig
116
- }), /*#__PURE__*/_jsx(UnpublishMany, {
117
- collection: collectionConfig
118
- })]
119
- }), !disableBulkDelete && /*#__PURE__*/_jsx(DeleteMany, {
120
- collection: collectionConfig
121
- })]
104
+ children: [!smallBreak && /*#__PURE__*/_jsx(React.Fragment, {
105
+ children: beforeActions && beforeActions
122
106
  }), enableColumns && /*#__PURE__*/_jsx(Pill, {
123
107
  "aria-controls": `${baseClass}-columns`,
124
108
  "aria-expanded": visibleDrawer === 'columns',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","React","Fragment","useEffect","useRef","useState","Popup","PopupList","useUseTitleField","ChevronIcon","Dots","SearchIcon","useListQuery","useTranslation","AnimateHeight","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","disableBulkDelete","disableBulkEdit","enableColumns","enableSort","listMenuItems","renderedFilters","resolvedFilterOptions","handleSearchChange","query","titleField","i18n","t","breakpoints","s","smallBreak","searchLabel","label","name","listSearchableFields","admin","fields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","_jsxs","className","_jsx","fieldName","handleChange","search","initialParams","collection","icon","direction","onClick","pillStyle","button","ariaLabel","horizontalAlign","size","verticalAlign","ButtonGroup","map","item","height","id","slug","collectionPluralLabel","labels","plural"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ResolvedFilterOptions, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n readonly disableBulkDelete?: boolean\n readonly disableBulkEdit?: boolean\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly listMenuItems?: React.ReactNode[]\n readonly renderedFilters?: Map<string, React.ReactNode>\n readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n enableColumns = true,\n enableSort = false,\n listMenuItems,\n renderedFilters,\n resolvedFilterOptions,\n } = props\n const { handleSearchChange, query } = useListQuery()\n const titleField = useUseTitleField(collectionConfig)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField && typeof titleField.label === 'string'\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n collectionConfig.fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(query?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={titleField && 'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n // @ts-expect-error @todo: fix types\n initialParams={query}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n {beforeActions && beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns`}\n icon={<ChevronIcon direction={visibleDrawer === 'columns' ? 'up' : 'down'} />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where`}\n icon={<ChevronIcon direction={visibleDrawer === 'where' ? 'up' : 'down'} />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n {listMenuItems && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>{listMenuItems.map((item) => item)}</PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","React","useEffect","useRef","useState","Popup","PopupList","useUseTitleField","ChevronIcon","Dots","SearchIcon","useListQuery","useTranslation","AnimateHeight","ColumnSelector","Pill","SearchFilter","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","enableColumns","enableSort","listMenuItems","renderedFilters","resolvedFilterOptions","handleSearchChange","query","titleField","i18n","t","breakpoints","s","smallBreak","searchLabel","label","name","listSearchableFields","admin","fields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","_jsxs","className","_jsx","fieldName","handleChange","search","initialParams","Fragment","icon","direction","onClick","pillStyle","button","ariaLabel","horizontalAlign","size","verticalAlign","ButtonGroup","map","item","height","id","slug","collectionPluralLabel","labels","plural"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ResolvedFilterOptions, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkDelete?: boolean\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkEdit?: boolean\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly listMenuItems?: React.ReactNode[]\n readonly renderedFilters?: Map<string, React.ReactNode>\n readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n enableColumns = true,\n enableSort = false,\n listMenuItems,\n renderedFilters,\n resolvedFilterOptions,\n } = props\n const { handleSearchChange, query } = useListQuery()\n const titleField = useUseTitleField(collectionConfig)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField && typeof titleField.label === 'string'\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n collectionConfig.fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(query?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={titleField && 'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n // @ts-expect-error @todo: fix types\n initialParams={query}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && <React.Fragment>{beforeActions && beforeActions}</React.Fragment>}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns`}\n icon={<ChevronIcon direction={visibleDrawer === 'columns' ? 'up' : 'down'} />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where`}\n icon={<ChevronIcon direction={visibleDrawer === 'where' ? 'up' : 'down'} />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n {listMenuItems && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>{listMenuItems.map((item) => item)}</PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAWjD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+JvD,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAWjD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAmKvD,CAAA"}
@@ -87,6 +87,7 @@ export const ListDrawerContent = ({
87
87
  } = await serverFunction({
88
88
  name: 'render-list',
89
89
  args: {
90
+ allowCreate,
90
91
  collectionSlug: slug_0,
91
92
  disableBulkDelete: true,
92
93
  disableBulkEdit: true,
@@ -105,7 +106,7 @@ export const ListDrawerContent = ({
105
106
  closeModal(drawerSlug);
106
107
  }
107
108
  }
108
- }, [serverFunction, closeModal, drawerSlug, isOpen, enableRowSelections, filterOptions, overrideEntityVisibility]);
109
+ }, [serverFunction, closeModal, allowCreate, drawerSlug, isOpen, enableRowSelections, filterOptions, overrideEntityVisibility]);
109
110
  useEffect(() => {
110
111
  if (!ListView) {
111
112
  void renderList(selectedOption.value);
@@ -117,6 +118,7 @@ export const ListDrawerContent = ({
117
118
  if (typeof onSelect === 'function') {
118
119
  onSelect({
119
120
  collectionSlug: selectedOption.value,
121
+ doc,
120
122
  docID: doc.id
121
123
  });
122
124
  }
@@ -134,6 +136,7 @@ export const ListDrawerContent = ({
134
136
  return /*#__PURE__*/_jsx(LoadingOverlay, {});
135
137
  }
136
138
  return /*#__PURE__*/_jsxs(ListDrawerContextProvider, {
139
+ allowCreate: allowCreate,
137
140
  createNewDrawerSlug: documentDrawerSlug,
138
141
  DocumentDrawerToggler: DocumentDrawerToggler,
139
142
  drawerSlug: drawerSlug,
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useState","useDocumentDrawer","useEffectEvent","useConfig","useServerFunctions","hoistQueryParamsToAnd","ListDrawerContextProvider","LoadingOverlay","ListDrawerContent","allowCreate","collectionSlugs","drawerSlug","enableRowSelections","filterOptions","onBulkSelect","onSelect","overrideEntityVisibility","selectedCollection","selectedCollectionFromProps","closeModal","isModalOpen","serverFunction","ListView","setListView","undefined","isLoading","setIsLoading","config","collections","getEntityConfig","isOpen","enabledCollections","filter","slug","includes","selectedOption","setSelectedOption","initialSelection","found","collectionSlug","label","labels","value","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","updateSelectedOption","renderList","query","newQuery","where","filterOption","List","ViewResult","name","args","disableBulkDelete","disableBulkEdit","_err","console","error","onCreateNew","doc","docID","id","onQueryChange","setMySelectedOption","incomingSelection","_jsx","_jsxs","createNewDrawerSlug","onSave"],"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ListDrawerProps } from './types.js'\n\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { ListDrawerContextProvider } from '../ListDrawer/Provider.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { type Option } from '../ReactSelect/index.js'\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n allowCreate = true,\n collectionSlugs,\n drawerSlug,\n enableRowSelections,\n filterOptions,\n onBulkSelect,\n onSelect,\n overrideEntityVisibility = true,\n selectedCollection: selectedCollectionFromProps,\n}) => {\n const { closeModal, isModalOpen } = useModal()\n\n const { serverFunction } = useServerFunctions()\n const [ListView, setListView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n\n const isOpen = isModalOpen(drawerSlug)\n\n const enabledCollections = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedOption, setSelectedOption] = useState<Option<string>>(() => {\n const initialSelection = selectedCollectionFromProps || enabledCollections[0]?.slug\n const found = getEntityConfig({ collectionSlug: initialSelection })\n\n return found\n ? {\n label: found.labels,\n value: found.slug,\n }\n : undefined\n })\n\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedOption.value,\n })\n\n const updateSelectedOption = useEffectEvent((selectedCollectionFromProps: string) => {\n if (selectedCollectionFromProps && selectedCollectionFromProps !== selectedOption?.value) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug: selectedCollectionFromProps })?.labels,\n value: selectedCollectionFromProps,\n })\n }\n })\n\n useEffect(() => {\n updateSelectedOption(selectedCollectionFromProps)\n }, [selectedCollectionFromProps])\n\n const renderList = useCallback(\n async (slug: string, query?: ListQuery) => {\n try {\n const newQuery: ListQuery = { ...(query || {}), where: { ...(query?.where || {}) } }\n\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOption)\n }\n\n const { List: ViewResult } = (await serverFunction({\n name: 'render-list',\n args: {\n collectionSlug: slug,\n disableBulkDelete: true,\n disableBulkEdit: true,\n drawerSlug,\n enableRowSelections,\n overrideEntityVisibility,\n query: newQuery,\n },\n })) as { List: React.ReactNode }\n\n setListView(ViewResult)\n setIsLoading(false)\n } catch (_err) {\n console.error('Error rendering List View: ', _err) // eslint-disable-line no-console\n\n if (isOpen) {\n closeModal(drawerSlug)\n }\n }\n },\n [\n serverFunction,\n closeModal,\n drawerSlug,\n isOpen,\n enableRowSelections,\n filterOptions,\n overrideEntityVisibility,\n ],\n )\n\n useEffect(() => {\n if (!ListView) {\n void renderList(selectedOption.value)\n }\n }, [renderList, ListView, selectedOption.value])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedOption.value,\n docID: doc.id,\n })\n }\n\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedOption.value],\n )\n\n const onQueryChange = useCallback(\n (query: ListQuery) => {\n void renderList(selectedOption.value, query)\n },\n [renderList, selectedOption.value],\n )\n\n const setMySelectedOption = useCallback(\n (incomingSelection: Option<string>) => {\n setSelectedOption(incomingSelection)\n void renderList(incomingSelection.value)\n },\n [renderList],\n )\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <ListDrawerContextProvider\n createNewDrawerSlug={documentDrawerSlug}\n DocumentDrawerToggler={DocumentDrawerToggler}\n drawerSlug={drawerSlug}\n enabledCollections={collectionSlugs}\n onBulkSelect={onBulkSelect}\n onQueryChange={onQueryChange}\n onSelect={onSelect}\n selectedOption={selectedOption}\n setSelectedOption={setMySelectedOption}\n >\n {ListView}\n <DocumentDrawer onSave={onCreateNew} />\n </ListDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useState","useDocumentDrawer","useEffectEvent","useConfig","useServerFunctions","hoistQueryParamsToAnd","ListDrawerContextProvider","LoadingOverlay","ListDrawerContent","allowCreate","collectionSlugs","drawerSlug","enableRowSelections","filterOptions","onBulkSelect","onSelect","overrideEntityVisibility","selectedCollection","selectedCollectionFromProps","closeModal","isModalOpen","serverFunction","ListView","setListView","undefined","isLoading","setIsLoading","config","collections","getEntityConfig","isOpen","enabledCollections","filter","slug","includes","selectedOption","setSelectedOption","initialSelection","found","collectionSlug","label","labels","value","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","updateSelectedOption","renderList","query","newQuery","where","filterOption","List","ViewResult","name","args","disableBulkDelete","disableBulkEdit","_err","console","error","onCreateNew","doc","docID","id","onQueryChange","setMySelectedOption","incomingSelection","_jsx","_jsxs","createNewDrawerSlug","onSave"],"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ListDrawerProps } from './types.js'\n\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { ListDrawerContextProvider } from '../ListDrawer/Provider.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { type Option } from '../ReactSelect/index.js'\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n allowCreate = true,\n collectionSlugs,\n drawerSlug,\n enableRowSelections,\n filterOptions,\n onBulkSelect,\n onSelect,\n overrideEntityVisibility = true,\n selectedCollection: selectedCollectionFromProps,\n}) => {\n const { closeModal, isModalOpen } = useModal()\n\n const { serverFunction } = useServerFunctions()\n const [ListView, setListView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n\n const isOpen = isModalOpen(drawerSlug)\n\n const enabledCollections = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedOption, setSelectedOption] = useState<Option<string>>(() => {\n const initialSelection = selectedCollectionFromProps || enabledCollections[0]?.slug\n const found = getEntityConfig({ collectionSlug: initialSelection })\n\n return found\n ? {\n label: found.labels,\n value: found.slug,\n }\n : undefined\n })\n\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedOption.value,\n })\n\n const updateSelectedOption = useEffectEvent((selectedCollectionFromProps: string) => {\n if (selectedCollectionFromProps && selectedCollectionFromProps !== selectedOption?.value) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug: selectedCollectionFromProps })?.labels,\n value: selectedCollectionFromProps,\n })\n }\n })\n\n useEffect(() => {\n updateSelectedOption(selectedCollectionFromProps)\n }, [selectedCollectionFromProps])\n\n const renderList = useCallback(\n async (slug: string, query?: ListQuery) => {\n try {\n const newQuery: ListQuery = { ...(query || {}), where: { ...(query?.where || {}) } }\n\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOption)\n }\n\n const { List: ViewResult } = (await serverFunction({\n name: 'render-list',\n args: {\n allowCreate,\n collectionSlug: slug,\n disableBulkDelete: true,\n disableBulkEdit: true,\n drawerSlug,\n enableRowSelections,\n overrideEntityVisibility,\n query: newQuery,\n },\n })) as { List: React.ReactNode }\n\n setListView(ViewResult)\n setIsLoading(false)\n } catch (_err) {\n console.error('Error rendering List View: ', _err) // eslint-disable-line no-console\n\n if (isOpen) {\n closeModal(drawerSlug)\n }\n }\n },\n [\n serverFunction,\n closeModal,\n allowCreate,\n drawerSlug,\n isOpen,\n enableRowSelections,\n filterOptions,\n overrideEntityVisibility,\n ],\n )\n\n useEffect(() => {\n if (!ListView) {\n void renderList(selectedOption.value)\n }\n }, [renderList, ListView, selectedOption.value])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedOption.value,\n doc,\n docID: doc.id,\n })\n }\n\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedOption.value],\n )\n\n const onQueryChange = useCallback(\n (query: ListQuery) => {\n void renderList(selectedOption.value, query)\n },\n [renderList, selectedOption.value],\n )\n\n const setMySelectedOption = useCallback(\n (incomingSelection: Option<string>) => {\n setSelectedOption(incomingSelection)\n void renderList(incomingSelection.value)\n },\n [renderList],\n )\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <ListDrawerContextProvider\n allowCreate={allowCreate}\n createNewDrawerSlug={documentDrawerSlug}\n DocumentDrawerToggler={DocumentDrawerToggler}\n drawerSlug={drawerSlug}\n enabledCollections={collectionSlugs}\n onBulkSelect={onBulkSelect}\n onQueryChange={onQueryChange}\n onSelect={onSelect}\n selectedOption={selectedOption}\n setSelectedOption={setMySelectedOption}\n >\n {ListView}\n <DocumentDrawer onSave={onCreateNew} />\n </ListDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,9 @@
1
- import type { CollectionSlug, ListQuery } from 'payload';
1
+ import type { CollectionSlug, Data, ListQuery } from 'payload';
2
2
  import type { useSelection } from '../../providers/Selection/index.js';
3
3
  import type { UseDocumentDrawer } from '../DocumentDrawer/types.js';
4
4
  import type { Option } from '../ReactSelect/index.js';
5
5
  export type ListDrawerContextProps = {
6
+ readonly allowCreate?: boolean;
6
7
  readonly createNewDrawerSlug?: string;
7
8
  readonly DocumentDrawerToggler?: ReturnType<UseDocumentDrawer>[1];
8
9
  readonly drawerSlug?: string;
@@ -11,6 +12,12 @@ export type ListDrawerContextProps = {
11
12
  readonly onQueryChange?: (query: ListQuery) => void;
12
13
  readonly onSelect?: (args: {
13
14
  collectionSlug: CollectionSlug;
15
+ doc: Data;
16
+ /**
17
+ * @deprecated
18
+ * The `docID` property is deprecated and will be removed in the next major version of Payload.
19
+ * Use `doc.id` instead.
20
+ */
14
21
  docID: string;
15
22
  }) => void;
16
23
  readonly selectedOption?: Option<string>;