@payloadcms/ui 3.43.0-internal.693bd81 → 3.43.0

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 (189) hide show
  1. package/dist/elements/AddNewRelation/index.js +9 -8
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  4. package/dist/elements/BulkUpload/FileSidebar/index.js +1 -0
  5. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  6. package/dist/elements/Button/index.scss +19 -0
  7. package/dist/elements/Button/types.d.ts +1 -1
  8. package/dist/elements/Button/types.d.ts.map +1 -1
  9. package/dist/elements/Button/types.js.map +1 -1
  10. package/dist/elements/ColumnSelector/index.d.ts +0 -1
  11. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  12. package/dist/elements/ColumnSelector/index.js +34 -38
  13. package/dist/elements/ColumnSelector/index.js.map +1 -1
  14. package/dist/elements/Drawer/index.d.ts.map +1 -1
  15. package/dist/elements/Drawer/index.js +51 -67
  16. package/dist/elements/Drawer/index.js.map +1 -1
  17. package/dist/elements/FieldDiffContainer/index.d.ts +15 -0
  18. package/dist/elements/FieldDiffContainer/index.d.ts.map +1 -0
  19. package/dist/elements/FieldDiffContainer/index.js +40 -0
  20. package/dist/elements/FieldDiffContainer/index.js.map +1 -0
  21. package/dist/elements/FieldDiffContainer/index.scss +45 -0
  22. package/dist/elements/FieldDiffLabel/index.scss +6 -1
  23. package/dist/elements/FolderView/CollectionTypePill/index.d.ts.map +1 -1
  24. package/dist/elements/FolderView/CollectionTypePill/index.js +13 -10
  25. package/dist/elements/FolderView/CollectionTypePill/index.js.map +1 -1
  26. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -1
  27. package/dist/elements/FolderView/CurrentFolderActions/index.js +17 -11
  28. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  29. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +1 -3
  30. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -1
  31. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +7 -4
  32. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
  33. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +1 -0
  34. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -1
  35. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +230 -201
  36. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  37. package/dist/elements/FolderView/FolderFileCard/index.d.ts +8 -0
  38. package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +1 -1
  39. package/dist/elements/FolderView/FolderFileCard/index.js +82 -0
  40. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  41. package/dist/elements/FolderView/FolderFileTable/index.d.ts +1 -22
  42. package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -1
  43. package/dist/elements/FolderView/FolderFileTable/index.js +245 -163
  44. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
  45. package/dist/elements/FolderView/ItemCardGrid/index.d.ts +2 -8
  46. package/dist/elements/FolderView/ItemCardGrid/index.d.ts.map +1 -1
  47. package/dist/elements/FolderView/ItemCardGrid/index.js +24 -90
  48. package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
  49. package/dist/elements/FolderView/SortByPill/index.d.ts.map +1 -1
  50. package/dist/elements/FolderView/SortByPill/index.js +17 -15
  51. package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
  52. package/dist/elements/HTMLDiff/colors.scss +35 -0
  53. package/dist/elements/HTMLDiff/diff/index.d.ts +75 -0
  54. package/dist/elements/HTMLDiff/diff/index.d.ts.map +1 -0
  55. package/dist/elements/HTMLDiff/diff/index.js +536 -0
  56. package/dist/elements/HTMLDiff/diff/index.js.map +1 -0
  57. package/dist/elements/HTMLDiff/index.d.ts +11 -0
  58. package/dist/elements/HTMLDiff/index.d.ts.map +1 -0
  59. package/dist/elements/HTMLDiff/index.js +32 -0
  60. package/dist/elements/HTMLDiff/index.js.map +1 -0
  61. package/dist/elements/HTMLDiff/index.scss +170 -0
  62. package/dist/elements/ListControls/index.scss +2 -2
  63. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +1 -0
  64. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  65. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -1
  66. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +8 -10
  67. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  68. package/dist/elements/ListHeader/index.scss +1 -1
  69. package/dist/elements/Nav/context.d.ts.map +1 -1
  70. package/dist/elements/Nav/context.js +4 -1
  71. package/dist/elements/Nav/context.js.map +1 -1
  72. package/dist/elements/Pill/index.d.ts +5 -1
  73. package/dist/elements/Pill/index.d.ts.map +1 -1
  74. package/dist/elements/Pill/index.js.map +1 -1
  75. package/dist/elements/PillSelector/index.d.ts +26 -0
  76. package/dist/elements/PillSelector/index.d.ts.map +1 -0
  77. package/dist/elements/PillSelector/index.js +72 -0
  78. package/dist/elements/PillSelector/index.js.map +1 -0
  79. package/dist/elements/{ColumnSelector → PillSelector}/index.scss +5 -5
  80. package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -1
  81. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  82. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  83. package/dist/elements/Popup/PopupTrigger/index.scss +4 -0
  84. package/dist/elements/Popup/index.d.ts +1 -1
  85. package/dist/elements/Popup/index.d.ts.map +1 -1
  86. package/dist/elements/Popup/index.js.map +1 -1
  87. package/dist/elements/Popup/index.scss +11 -0
  88. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +1 -0
  89. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  90. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +1 -0
  91. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
  92. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
  93. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +1 -0
  94. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  95. package/dist/elements/QueryPresets/fields/WhereField/index.js +1 -0
  96. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  97. package/dist/elements/ReactSelect/ValueContainer/index.d.ts.map +1 -1
  98. package/dist/elements/ReactSelect/ValueContainer/index.js +7 -4
  99. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  100. package/dist/elements/ReactSelect/ValueContainer/index.scss +8 -0
  101. package/dist/elements/ReactSelect/types.d.ts +1 -0
  102. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  103. package/dist/elements/ReactSelect/types.js.map +1 -1
  104. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  105. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  106. package/dist/elements/RelationshipTable/index.js +3 -1
  107. package/dist/elements/RelationshipTable/index.js.map +1 -1
  108. package/dist/elements/SelectMany/index.d.ts.map +1 -1
  109. package/dist/elements/SelectMany/index.js +1 -0
  110. package/dist/elements/SelectMany/index.js.map +1 -1
  111. package/dist/elements/Table/index.js +2 -2
  112. package/dist/elements/Table/index.js.map +1 -1
  113. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  114. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +7 -7
  115. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  116. package/dist/exports/client/{DatePicker-JDD2RARJ.js → DatePicker-QBWPYX2E.js} +2 -2
  117. package/dist/exports/client/{chunk-L7Q3DZ67.js → chunk-TIQCV7VX.js} +1 -1
  118. package/dist/exports/client/{chunk-L7Q3DZ67.js.map → chunk-TIQCV7VX.js.map} +2 -2
  119. package/dist/exports/client/index.d.ts +6 -1
  120. package/dist/exports/client/index.d.ts.map +1 -1
  121. package/dist/exports/client/index.js +22 -22
  122. package/dist/exports/client/index.js.map +4 -4
  123. package/dist/exports/rsc/index.d.ts +3 -0
  124. package/dist/exports/rsc/index.d.ts.map +1 -1
  125. package/dist/exports/rsc/index.js +3 -0
  126. package/dist/exports/rsc/index.js.map +1 -1
  127. package/dist/exports/shared/index.js.map +1 -1
  128. package/dist/fields/Checkbox/index.scss +1 -1
  129. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  130. package/dist/fields/FieldLabel/index.js +3 -2
  131. package/dist/fields/FieldLabel/index.js.map +1 -1
  132. package/dist/fields/Join/index.d.ts.map +1 -1
  133. package/dist/fields/Join/index.js +1 -0
  134. package/dist/fields/Join/index.js.map +1 -1
  135. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  136. package/dist/fields/Relationship/Input.js +4 -4
  137. package/dist/fields/Relationship/Input.js.map +1 -1
  138. package/dist/providers/Auth/index.d.ts.map +1 -1
  139. package/dist/providers/Auth/index.js +10 -5
  140. package/dist/providers/Auth/index.js.map +1 -1
  141. package/dist/providers/Folders/index.d.ts +59 -46
  142. package/dist/providers/Folders/index.d.ts.map +1 -1
  143. package/dist/providers/Folders/index.js +163 -572
  144. package/dist/providers/Folders/index.js.map +1 -1
  145. package/dist/providers/ServerFunctions/index.d.ts +27 -13
  146. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  147. package/dist/providers/ServerFunctions/index.js +20 -1
  148. package/dist/providers/ServerFunctions/index.js.map +1 -1
  149. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  150. package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -2
  151. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  152. package/dist/providers/TableColumns/index.js +1 -0
  153. package/dist/providers/TableColumns/index.js.map +1 -1
  154. package/dist/providers/Translation/index.d.ts.map +1 -1
  155. package/dist/providers/Translation/index.js.map +1 -1
  156. package/dist/styles.css +1 -1
  157. package/dist/utilities/buildFormState.d.ts +2 -2
  158. package/dist/utilities/buildFormState.d.ts.map +1 -1
  159. package/dist/utilities/buildFormState.js.map +1 -1
  160. package/dist/utilities/buildTableState.d.ts +2 -2
  161. package/dist/utilities/buildTableState.d.ts.map +1 -1
  162. package/dist/utilities/buildTableState.js.map +1 -1
  163. package/dist/utilities/copyDataFromLocale.d.ts +2 -2
  164. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  165. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  166. package/dist/utilities/formatDocTitle/formatDateTitle.js +1 -1
  167. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
  168. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  169. package/dist/utilities/generateFieldID.js +4 -1
  170. package/dist/utilities/generateFieldID.js.map +1 -1
  171. package/dist/utilities/getFolderResultsComponentAndData.d.ts +29 -0
  172. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -0
  173. package/dist/utilities/getFolderResultsComponentAndData.js +128 -0
  174. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -0
  175. package/dist/utilities/renderTable.js +1 -0
  176. package/dist/utilities/renderTable.js.map +1 -1
  177. package/dist/views/BrowseByFolder/index.d.ts +1 -4
  178. package/dist/views/BrowseByFolder/index.d.ts.map +1 -1
  179. package/dist/views/BrowseByFolder/index.js +219 -158
  180. package/dist/views/BrowseByFolder/index.js.map +1 -1
  181. package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -1
  182. package/dist/views/CollectionFolder/ListSelection/index.js +25 -50
  183. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  184. package/dist/views/CollectionFolder/index.d.ts +1 -1
  185. package/dist/views/CollectionFolder/index.d.ts.map +1 -1
  186. package/dist/views/CollectionFolder/index.js +186 -153
  187. package/dist/views/CollectionFolder/index.js.map +1 -1
  188. package/package.json +4 -4
  189. /package/dist/exports/client/{DatePicker-JDD2RARJ.js.map → DatePicker-QBWPYX2E.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useRouter","extractID","formatAdminURL","formatFolderOrDocumentItem","qs","React","toast","useDrawerDepth","useConfig","useRouteTransition","useTranslation","getMetaSelection","getShiftSelection","groupItemIDsByRelation","Context","createContext","addItems","breadcrumbs","clearSelections","currentFolder","documents","filterItems","undefined","focusedRowIndex","folderCollectionConfig","folderCollectionSlug","folderCollectionSlugs","folderFieldName","folderID","getSelectedItems","isDragging","lastSelectedIndex","moveToFolder","Promise","resolve","onItemClick","onItemKeyPress","removeItems","renameFolder","search","selectedIndexes","Set","setBreadcrumbs","setFocusedRowIndex","setFolderID","setIsDragging","sortAndUpdateState","sortDirection","sortOn","subfolders","visibleCollectionSlugs","filterOutItems","items","relationTo","searchLower","toLowerCase","filter","item","itemTitle","value","_folderOrDocumentTitle","itemRelationTo","includes","FolderProvider","allowMultiSelection","_breadcrumbsFromProps","children","collectionSlug","allDocumentsFromProps","filteredCollectionSlugs","_folderIDFromProps","_searchFromProps","sort","subfoldersFromProps","parentFolderContext","useFolder","config","getEntityConfig","routes","serverURL","drawerDepth","t","router","startRouteTransition","useState","collections","find","collection","folders","slug","setSelectedIndexes","setLastSelectedIndex","setVisibleCollectionSlugs","activeFolderID","setActiveFolderID","allSubfolders","setAllSubfolders","setSubfolders","allDocuments","setAllDocuments","setDocuments","setSearch","baseFolderPath","admin","browseByFolder","setSortDirection","startsWith","setSortOn","replace","lastClickTime","useRef","totalCount","length","formatFolderURL","useCallback","args","newFolderID","params","sortBy","adminRoute","path","stringify","addQueryPrefix","getFolderData","_search","searchFilter","trim","query","folderDataReq","fetch","api","credentials","headers","status","folderDataRes","json","setNewActiveFolderID","toFolderID","push","Array","from","reduce","acc","index","navigateAfterSelection","docID","event","code","ctrlKey","metaKey","shiftKey","isShiftPressed","isCtrlPressed","newSelectedIndexes","preventDefault","nextIndex","Math","min","selectFromIndex","selectToIndex","prevIndex","max","size","_","i","currentSelection","toggleIndex","doubleClicked","type","has","now","Date","current","_relationTo","isArray","filteredDocuments","filteredSubfolders","res","sortItems","documentsToSort","sortDirectionArg","sortOnArg","subfoldersToSort","sortedDocuments","sortedSubfolders","sortDirectionToUse","sortOnToUse","newURL","a","b","aValue","bValue","localeCompare","separateItems","separatedItems","prevDocs","itemKey","some","prevFolders","itemsToAdd","parentItems","destinationFolderID","sortedAllDocuments","sortedAllSubfolders","itemsToMove","movingCurrentFolder","id","req","body","JSON","method","error","updatedDoc","folderRes","prevBreadcrumbs","map","breadcrumb","movingToCurrentFolder","successfullyMovedFolderItems","successfullyMovedDocumentItems","ids","Object","entries","collectionConfig","limit","where","in","docs","formattedItems","doc","isUpload","Boolean","upload","useAsTitle","console","updatedFolderID","newName","name","folder","_jsx","context","use","Error"],"sources":["../../../src/providers/Folders/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, CollectionSlug, Document } from 'payload'\nimport type { FolderBreadcrumb, FolderOrDocument, GetFolderDataResult } from 'payload/shared'\n\nimport { useRouter } from 'next/navigation.js'\nimport { extractID, formatAdminURL, formatFolderOrDocumentItem } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useDrawerDepth } from '../../elements/Drawer/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { getMetaSelection, getShiftSelection, groupItemIDsByRelation } from './selection.js'\ntype SortKeys = keyof Pick<\n FolderOrDocument['value'],\n '_folderOrDocumentTitle' | 'createdAt' | 'updatedAt'\n>\ntype SortDirection = 'asc' | 'desc'\nexport type FileCardData = {\n filename: string\n id: number | string\n mimeType: string\n name: string\n url: string\n}\n\nexport type FolderContextValue = {\n addItems: (args: FolderOrDocument[]) => void\n breadcrumbs?: FolderBreadcrumb[]\n clearSelections: () => void\n currentFolder?: FolderOrDocument | null\n documents?: FolderOrDocument[]\n filterItems: (args: { relationTo?: CollectionSlug[]; search?: string }) => Promise<void>\n focusedRowIndex: number\n folderCollectionConfig: ClientCollectionConfig\n folderCollectionSlug: string\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly folderCollectionSlugs?: CollectionSlug[]\n folderFieldName: string\n folderID?: number | string\n getSelectedItems?: () => FolderOrDocument[]\n isDragging: boolean\n lastSelectedIndex: null | number\n moveToFolder: (args: {\n itemsToMove: FolderOrDocument[]\n toFolderID?: number | string\n }) => Promise<void>\n onItemClick: (args: {\n event: React.MouseEvent\n index: number\n item: FolderOrDocument\n }) => Promise<void> | void\n onItemKeyPress: (args: {\n event: React.KeyboardEvent\n index: number\n item: FolderOrDocument\n }) => Promise<void> | void\n removeItems: (args: FolderOrDocument[]) => void\n renameFolder: (args: { folderID: number | string; newName: string }) => void\n search: string\n selectedIndexes: Set<number>\n setBreadcrumbs: React.Dispatch<React.SetStateAction<FolderBreadcrumb[]>>\n setFocusedRowIndex: React.Dispatch<React.SetStateAction<number>>\n setFolderID: (args: { folderID: number | string }) => Promise<void> | void\n setIsDragging: React.Dispatch<React.SetStateAction<boolean>>\n sortAndUpdateState: (args: {\n documentsToSort?: FolderOrDocument[]\n sortDirection?: 'asc' | 'desc'\n sortOn?: SortKeys\n subfoldersToSort?: FolderOrDocument[]\n }) => void\n sortDirection: SortDirection\n sortOn: SortKeys\n subfolders?: FolderOrDocument[]\n visibleCollectionSlugs: CollectionSlug[]\n}\n\nconst Context = React.createContext<FolderContextValue>({\n addItems: () => {},\n breadcrumbs: [],\n clearSelections: () => {},\n currentFolder: null,\n documents: [],\n filterItems: () => undefined,\n focusedRowIndex: -1,\n folderCollectionConfig: null,\n folderCollectionSlug: '',\n folderCollectionSlugs: [],\n folderFieldName: 'folder',\n folderID: undefined,\n getSelectedItems: () => [],\n isDragging: false,\n lastSelectedIndex: null,\n moveToFolder: () => Promise.resolve(undefined),\n onItemClick: () => undefined,\n onItemKeyPress: () => undefined,\n removeItems: () => undefined,\n renameFolder: () => undefined,\n search: '',\n selectedIndexes: new Set(),\n setBreadcrumbs: () => {},\n setFocusedRowIndex: () => -1,\n setFolderID: () => null,\n setIsDragging: () => false,\n sortAndUpdateState: () => undefined,\n sortDirection: 'asc',\n sortOn: '_folderOrDocumentTitle',\n subfolders: [],\n visibleCollectionSlugs: [],\n})\n\nfunction filterOutItems({\n items,\n relationTo,\n search,\n}: {\n items: FolderOrDocument[]\n relationTo?: CollectionSlug[]\n search?: string\n}) {\n if (typeof search !== 'string' && relationTo === undefined) {\n return items\n }\n\n const searchLower = (search || '').toLowerCase()\n\n return items.filter((item) => {\n const itemTitle = item.value._folderOrDocumentTitle.toLowerCase()\n const itemRelationTo = item.relationTo\n\n return (\n (relationTo ? relationTo.includes(itemRelationTo) : true) &&\n (!searchLower || itemTitle.includes(searchLower))\n )\n })\n}\n\nexport type FolderProviderProps = {\n readonly allowMultiSelection?: boolean\n /**\n * Breadcrumbs for the current folder\n */\n readonly breadcrumbs?: FolderBreadcrumb[]\n /**\n * Children to render inside the provider\n */\n readonly children: React.ReactNode\n /**\n * Required for collection-folder views\n */\n readonly collectionSlug?: CollectionSlug\n /**\n * All documents in the current folder\n */\n readonly documents: FolderOrDocument[]\n /**\n * The collection slugs that are being viewed\n */\n readonly filteredCollectionSlugs?: CollectionSlug[]\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly folderCollectionSlugs: CollectionSlug[]\n /**\n * The name of the field that contains the folder relation\n */\n readonly folderFieldName: string\n /**\n * The ID of the current folder\n */\n readonly folderID?: number | string\n /**\n * The intial search query\n */\n readonly search?: string\n /**\n * The sort order of the documents\n *\n * @example\n * `name` for descending\n * `-name` for ascending\n */\n readonly sort?: `-${SortKeys}` | SortKeys\n /**\n * All subfolders in the current folder\n */\n readonly subfolders: FolderOrDocument[]\n}\nexport function FolderProvider({\n allowMultiSelection = true,\n breadcrumbs: _breadcrumbsFromProps = [],\n children,\n collectionSlug,\n documents: allDocumentsFromProps = [],\n filteredCollectionSlugs,\n folderCollectionSlugs = [],\n folderFieldName,\n folderID: _folderIDFromProps = undefined,\n search: _searchFromProps,\n sort,\n subfolders: subfoldersFromProps = [],\n}: FolderProviderProps) {\n const parentFolderContext = useFolder()\n const { config, getEntityConfig } = useConfig()\n const { routes, serverURL } = config\n const drawerDepth = useDrawerDepth()\n const { t } = useTranslation()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const [folderCollectionConfig] = React.useState(() =>\n config.collections.find(\n (collection) => config.folders && collection.slug === config.folders.slug,\n ),\n )\n const folderCollectionSlug = folderCollectionConfig.slug\n\n const [isDragging, setIsDragging] = React.useState(false)\n const [selectedIndexes, setSelectedIndexes] = React.useState<Set<number>>(() => new Set())\n const [focusedRowIndex, setFocusedRowIndex] = React.useState(-1)\n const [lastSelectedIndex, setLastSelectedIndex] = React.useState<null | number>(null)\n const [visibleCollectionSlugs, setVisibleCollectionSlugs] = React.useState<CollectionSlug[]>(\n filteredCollectionSlugs || [...folderCollectionSlugs, folderCollectionSlug],\n )\n const [activeFolderID, setActiveFolderID] =\n React.useState<FolderContextValue['folderID']>(_folderIDFromProps)\n const [breadcrumbs, setBreadcrumbs] =\n React.useState<FolderContextValue['breadcrumbs']>(_breadcrumbsFromProps)\n const [allSubfolders, setAllSubfolders] = React.useState<FolderOrDocument[]>(subfoldersFromProps)\n const [subfolders, setSubfolders] = React.useState<FolderContextValue['subfolders']>(() => {\n return filterOutItems({\n items: allSubfolders,\n relationTo: visibleCollectionSlugs.includes(folderCollectionSlug)\n ? [folderCollectionSlug]\n : [],\n search: _searchFromProps,\n })\n })\n const [allDocuments, setAllDocuments] = React.useState<FolderOrDocument[]>(allDocumentsFromProps)\n const [documents, setDocuments] = React.useState<FolderContextValue['documents']>(() =>\n filterOutItems({\n items: allDocuments,\n relationTo: visibleCollectionSlugs,\n search: _searchFromProps,\n }),\n )\n const [search, setSearch] = React.useState<string | undefined>(_searchFromProps)\n const [baseFolderPath] = React.useState<`/${string}`>(() => {\n if (collectionSlug) {\n return `/collections/${collectionSlug}/${folderCollectionSlug}`\n } else {\n return config.admin.routes.browseByFolder\n }\n })\n const [sortDirection, setSortDirection] = React.useState<SortDirection>(() => {\n if (sort) {\n return sort.startsWith('-') ? 'desc' : 'asc'\n }\n return 'asc'\n })\n const [sortOn, setSortOn] = React.useState<SortKeys>(() => {\n if (sort) {\n return sort.replace(/^-/, '') as SortKeys\n }\n return '_folderOrDocumentTitle'\n })\n\n const lastClickTime = React.useRef<null | number>(null)\n const totalCount = subfolders.length + documents.length\n\n const formatFolderURL = React.useCallback(\n (args: {\n folderID?: number | string\n relationTo?: string[]\n search?: string\n sortBy?: SortKeys\n sortDirection?: SortDirection\n }) => {\n const newFolderID = 'folderID' in args ? args.folderID : activeFolderID\n const params = {\n relationTo:\n 'relationTo' in args\n ? args.relationTo\n : collectionSlug\n ? undefined\n : visibleCollectionSlugs,\n search: 'search' in args ? args.search : search,\n sortBy: 'sortBy' in args ? args.sortBy : sortOn,\n sortDirection: 'sortDirection' in args ? args.sortDirection : sortDirection,\n }\n\n return formatAdminURL({\n adminRoute: config.routes.admin,\n path: `${baseFolderPath}${newFolderID ? `/${newFolderID}` : ''}${qs.stringify(params, {\n addQueryPrefix: true,\n })}`,\n })\n },\n [\n activeFolderID,\n baseFolderPath,\n collectionSlug,\n config.routes.admin,\n search,\n sortDirection,\n sortOn,\n visibleCollectionSlugs,\n ],\n )\n\n const clearSelections = React.useCallback(() => {\n setFocusedRowIndex(-1)\n setSelectedIndexes(new Set())\n setLastSelectedIndex(undefined)\n }, [])\n\n /**\n * Used to populate drawer data.\n *\n * This is used when the user navigates to a folder.\n */\n const getFolderData = React.useCallback(\n async ({ folderID, search: _search = undefined }): Promise<GetFolderDataResult> => {\n // if folderID is not set, we want to search all documents\n const searchFilter = !folderID\n ? ((typeof _search === 'string' ? _search : search) || '').trim()\n : undefined\n const query = qs.stringify(\n {\n collectionSlug,\n folderID,\n search: searchFilter,\n },\n { addQueryPrefix: true },\n )\n\n const folderDataReq = await fetch(\n `${serverURL}${routes.api}/${folderCollectionSlug}/populate-folder-data${query}`,\n {\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n },\n )\n\n if (folderDataReq.status === 200) {\n const folderDataRes: GetFolderDataResult = await folderDataReq.json()\n setAllSubfolders(folderDataRes.subfolders || [])\n setAllDocuments(folderDataRes.documents || [])\n return folderDataRes\n } else {\n return {\n breadcrumbs: [],\n documents: [],\n subfolders: [],\n }\n }\n },\n [folderCollectionSlug, search, routes.api, serverURL, collectionSlug],\n )\n\n const setNewActiveFolderID: FolderContextValue['setFolderID'] = React.useCallback(\n async ({ folderID: toFolderID }) => {\n clearSelections()\n if (drawerDepth === 1) {\n // not in a drawer (default is 1)\n startRouteTransition(() =>\n router.push(\n formatFolderURL({\n folderID: toFolderID,\n }),\n ),\n )\n } else {\n const folderDataRes = await getFolderData({ folderID: toFolderID })\n setBreadcrumbs(folderDataRes?.breadcrumbs || [])\n setSubfolders(folderDataRes?.subfolders || [])\n setDocuments(folderDataRes?.documents || [])\n setActiveFolderID(toFolderID)\n }\n },\n [clearSelections, drawerDepth, startRouteTransition, router, formatFolderURL, getFolderData],\n )\n\n const getSelectedItems = React.useCallback(() => {\n return Array.from(selectedIndexes).reduce((acc, index) => {\n const item = [...subfolders, ...documents][index]\n if (item) {\n acc.push(item)\n }\n return acc\n }, [])\n }, [documents, selectedIndexes, subfolders])\n\n const navigateAfterSelection = React.useCallback(\n async ({ collectionSlug, docID }: { collectionSlug: string; docID: number | string }) => {\n if (collectionSlug === folderCollectionSlug) {\n await setNewActiveFolderID({ folderID: docID })\n } else if (collectionSlug) {\n router.push(\n formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${collectionSlug}/${docID}`,\n }),\n )\n }\n },\n [setNewActiveFolderID, folderCollectionSlug, router, config.routes.admin],\n )\n\n const onItemKeyPress: FolderContextValue['onItemKeyPress'] = React.useCallback(\n async ({ event, index, item }) => {\n const { code, ctrlKey, metaKey, shiftKey } = event\n const isShiftPressed = shiftKey\n const isCtrlPressed = ctrlKey || metaKey\n let newSelectedIndexes: Set<number> = selectedIndexes\n\n switch (code) {\n case 'ArrowDown': {\n event.preventDefault()\n const nextIndex = Math.min(index + 1, totalCount - 1)\n setFocusedRowIndex(nextIndex)\n\n if (isCtrlPressed) {\n break\n }\n\n if (allowMultiSelection && isShiftPressed) {\n newSelectedIndexes = getShiftSelection({\n selectFromIndex: Math.min(lastSelectedIndex, totalCount),\n selectToIndex: Math.min(nextIndex, totalCount),\n })\n } else {\n setLastSelectedIndex(nextIndex)\n newSelectedIndexes = new Set([nextIndex])\n }\n break\n }\n case 'ArrowUp': {\n event.preventDefault()\n const prevIndex = Math.max(index - 1, 0)\n setFocusedRowIndex(prevIndex)\n\n if (isCtrlPressed) {\n break\n }\n\n if (allowMultiSelection && isShiftPressed) {\n newSelectedIndexes = getShiftSelection({\n selectFromIndex: lastSelectedIndex,\n selectToIndex: prevIndex,\n })\n } else {\n setLastSelectedIndex(prevIndex)\n newSelectedIndexes = new Set([prevIndex])\n }\n break\n }\n case 'Enter': {\n if (selectedIndexes.size === 1) {\n newSelectedIndexes = new Set([])\n setFocusedRowIndex(undefined)\n }\n break\n }\n case 'Escape': {\n setFocusedRowIndex(undefined)\n setSelectedIndexes(new Set([]))\n newSelectedIndexes = new Set([])\n break\n }\n case 'KeyA': {\n if (allowMultiSelection && isCtrlPressed) {\n event.preventDefault()\n setFocusedRowIndex(totalCount - 1)\n newSelectedIndexes = new Set(Array.from({ length: totalCount }, (_, i) => i))\n }\n break\n }\n case 'Space': {\n if (allowMultiSelection && isShiftPressed) {\n event.preventDefault()\n newSelectedIndexes = getMetaSelection({\n currentSelection: newSelectedIndexes,\n toggleIndex: index,\n })\n setLastSelectedIndex(index)\n } else {\n event.preventDefault()\n newSelectedIndexes = new Set([index])\n setLastSelectedIndex(index)\n }\n break\n }\n case 'Tab': {\n if (allowMultiSelection && isShiftPressed) {\n const prevIndex = index - 1\n if (prevIndex < 0 && newSelectedIndexes.size > 0) {\n setFocusedRowIndex(prevIndex)\n }\n } else {\n const nextIndex = index + 1\n if (nextIndex === totalCount && newSelectedIndexes.size > 0) {\n setFocusedRowIndex(totalCount - 1)\n }\n }\n break\n }\n }\n\n setSelectedIndexes(newSelectedIndexes)\n if (selectedIndexes.size === 1 && code === 'Enter') {\n await navigateAfterSelection({\n collectionSlug: item.relationTo,\n docID: extractID(item.value),\n })\n }\n },\n [allowMultiSelection, lastSelectedIndex, navigateAfterSelection, selectedIndexes, totalCount],\n )\n\n const onItemClick: FolderContextValue['onItemClick'] = React.useCallback(\n async ({ event, index, item }) => {\n let doubleClicked: boolean = false\n const isCtrlPressed = event.ctrlKey || event.metaKey\n const isShiftPressed = event.shiftKey\n let newSelectedIndexes = new Set(selectedIndexes)\n\n if (allowMultiSelection && isCtrlPressed) {\n newSelectedIndexes = getMetaSelection({\n currentSelection: newSelectedIndexes,\n toggleIndex: index,\n })\n } else if (allowMultiSelection && isShiftPressed && lastSelectedIndex !== undefined) {\n newSelectedIndexes = getShiftSelection({\n selectFromIndex: lastSelectedIndex,\n selectToIndex: index,\n })\n } else if (allowMultiSelection && event.type === 'pointermove') {\n // on drag start of an unselected item\n if (!selectedIndexes.has(index)) {\n newSelectedIndexes = new Set([index])\n }\n setLastSelectedIndex(index)\n } else {\n // Normal click - select single item\n newSelectedIndexes = new Set([index])\n const now = Date.now()\n doubleClicked = now - lastClickTime.current < 400 && lastSelectedIndex === index\n lastClickTime.current = now\n setLastSelectedIndex(index)\n }\n\n if (newSelectedIndexes.size === 0) {\n setFocusedRowIndex(undefined)\n } else {\n setFocusedRowIndex(index)\n }\n\n setSelectedIndexes(newSelectedIndexes)\n if (doubleClicked) {\n await navigateAfterSelection({\n collectionSlug: item.relationTo,\n docID: extractID(item.value),\n })\n }\n },\n [selectedIndexes, lastSelectedIndex, allowMultiSelection, navigateAfterSelection],\n )\n\n const filterItems: FolderContextValue['filterItems'] = React.useCallback(\n async ({ relationTo: _relationTo, search: _search }) => {\n const relationTo = Array.isArray(_relationTo) ? _relationTo : visibleCollectionSlugs\n const searchFilter = ((typeof _search === 'string' ? _search : search) || '').trim()\n\n let filteredDocuments: FolderOrDocument[] = allDocuments\n let filteredSubfolders: FolderOrDocument[] = allSubfolders\n\n if (collectionSlug && !activeFolderID && _search !== search) {\n // this allows us to search all documents in the collection when we are not in a folder and in the folder-collection view\n const res = await getFolderData({\n folderID: activeFolderID,\n search: searchFilter,\n })\n filteredDocuments = filterOutItems({\n items: res.documents,\n relationTo,\n search: searchFilter,\n })\n filteredSubfolders = filterOutItems({\n items: res.subfolders,\n relationTo: [folderCollectionSlug],\n search: searchFilter,\n })\n } else {\n filteredDocuments = filterOutItems({\n items: allDocuments,\n relationTo,\n search: searchFilter,\n })\n filteredSubfolders = filterOutItems({\n items: allSubfolders,\n relationTo: relationTo.includes(folderCollectionSlug) ? [folderCollectionSlug] : [],\n search: searchFilter,\n })\n }\n\n setDocuments(filteredDocuments)\n setSubfolders(filteredSubfolders)\n setSearch(searchFilter)\n setVisibleCollectionSlugs(relationTo)\n\n if (drawerDepth === 1) {\n router.replace(\n formatFolderURL({\n relationTo,\n search: searchFilter || undefined,\n }),\n )\n }\n },\n [\n collectionSlug,\n visibleCollectionSlugs,\n search,\n activeFolderID,\n allDocuments,\n allSubfolders,\n folderCollectionSlug,\n drawerDepth,\n getFolderData,\n router,\n formatFolderURL,\n ],\n )\n\n const sortItems = React.useCallback(\n ({\n documentsToSort,\n sortDirection: sortDirectionArg,\n sortOn: sortOnArg,\n subfoldersToSort,\n }: Parameters<FolderContextValue['sortAndUpdateState']>[0]): {\n newURL?: string\n sortedDocuments?: FolderOrDocument[]\n sortedSubfolders?: FolderOrDocument[]\n } => {\n let sortedDocuments: FolderOrDocument[] | undefined\n let sortedSubfolders: FolderOrDocument[] | undefined\n const sortDirectionToUse = sortDirectionArg || sortDirection\n const sortOnToUse = sortOnArg || sortOn\n\n if (sortOnArg) {\n setSortOn(sortOnArg)\n }\n\n if (sortDirectionArg) {\n setSortDirection(sortDirectionArg)\n }\n\n const newURL = formatFolderURL({\n sortBy: sortOnArg || sortOn,\n sortDirection: sortDirectionArg || sortDirection,\n })\n\n if (documentsToSort) {\n sortedDocuments = [...documentsToSort].sort((a, b) => {\n const aValue = a.value[sortOnToUse]\n const bValue = b.value[sortOnToUse]\n\n if (aValue == null && bValue == null) {\n return 0\n }\n if (aValue == null) {\n return sortDirectionToUse === 'asc' ? 1 : -1\n }\n if (bValue == null) {\n return sortDirectionToUse === 'asc' ? -1 : 1\n }\n\n if (typeof aValue === 'string' && typeof bValue === 'string') {\n return sortDirectionToUse === 'asc'\n ? aValue.localeCompare(bValue)\n : bValue.localeCompare(aValue)\n }\n\n return 0\n })\n }\n\n if (subfoldersToSort) {\n sortedSubfolders = [...subfoldersToSort].sort((a, b) => {\n const aValue = a.value[sortOnToUse]\n const bValue = b.value[sortOnToUse]\n\n if (aValue == null && bValue == null) {\n return 0\n }\n if (aValue == null) {\n return sortDirectionToUse === 'asc' ? 1 : -1\n }\n if (bValue == null) {\n return sortDirectionToUse === 'asc' ? -1 : 1\n }\n\n if (typeof aValue === 'string' && typeof bValue === 'string') {\n return sortDirectionToUse === 'asc'\n ? aValue.localeCompare(bValue)\n : bValue.localeCompare(aValue)\n }\n\n return 0\n })\n }\n\n return {\n newURL,\n sortedDocuments,\n sortedSubfolders,\n }\n },\n [formatFolderURL, sortDirection, sortOn],\n )\n\n const sortAndUpdateState: FolderContextValue['sortAndUpdateState'] = React.useCallback(\n ({ documentsToSort, sortDirection: sortDirectionArg, sortOn: sortOnArg, subfoldersToSort }) => {\n const { newURL, sortedDocuments, sortedSubfolders } = sortItems({\n documentsToSort,\n sortDirection: sortDirectionArg,\n sortOn: sortOnArg,\n subfoldersToSort,\n })\n\n if (sortedDocuments) {\n setDocuments(sortedDocuments)\n }\n if (sortedSubfolders) {\n setSubfolders(sortedSubfolders)\n }\n\n if (drawerDepth === 1) {\n // not in a drawer (default is 1)\n startRouteTransition(() => {\n router.replace(newURL)\n })\n }\n },\n [drawerDepth, router, sortItems, startRouteTransition],\n )\n\n const separateItems = React.useCallback(\n (\n items: FolderOrDocument[],\n ): {\n documents: FolderOrDocument[]\n folders: FolderOrDocument[]\n } => {\n return items.reduce(\n (acc, item) => {\n if (item.relationTo === folderCollectionSlug) {\n acc.folders.push(item)\n } else {\n acc.documents.push(item)\n }\n return acc\n },\n { documents: [] as FolderOrDocument[], folders: [] as FolderOrDocument[] },\n )\n },\n [folderCollectionSlug],\n )\n\n /**\n * Used to remove items from the current state.\n *\n * Does NOT handle the request to the server.\n * Useful when a document is deleted and it needs to be removed\n * from the current state.\n */\n const removeItems: FolderContextValue['removeItems'] = React.useCallback(\n (items) => {\n if (!items.length) {\n return\n }\n\n const separatedItems = separateItems(items)\n\n if (separatedItems.documents.length) {\n setDocuments((prevDocs) => {\n return prevDocs.filter(\n ({ itemKey }) => !separatedItems.documents.some((item) => item.itemKey === itemKey),\n )\n })\n }\n\n if (separatedItems.folders.length) {\n setSubfolders((prevFolders) => {\n return prevFolders.filter(\n ({ itemKey }) => !separatedItems.folders.some((item) => item.itemKey === itemKey),\n )\n })\n }\n\n clearSelections()\n },\n [clearSelections, separateItems, setDocuments, setSubfolders],\n )\n\n /**\n * Used to add items to the current state.\n *\n * Does NOT handle the request to the server.\n * Used when a document needs to be added to the current state.\n */\n const addItems: FolderContextValue['addItems'] = React.useCallback(\n (itemsToAdd) => {\n const { items, parentItems } = itemsToAdd.reduce(\n (acc, item) => {\n const destinationFolderID = item.value.folderID || null\n if (\n (item.value.folderID && item.value.folderID === activeFolderID) ||\n (!activeFolderID && !item.value.folderID)\n ) {\n acc.items.push(item)\n }\n\n if (\n parentFolderContext &&\n ((parentFolderContext.folderID &&\n destinationFolderID === parentFolderContext.folderID) ||\n (!parentFolderContext.folderID && !item.value.folderID))\n ) {\n acc.parentItems.push(item)\n }\n\n return acc\n },\n { items: [], parentItems: [] },\n )\n\n if (parentItems.length) {\n parentFolderContext.addItems(parentItems)\n }\n\n if (!items.length) {\n return\n }\n\n const separatedItems = separateItems(items)\n\n let documentsToSort = undefined\n let subfoldersToSort = undefined\n\n if (separatedItems.documents.length) {\n documentsToSort = [...documents, ...separatedItems.documents]\n }\n\n if (separatedItems.folders.length) {\n subfoldersToSort = [...subfolders, ...separatedItems.folders]\n }\n\n const { sortedDocuments, sortedSubfolders } = sortItems({\n documentsToSort,\n subfoldersToSort,\n })\n\n const { sortedDocuments: sortedAllDocuments, sortedSubfolders: sortedAllSubfolders } =\n sortItems({\n documentsToSort,\n subfoldersToSort,\n })\n\n if (sortedDocuments) {\n setDocuments(sortedDocuments)\n setAllDocuments(sortedAllDocuments)\n }\n if (sortedSubfolders) {\n setSubfolders(sortedSubfolders)\n setAllSubfolders(sortedAllSubfolders)\n }\n },\n [activeFolderID, documents, separateItems, sortItems, subfolders, parentFolderContext],\n )\n\n /**\n * Used to move items to a different folder.\n *\n * Handles the request to the server and updates the state.\n */\n const moveToFolder: FolderContextValue['moveToFolder'] = React.useCallback(\n async (args) => {\n const { itemsToMove: items, toFolderID } = args\n if (!items.length) {\n return\n }\n\n const movingCurrentFolder =\n items.length === 1 &&\n items[0].relationTo === folderCollectionSlug &&\n items[0].value.id === activeFolderID\n\n if (movingCurrentFolder) {\n const req = await fetch(\n `${serverURL}${routes.api}/${folderCollectionSlug}/${activeFolderID}?depth=0`,\n {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n },\n )\n if (req.status !== 200) {\n toast.error(t('general:error'))\n } else {\n const updatedDoc = await req.json()\n const folderRes = await getFolderData({\n folderID: updatedDoc.id,\n })\n setBreadcrumbs(folderRes?.breadcrumbs || [])\n setSubfolders(folderRes?.subfolders || [])\n setDocuments(folderRes?.documents || [])\n setActiveFolderID(updatedDoc.id)\n }\n setBreadcrumbs((prevBreadcrumbs) => {\n return prevBreadcrumbs.map((breadcrumb) => {\n if (breadcrumb.id === activeFolderID) {\n return {\n ...breadcrumb,\n id: toFolderID,\n }\n }\n return breadcrumb\n })\n })\n } else {\n const movingToCurrentFolder: boolean = toFolderID === activeFolderID\n const successfullyMovedFolderItems: FolderOrDocument[] = []\n const successfullyMovedDocumentItems: FolderOrDocument[] = []\n\n for (const [collectionSlug, ids] of Object.entries(groupItemIDsByRelation(items))) {\n const collectionConfig = getEntityConfig({ collectionSlug })\n const query = qs.stringify(\n {\n limit: 0,\n where: {\n id: {\n in: ids,\n },\n },\n },\n {\n addQueryPrefix: true,\n },\n )\n try {\n const res = await fetch(`${serverURL}${routes.api}/${collectionSlug}${query}`, {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n })\n if (res.status === 200) {\n const json = await res.json()\n const { docs } = json as { docs: Document[] }\n const formattedItems: FolderOrDocument[] = docs.map<FolderOrDocument>(\n (doc: Document) =>\n formatFolderOrDocumentItem({\n folderFieldName,\n isUpload: Boolean(collectionConfig.upload),\n relationTo: collectionSlug,\n useAsTitle: collectionConfig.admin.useAsTitle,\n value: doc,\n }),\n )\n if (collectionSlug === folderCollectionSlug) {\n successfullyMovedFolderItems.push(...formattedItems)\n } else {\n successfullyMovedDocumentItems.push(...formattedItems)\n }\n }\n } catch (error) {\n toast.error(t('general:error'))\n // eslint-disable-next-line no-console\n console.error(error)\n continue\n }\n }\n\n if (movingToCurrentFolder) {\n // need to sort if we are moving (adding) items to the current folder\n const { newURL, sortedDocuments, sortedSubfolders } = sortItems({\n documentsToSort: successfullyMovedDocumentItems.length\n ? [...documents, ...successfullyMovedDocumentItems]\n : undefined,\n subfoldersToSort: successfullyMovedFolderItems.length\n ? [...subfolders, ...successfullyMovedFolderItems]\n : undefined,\n })\n\n if (sortedDocuments) {\n setDocuments(sortedDocuments)\n }\n if (sortedSubfolders) {\n setSubfolders(sortedSubfolders)\n }\n\n if (drawerDepth === 1 && newURL) {\n // not in a drawer (default is 1)\n router.replace(newURL)\n }\n } else {\n // no need to sort, just remove the items from the current state\n const filteredDocuments = successfullyMovedDocumentItems.length\n ? documents.filter(\n ({ itemKey }) =>\n !successfullyMovedDocumentItems.some((item) => item.itemKey === itemKey),\n )\n : undefined\n const filteredSubfolders = successfullyMovedFolderItems.length\n ? subfolders.filter(\n ({ itemKey }) =>\n !successfullyMovedFolderItems.some((item) => item.itemKey === itemKey),\n )\n : undefined\n\n if (filteredDocuments) {\n setDocuments(filteredDocuments)\n }\n if (filteredSubfolders) {\n setSubfolders(filteredSubfolders)\n }\n }\n }\n\n clearSelections()\n },\n [\n folderCollectionSlug,\n activeFolderID,\n clearSelections,\n serverURL,\n routes.api,\n folderFieldName,\n t,\n getFolderData,\n getEntityConfig,\n sortItems,\n documents,\n subfolders,\n drawerDepth,\n router,\n ],\n )\n\n /**\n * Used to rename a folder in the current state.\n *\n * Does NOT handle the request to the server.\n * Used when the user renames a folder using the drawer\n * and it needs to be updated in the current state.\n */\n const renameFolder: FolderContextValue['renameFolder'] = React.useCallback(\n ({ folderID: updatedFolderID, newName }) => {\n if (activeFolderID === updatedFolderID) {\n // updating the curent folder\n setBreadcrumbs((prevBreadcrumbs) => {\n return prevBreadcrumbs.map((breadcrumb) => {\n if (breadcrumb.id === updatedFolderID) {\n return {\n ...breadcrumb,\n name: newName,\n }\n }\n return breadcrumb\n })\n })\n } else {\n setSubfolders((prevFolders) => {\n return prevFolders.map((folder) => {\n if (folder.value.id === updatedFolderID && folder.relationTo === folderCollectionSlug) {\n return {\n ...folder,\n value: {\n ...folder.value,\n _folderOrDocumentTitle: newName,\n },\n }\n }\n return folder\n })\n })\n }\n },\n [folderCollectionSlug, setSubfolders, activeFolderID],\n )\n\n return (\n <Context\n value={{\n addItems,\n breadcrumbs,\n clearSelections,\n currentFolder: breadcrumbs?.[0]?.id\n ? formatFolderOrDocumentItem({\n folderFieldName,\n isUpload: false,\n relationTo: folderCollectionSlug,\n useAsTitle: folderCollectionConfig.admin.useAsTitle,\n value: breadcrumbs[breadcrumbs.length - 1],\n })\n : null,\n documents,\n filterItems,\n focusedRowIndex,\n folderCollectionConfig,\n folderCollectionSlug,\n folderCollectionSlugs,\n folderFieldName,\n folderID: activeFolderID,\n getSelectedItems,\n isDragging,\n lastSelectedIndex,\n moveToFolder,\n onItemClick,\n onItemKeyPress,\n removeItems,\n renameFolder,\n search,\n selectedIndexes,\n setBreadcrumbs,\n setFocusedRowIndex,\n setFolderID: setNewActiveFolderID,\n setIsDragging,\n sortAndUpdateState,\n sortDirection,\n sortOn,\n subfolders,\n visibleCollectionSlugs,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport function useFolder(): FolderContextValue {\n const context = React.use(Context)\n\n if (context === undefined) {\n throw new Error('useFolder must be used within a FolderProvider')\n }\n\n return context\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useRouter","useSearchParams","extractID","formatAdminURL","formatFolderOrDocumentItem","qs","React","toast","useDrawerDepth","parseSearchParams","useConfig","useRouteTransition","useTranslation","getMetaSelection","getShiftSelection","groupItemIDsByRelation","Context","createContext","activeCollectionFolderSlugs","allCollectionFolderSlugs","allowCreateCollectionSlugs","breadcrumbs","clearSelections","currentFolder","documents","focusedRowIndex","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","undefined","FolderResultsComponent","getFolderRoute","getSelectedItems","isDragging","itemKeysToMove","lastSelectedIndex","moveToFolder","Promise","resolve","onItemClick","onItemKeyPress","refineFolderData","search","selectedItemKeys","Set","setBreadcrumbs","setFocusedRowIndex","setIsDragging","sort","subfolders","FolderProvider","activeCollectionSlugs","allowMultiSelection","baseFolderPath","_breadcrumbsFromProps","children","InitialFolderResultsComponent","onItemClickFromProps","parentFolderContext","useFolder","config","routes","serverURL","drawerDepth","t","router","startRouteTransition","setFolderResultsComponent","useState","collections","find","collection","folders","slug","rawSearchParams","searchParams","useMemo","currentQuery","setCurrentQuery","setSelectedItemKeys","setLastSelectedIndex","lastClickTime","useRef","totalCount","length","useCallback","mergeQuery","newQuery","page","mergedQuery","query","updateURL","replace","stringify","addQueryPrefix","toFolderID","adminRoute","admin","path","getItem","itemKey","doc","Array","from","reduce","acc","item","push","navigateAfterSelection","collectionSlug","docID","event","index","code","ctrlKey","metaKey","shiftKey","isShiftPressed","isCtrlPressed","newSelectedIndexes","preventDefault","nextIndex","Math","min","selectFromIndex","selectToIndex","prevIndex","max","size","_","i","currentSelection","toggleIndex","has","add","relationTo","value","doubleClicked","type","now","Date","current","args","itemsToMove","items","movingCurrentFolder","id","req","fetch","api","body","JSON","credentials","headers","method","status","error","ids","Object","entries","depth","limit","where","in","console","useEffect","_jsx","isUpload","useAsTitle","context","use","Error"],"sources":["../../../src/providers/Folders/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, CollectionSlug, FolderSortKeys } from 'payload'\nimport type { FolderBreadcrumb, FolderDocumentItemKey, FolderOrDocument } from 'payload/shared'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { extractID, formatAdminURL, formatFolderOrDocumentItem } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useDrawerDepth } from '../../elements/Drawer/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useConfig } from '../Config/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { getMetaSelection, getShiftSelection, groupItemIDsByRelation } from './selection.js'\n\ntype FolderQueryParams = {\n page?: string\n relationTo?: CollectionSlug[]\n search?: string\n sort?: string\n}\n\nexport type FileCardData = {\n filename: string\n id: number | string\n mimeType: string\n name: string\n url: string\n}\n\nexport type FolderContextValue = {\n /**\n * The collection slugs that a view can be filtered by\n * Used in the browse-by-folder view\n */\n activeCollectionFolderSlugs: CollectionSlug[]\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly allCollectionFolderSlugs?: CollectionSlug[]\n allowCreateCollectionSlugs: CollectionSlug[]\n breadcrumbs?: FolderBreadcrumb[]\n clearSelections: () => void\n currentFolder?: FolderOrDocument | null\n documents?: FolderOrDocument[]\n focusedRowIndex: number\n folderCollectionConfig: ClientCollectionConfig\n folderCollectionSlug: string\n folderFieldName: string\n folderID?: number | string\n FolderResultsComponent: React.ReactNode\n getFolderRoute: (toFolderID?: number | string) => string\n getSelectedItems?: () => FolderOrDocument[]\n isDragging: boolean\n itemKeysToMove?: Set<FolderDocumentItemKey>\n lastSelectedIndex: null | number\n moveToFolder: (args: {\n itemsToMove: FolderOrDocument[]\n toFolderID?: number | string\n }) => Promise<void>\n onItemClick: (args: { event: React.MouseEvent; index: number; item: FolderOrDocument }) => void\n onItemKeyPress: (args: {\n event: React.KeyboardEvent\n index: number\n item: FolderOrDocument\n }) => void\n refineFolderData: (args: { query?: FolderQueryParams; updateURL: boolean }) => void\n search: string\n readonly selectedItemKeys: Set<FolderDocumentItemKey>\n setBreadcrumbs: React.Dispatch<React.SetStateAction<FolderBreadcrumb[]>>\n setFocusedRowIndex: React.Dispatch<React.SetStateAction<number>>\n setIsDragging: React.Dispatch<React.SetStateAction<boolean>>\n sort: FolderSortKeys\n subfolders?: FolderOrDocument[]\n}\n\nconst Context = React.createContext<FolderContextValue>({\n activeCollectionFolderSlugs: [],\n allCollectionFolderSlugs: [],\n allowCreateCollectionSlugs: [],\n breadcrumbs: [],\n clearSelections: () => {},\n currentFolder: null,\n documents: [],\n focusedRowIndex: -1,\n folderCollectionConfig: null,\n folderCollectionSlug: '',\n folderFieldName: 'folder',\n folderID: undefined,\n FolderResultsComponent: null,\n getFolderRoute: () => '',\n getSelectedItems: () => [],\n isDragging: false,\n itemKeysToMove: undefined,\n lastSelectedIndex: null,\n moveToFolder: () => Promise.resolve(undefined),\n onItemClick: () => undefined,\n onItemKeyPress: () => undefined,\n refineFolderData: () => undefined,\n search: '',\n selectedItemKeys: new Set<FolderDocumentItemKey>(),\n setBreadcrumbs: () => {},\n setFocusedRowIndex: () => -1,\n setIsDragging: () => false,\n sort: '_folderOrDocumentTitle',\n subfolders: [],\n})\n\nexport type FolderProviderProps = {\n /**\n * The collection slugs that are being viewed\n */\n readonly activeCollectionFolderSlugs?: CollectionSlug[]\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly allCollectionFolderSlugs: CollectionSlug[]\n /**\n * Array of slugs that can be created in the folder view\n */\n readonly allowCreateCollectionSlugs: CollectionSlug[]\n readonly allowMultiSelection?: boolean\n /**\n * The base folder route path\n *\n * @example\n * `/collections/:collectionSlug/:folderCollectionSlug`\n * or\n * `/browse-by-folder`\n */\n readonly baseFolderPath?: `/${string}`\n /**\n * Breadcrumbs for the current folder\n */\n readonly breadcrumbs?: FolderBreadcrumb[]\n /**\n * Children to render inside the provider\n */\n readonly children: React.ReactNode\n /**\n * All documents in the current folder\n */\n readonly documents: FolderOrDocument[]\n /**\n * The name of the field that contains the folder relation\n */\n readonly folderFieldName: string\n /**\n * The ID of the current folder\n */\n readonly folderID?: number | string\n /**\n * The component to render the folder results\n */\n readonly FolderResultsComponent: React.ReactNode\n /**\n * Optional function to call when an item is clicked\n */\n readonly onItemClick?: (itme: FolderOrDocument) => void\n /**\n * The intial search query\n */\n readonly search?: string\n /**\n * The sort order of the documents\n *\n * @example\n * `name` for descending\n * `-name` for ascending\n */\n readonly sort?: FolderSortKeys\n /**\n * All subfolders in the current folder\n */\n readonly subfolders: FolderOrDocument[]\n}\nexport function FolderProvider({\n activeCollectionFolderSlugs: activeCollectionSlugs,\n allCollectionFolderSlugs = [],\n allowCreateCollectionSlugs,\n allowMultiSelection = true,\n baseFolderPath,\n breadcrumbs: _breadcrumbsFromProps = [],\n children,\n documents,\n folderFieldName,\n folderID,\n FolderResultsComponent: InitialFolderResultsComponent,\n onItemClick: onItemClickFromProps,\n search,\n sort = '_folderOrDocumentTitle',\n subfolders,\n}: FolderProviderProps) {\n const parentFolderContext = useFolder()\n const { config } = useConfig()\n const { routes, serverURL } = config\n const drawerDepth = useDrawerDepth()\n const { t } = useTranslation()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const [FolderResultsComponent, setFolderResultsComponent] = React.useState(\n InitialFolderResultsComponent || (() => null),\n )\n const [folderCollectionConfig] = React.useState(() =>\n config.collections.find(\n (collection) => config.folders && collection.slug === config.folders.slug,\n ),\n )\n const folderCollectionSlug = folderCollectionConfig.slug\n\n const rawSearchParams = useSearchParams()\n const searchParams = React.useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams])\n const [currentQuery, setCurrentQuery] = React.useState<FolderQueryParams>(searchParams)\n\n const [isDragging, setIsDragging] = React.useState(false)\n const [selectedItemKeys, setSelectedItemKeys] = React.useState<Set<FolderDocumentItemKey>>(\n () => new Set(),\n )\n const [focusedRowIndex, setFocusedRowIndex] = React.useState(-1)\n const [lastSelectedIndex, setLastSelectedIndex] = React.useState<null | number>(null)\n const [breadcrumbs, setBreadcrumbs] =\n React.useState<FolderContextValue['breadcrumbs']>(_breadcrumbsFromProps)\n const lastClickTime = React.useRef<null | number>(null)\n const totalCount = subfolders.length + documents.length\n\n const clearSelections = React.useCallback(() => {\n setFocusedRowIndex(-1)\n setSelectedItemKeys(new Set())\n setLastSelectedIndex(undefined)\n }, [])\n\n const mergeQuery = React.useCallback(\n (newQuery: Partial<FolderQueryParams> = {}): Partial<FolderQueryParams> => {\n let page = 'page' in newQuery ? newQuery.page : currentQuery?.page\n\n if ('search' in newQuery) {\n page = '1'\n }\n\n const mergedQuery = {\n ...currentQuery,\n ...newQuery,\n page,\n search: 'search' in newQuery ? newQuery.search : currentQuery?.search,\n sort: 'sort' in newQuery ? newQuery.sort : (currentQuery?.sort ?? undefined),\n }\n\n return mergedQuery\n },\n [currentQuery],\n )\n\n const refineFolderData: FolderContextValue['refineFolderData'] = React.useCallback(\n ({ query, updateURL }) => {\n if (updateURL) {\n const newQuery = mergeQuery(query)\n startRouteTransition(() =>\n router.replace(`${qs.stringify(newQuery, { addQueryPrefix: true })}`),\n )\n\n setCurrentQuery(newQuery)\n }\n },\n [mergeQuery, router, startRouteTransition],\n )\n\n const getFolderRoute: FolderContextValue['getFolderRoute'] = React.useCallback(\n (toFolderID) => {\n const newQuery = mergeQuery({ page: '1', search: '' })\n return formatAdminURL({\n adminRoute: config.routes.admin,\n path: `${baseFolderPath}${toFolderID ? `/${toFolderID}` : ''}${qs.stringify(newQuery, { addQueryPrefix: true })}`,\n serverURL: config.serverURL,\n })\n },\n [baseFolderPath, config.routes.admin, config.serverURL, mergeQuery],\n )\n\n const getItem = React.useCallback(\n (itemKey: FolderDocumentItemKey) => {\n return [...subfolders, ...documents].find((doc) => doc.itemKey === itemKey)\n },\n [documents, subfolders],\n )\n\n const getSelectedItems = React.useCallback(() => {\n return Array.from(selectedItemKeys).reduce((acc, itemKey) => {\n const item = getItem(itemKey)\n if (item) {\n acc.push(item)\n }\n return acc\n }, [])\n }, [selectedItemKeys, getItem])\n\n const navigateAfterSelection = React.useCallback(\n ({ collectionSlug, docID }: { collectionSlug: string; docID?: number | string }) => {\n if (drawerDepth === 1) {\n // not in a drawer (default is 1)\n clearSelections()\n if (collectionSlug === folderCollectionSlug) {\n // clicked on folder, take the user to the folder view\n startRouteTransition(() => router.push(getFolderRoute(docID)))\n } else if (collectionSlug) {\n // clicked on document, take the user to the documet view\n startRouteTransition(() => {\n router.push(\n formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${collectionSlug}/${docID}`,\n }),\n )\n })\n }\n }\n\n if (typeof onItemClickFromProps === 'function') {\n onItemClickFromProps(getItem(`${collectionSlug}-${docID}`))\n }\n },\n [\n clearSelections,\n config.routes.admin,\n drawerDepth,\n folderCollectionSlug,\n getFolderRoute,\n getItem,\n onItemClickFromProps,\n router,\n startRouteTransition,\n ],\n )\n\n const onItemKeyPress: FolderContextValue['onItemKeyPress'] = React.useCallback(\n ({ event, index, item }) => {\n const { code, ctrlKey, metaKey, shiftKey } = event\n const isShiftPressed = shiftKey\n const isCtrlPressed = ctrlKey || metaKey\n let newSelectedIndexes: Set<number> | undefined = undefined\n\n switch (code) {\n case 'ArrowDown': {\n event.preventDefault()\n const nextIndex = Math.min(index + 1, totalCount - 1)\n setFocusedRowIndex(nextIndex)\n\n if (isCtrlPressed) {\n break\n }\n\n if (allowMultiSelection && isShiftPressed) {\n newSelectedIndexes = getShiftSelection({\n selectFromIndex: Math.min(lastSelectedIndex, totalCount),\n selectToIndex: Math.min(nextIndex, totalCount),\n })\n } else {\n setLastSelectedIndex(nextIndex)\n newSelectedIndexes = new Set([nextIndex])\n }\n break\n }\n case 'ArrowUp': {\n event.preventDefault()\n const prevIndex = Math.max(index - 1, 0)\n setFocusedRowIndex(prevIndex)\n\n if (isCtrlPressed) {\n break\n }\n\n if (allowMultiSelection && isShiftPressed) {\n newSelectedIndexes = getShiftSelection({\n selectFromIndex: lastSelectedIndex,\n selectToIndex: prevIndex,\n })\n } else {\n setLastSelectedIndex(prevIndex)\n newSelectedIndexes = new Set([prevIndex])\n }\n break\n }\n case 'Enter': {\n if (selectedItemKeys.size === 1) {\n newSelectedIndexes = new Set([])\n setFocusedRowIndex(undefined)\n }\n break\n }\n case 'Escape': {\n setFocusedRowIndex(undefined)\n newSelectedIndexes = new Set([])\n break\n }\n case 'KeyA': {\n if (allowMultiSelection && isCtrlPressed) {\n event.preventDefault()\n setFocusedRowIndex(totalCount - 1)\n newSelectedIndexes = new Set(Array.from({ length: totalCount }, (_, i) => i))\n }\n break\n }\n case 'Space': {\n if (allowMultiSelection && isShiftPressed) {\n event.preventDefault()\n newSelectedIndexes = getMetaSelection({\n currentSelection: newSelectedIndexes,\n toggleIndex: index,\n })\n setLastSelectedIndex(index)\n } else {\n event.preventDefault()\n newSelectedIndexes = new Set([index])\n setLastSelectedIndex(index)\n }\n break\n }\n case 'Tab': {\n if (allowMultiSelection && isShiftPressed) {\n const prevIndex = index - 1\n if (prevIndex < 0 && newSelectedIndexes?.size > 0) {\n setFocusedRowIndex(prevIndex)\n }\n } else {\n const nextIndex = index + 1\n if (nextIndex === totalCount && selectedItemKeys.size > 0) {\n setFocusedRowIndex(totalCount - 1)\n }\n }\n break\n }\n }\n\n if (!newSelectedIndexes) {\n return\n }\n\n setSelectedItemKeys(\n [...subfolders, ...documents].reduce((acc, item, index) => {\n if (newSelectedIndexes?.size && newSelectedIndexes.has(index)) {\n acc.add(item.itemKey)\n }\n return acc\n }, new Set<FolderDocumentItemKey>()),\n )\n\n if (selectedItemKeys.size === 1 && code === 'Enter') {\n navigateAfterSelection({\n collectionSlug: item.relationTo,\n docID: extractID(item.value),\n })\n }\n },\n [\n allowMultiSelection,\n documents,\n lastSelectedIndex,\n navigateAfterSelection,\n subfolders,\n totalCount,\n selectedItemKeys,\n ],\n )\n\n const onItemClick: FolderContextValue['onItemClick'] = React.useCallback(\n ({ event, index, item }) => {\n let doubleClicked: boolean = false\n const isCtrlPressed = event.ctrlKey || event.metaKey\n const isShiftPressed = event.shiftKey\n let newSelectedIndexes: Set<number> | undefined = undefined\n\n if (allowMultiSelection && isCtrlPressed) {\n newSelectedIndexes = getMetaSelection({\n currentSelection: newSelectedIndexes,\n toggleIndex: index,\n })\n } else if (allowMultiSelection && isShiftPressed && lastSelectedIndex !== undefined) {\n newSelectedIndexes = getShiftSelection({\n selectFromIndex: lastSelectedIndex,\n selectToIndex: index,\n })\n } else if (allowMultiSelection && event.type === 'pointermove') {\n // on drag start of an unselected item\n if (!selectedItemKeys.has(item.itemKey)) {\n newSelectedIndexes = new Set([index])\n }\n setLastSelectedIndex(index)\n } else {\n // Normal click - select single item\n newSelectedIndexes = new Set([index])\n const now = Date.now()\n doubleClicked = now - lastClickTime.current < 400 && lastSelectedIndex === index\n lastClickTime.current = now\n setLastSelectedIndex(index)\n }\n\n if (!newSelectedIndexes) {\n setFocusedRowIndex(undefined)\n } else {\n setFocusedRowIndex(index)\n }\n\n if (newSelectedIndexes) {\n setSelectedItemKeys(\n [...subfolders, ...documents].reduce((acc, item, index) => {\n if (newSelectedIndexes.size && newSelectedIndexes.has(index)) {\n acc.add(item.itemKey)\n }\n return acc\n }, new Set<FolderDocumentItemKey>()),\n )\n }\n\n if (doubleClicked) {\n navigateAfterSelection({\n collectionSlug: item.relationTo,\n docID: extractID(item.value),\n })\n }\n },\n [\n selectedItemKeys,\n allowMultiSelection,\n lastSelectedIndex,\n subfolders,\n documents,\n navigateAfterSelection,\n ],\n )\n\n /**\n * Makes requests to the server to update the folder field on passed in documents\n *\n * Might rewrite this in the future to return the promises so errors can be handled contextually\n */\n const moveToFolder: FolderContextValue['moveToFolder'] = React.useCallback(\n async (args) => {\n const { itemsToMove: items, toFolderID } = args\n if (!items.length) {\n return\n }\n\n const movingCurrentFolder =\n items.length === 1 &&\n items[0].relationTo === folderCollectionSlug &&\n items[0].value.id === folderID\n\n if (movingCurrentFolder) {\n const req = await fetch(\n `${serverURL}${routes.api}/${folderCollectionSlug}/${folderID}?depth=0`,\n {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n },\n )\n if (req.status !== 200) {\n toast.error(t('general:error'))\n }\n } else {\n for (const [collectionSlug, ids] of Object.entries(groupItemIDsByRelation(items))) {\n const query = qs.stringify(\n {\n depth: 0,\n limit: 0,\n where: {\n id: {\n in: ids,\n },\n },\n },\n {\n addQueryPrefix: true,\n },\n )\n try {\n await fetch(`${serverURL}${routes.api}/${collectionSlug}${query}`, {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n })\n } catch (error) {\n toast.error(t('general:error'))\n // eslint-disable-next-line no-console\n console.error(error)\n continue\n }\n }\n }\n\n clearSelections()\n },\n [folderID, clearSelections, folderCollectionSlug, folderFieldName, routes.api, serverURL, t],\n )\n\n // If a new component is provided, update the state so children can re-render with the new component\n React.useEffect(() => {\n if (InitialFolderResultsComponent) {\n setFolderResultsComponent(InitialFolderResultsComponent)\n }\n }, [InitialFolderResultsComponent])\n\n return (\n <Context\n value={{\n activeCollectionFolderSlugs: activeCollectionSlugs || allCollectionFolderSlugs,\n allCollectionFolderSlugs,\n allowCreateCollectionSlugs,\n breadcrumbs,\n clearSelections,\n currentFolder: breadcrumbs?.[0]?.id\n ? formatFolderOrDocumentItem({\n folderFieldName,\n isUpload: false,\n relationTo: folderCollectionSlug,\n useAsTitle: folderCollectionConfig.admin.useAsTitle,\n value: breadcrumbs[breadcrumbs.length - 1],\n })\n : null,\n documents,\n focusedRowIndex,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n getFolderRoute,\n getSelectedItems,\n isDragging,\n itemKeysToMove: parentFolderContext.selectedItemKeys,\n lastSelectedIndex,\n moveToFolder,\n onItemClick,\n onItemKeyPress,\n refineFolderData,\n search,\n selectedItemKeys,\n setBreadcrumbs,\n setFocusedRowIndex,\n setIsDragging,\n sort,\n subfolders,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport function useFolder(): FolderContextValue {\n const context = React.use(Context)\n\n if (context === undefined) {\n throw new Error('useFolder must be used within a FolderProvider')\n }\n\n return context\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,9 @@
