@payloadcms/ui 3.42.0 → 3.43.0-internal.c5bbc84

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 (71) hide show
  1. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  2. package/dist/elements/CopyLocaleData/index.js +6 -1
  3. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  4. package/dist/elements/FolderView/CollectionTypePill/index.d.ts.map +1 -1
  5. package/dist/elements/FolderView/CollectionTypePill/index.js +13 -10
  6. package/dist/elements/FolderView/CollectionTypePill/index.js.map +1 -1
  7. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -1
  8. package/dist/elements/FolderView/CurrentFolderActions/index.js +17 -11
  9. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  10. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +1 -3
  11. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -1
  12. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +7 -4
  13. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
  14. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +1 -0
  15. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -1
  16. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +230 -201
  17. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  18. package/dist/elements/FolderView/FolderFileCard/index.d.ts +8 -0
  19. package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +1 -1
  20. package/dist/elements/FolderView/FolderFileCard/index.js +82 -0
  21. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  22. package/dist/elements/FolderView/FolderFileTable/index.d.ts +1 -22
  23. package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -1
  24. package/dist/elements/FolderView/FolderFileTable/index.js +245 -163
  25. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
  26. package/dist/elements/FolderView/ItemCardGrid/index.d.ts +2 -8
  27. package/dist/elements/FolderView/ItemCardGrid/index.d.ts.map +1 -1
  28. package/dist/elements/FolderView/ItemCardGrid/index.js +24 -90
  29. package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
  30. package/dist/elements/FolderView/SortByPill/index.d.ts.map +1 -1
  31. package/dist/elements/FolderView/SortByPill/index.js +17 -15
  32. package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
  33. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -1
  34. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +8 -10
  35. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  36. package/dist/exports/client/index.js +22 -22
  37. package/dist/exports/client/index.js.map +4 -4
  38. package/dist/exports/rsc/index.d.ts +1 -0
  39. package/dist/exports/rsc/index.d.ts.map +1 -1
  40. package/dist/exports/rsc/index.js +1 -0
  41. package/dist/exports/rsc/index.js.map +1 -1
  42. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  43. package/dist/fields/Relationship/Input.js +1 -0
  44. package/dist/fields/Relationship/Input.js.map +1 -1
  45. package/dist/providers/Folders/index.d.ts +59 -46
  46. package/dist/providers/Folders/index.d.ts.map +1 -1
  47. package/dist/providers/Folders/index.js +163 -572
  48. package/dist/providers/Folders/index.js.map +1 -1
  49. package/dist/providers/ServerFunctions/index.d.ts +6 -1
  50. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  51. package/dist/providers/ServerFunctions/index.js +19 -0
  52. package/dist/providers/ServerFunctions/index.js.map +1 -1
  53. package/dist/providers/TableColumns/index.js +1 -0
  54. package/dist/providers/TableColumns/index.js.map +1 -1
  55. package/dist/styles.css +1 -1
  56. package/dist/utilities/getFolderResultsComponentAndData.d.ts +29 -0
  57. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -0
  58. package/dist/utilities/getFolderResultsComponentAndData.js +128 -0
  59. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -0
  60. package/dist/views/BrowseByFolder/index.d.ts +1 -4
  61. package/dist/views/BrowseByFolder/index.d.ts.map +1 -1
  62. package/dist/views/BrowseByFolder/index.js +219 -158
  63. package/dist/views/BrowseByFolder/index.js.map +1 -1
  64. package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -1
  65. package/dist/views/CollectionFolder/ListSelection/index.js +25 -50
  66. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  67. package/dist/views/CollectionFolder/index.d.ts +1 -1
  68. package/dist/views/CollectionFolder/index.d.ts.map +1 -1
  69. package/dist/views/CollectionFolder/index.js +186 -153
  70. package/dist/views/CollectionFolder/index.js.map +1 -1
  71. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useFolder","FolderFileCard","baseClass","ItemCardGrid","t0","$","type","disabledItemKeys","items","RenderActionGroup","selectedItemKeys","subfolderCount","title","focusedRowIndex","isDragging","onItemClick","onItemKeyPress","selectedIndexes","t1","_jsx","className","children","t2","_jsxs","_Fragment","length","map","item","_index","index","itemKey","value","disabled","has","id","isFocused","isSelected","onClick","event","onKeyDown","event_0","PopupActions","previewUrl","url","selectedCount","size","_folderOrDocumentTitle"],"sources":["../../../../src/elements/FolderView/ItemCardGrid/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FolderDocumentItemKey, FolderOrDocument } from 'payload/shared'\n\nimport React from 'react'\n\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { FolderFileCard } from '../FolderFileCard/index.js'\nimport './index.scss'\n\nconst baseClass = 'item-card-grid'\n\ntype ItemCardGridProps = {\n disabledItemKeys?: Set<FolderDocumentItemKey>\n items: FolderOrDocument[]\n RenderActionGroup?: (args: { index: number; item: FolderOrDocument }) => React.ReactNode\n selectedItemKeys: Set<FolderDocumentItemKey>\n title?: string\n} & (\n | {\n subfolderCount: number\n type: 'file'\n }\n | {\n subfolderCount?: never\n type: 'folder'\n }\n)\nexport function ItemCardGrid({\n type,\n disabledItemKeys,\n items,\n RenderActionGroup,\n selectedItemKeys,\n subfolderCount,\n title,\n}: ItemCardGridProps) {\n const { focusedRowIndex, isDragging, onItemClick, onItemKeyPress, selectedIndexes } = useFolder()\n\n return (\n <>\n {title && <p className={`${baseClass}__title`}>{title}</p>}\n <div className={baseClass}>\n {!items || items?.length === 0\n ? null\n : items.map((item, _index) => {\n const index = _index + (subfolderCount || 0)\n const { itemKey, value } = item\n\n return (\n <FolderFileCard\n disabled={\n (isDragging && selectedItemKeys.has(itemKey)) || disabledItemKeys?.has(itemKey)\n }\n id={value.id}\n isFocused={focusedRowIndex === index}\n isSelected={selectedItemKeys.has(itemKey)}\n itemKey={itemKey}\n key={itemKey}\n onClick={(event) => {\n void onItemClick({ event, index, item })\n }}\n onKeyDown={(event) => {\n void onItemKeyPress({ event, index, item })\n }}\n PopupActions={\n RenderActionGroup\n ? RenderActionGroup({\n index,\n item,\n })\n : null\n }\n previewUrl={value?.url}\n selectedCount={selectedIndexes.size}\n title={value._folderOrDocumentTitle}\n type={type}\n />\n )\n })}\n </div>\n </>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAkBlB,OAAO,SAAAC,aAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAsB;IAAAQ,IAAA;IAAAC,gBAAA;IAAAC,KAAA;IAAAC,iBAAA;IAAAC,gBAAA;IAAAC,cAAA;IAAAC;EAAA,IAAAR,EAQT;EAClB;IAAAS,eAAA;IAAAC,UAAA;IAAAC,WAAA;IAAAC,cAAA;IAAAC;EAAA,IAAsFjB,SAAA;EAAA,IAAAkB,EAAA;EAAA,IAAAb,CAAA,QAAAO,KAAA;IAIjFM,EAAA,GAAAN,KAAA,IAASO,IAAA,CAAC;MAAAC,SAAA,EAAa,GAAAlB,SAAA,SAAqB;MAAAmB,QAAA,EAAGT;IAAA,C;;;;;;;;IADlDU,EAAA,GAAAC,KAAA,CAAAC,SAAA;MAAAH,QAAA,GACGH,E,EACDC,IAAA,CAAC;QAAAC,SAAA,EAAAlB,SAAA;QAAAmB,QAAA,EACE,CAACb,KAAA,IAASA,KAAA,EAAAiB,MAAA,MAAkB,UAEzBjB,KAAA,CAAAkB,GAAA,EAAAC,IAAA,EAAAC,MAAA;UACE,MAAAC,KAAA,GAAcD,MAAA,IAAUjB,cAAA,KAAkB;UAC1C;YAAAmB,OAAA;YAAAC;UAAA,IAA2BJ,IAAA;UAAA,OAGzBR,IAAA,CAAAlB,cAAA;YAAA+B,QAAA,EAEIlB,UAAC,IAAcJ,gBAAA,CAAAuB,GAAA,CAAqBH,OAAA,KAAavB,gBAAA,EAAA0B,GAAA,CAAsBH,OAAA;YAAAI,EAAA,EAErEH,KAAA,CAAAG,EAAA;YAAAC,SAAA,EACOtB,eAAA,KAAoBgB,KAAA;YAAAO,UAAA,EACnB1B,gBAAA,CAAAuB,GAAA,CAAqBH,OAAA;YAAAA,OAAA;YAAAO,OAAA,EAAAC,KAAA;cAI1BvB,WAAA;gBAAAuB,KAAA;gBAAAT,KAAA;gBAAAF;cAAA,CAAiC;YAAA;YAAAY,SAAA,EAAAC,OAAA;cAGjCxB,cAAA;gBAAAsB,KAAA,EAAiBA,OAAA;gBAAAT,KAAA;gBAAAF;cAAA,CAAmB;YAAA;YAAAc,YAAA,EAGzChC,iBAAA,GACIA,iBAAA;cAAAoB,KAAA;cAAAF;YAAA,CAGA,QACA;YAAAe,UAAA,EAEMX,KAAA,EAAAY,GAAA;YAAAC,aAAA,EACG3B,eAAA,CAAA4B,IAAA;YAAAjC,KAAA,EACRmB,KAAA,CAAAe,sBAAA;YAAAxC;UAAA,GAjBFwB,OAAA;QAAA,CAqBX;MAAA,C;;;;;;;;;;;;;;;;;;SAvCRR,E","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","ContextFolderFileCard","baseClass","ItemCardGrid","type","items","subfolderCount","title","_jsxs","_Fragment","_jsx","className","length","map","item","_index","index","itemKey"],"sources":["../../../../src/elements/FolderView/ItemCardGrid/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FolderOrDocument } from 'payload/shared'\n\nimport React from 'react'\n\nimport { ContextFolderFileCard } from '../FolderFileCard/index.js'\nimport './index.scss'\n\nconst baseClass = 'item-card-grid'\n\ntype ItemCardGridProps = {\n items: FolderOrDocument[]\n title?: string\n} & (\n | {\n subfolderCount: number\n type: 'file'\n }\n | {\n subfolderCount?: never\n type: 'folder'\n }\n)\nexport function ItemCardGrid({ type, items, subfolderCount, title }: ItemCardGridProps) {\n return (\n <>\n {title && <p className={`${baseClass}__title`}>{title}</p>}\n <div className={baseClass}>\n {!items || items?.length === 0\n ? null\n : items.map((item, _index) => {\n const index = _index + (subfolderCount || 0)\n const { itemKey } = item\n\n return <ContextFolderFileCard index={index} item={item} key={itemKey} type={type} />\n })}\n </div>\n </>\n )\n}\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,MAAW;AAElB,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAelB,OAAO,SAASC,aAAa;EAAEC,IAAI;EAAEC,KAAK;EAAEC,cAAc;EAAEC;AAAK,CAAqB;EACpF,oBACEC,KAAA,CAAAC,SAAA;eACGF,KAAA,iBAASG,IAAA,CAAC;MAAEC,SAAA,EAAW,GAAGT,SAAA,SAAkB;gBAAGK;qBAChDG,IAAA,CAAC;MAAIC,SAAA,EAAWT,SAAA;gBACb,CAACG,KAAA,IAASA,KAAA,EAAOO,MAAA,KAAW,IACzB,OACAP,KAAA,CAAMQ,GAAG,CAAC,CAACC,IAAA,EAAMC,MAAA;QACf,MAAMC,KAAA,GAAQD,MAAA,IAAUT,cAAA,IAAkB;QAC1C,MAAM;UAAEW;QAAO,CAAE,GAAGH,IAAA;QAEpB,oBAAOJ,IAAA,CAACT,qBAAA;UAAsBe,KAAA,EAAOA,KAAA;UAAOF,IAAA,EAAMA,IAAA;UAAoBV,IAAA,EAAMA;WAAfa,OAAA;MAC/D;;;AAIZ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/SortByPill/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAO,cAAc,CAAA;AAmCrB,wBAAgB,UAAU,sBAuEzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/SortByPill/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAO,cAAc,CAAA;AAmCrB,wBAAgB,UAAU,sBA2EzB"}
@@ -31,18 +31,16 @@ const orderOnOptions = [{
31
31
  }];
32
32
  export function SortByPill() {
33
33
  const {
34
- documents,
35
- sortAndUpdateState,
36
- sortDirection,
37
- sortOn,
38
- subfolders
34
+ refineFolderData,
35
+ sort
39
36
  } = useFolder();
40
37
  const {
41
38
  t
42
39
  } = useTranslation();
40
+ const sortDirection = sort.startsWith('-') ? 'desc' : 'asc';
43
41
  const [selectedSortOption] = sortOnOptions.filter(({
44
42
  value
45
- }) => value === sortOn);
43
+ }) => value === (sort.startsWith('-') ? sort.slice(1) : sort));
46
44
  const [selectedOrderOption] = orderOnOptions.filter(({
47
45
  value
48
46
  }) => value === sortDirection);
@@ -71,10 +69,11 @@ export function SortByPill() {
71
69
  }) => /*#__PURE__*/_jsx(PopupList.Button, {
72
70
  active: selectedSortOption.value === value,
73
71
  onClick: () => {
74
- sortAndUpdateState({
75
- documentsToSort: documents,
76
- sortOn: value,
77
- subfoldersToSort: subfolders
72
+ refineFolderData({
73
+ query: {
74
+ sort: value
75
+ },
76
+ updateURL: true
78
77
  });
79
78
  close();
80
79
  },
@@ -90,11 +89,14 @@ export function SortByPill() {
90
89
  active: selectedOrderOption.value === value,
91
90
  className: `${baseClass}__order-option`,
92
91
  onClick: () => {
93
- sortAndUpdateState({
94
- documentsToSort: documents,
95
- sortDirection: value,
96
- subfoldersToSort: subfolders
97
- });
92
+ if (value === 'asc') {
93
+ refineFolderData({
94
+ query: {
95
+ sort: value === 'asc' ? `-${sort}` : sort
96
+ },
97
+ updateURL: true
98
+ });
99
+ }
98
100
  close();
99
101
  },
100
102
  children: label(t)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","ChevronIcon","SortDownIcon","SortUpIcon","useFolder","useTranslation","Pill","Popup","PopupList","baseClass","sortOnOptions","label","t","value","orderOnOptions","_jsxs","_Fragment","_jsx","SortByPill","documents","sortAndUpdateState","sortDirection","sortOn","subfolders","selectedSortOption","filter","selectedOrderOption","button","className","icon","size","horizontalAlign","render","close","GroupLabel","ButtonGroup","map","Button","active","onClick","documentsToSort","subfoldersToSort","Divider","showScrollbar","verticalAlign"],"sources":["../../../../src/elements/FolderView/SortByPill/index.tsx"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\nimport type { FolderOrDocument } from 'payload/shared'\n\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { SortDownIcon, SortUpIcon } from '../../../icons/Sort/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'sort-by-pill'\n\nconst sortOnOptions: {\n label: (t: TFunction) => React.ReactNode\n value: keyof FolderOrDocument['value']\n}[] = [\n { label: (t) => t('general:name'), value: '_folderOrDocumentTitle' },\n { label: (t) => t('general:createdAt'), value: 'createdAt' },\n { label: (t) => t('general:updatedAt'), value: 'updatedAt' },\n]\nconst orderOnOptions: {\n label: (t: TFunction) => React.ReactNode\n value: 'asc' | 'desc'\n}[] = [\n {\n label: (t) => (\n <>\n <SortUpIcon />\n {t('general:ascending')}\n </>\n ),\n value: 'asc',\n },\n {\n label: (t) => (\n <>\n <SortDownIcon />\n {t('general:descending')}\n </>\n ),\n value: 'desc',\n },\n]\nexport function SortByPill() {\n const { documents, sortAndUpdateState, sortDirection, sortOn, subfolders } = useFolder()\n const { t } = useTranslation()\n const [selectedSortOption] = sortOnOptions.filter(({ value }) => value === sortOn)\n const [selectedOrderOption] = orderOnOptions.filter(({ value }) => value === sortDirection)\n\n return (\n <Popup\n button={\n <Pill className={`${baseClass}__trigger`} icon={<ChevronIcon />} size=\"small\">\n {sortDirection === 'asc' ? (\n <SortUpIcon className={`${baseClass}__sort-icon`} />\n ) : (\n <SortDownIcon className={`${baseClass}__sort-icon`} />\n )}\n {selectedSortOption.label(t)}\n </Pill>\n }\n className={baseClass}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <>\n <PopupList.GroupLabel label=\"Sort by\" />\n <PopupList.ButtonGroup>\n {sortOnOptions.map(({ label, value }) => (\n <PopupList.Button\n active={selectedSortOption.value === value}\n key={value}\n onClick={() => {\n sortAndUpdateState({\n documentsToSort: documents,\n sortOn: value as keyof Pick<\n FolderOrDocument['value'],\n '_folderOrDocumentTitle' | 'createdAt' | 'updatedAt'\n >,\n subfoldersToSort: subfolders,\n })\n close()\n }}\n >\n {label(t)}\n </PopupList.Button>\n ))}\n </PopupList.ButtonGroup>\n <PopupList.Divider />\n <PopupList.GroupLabel label=\"Order\" />\n <PopupList.ButtonGroup>\n {orderOnOptions.map(({ label, value }) => (\n <PopupList.Button\n active={selectedOrderOption.value === value}\n className={`${baseClass}__order-option`}\n key={value}\n onClick={() => {\n sortAndUpdateState({\n documentsToSort: documents,\n sortDirection: value,\n subfoldersToSort: subfolders,\n })\n close()\n }}\n >\n {label(t)}\n </PopupList.Button>\n ))}\n </PopupList.ButtonGroup>\n </>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","ChevronIcon","SortDownIcon","SortUpIcon","useFolder","useTranslation","Pill","Popup","PopupList","baseClass","sortOnOptions","label","t","value","orderOnOptions","_jsxs","_Fragment","_jsx","SortByPill","refineFolderData","sort","sortDirection","startsWith","selectedSortOption","filter","slice","selectedOrderOption","button","className","icon","size","horizontalAlign","render","close","GroupLabel","ButtonGroup","map","Button","active","onClick","query","updateURL","Divider","showScrollbar","verticalAlign"],"sources":["../../../../src/elements/FolderView/SortByPill/index.tsx"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\nimport type { FolderOrDocument } from 'payload/shared'\n\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { SortDownIcon, SortUpIcon } from '../../../icons/Sort/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'sort-by-pill'\n\nconst sortOnOptions: {\n label: (t: TFunction) => React.ReactNode\n value: keyof FolderOrDocument['value']\n}[] = [\n { label: (t) => t('general:name'), value: '_folderOrDocumentTitle' },\n { label: (t) => t('general:createdAt'), value: 'createdAt' },\n { label: (t) => t('general:updatedAt'), value: 'updatedAt' },\n]\nconst orderOnOptions: {\n label: (t: TFunction) => React.ReactNode\n value: 'asc' | 'desc'\n}[] = [\n {\n label: (t) => (\n <>\n <SortUpIcon />\n {t('general:ascending')}\n </>\n ),\n value: 'asc',\n },\n {\n label: (t) => (\n <>\n <SortDownIcon />\n {t('general:descending')}\n </>\n ),\n value: 'desc',\n },\n]\nexport function SortByPill() {\n const { refineFolderData, sort } = useFolder()\n const { t } = useTranslation()\n const sortDirection = sort.startsWith('-') ? 'desc' : 'asc'\n const [selectedSortOption] = sortOnOptions.filter(\n ({ value }) => value === (sort.startsWith('-') ? sort.slice(1) : sort),\n )\n const [selectedOrderOption] = orderOnOptions.filter(({ value }) => value === sortDirection)\n\n return (\n <Popup\n button={\n <Pill className={`${baseClass}__trigger`} icon={<ChevronIcon />} size=\"small\">\n {sortDirection === 'asc' ? (\n <SortUpIcon className={`${baseClass}__sort-icon`} />\n ) : (\n <SortDownIcon className={`${baseClass}__sort-icon`} />\n )}\n {selectedSortOption.label(t)}\n </Pill>\n }\n className={baseClass}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <>\n <PopupList.GroupLabel label=\"Sort by\" />\n <PopupList.ButtonGroup>\n {sortOnOptions.map(({ label, value }) => (\n <PopupList.Button\n active={selectedSortOption.value === value}\n key={value}\n onClick={() => {\n refineFolderData({\n query: {\n sort: value,\n },\n updateURL: true,\n })\n close()\n }}\n >\n {label(t)}\n </PopupList.Button>\n ))}\n </PopupList.ButtonGroup>\n <PopupList.Divider />\n <PopupList.GroupLabel label=\"Order\" />\n <PopupList.ButtonGroup>\n {orderOnOptions.map(({ label, value }) => (\n <PopupList.Button\n active={selectedOrderOption.value === value}\n className={`${baseClass}__order-option`}\n key={value}\n onClick={() => {\n if (value === 'asc') {\n refineFolderData({\n query: {\n sort: value === 'asc' ? `-${sort}` : sort,\n },\n updateURL: true,\n })\n }\n close()\n }}\n >\n {label(t)}\n </PopupList.Button>\n ))}\n </PopupList.ButtonGroup>\n </>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ListCreateNewDocInFolderButton.d.ts","sourceRoot":"","sources":["../../../../src/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA0B,cAAc,EAAE,MAAM,SAAS,CAAA;AAIrE,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,wBAAgB,8BAA8B,CAAC,EAC7C,WAAW,EACX,eAAe,EACf,eAAe,EACf,UAAU,GACX,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,cAAc,EAAE,CAAA;IACjC,eAAe,EAAE,CAAC,IAAI,EAAE;QACtB,cAAc,EAAE,cAAc,CAAA;QAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC7B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;CACnB,qBAwHA"}
1
+ {"version":3,"file":"ListCreateNewDocInFolderButton.d.ts","sourceRoot":"","sources":["../../../../src/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA0B,cAAc,EAAE,MAAM,SAAS,CAAA;AAIrE,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,wBAAgB,8BAA8B,CAAC,EAC7C,WAAW,EACX,eAAe,EACf,eAAe,EACf,UAAU,GACX,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,cAAc,EAAE,CAAA;IACjC,eAAe,EAAE,CAAC,IAAI,EAAE;QACtB,cAAc,EAAE,cAAc,CAAA;QAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC7B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;CACnB,qBAsHA"}
@@ -87,15 +87,15 @@ export function ListCreateNewDocInFolderButton(t0) {
87
87
  initialData: {
88
88
  [folderFieldName]: folderID
89
89
  },
90
- onSave: t6 => {
90
+ onSave: async t6 => {
91
91
  const {
92
92
  doc
93
93
  } = t6;
94
- closeModal(newDocInFolderDrawerSlug);
95
- onCreateSuccess({
94
+ await onCreateSuccess({
96
95
  collectionSlug: createCollectionSlug,
97
96
  doc
98
97
  });
98
+ closeModal(newDocInFolderDrawerSlug);
99
99
  },
100
100
  redirectAfterCreate: false
101
101
  });
@@ -152,13 +152,11 @@ export function ListCreateNewDocInFolderButton(t0) {
152
152
  initialData: {
153
153
  [folderFieldName]: folderID
154
154
  },
155
- onSave: result => {
156
- if (typeof onCreateSuccess === "function") {
157
- onCreateSuccess({
158
- collectionSlug: folderCollectionConfig.slug,
159
- doc: result.doc
160
- });
161
- }
155
+ onSave: async result => {
156
+ await onCreateSuccess({
157
+ collectionSlug: folderCollectionConfig.slug,
158
+ doc: result.doc
159
+ });
162
160
  closeFolderDrawer();
163
161
  },
164
162
  redirectAfterCreate: false
@@ -1 +1 @@
1
- {"version":3,"file":"ListCreateNewDocInFolderButton.js","names":["c","_c","useModal","getTranslation","React","useConfig","useFolder","useTranslation","Button","DocumentDrawer","useDocumentDrawer","Popup","PopupList","baseClass","ListCreateNewDocInFolderButton","t0","$","buttonLabel","collectionSlugs","onCreateSuccess","slugPrefix","newDocInFolderDrawerSlug","i18n","closeModal","openModal","config","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","t1","collectionSlug","FolderDocumentDrawer","t2","closeDrawer","closeFolderDrawer","openDrawer","openFolderDrawer","createCollectionSlug","setCreateCollectionSlug","useState","t3","reduce","acc","collectionConfig","collections","find","t4","slug","push","enabledCollections","length","t5","_jsx","drawerSlug","initialData","onSave","t6","doc","redirectAfterCreate","_jsxs","Fragment","children","buttonStyle","className","el","onClick","size","button","icon","ButtonGroup","map","collection","index","labels","singular","includes","result"],"sources":["../../../../src/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, CollectionSlug } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { DocumentDrawer, useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\n\nconst baseClass = 'create-new-doc-in-folder'\n\nexport function ListCreateNewDocInFolderButton({\n buttonLabel,\n collectionSlugs,\n onCreateSuccess,\n slugPrefix,\n}: {\n buttonLabel: string\n collectionSlugs: CollectionSlug[]\n onCreateSuccess: (args: {\n collectionSlug: CollectionSlug\n doc: Record<string, unknown>\n }) => Promise<void> | void\n slugPrefix: string\n}) {\n const newDocInFolderDrawerSlug = `${slugPrefix}-new-doc-in-folder-drawer`\n const { i18n } = useTranslation()\n const { closeModal, openModal } = useModal()\n const { config } = useConfig()\n const { folderCollectionConfig, folderCollectionSlug, folderFieldName, folderID } = useFolder()\n const [FolderDocumentDrawer, , { closeDrawer: closeFolderDrawer, openDrawer: openFolderDrawer }] =\n useDocumentDrawer({\n collectionSlug: folderCollectionSlug,\n })\n const [createCollectionSlug, setCreateCollectionSlug] = React.useState<string | undefined>()\n const [enabledCollections] = React.useState<ClientCollectionConfig[]>(() =>\n collectionSlugs.reduce((acc, collectionSlug) => {\n const collectionConfig = config.collections.find(({ slug }) => slug === collectionSlug)\n if (collectionConfig) {\n acc.push(collectionConfig)\n }\n return acc\n }, []),\n )\n\n if (enabledCollections.length === 0) {\n return null\n }\n\n return (\n <React.Fragment>\n {enabledCollections.length === 1 ? (\n // If there is only 1 option, do not render a popup\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__button`}\n el=\"div\"\n onClick={() => {\n if (enabledCollections[0].slug === folderCollectionConfig.slug) {\n openFolderDrawer()\n } else {\n setCreateCollectionSlug(enabledCollections[0].slug)\n openModal(newDocInFolderDrawerSlug)\n }\n }}\n size=\"small\"\n >\n {buttonLabel}\n </Button>\n ) : (\n <Popup\n button={\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__popup-button`}\n el=\"div\"\n icon=\"chevron\"\n size=\"small\"\n >\n {buttonLabel}\n </Button>\n }\n buttonType=\"default\"\n className={`${baseClass}__action-popup`}\n >\n <PopupList.ButtonGroup>\n {enabledCollections.map((collection, index) => {\n return (\n <PopupList.Button\n key={index}\n onClick={() => {\n if (collection.slug === folderCollectionConfig.slug) {\n openFolderDrawer()\n } else {\n setCreateCollectionSlug(collection.slug)\n openModal(newDocInFolderDrawerSlug)\n }\n }}\n >\n {getTranslation(collection.labels.singular, i18n)}\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n\n {createCollectionSlug && (\n <DocumentDrawer\n collectionSlug={createCollectionSlug}\n drawerSlug={newDocInFolderDrawerSlug}\n initialData={{\n [folderFieldName]: folderID,\n }}\n onSave={({ doc }) => {\n closeModal(newDocInFolderDrawerSlug)\n void onCreateSuccess({\n collectionSlug: createCollectionSlug,\n doc,\n })\n }}\n redirectAfterCreate={false}\n />\n )}\n\n {collectionSlugs.includes(folderCollectionConfig.slug) && (\n <FolderDocumentDrawer\n initialData={{\n [folderFieldName]: folderID,\n }}\n onSave={(result) => {\n if (typeof onCreateSuccess === 'function') {\n void onCreateSuccess({\n collectionSlug: folderCollectionConfig.slug,\n doc: result.doc,\n })\n }\n closeFolderDrawer()\n }}\n redirectAfterCreate={false}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ListCreateNewDocInFolderButton.js","names":["c","_c","useModal","getTranslation","React","useConfig","useFolder","useTranslation","Button","DocumentDrawer","useDocumentDrawer","Popup","PopupList","baseClass","ListCreateNewDocInFolderButton","t0","$","buttonLabel","collectionSlugs","onCreateSuccess","slugPrefix","newDocInFolderDrawerSlug","i18n","closeModal","openModal","config","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","t1","collectionSlug","FolderDocumentDrawer","t2","closeDrawer","closeFolderDrawer","openDrawer","openFolderDrawer","createCollectionSlug","setCreateCollectionSlug","useState","t3","reduce","acc","collectionConfig","collections","find","t4","slug","push","enabledCollections","length","t5","_jsx","drawerSlug","initialData","onSave","t6","doc","redirectAfterCreate","_jsxs","Fragment","children","buttonStyle","className","el","onClick","size","button","icon","ButtonGroup","map","collection","index","labels","singular","includes","result"],"sources":["../../../../src/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, CollectionSlug } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { DocumentDrawer, useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\n\nconst baseClass = 'create-new-doc-in-folder'\n\nexport function ListCreateNewDocInFolderButton({\n buttonLabel,\n collectionSlugs,\n onCreateSuccess,\n slugPrefix,\n}: {\n buttonLabel: string\n collectionSlugs: CollectionSlug[]\n onCreateSuccess: (args: {\n collectionSlug: CollectionSlug\n doc: Record<string, unknown>\n }) => Promise<void> | void\n slugPrefix: string\n}) {\n const newDocInFolderDrawerSlug = `${slugPrefix}-new-doc-in-folder-drawer`\n const { i18n } = useTranslation()\n const { closeModal, openModal } = useModal()\n const { config } = useConfig()\n const { folderCollectionConfig, folderCollectionSlug, folderFieldName, folderID } = useFolder()\n const [FolderDocumentDrawer, , { closeDrawer: closeFolderDrawer, openDrawer: openFolderDrawer }] =\n useDocumentDrawer({\n collectionSlug: folderCollectionSlug,\n })\n const [createCollectionSlug, setCreateCollectionSlug] = React.useState<string | undefined>()\n const [enabledCollections] = React.useState<ClientCollectionConfig[]>(() =>\n collectionSlugs.reduce((acc, collectionSlug) => {\n const collectionConfig = config.collections.find(({ slug }) => slug === collectionSlug)\n if (collectionConfig) {\n acc.push(collectionConfig)\n }\n return acc\n }, []),\n )\n\n if (enabledCollections.length === 0) {\n return null\n }\n\n return (\n <React.Fragment>\n {enabledCollections.length === 1 ? (\n // If there is only 1 option, do not render a popup\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__button`}\n el=\"div\"\n onClick={() => {\n if (enabledCollections[0].slug === folderCollectionConfig.slug) {\n openFolderDrawer()\n } else {\n setCreateCollectionSlug(enabledCollections[0].slug)\n openModal(newDocInFolderDrawerSlug)\n }\n }}\n size=\"small\"\n >\n {buttonLabel}\n </Button>\n ) : (\n <Popup\n button={\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__popup-button`}\n el=\"div\"\n icon=\"chevron\"\n size=\"small\"\n >\n {buttonLabel}\n </Button>\n }\n buttonType=\"default\"\n className={`${baseClass}__action-popup`}\n >\n <PopupList.ButtonGroup>\n {enabledCollections.map((collection, index) => {\n return (\n <PopupList.Button\n key={index}\n onClick={() => {\n if (collection.slug === folderCollectionConfig.slug) {\n openFolderDrawer()\n } else {\n setCreateCollectionSlug(collection.slug)\n openModal(newDocInFolderDrawerSlug)\n }\n }}\n >\n {getTranslation(collection.labels.singular, i18n)}\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n\n {createCollectionSlug && (\n <DocumentDrawer\n collectionSlug={createCollectionSlug}\n drawerSlug={newDocInFolderDrawerSlug}\n initialData={{\n [folderFieldName]: folderID,\n }}\n onSave={async ({ doc }) => {\n await onCreateSuccess({\n collectionSlug: createCollectionSlug,\n doc,\n })\n closeModal(newDocInFolderDrawerSlug)\n }}\n redirectAfterCreate={false}\n />\n )}\n\n {collectionSlugs.includes(folderCollectionConfig.slug) && (\n <FolderDocumentDrawer\n initialData={{\n [folderFieldName]: folderID,\n }}\n onSave={async (result) => {\n await onCreateSuccess({\n collectionSlug: folderCollectionConfig.slug,\n doc: result.doc,\n })\n closeFolderDrawer()\n }}\n redirectAfterCreate={false}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}