1
- import type { BuildFormStateArgs, BuildTableStateArgs, Data, DocumentSlots, ErrorResult, Locale, ServerFunctionClient } from 'payload';
1
+ import type { AdminViewServerPropsOnly, BuildFormStateArgs, BuildTableStateArgs, Data, DocumentPreferences, DocumentSlots, FormState, GetFolderResultsComponentAndDataArgs, Locale, Params, RenderDocumentVersionsProperties, ServerFunction, ServerFunctionClient } from 'payload';
2
2
  import React from 'react';
3
3
  import type { buildFormStateHandler } from '../../utilities/buildFormState.js';
4
4
  import type { buildTableStateHandler } from '../../utilities/buildTableState.js';
5
5
  import type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js';
6
+ import type { getFolderResultsComponentAndDataHandler } from '../../utilities/getFolderResultsComponentAndData.js';
6
7
  import type { schedulePublishHandler, SchedulePublishHandlerArgs } from '../../utilities/schedulePublishHandler.js';
7
8
  type GetFormStateClient = (args: {
8
9
  signal?: AbortSignal;
@@ -13,25 +14,34 @@ type SchedulePublishClient = (args: {
13
14
  type GetTableStateClient = (args: {
14
15
  signal?: AbortSignal;
15
16
  } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>) => ReturnType<typeof buildTableStateHandler>;
16
- type RenderDocument = (args: {
17
+ export type RenderDocumentResult = {
18
+ data: any;
19
+ Document: React.ReactNode;
20
+ preferences: DocumentPreferences;
21
+ };
22
+ type RenderDocumentBaseArgs = {
17
23
  collectionSlug: string;
18
24
  disableActions?: boolean;
19
- docID?: number | string;
25
+ docID: number | string;
20
26
  drawerSlug?: string;
21
27
  initialData?: Data;
28
+ initialState?: FormState;
22
29
  locale?: Locale;
23
30
  overrideEntityVisibility?: boolean;
31
+ paramsOverride?: AdminViewServerPropsOnly['params'];
24
32
  redirectAfterCreate?: boolean;
25
- redirectAfterDelete?: boolean;
26
- redirectAfterDuplicate?: boolean;
33
+ redirectAfterDelete: boolean;
34
+ redirectAfterDuplicate: boolean;
35
+ searchParams?: Params;
36
+ /**
37
+ * Properties specific to the versions view
38
+ */
39
+ versions?: RenderDocumentVersionsProperties;
40
+ };
41
+ export type RenderDocumentServerFunction = ServerFunction<RenderDocumentBaseArgs, Promise<RenderDocumentResult>>;
42
+ type RenderDocumentServerFunctionHookFn = (args: {
27
43
  signal?: AbortSignal;
28
- }) => Promise<{
29
- data: Data;
30
- Document: React.ReactNode;
31
- } | ({
32
- data: never;
33
- Document: never;
34
- } & ErrorResult)>;
44
+ } & RenderDocumentBaseArgs) => Promise<RenderDocumentResult>;
35
45
  type CopyDataFromLocaleClient = (args: {
36
46
  signal?: AbortSignal;
37
47
  } & Omit<CopyDataFromLocaleArgs, 'req'>) => Promise<{
@@ -41,12 +51,16 @@ type GetDocumentSlots = (args: {
41
51
  collectionSlug: string;
42
52
  signal?: AbortSignal;
43
53
  }) => Promise<DocumentSlots>;
54
+ type GetFolderResultsComponentAndDataClient = (args: {
55
+ signal?: AbortSignal;
56
+ } & Omit<GetFolderResultsComponentAndDataArgs, 'req'>) => ReturnType<typeof getFolderResultsComponentAndDataHandler>;
44
57
  type ServerFunctionsContextType = {
45
58
  copyDataFromLocale: CopyDataFromLocaleClient;
46
59
  getDocumentSlots: GetDocumentSlots;
60
+ getFolderResultsComponentAndData: GetFolderResultsComponentAndDataClient;
47
61
  getFormState: GetFormStateClient;
48
62
  getTableState: GetTableStateClient;
49
- renderDocument: RenderDocument;
63
+ renderDocument: RenderDocumentServerFunctionHookFn;
50
64
  schedulePublish: SchedulePublishClient;
51
65
  serverFunction: ServerFunctionClient;
52
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ServerFunctions/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ServerFunctions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,IAAI,EACJ,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,oCAAoC,EACpC,MAAM,EACN,MAAM,EACN,gCAAgC,EAChC,cAAc,EACd,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAqC,MAAM,OAAO,CAAA;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AACnF,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,qDAAqD,CAAA;AAClH,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,2CAA2C,CAAA;AAElD,KAAK,kBAAkB,GAAG,CACxB,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,KAAK,CAAC,KACjD,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE7C,KAAK,qBAAqB,GAAG,CAC3B,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,0BAA0B,EAAE,cAAc,GAAG,KAAK,CAAC,KACzD,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE9C,KAAK,mBAAmB,GAAG,CACzB,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,KAAK,CAAC,KAClD,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE9C,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,EAAE,mBAAmB,CAAA;CACjC,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,cAAc,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAA;IACnD,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,gCAAgC,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,cAAc,CACvD,sBAAsB,EACtB,OAAO,CAAC,oBAAoB,CAAC,CAC9B,CAAA;AAED,KAAK,kCAAkC,GAAG,CAExC,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,sBAAsB,KACvB,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAElC,KAAK,wBAAwB,GAAG,CAC9B,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,KACpC,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAA;AAE5B,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;AAE5B,KAAK,sCAAsC,GAAG,CAC5C,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,oCAAoC,EAAE,KAAK,CAAC,KAClD,UAAU,CAAC,OAAO,uCAAuC,CAAC,CAAA;AAE/D,KAAK,0BAA0B,GAAG;IAChC,kBAAkB,EAAE,wBAAwB,CAAA;IAC5C,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,gCAAgC,EAAE,sCAAsC,CAAA;IACxE,YAAY,EAAE,kBAAkB,CAAA;IAChC,aAAa,EAAE,mBAAmB,CAAA;IAClC,cAAc,EAAE,kCAAkC,CAAA;IAClD,eAAe,EAAE,qBAAqB,CAAA;IACtC,cAAc,EAAE,oBAAoB,CAAA;CACrC,CAAA;AAED,eAAO,MAAM,sBAAsB,2CAElC,CAAA;AAED,eAAO,MAAM,kBAAkB,kCAM9B,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC7C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,cAAc,EAAE,oBAAoB,CAAA;CACrC,CAwKA,CAAA"}
@@ -46,7 +46,7 @@ export const ServerFunctionsProvider = ({
46
46
  error += ` for document with ID ${rest.doc.value} in collection ${rest.doc.relationTo}`;
47
47
  }
48
48
  return {
49
- error: ''
49
+ error
50
50
  };
51
51
  }, [serverFunction]);
52
52
  const getFormState = useCallback(async args => {
@@ -139,10 +139,29 @@ export const ServerFunctionsProvider = ({
139
139
  ;
140
140
  }
141
141
  }, [serverFunction]);
142
+ const getFolderResultsComponentAndData = useCallback(async args => {
143
+ const {
144
+ signal: remoteSignal,
145
+ ...rest
146
+ } = args || {};
147
+ try {
148
+ const result = await serverFunction({
149
+ name: 'get-folder-results-component-and-data',
150
+ args: rest
151
+ });
152
+ if (!remoteSignal?.aborted) {
153
+ return result;
154
+ }
155
+ } catch (_err) {
156
+ console.error(_err) // eslint-disable-line no-console
157
+ ;
158
+ }
159
+ }, [serverFunction]);
142
160
  return /*#__PURE__*/_jsx(ServerFunctionsContext, {
143
161
  value: {
144
162
  copyDataFromLocale,
145
163
  getDocumentSlots,
164
+ getFolderResultsComponentAndData,
146
165
  getFormState,
147
166
  getTableState,
148
167
  renderDocument,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","createContext","useCallback","ServerFunctionsContext","undefined","useServerFunctions","context","use","Error","ServerFunctionsProvider","children","serverFunction","getDocumentSlots","args","name","schedulePublish","signal","remoteSignal","rest","aborted","result","_err","console","error","type","doc","value","relationTo","getFormState","fallbackLocale","state","getTableState","renderDocument","copyDataFromLocale","_jsx"],"sources":["../../../src/providers/ServerFunctions/index.tsx"],"sourcesContent":["import type {\n BuildFormStateArgs,\n BuildTableStateArgs,\n Data,\n DocumentSlots,\n ErrorResult,\n Locale,\n ServerFunctionClient,\n} from 'payload'\n\nimport React, { createContext, useCallback } from 'react'\n\nimport type { buildFormStateHandler } from '../../utilities/buildFormState.js'\nimport type { buildTableStateHandler } from '../../utilities/buildTableState.js'\nimport type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js'\nimport type {\n schedulePublishHandler,\n SchedulePublishHandlerArgs,\n} from '../../utilities/schedulePublishHandler.js'\n\ntype GetFormStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildFormStateHandler>\n\ntype SchedulePublishClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SchedulePublishHandlerArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof schedulePublishHandler>\n\ntype GetTableStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildTableStateHandler>\n\ntype RenderDocument = (args: {\n collectionSlug: string\n disableActions?: boolean\n docID?: number | string\n drawerSlug?: string\n initialData?: Data\n locale?: Locale\n overrideEntityVisibility?: boolean\n redirectAfterCreate?: boolean\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n signal?: AbortSignal\n}) => Promise<\n { data: Data; Document: React.ReactNode } | ({ data: never; Document: never } & ErrorResult)\n>\n\ntype CopyDataFromLocaleClient = (\n args: {\n signal?: AbortSignal\n } & Omit<CopyDataFromLocaleArgs, 'req'>,\n) => Promise<{ data: Data }>\n\ntype GetDocumentSlots = (args: {\n collectionSlug: string\n signal?: AbortSignal\n}) => Promise<DocumentSlots>\n\ntype ServerFunctionsContextType = {\n copyDataFromLocale: CopyDataFromLocaleClient\n getDocumentSlots: GetDocumentSlots\n getFormState: GetFormStateClient\n getTableState: GetTableStateClient\n renderDocument: RenderDocument\n schedulePublish: SchedulePublishClient\n serverFunction: ServerFunctionClient\n}\n\nexport const ServerFunctionsContext = createContext<ServerFunctionsContextType | undefined>(\n undefined,\n)\n\nexport const useServerFunctions = () => {\n const context = React.use(ServerFunctionsContext)\n if (context === undefined) {\n throw new Error('useServerFunctions must be used within a ServerFunctionsProvider')\n }\n return context\n}\n\nexport const ServerFunctionsProvider: React.FC<{\n children: React.ReactNode\n serverFunction: ServerFunctionClient\n}> = ({ children, serverFunction }) => {\n if (!serverFunction) {\n throw new Error('ServerFunctionsProvider requires a serverFunction prop')\n }\n\n const getDocumentSlots = useCallback<GetDocumentSlots>(\n async (args) =>\n await serverFunction({\n name: 'render-document-slots',\n args,\n }),\n [serverFunction],\n )\n\n const schedulePublish = useCallback<SchedulePublishClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'schedule-publish',\n args: { ...rest },\n })) as Awaited<ReturnType<typeof schedulePublishHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n let error = `Error scheduling ${rest.type}`\n\n if (rest.doc) {\n error += ` for document with ID ${rest.doc.value} in collection ${rest.doc.relationTo}`\n }\n\n return { error: '' }\n },\n [serverFunction],\n )\n\n const getFormState = useCallback<GetFormStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'form-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildFormStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n return { state: null }\n },\n [serverFunction],\n )\n\n const getTableState = useCallback<GetTableStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'table-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildTableStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n // return { state: args.formState }\n },\n [serverFunction],\n )\n\n const renderDocument = useCallback<RenderDocument>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'render-document',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof renderDocument>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const copyDataFromLocale = useCallback<CopyDataFromLocaleClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'copy-data-from-locale',\n args: rest,\n })) as { data: Data }\n\n if (!remoteSignal?.aborted) {\n return result\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n return (\n <ServerFunctionsContext\n value={{\n copyDataFromLocale,\n getDocumentSlots,\n getFormState,\n getTableState,\n renderDocument,\n schedulePublish,\n serverFunction,\n }}\n >\n {children}\n </ServerFunctionsContext>\n )\n}\n"],"mappings":";AAUA,OAAOA,KAAA,IAASC,aAAa,EAAEC,WAAW,QAAQ;AAiElD,OAAO,MAAMC,sBAAA,gBAAyBF,aAAA,CACpCG,SAAA;AAGF,OAAO,MAAMC,kBAAA,GAAqBA,CAAA;EAChC,MAAMC,OAAA,GAAUN,KAAA,CAAMO,GAAG,CAACJ,sBAAA;EAC1B,IAAIG,OAAA,KAAYF,SAAA,EAAW;IACzB,MAAM,IAAII,KAAA,CAAM;EAClB;EACA,OAAOF,OAAA;AACT;AAEA,OAAO,MAAMG,uBAAA,GAGRA,CAAC;EAAEC,QAAQ;EAAEC;AAAc,CAAE;EAChC,IAAI,CAACA,cAAA,EAAgB;IACnB,MAAM,IAAIH,KAAA,CAAM;EAClB;EAEA,MAAMI,gBAAA,GAAmBV,WAAA,CACvB,MAAOW,IAAA,IACL,MAAMF,cAAA,CAAe;IACnBG,IAAA,EAAM;IACND;EACF,IACF,CAACF,cAAA,CAAe;EAGlB,MAAMI,eAAA,GAAkBb,WAAA,CACtB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA;IAE1C,IAAI;MACF,IAAI,CAACI,YAAA,EAAcE,OAAA,EAAS;QAC1B,MAAMC,MAAA,GAAU,MAAMT,cAAA,CAAe;UACnCG,IAAA,EAAM;UACND,IAAA,EAAM;YAAE,GAAGK;UAAK;QAClB;QAA0D;QAE1D,IAAI,CAACD,YAAA,EAAcE,OAAA,EAAS;UAC1B,OAAOC,MAAA;QACT;MACF;IACF,EAAE,OAAOC,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;IAEA,IAAIE,KAAA,GAAQ,oBAAoBL,IAAA,CAAKM,IAAI,EAAE;IAE3C,IAAIN,IAAA,CAAKO,GAAG,EAAE;MACZF,KAAA,IAAS,yBAAyBL,IAAA,CAAKO,GAAG,CAACC,KAAK,kBAAkBR,IAAA,CAAKO,GAAG,CAACE,UAAU,EAAE;IACzF;IAEA,OAAO;MAAEJ,KAAA,EAAO;IAAG;EACrB,GACA,CAACZ,cAAA,CAAe;EAGlB,MAAMiB,YAAA,GAAe1B,WAAA,CACnB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,IAAI,CAACI,YAAA,EAAcE,OAAA,EAAS;QAC1B,MAAMC,MAAA,GAAU,MAAMT,cAAA,CAAe;UACnCG,IAAA,EAAM;UACND,IAAA,EAAM;YAAEgB,cAAA,EAAgB;YAAO,GAAGX;UAAK;QACzC;QAAyD;QAEzD,IAAI,CAACD,YAAA,EAAcE,OAAA,EAAS;UAC1B,OAAOC,MAAA;QACT;MACF;IACF,EAAE,OAAOC,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;IAEA,OAAO;MAAES,KAAA,EAAO;IAAK;EACvB,GACA,CAACnB,cAAA,CAAe;EAGlB,MAAMoB,aAAA,GAAgB7B,WAAA,CACpB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,IAAI,CAACI,YAAA,EAAcE,OAAA,EAAS;QAC1B,MAAMC,MAAA,GAAU,MAAMT,cAAA,CAAe;UACnCG,IAAA,EAAM;UACND,IAAA,EAAM;YAAEgB,cAAA,EAAgB;YAAO,GAAGX;UAAK;QACzC;QAA0D;QAE1D,IAAI,CAACD,YAAA,EAAcE,OAAA,EAAS;UAC1B,OAAOC,MAAA;QACT;MACF;IACF,EAAE,OAAOC,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;IAEA;EACF,GACA,CAACV,cAAA,CAAe;EAGlB,MAAMqB,cAAA,GAAiB9B,WAAA,CACrB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,MAAMO,MAAA,GAAU,MAAMT,cAAA,CAAe;QACnCG,IAAA,EAAM;QACND,IAAA,EAAM;UAAEgB,cAAA,EAAgB;UAAO,GAAGX;QAAK;MACzC;MAAkD;MAElD,OAAOE,MAAA;IACT,EAAE,OAAOC,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;EACF,GACA,CAACV,cAAA,CAAe;EAGlB,MAAMsB,kBAAA,GAAqB/B,WAAA,CACzB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,MAAMO,MAAA,GAAU,MAAMT,cAAA,CAAe;QACnCG,IAAA,EAAM;QACND,IAAA,EAAMK;MACR;MAEA,IAAI,CAACD,YAAA,EAAcE,OAAA,EAAS;QAC1B,OAAOC,MAAA;MACT;IACF,EAAE,OAAOC,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;EACF,GACA,CAACV,cAAA,CAAe;EAGlB,oBACEuB,IAAA,CAAC/B,sBAAA;IACCuB,KAAA,EAAO;MACLO,kBAAA;MACArB,gBAAA;MACAgB,YAAA;MACAG,aAAA;MACAC,cAAA;MACAjB,eAAA;MACAJ;IACF;cAECD;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","createContext","useCallback","ServerFunctionsContext","undefined","useServerFunctions","context","use","Error","ServerFunctionsProvider","children","serverFunction","getDocumentSlots","args","name","schedulePublish","signal","remoteSignal","rest","aborted","result","_err","console","error","type","doc","value","relationTo","getFormState","fallbackLocale","state","getTableState","renderDocument","copyDataFromLocale","getFolderResultsComponentAndData","_jsx"],"sources":["../../../src/providers/ServerFunctions/index.tsx"],"sourcesContent":["import type {\n AdminViewServerPropsOnly,\n BuildFormStateArgs,\n BuildTableStateArgs,\n Data,\n DocumentPreferences,\n DocumentSlots,\n FormState,\n GetFolderResultsComponentAndDataArgs,\n Locale,\n Params,\n RenderDocumentVersionsProperties,\n ServerFunction,\n ServerFunctionClient,\n} from 'payload'\n\nimport React, { createContext, useCallback } from 'react'\n\nimport type { buildFormStateHandler } from '../../utilities/buildFormState.js'\nimport type { buildTableStateHandler } from '../../utilities/buildTableState.js'\nimport type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js'\nimport type { getFolderResultsComponentAndDataHandler } from '../../utilities/getFolderResultsComponentAndData.js'\nimport type {\n schedulePublishHandler,\n SchedulePublishHandlerArgs,\n} from '../../utilities/schedulePublishHandler.js'\n\ntype GetFormStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildFormStateHandler>\n\ntype SchedulePublishClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SchedulePublishHandlerArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof schedulePublishHandler>\n\ntype GetTableStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildTableStateHandler>\n\nexport type RenderDocumentResult = {\n data: any\n Document: React.ReactNode\n preferences: DocumentPreferences\n}\n\ntype RenderDocumentBaseArgs = {\n collectionSlug: string\n disableActions?: boolean\n docID: number | string\n drawerSlug?: string\n initialData?: Data\n initialState?: FormState\n locale?: Locale\n overrideEntityVisibility?: boolean\n paramsOverride?: AdminViewServerPropsOnly['params']\n redirectAfterCreate?: boolean\n redirectAfterDelete: boolean\n redirectAfterDuplicate: boolean\n searchParams?: Params\n /**\n * Properties specific to the versions view\n */\n versions?: RenderDocumentVersionsProperties\n}\n\nexport type RenderDocumentServerFunction = ServerFunction<\n RenderDocumentBaseArgs,\n Promise<RenderDocumentResult>\n>\n\ntype RenderDocumentServerFunctionHookFn = (\n // No req or importMap - those are augmented by handleServerFunctions\n args: {\n signal?: AbortSignal\n } & RenderDocumentBaseArgs,\n) => Promise<RenderDocumentResult>\n\ntype CopyDataFromLocaleClient = (\n args: {\n signal?: AbortSignal\n } & Omit<CopyDataFromLocaleArgs, 'req'>,\n) => Promise<{ data: Data }>\n\ntype GetDocumentSlots = (args: {\n collectionSlug: string\n signal?: AbortSignal\n}) => Promise<DocumentSlots>\n\ntype GetFolderResultsComponentAndDataClient = (\n args: {\n signal?: AbortSignal\n } & Omit<GetFolderResultsComponentAndDataArgs, 'req'>,\n) => ReturnType<typeof getFolderResultsComponentAndDataHandler>\n\ntype ServerFunctionsContextType = {\n copyDataFromLocale: CopyDataFromLocaleClient\n getDocumentSlots: GetDocumentSlots\n getFolderResultsComponentAndData: GetFolderResultsComponentAndDataClient\n getFormState: GetFormStateClient\n getTableState: GetTableStateClient\n renderDocument: RenderDocumentServerFunctionHookFn\n schedulePublish: SchedulePublishClient\n serverFunction: ServerFunctionClient\n}\n\nexport const ServerFunctionsContext = createContext<ServerFunctionsContextType | undefined>(\n undefined,\n)\n\nexport const useServerFunctions = () => {\n const context = React.use(ServerFunctionsContext)\n if (context === undefined) {\n throw new Error('useServerFunctions must be used within a ServerFunctionsProvider')\n }\n return context\n}\n\nexport const ServerFunctionsProvider: React.FC<{\n children: React.ReactNode\n serverFunction: ServerFunctionClient\n}> = ({ children, serverFunction }) => {\n if (!serverFunction) {\n throw new Error('ServerFunctionsProvider requires a serverFunction prop')\n }\n\n const getDocumentSlots = useCallback<GetDocumentSlots>(\n async (args) =>\n await serverFunction({\n name: 'render-document-slots',\n args,\n }),\n [serverFunction],\n )\n\n const schedulePublish = useCallback<SchedulePublishClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'schedule-publish',\n args: { ...rest },\n })) as Awaited<ReturnType<typeof schedulePublishHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n let error = `Error scheduling ${rest.type}`\n\n if (rest.doc) {\n error += ` for document with ID ${rest.doc.value} in collection ${rest.doc.relationTo}`\n }\n\n return { error }\n },\n [serverFunction],\n )\n\n const getFormState = useCallback<GetFormStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'form-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildFormStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n return { state: null }\n },\n [serverFunction],\n )\n\n const getTableState = useCallback<GetTableStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'table-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildTableStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n // return { state: args.formState }\n },\n [serverFunction],\n )\n\n const renderDocument = useCallback<RenderDocumentServerFunctionHookFn>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n try {\n const result = (await serverFunction({\n name: 'render-document',\n args: {\n fallbackLocale: false,\n ...rest,\n } as Parameters<RenderDocumentServerFunctionHookFn>[0],\n })) as Awaited<ReturnType<RenderDocumentServerFunctionHookFn>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const copyDataFromLocale = useCallback<CopyDataFromLocaleClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'copy-data-from-locale',\n args: rest,\n })) as { data: Data }\n\n if (!remoteSignal?.aborted) {\n return result\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const getFolderResultsComponentAndData = useCallback<GetFolderResultsComponentAndDataClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'get-folder-results-component-and-data',\n args: rest,\n })) as Awaited<ReturnType<typeof getFolderResultsComponentAndDataHandler>>\n\n if (!remoteSignal?.aborted) {\n return result\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n return (\n <ServerFunctionsContext\n value={{\n copyDataFromLocale,\n getDocumentSlots,\n getFolderResultsComponentAndData,\n getFormState,\n getTableState,\n renderDocument,\n schedulePublish,\n serverFunction,\n }}\n >\n {children}\n </ServerFunctionsContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"renderCell.d.ts","sourceRoot":"","sources":["../../../../src/providers/TableColumns/buildColumnState/renderCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EAEzB,QAAQ,EACR,KAAK,EACL,OAAO,EACR,MAAM,SAAS,CAAA;AAchB,KAAK,cAAc,GAAG;IACpB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IACtE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAA;IACtB,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAA;CAC5B,CAAA;AACD,wBAAgB,UAAU,CAAC,EACzB,WAAW,EACX,cAAc,EACd,WAAW,EACX,eAAe,EACf,GAAG,EACH,mBAAmB,EACnB,IAAI,EACJ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,WAAW,GACZ,EAAE,cAAc,+BA+GhB"}
1
+ {"version":3,"file":"renderCell.d.ts","sourceRoot":"","sources":["../../../../src/providers/TableColumns/buildColumnState/renderCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EAEzB,QAAQ,EACR,KAAK,EACL,OAAO,EACR,MAAM,SAAS,CAAA;AAchB,KAAK,cAAc,GAAG;IACpB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IACtE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAA;IACtB,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAA;CAC5B,CAAA;AACD,wBAAgB,UAAU,CAAC,EACzB,WAAW,EACX,cAAc,EACd,WAAW,EACX,eAAe,EACf,GAAG,EACH,mBAAmB,EACnB,IAAI,EACJ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,WAAW,GACZ,EAAE,cAAc,+BA8GhB"}
@@ -26,10 +26,9 @@ export function renderCell({
26
26
  rowData: undefined
27
27
  };
28
28
  const accessor = ('accessor' in clientField ? clientField.accessor : undefined) ?? ('name' in clientField ? clientField.name : undefined);
29
- const dotAccessor = accessor?.replace(/-/g, '.');
30
29
  const cellClientProps = {
31
30
  ...baseCellClientProps,
32
- cellData: 'name' in clientField ? findValueFromPath(doc, dotAccessor) : undefined,
31
+ cellData: 'name' in clientField ? findValueFromPath(doc, accessor) : undefined,
33
32
  link: isLinkedColumn,
34
33
  rowData: doc
35
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"renderCell.js","names":["MissingEditorProp","RenderCustomComponent","RenderServerComponent","DefaultCell","RenderDefaultCell","hasOptionLabelJSXElement","findValueFromPath","renderCell","clientField","collectionSlug","columnIndex","customCellProps","doc","enableRowSelections","i18n","isLinkedColumn","payload","rowIndex","serverField","baseCellClientProps","cellData","undefined","field","rowData","accessor","name","dotAccessor","replace","cellClientProps","link","cellServerProps","className","collectionConfig","collections","config","onClick","CustomCell","type","editor","Error","admin","components","clientProps","Component","CellComponent","importMap","serverProps","CustomCellComponent","Cell","_jsx","CustomComponent","Fallback"],"sources":["../../../../src/providers/TableColumns/buildColumnState/renderCell.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientField,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Document,\n Field,\n Payload,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\n\nimport { RenderCustomComponent } from '../../../elements/RenderCustomComponent/index.js'\nimport { RenderServerComponent } from '../../../elements/RenderServerComponent/index.js'\nimport {\n DefaultCell,\n RenderDefaultCell,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../../../exports/client/index.js'\nimport { hasOptionLabelJSXElement } from '../../../utilities/hasOptionLabelJSXElement.js'\nimport { findValueFromPath } from './findValueFromPath.js'\n\ntype RenderCellArgs = {\n readonly clientField: ClientField\n readonly collectionSlug: string\n readonly columnIndex: number\n readonly customCellProps: DefaultCellComponentProps['customCellProps']\n readonly doc: Document\n readonly enableRowSelections: boolean\n readonly i18n: I18nClient\n readonly isLinkedColumn: boolean\n readonly payload: Payload\n readonly rowIndex: number\n readonly serverField: Field\n}\nexport function renderCell({\n clientField,\n collectionSlug,\n columnIndex,\n customCellProps,\n doc,\n enableRowSelections,\n i18n,\n isLinkedColumn,\n payload,\n rowIndex,\n serverField,\n}: RenderCellArgs) {\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionSlug,\n customCellProps,\n field: clientField,\n rowData: undefined,\n }\n\n const accessor: string | undefined =\n ('accessor' in clientField ? (clientField.accessor as string) : undefined) ??\n ('name' in clientField ? clientField.name : undefined)\n const dotAccessor = accessor?.replace(/-/g, '.')\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in clientField ? findValueFromPath(doc, dotAccessor) : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n const cellServerProps: DefaultServerCellComponentProps = {\n cellData: cellClientProps.cellData,\n className: baseCellClientProps.className,\n collectionConfig: payload.collections[collectionSlug].config,\n collectionSlug,\n columnIndex,\n customCellProps: baseCellClientProps.customCellProps,\n field: serverField,\n i18n,\n link: cellClientProps.link,\n onClick: baseCellClientProps.onClick,\n payload,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (serverField?.type === 'richText') {\n if (!serverField?.editor) {\n throw new MissingEditorProp(serverField) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof serverField?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!serverField.admin) {\n serverField.admin = {}\n }\n\n if (!serverField.admin.components) {\n serverField.admin.components = {}\n }\n\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: serverField.editor.CellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n const CustomCellComponent = serverField?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else if (\n cellClientProps.cellData &&\n cellClientProps.field &&\n hasOptionLabelJSXElement(cellClientProps)\n ) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: DefaultCell,\n importMap: payload.importMap,\n })\n } else {\n const CustomCellComponent = serverField?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n CustomCell = undefined\n }\n }\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={columnIndex}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${rowIndex}-${columnIndex}`}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"renderCell.js","names":["MissingEditorProp","RenderCustomComponent","RenderServerComponent","DefaultCell","RenderDefaultCell","hasOptionLabelJSXElement","findValueFromPath","renderCell","clientField","collectionSlug","columnIndex","customCellProps","doc","enableRowSelections","i18n","isLinkedColumn","payload","rowIndex","serverField","baseCellClientProps","cellData","undefined","field","rowData","accessor","name","cellClientProps","link","cellServerProps","className","collectionConfig","collections","config","onClick","CustomCell","type","editor","Error","admin","components","clientProps","Component","CellComponent","importMap","serverProps","CustomCellComponent","Cell","_jsx","CustomComponent","Fallback"],"sources":["../../../../src/providers/TableColumns/buildColumnState/renderCell.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientField,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Document,\n Field,\n Payload,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\n\nimport { RenderCustomComponent } from '../../../elements/RenderCustomComponent/index.js'\nimport { RenderServerComponent } from '../../../elements/RenderServerComponent/index.js'\nimport {\n DefaultCell,\n RenderDefaultCell,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../../../exports/client/index.js'\nimport { hasOptionLabelJSXElement } from '../../../utilities/hasOptionLabelJSXElement.js'\nimport { findValueFromPath } from './findValueFromPath.js'\n\ntype RenderCellArgs = {\n readonly clientField: ClientField\n readonly collectionSlug: string\n readonly columnIndex: number\n readonly customCellProps: DefaultCellComponentProps['customCellProps']\n readonly doc: Document\n readonly enableRowSelections: boolean\n readonly i18n: I18nClient\n readonly isLinkedColumn: boolean\n readonly payload: Payload\n readonly rowIndex: number\n readonly serverField: Field\n}\nexport function renderCell({\n clientField,\n collectionSlug,\n columnIndex,\n customCellProps,\n doc,\n enableRowSelections,\n i18n,\n isLinkedColumn,\n payload,\n rowIndex,\n serverField,\n}: RenderCellArgs) {\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionSlug,\n customCellProps,\n field: clientField,\n rowData: undefined,\n }\n\n const accessor: string | undefined =\n ('accessor' in clientField ? (clientField.accessor as string) : undefined) ??\n ('name' in clientField ? clientField.name : undefined)\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in clientField ? findValueFromPath(doc, accessor) : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n const cellServerProps: DefaultServerCellComponentProps = {\n cellData: cellClientProps.cellData,\n className: baseCellClientProps.className,\n collectionConfig: payload.collections[collectionSlug].config,\n collectionSlug,\n columnIndex,\n customCellProps: baseCellClientProps.customCellProps,\n field: serverField,\n i18n,\n link: cellClientProps.link,\n onClick: baseCellClientProps.onClick,\n payload,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (serverField?.type === 'richText') {\n if (!serverField?.editor) {\n throw new MissingEditorProp(serverField) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof serverField?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!serverField.admin) {\n serverField.admin = {}\n }\n\n if (!serverField.admin.components) {\n serverField.admin.components = {}\n }\n\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: serverField.editor.CellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n const CustomCellComponent = serverField?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else if (\n cellClientProps.cellData &&\n cellClientProps.field &&\n hasOptionLabelJSXElement(cellClientProps)\n ) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: DefaultCell,\n importMap: payload.importMap,\n })\n } else {\n const CustomCellComponent = serverField?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n CustomCell = undefined\n }\n }\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={columnIndex}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${rowIndex}-${columnIndex}`}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -87,6 +87,7 @@ export const TableColumnsProvider = ({
87
87
  resetColumnsState,
88
88
  setActiveColumns,
89
89
  toggleColumn,
90
+ // eslint-disable-next-line react-compiler/react-compiler
90
91
  ...contextRef.current
91
92
  },
92
93
  children: children
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["transformColumnsToSearchParams","React","startTransition","useCallback","useRef","useConfig","useListQuery","TableColumnContext","useTableColumns","TableColumnsProvider","children","collectionSlug","columnState","columnStateFromProps","LinkedCellOverride","getEntityConfig","query","currentQuery","refineListData","admin","defaultColumns","setOptimisticColumnState","useOptimistic","state","action","contextRef","toggleColumn","column","newColumnState","map","col","accessor","active","columns","moveColumn","args","fromIndex","toIndex","columnToMove","splice","setActiveColumns","forEach","colName","colIndex","findIndex","c","undefined","slice","resetColumnsState","_jsx","value","current"],"sources":["../../../src/providers/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport { type Column } from 'payload'\nimport { transformColumnsToSearchParams } from 'payload/shared'\nimport React, { startTransition, useCallback, useRef } from 'react'\n\nimport type { ITableColumns, TableColumnsProviderProps } from './types.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { TableColumnContext } from './context.js'\n\nexport { useTableColumns } from './context.js'\n\nexport const TableColumnsProvider: React.FC<TableColumnsProviderProps> = ({\n children,\n collectionSlug,\n columnState: columnStateFromProps,\n LinkedCellOverride,\n}) => {\n const { getEntityConfig } = useConfig()\n const { query: currentQuery, refineListData } = useListQuery()\n\n const { admin: { defaultColumns } = {} } = getEntityConfig({\n collectionSlug,\n })\n\n const [columnState, setOptimisticColumnState] = React.useOptimistic(\n columnStateFromProps,\n (state, action: Column[]) => action,\n )\n\n const contextRef = useRef({} as ITableColumns)\n\n const toggleColumn = useCallback(\n async (column: string) => {\n const newColumnState = (columnState || []).map((col) => {\n if (col.accessor === column) {\n return { ...col, active: !col.active }\n }\n return col\n })\n\n startTransition(() => {\n setOptimisticColumnState(newColumnState)\n })\n\n await refineListData({\n columns: transformColumnsToSearchParams(newColumnState),\n })\n },\n [refineListData, columnState, setOptimisticColumnState],\n )\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n const newColumnState = [...(columnState || [])]\n const [columnToMove] = newColumnState.splice(fromIndex, 1)\n newColumnState.splice(toIndex, 0, columnToMove)\n\n startTransition(() => {\n setOptimisticColumnState(newColumnState)\n })\n\n await refineListData({\n columns: transformColumnsToSearchParams(newColumnState),\n })\n },\n [columnState, refineListData, setOptimisticColumnState],\n )\n\n const setActiveColumns = useCallback(\n async (columns: string[]) => {\n const newColumnState = currentQuery.columns\n\n columns.forEach((colName) => {\n const colIndex = newColumnState.findIndex((c) => colName === c)\n\n // ensure the name does not begin with a `-` which denotes an inactive column\n if (colIndex !== undefined && newColumnState[colIndex][0] === '-') {\n newColumnState[colIndex] = colName.slice(1)\n }\n })\n\n await refineListData({ columns: newColumnState })\n },\n [currentQuery, refineListData],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await refineListData({ columns: defaultColumns || [] })\n }, [defaultColumns, refineListData])\n\n return (\n <TableColumnContext\n value={{\n columns: columnState,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n \n ...contextRef.current,\n }}\n >\n {children}\n </TableColumnContext>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,8BAA8B,QAAQ;AAC/C,OAAOC,KAAA,IAASC,eAAe,EAAEC,WAAW,EAAEC,MAAM,QAAQ;AAI5D,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,kBAAkB,QAAQ;AAEnC,SAASC,eAAe,QAAQ;AAEhC,OAAO,MAAMC,oBAAA,GAA4DA,CAAC;EACxEC,QAAQ;EACRC,cAAc;EACdC,WAAA,EAAaC,oBAAoB;EACjCC;AAAkB,CACnB;EACC,MAAM;IAAEC;EAAe,CAAE,GAAGV,SAAA;EAC5B,MAAM;IAAEW,KAAA,EAAOC,YAAY;IAAEC;EAAc,CAAE,GAAGZ,YAAA;EAEhD,MAAM;IAAEa,KAAA,EAAO;MAAEC;IAAc,CAAE,GAAG,CAAC;EAAC,CAAE,GAAGL,eAAA,CAAgB;IACzDJ;EACF;EAEA,MAAM,CAACC,WAAA,EAAaS,wBAAA,CAAyB,GAAGpB,KAAA,CAAMqB,aAAa,CACjET,oBAAA,EACA,CAACU,KAAA,EAAOC,MAAA,KAAqBA,MAAA;EAG/B,MAAMC,UAAA,GAAarB,MAAA,CAAO,CAAC;EAE3B,MAAMsB,YAAA,GAAevB,WAAA,CACnB,MAAOwB,MAAA;IACL,MAAMC,cAAA,GAAiB,CAAChB,WAAA,IAAe,EAAE,EAAEiB,GAAG,CAAEC,GAAA;MAC9C,IAAIA,GAAA,CAAIC,QAAQ,KAAKJ,MAAA,EAAQ;QAC3B,OAAO;UAAE,GAAGG,GAAG;UAAEE,MAAA,EAAQ,CAACF,GAAA,CAAIE;QAAO;MACvC;MACA,OAAOF,GAAA;IACT;IAEA5B,eAAA,CAAgB;MACdmB,wBAAA,CAAyBO,cAAA;IAC3B;IAEA,MAAMV,cAAA,CAAe;MACnBe,OAAA,EAASjC,8BAAA,CAA+B4B,cAAA;IAC1C;EACF,GACA,CAACV,cAAA,EAAgBN,WAAA,EAAaS,wBAAA,CAAyB;EAGzD,MAAMa,UAAA,GAAa/B,WAAA,CACjB,MAAOgC,IAAA;IACL,MAAM;MAAEC,SAAS;MAAEC;IAAO,CAAE,GAAGF,IAAA;IAC/B,MAAMP,gBAAA,GAAiB,C,IAAKhB,WAAA,IAAe,EAAE,EAAE;IAC/C,MAAM,CAAC0B,YAAA,CAAa,GAAGV,gBAAA,CAAeW,MAAM,CAACH,SAAA,EAAW;IACxDR,gBAAA,CAAeW,MAAM,CAACF,OAAA,EAAS,GAAGC,YAAA;IAElCpC,eAAA,CAAgB;MACdmB,wBAAA,CAAyBO,gBAAA;IAC3B;IAEA,MAAMV,cAAA,CAAe;MACnBe,OAAA,EAASjC,8BAAA,CAA+B4B,gBAAA;IAC1C;EACF,GACA,CAAChB,WAAA,EAAaM,cAAA,EAAgBG,wBAAA,CAAyB;EAGzD,MAAMmB,gBAAA,GAAmBrC,WAAA,CACvB,MAAO8B,OAAA;IACL,MAAML,gBAAA,GAAiBX,YAAA,CAAagB,OAAO;IAE3CA,OAAA,CAAQQ,OAAO,CAAEC,OAAA;MACf,MAAMC,QAAA,GAAWf,gBAAA,CAAegB,SAAS,CAAEC,CAAA,IAAMH,OAAA,KAAYG,CAAA;MAE7D;MACA,IAAIF,QAAA,KAAaG,SAAA,IAAalB,gBAAc,CAACe,QAAA,CAAS,CAAC,EAAE,KAAK,KAAK;QACjEf,gBAAc,CAACe,QAAA,CAAS,GAAGD,OAAA,CAAQK,KAAK,CAAC;MAC3C;IACF;IAEA,MAAM7B,cAAA,CAAe;MAAEe,OAAA,EAASL;IAAe;EACjD,GACA,CAACX,YAAA,EAAcC,cAAA,CAAe;EAGhC,MAAM8B,iBAAA,GAAoB/C,KAAA,CAAME,WAAW,CAAC;IAC1C,MAAMe,cAAA,CAAe;MAAEe,OAAA,EAASb,cAAA,IAAkB;IAAG;EACvD,GAAG,CAACA,cAAA,EAAgBF,cAAA,CAAe;EAEnC,oBACE+B,IAAA,CAAC1C,kBAAA;IACC2C,KAAA,EAAO;MACLjB,OAAA,EAASrB,WAAA;MACTE,kBAAA;MACAoB,UAAA;MACAc,iBAAA;MACAR,gBAAA;MACAd,YAAA;MAEA,GAAGD,UAAA,CAAW0B;IAChB;cAECzC;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["transformColumnsToSearchParams","React","startTransition","useCallback","useRef","useConfig","useListQuery","TableColumnContext","useTableColumns","TableColumnsProvider","children","collectionSlug","columnState","columnStateFromProps","LinkedCellOverride","getEntityConfig","query","currentQuery","refineListData","admin","defaultColumns","setOptimisticColumnState","useOptimistic","state","action","contextRef","toggleColumn","column","newColumnState","map","col","accessor","active","columns","moveColumn","args","fromIndex","toIndex","columnToMove","splice","setActiveColumns","forEach","colName","colIndex","findIndex","c","undefined","slice","resetColumnsState","_jsx","value","current"],"sources":["../../../src/providers/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport { type Column } from 'payload'\nimport { transformColumnsToSearchParams } from 'payload/shared'\nimport React, { startTransition, useCallback, useRef } from 'react'\n\nimport type { ITableColumns, TableColumnsProviderProps } from './types.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { TableColumnContext } from './context.js'\n\nexport { useTableColumns } from './context.js'\n\nexport const TableColumnsProvider: React.FC<TableColumnsProviderProps> = ({\n children,\n collectionSlug,\n columnState: columnStateFromProps,\n LinkedCellOverride,\n}) => {\n const { getEntityConfig } = useConfig()\n const { query: currentQuery, refineListData } = useListQuery()\n\n const { admin: { defaultColumns } = {} } = getEntityConfig({\n collectionSlug,\n })\n\n const [columnState, setOptimisticColumnState] = React.useOptimistic(\n columnStateFromProps,\n (state, action: Column[]) => action,\n )\n\n const contextRef = useRef({} as ITableColumns)\n\n const toggleColumn = useCallback(\n async (column: string) => {\n const newColumnState = (columnState || []).map((col) => {\n if (col.accessor === column) {\n return { ...col, active: !col.active }\n }\n return col\n })\n\n startTransition(() => {\n setOptimisticColumnState(newColumnState)\n })\n\n await refineListData({\n columns: transformColumnsToSearchParams(newColumnState),\n })\n },\n [refineListData, columnState, setOptimisticColumnState],\n )\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n const newColumnState = [...(columnState || [])]\n const [columnToMove] = newColumnState.splice(fromIndex, 1)\n newColumnState.splice(toIndex, 0, columnToMove)\n\n startTransition(() => {\n setOptimisticColumnState(newColumnState)\n })\n\n await refineListData({\n columns: transformColumnsToSearchParams(newColumnState),\n })\n },\n [columnState, refineListData, setOptimisticColumnState],\n )\n\n const setActiveColumns = useCallback(\n async (columns: string[]) => {\n const newColumnState = currentQuery.columns\n\n columns.forEach((colName) => {\n const colIndex = newColumnState.findIndex((c) => colName === c)\n\n // ensure the name does not begin with a `-` which denotes an inactive column\n if (colIndex !== undefined && newColumnState[colIndex][0] === '-') {\n newColumnState[colIndex] = colName.slice(1)\n }\n })\n\n await refineListData({ columns: newColumnState })\n },\n [currentQuery, refineListData],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await refineListData({ columns: defaultColumns || [] })\n }, [defaultColumns, refineListData])\n\n return (\n <TableColumnContext\n value={{\n columns: columnState,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n // eslint-disable-next-line react-compiler/react-compiler\n ...contextRef.current,\n }}\n >\n {children}\n </TableColumnContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Translation/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,SAAS,EACV,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,OAAO,KAAkD,MAAM,OAAO,CAAA;AAEtE,KAAK,WAAW,CACd,uBAAuB,GAAG,EAAE,EAC5B,gCAAgC,SAAS,MAAM,GAAG,KAAK,IACrD;IACF,IAAI,EAAE,CAAC,gCAAgC,CAAC,SAAS,CAAC,KAAK,CAAC,GACpD,UAAU,GACV,uBAAuB,SAAS,MAAM,GACpC,UAAU,CAAC,uBAAuB,EAAE,gCAAgC,CAAC,GACrE,UAAU,CAAC,wBAAwB,EAAE,gCAAgC,CAAC,CAAA;IAC5E,eAAe,EAAE,eAAe,CAAA;IAChC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,CAAC,EAAE,SAAS,CAAC,qBAAqB,GAAG,OAAO,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC,CAAA;CACxF,CAAA;AAiBD,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IAClC,YAAY,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,eAAe,CAAA;IAChC,0BAA0B,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6D/C,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,uBAAuB,OACvB,gCAAgC,SAAS,MAAM,qFAC0C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Translation/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,SAAS,EACV,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,OAAO,KAAkD,MAAM,OAAO,CAAA;AAEtE,KAAK,WAAW,CACd,uBAAuB,GAAG,EAAE,EAC5B,gCAAgC,SAAS,MAAM,GAAG,KAAK,IACrD;IACF,IAAI,EAAE,CAAC,gCAAgC,CAAC,SAAS,CAAC,KAAK,CAAC,GACpD,UAAU,GACV,uBAAuB,SAAS,MAAM,GACpC,UAAU,CAAC,uBAAuB,EAAE,gCAAgC,CAAC,GACrE,UAAU,CAAC,wBAAwB,EAAE,gCAAgC,CAAC,CAAA;IAC5E,eAAe,EAAE,eAAe,CAAA;IAChC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,CAAC,EAAE,SAAS,CAAC,qBAAqB,GAAG,OAAO,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC,CAAA;CACxF,CAAA;AAiBD,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IAClC,YAAY,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,eAAe,CAAA;IAChC,0BAA0B,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgE/C,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,uBAAuB,OACvB,gCAAgC,SAAS,MAAM,qFAC0C,CAAA"}