@payloadcms/ui 3.0.0-beta.93 → 3.0.0-beta.94

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 (109) hide show
  1. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/AddFilesView/index.js +44 -30
  3. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/AddFilesView/index.scss +14 -1
  5. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
  6. package/dist/elements/BulkUpload/AddingFilesView/index.js +7 -7
  7. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  8. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.d.ts.map +1 -1
  9. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +14 -17
  10. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  11. package/dist/elements/BulkUpload/DrawerCloseButton/index.d.ts +1 -2
  12. package/dist/elements/BulkUpload/DrawerCloseButton/index.d.ts.map +1 -1
  13. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +5 -8
  14. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  16. package/dist/elements/BulkUpload/EditForm/index.js +31 -28
  17. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  18. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  19. package/dist/elements/BulkUpload/FileSidebar/index.js +65 -55
  20. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/FileSidebar/index.scss +4 -0
  22. package/dist/elements/BulkUpload/FormsManager/index.d.ts +4 -7
  23. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  24. package/dist/elements/BulkUpload/FormsManager/index.js +62 -36
  25. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  26. package/dist/elements/BulkUpload/Header/index.d.ts.map +1 -1
  27. package/dist/elements/BulkUpload/Header/index.js +1 -3
  28. package/dist/elements/BulkUpload/Header/index.js.map +1 -1
  29. package/dist/elements/BulkUpload/index.d.ts +21 -5
  30. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  31. package/dist/elements/BulkUpload/index.js +148 -51
  32. package/dist/elements/BulkUpload/index.js.map +1 -1
  33. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  34. package/dist/elements/DocumentDrawer/DrawerContent.js +18 -15
  35. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  36. package/dist/elements/DocumentDrawer/types.d.ts +1 -0
  37. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  38. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  39. package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
  40. package/dist/elements/DraggableSortable/index.js +1 -0
  41. package/dist/elements/DraggableSortable/index.js.map +1 -1
  42. package/dist/elements/Dropzone/index.d.ts +3 -3
  43. package/dist/elements/Dropzone/index.d.ts.map +1 -1
  44. package/dist/elements/Dropzone/index.js +23 -50
  45. package/dist/elements/Dropzone/index.js.map +1 -1
  46. package/dist/elements/Dropzone/index.scss +6 -23
  47. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  48. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  49. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  50. package/dist/elements/FileDetails/StaticFileDetails/index.js +0 -1
  51. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  52. package/dist/elements/FileDetails/StaticFileDetails/index.scss +1 -0
  53. package/dist/elements/ListDrawer/index.scss +7 -0
  54. package/dist/elements/ShimmerEffect/index.d.ts +3 -3
  55. package/dist/elements/ShimmerEffect/index.d.ts.map +1 -1
  56. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  57. package/dist/elements/Thumbnail/index.d.ts +10 -6
  58. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  59. package/dist/elements/Thumbnail/index.js +84 -9
  60. package/dist/elements/Thumbnail/index.js.map +1 -1
  61. package/dist/elements/Upload/index.d.ts.map +1 -1
  62. package/dist/elements/Upload/index.js +59 -33
  63. package/dist/elements/Upload/index.js.map +1 -1
  64. package/dist/elements/Upload/index.scss +9 -0
  65. package/dist/exports/client/{CodeEditor-MTP455NO.js → CodeEditor-P66JEENA.js} +2 -2
  66. package/dist/exports/client/{chunk-NJHSEGFB.js → chunk-XKP472RX.js} +1 -1
  67. package/dist/exports/client/{chunk-NJHSEGFB.js.map → chunk-XKP472RX.js.map} +1 -1
  68. package/dist/exports/client/index.d.ts +3 -2
  69. package/dist/exports/client/index.d.ts.map +1 -1
  70. package/dist/exports/client/index.js +19 -19
  71. package/dist/exports/client/index.js.map +4 -4
  72. package/dist/fields/Upload/HasMany/index.d.ts +16 -2
  73. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  74. package/dist/fields/Upload/HasMany/index.js +148 -224
  75. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  76. package/dist/fields/Upload/HasMany/index.scss +12 -56
  77. package/dist/fields/Upload/HasOne/index.d.ts +13 -9
  78. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
  79. package/dist/fields/Upload/HasOne/index.js +30 -121
  80. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  81. package/dist/fields/Upload/HasOne/index.scss +0 -68
  82. package/dist/fields/Upload/{HasOne/Input.d.ts → Input.d.ts} +9 -4
  83. package/dist/fields/Upload/Input.d.ts.map +1 -0
  84. package/dist/fields/Upload/Input.js +366 -0
  85. package/dist/fields/Upload/Input.js.map +1 -0
  86. package/dist/fields/Upload/RelationshipContent/index.d.ts +21 -0
  87. package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -0
  88. package/dist/fields/Upload/RelationshipContent/index.js +135 -0
  89. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -0
  90. package/dist/fields/Upload/RelationshipContent/index.scss +51 -0
  91. package/dist/fields/Upload/UploadCard/index.d.ts +10 -0
  92. package/dist/fields/Upload/UploadCard/index.d.ts.map +1 -0
  93. package/dist/fields/Upload/UploadCard/index.js +15 -0
  94. package/dist/fields/Upload/UploadCard/index.js.map +1 -0
  95. package/dist/fields/Upload/UploadCard/index.scss +27 -0
  96. package/dist/fields/Upload/index.d.ts +4 -4
  97. package/dist/fields/Upload/index.d.ts.map +1 -1
  98. package/dist/fields/Upload/index.js +85 -91
  99. package/dist/fields/Upload/index.js.map +1 -1
  100. package/dist/fields/Upload/index.scss +57 -0
  101. package/dist/providers/Root/index.d.ts +12 -12
  102. package/dist/providers/Root/index.d.ts.map +1 -1
  103. package/dist/providers/Root/index.js.map +1 -1
  104. package/dist/styles.css +1 -1
  105. package/package.json +5 -5
  106. package/dist/fields/Upload/HasOne/Input.d.ts.map +0 -1
  107. package/dist/fields/Upload/HasOne/Input.js +0 -324
  108. package/dist/fields/Upload/HasOne/Input.js.map +0 -1
  109. /package/dist/exports/client/{CodeEditor-MTP455NO.js.map → CodeEditor-P66JEENA.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","qs","React","toast","fieldReducer","useConfig","useLocale","useTranslation","getFormState","hasSavePermission","getHasSavePermission","useLoadingOverlay","drawerSlug","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","collectionSlug","docPermissions","undefined","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isLoadingFiles","removeFile","saveAllDocs","Promise","resolve","setActiveIndex","setFormTotalErrorCount","totalErrorCount","initialState","FormsManagerProvider","children","onSuccess","config","routes","api","serverURL","code","closeModal","i18n","t","setIsLoadingFiles","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","state","dispatch","useReducer","toggleLoadingOverlay","initialStateRef","useRef","hasFetchedInitialFormState","initialFormStateAbortControllerRef","hasFetchedInitialDocPermissions","initialDocPermissionsAbortControllerRef","actionURL","initilizeSharedDocPermissions","useCallback","abort","AbortController","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","signal","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","permission","initializeSharedFormState","formStateWithoutFiles","apiRoute","operation","schemaPath","error","index","currentFormsData","type","map","form","i","errorCount","formState","files","count","overrides","currentForms","promises","isLoading","key","loadingText","req","errors","length","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","Array","isArray","data","forEach","dataError","field","all","remainingForms","filter","successCount","Math","max","success","acc","useEffect","_jsx","Provider","value","useFormsManager","useContext"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Data, DocumentPermissions, FormState } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { BulkUploadProps } from '../index.js'\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { getFormState } from '../../../utilities/getFormState.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { drawerSlug } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => void\n readonly collectionSlug: string\n readonly docPermissions?: DocumentPermissions\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isLoadingFiles: boolean\n readonly removeFile: (index: number) => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly totalErrorCount?: number\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => {},\n collectionSlug: '',\n docPermissions: undefined,\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isLoadingFiles: true,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n totalErrorCount: 0,\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly onSuccess: BulkUploadProps['onSuccess']\n}\n\nexport function FormsManagerProvider({ children, collectionSlug, onSuccess }: Props) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { closeModal } = useModal()\n const { i18n, t } = useTranslation()\n\n const [isLoadingFiles, setIsLoadingFiles] = React.useState(false)\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<DocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n const { toggleLoadingOverlay } = useLoadingOverlay()\n\n const initialStateRef = React.useRef<FormState>(null)\n const hasFetchedInitialFormState = React.useRef(false)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n const initialFormStateAbortControllerRef = React.useRef<AbortController>(null)\n const hasFetchedInitialDocPermissions = React.useRef(false)\n const initialDocPermissionsAbortControllerRef = React.useRef<AbortController>(null)\n\n const actionURL = `${api}/${collectionSlug}`\n\n const initilizeSharedDocPermissions = React.useCallback(async () => {\n if (initialDocPermissionsAbortControllerRef.current)\n initialDocPermissionsAbortControllerRef.current.abort(\n 'aborting previous fetch for initial doc permissions',\n )\n initialDocPermissionsAbortControllerRef.current = new AbortController()\n\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n signal: initialDocPermissionsAbortControllerRef.current.signal,\n })\n\n const json: DocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update?.permission)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(async () => {\n if (initialFormStateAbortControllerRef.current)\n initialFormStateAbortControllerRef.current.abort(\n 'aborting previous fetch for initial form state without files',\n )\n initialFormStateAbortControllerRef.current = new AbortController()\n\n try {\n const formStateWithoutFiles = await getFormState({\n apiRoute: config.routes.api,\n body: {\n collectionSlug,\n locale: code,\n operation: 'create',\n schemaPath: collectionSlug,\n },\n // onError: onLoadError,\n serverURL: config.serverURL,\n signal: initialFormStateAbortControllerRef.current.signal,\n })\n initialStateRef.current = formStateWithoutFiles\n hasFetchedInitialFormState.current = true\n } catch (error) {\n // swallow error\n }\n }, [code, collectionSlug, config.routes.api, config.serverURL])\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formState: currentFormsData,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback((files: FileList) => {\n setIsLoadingFiles(true)\n dispatch({ type: 'ADD_FORMS', files, initialState: initialStateRef.current })\n setIsLoadingFiles(false)\n }, [])\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback((index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n }, [])\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formState: currentFormsData,\n }\n const promises = currentForms.map(async (form, i) => {\n try {\n toggleLoadingOverlay({\n isLoading: true,\n key: 'saveAllDocs',\n loadingText: t('general:uploading'),\n })\n const req = await fetch(actionURL, {\n body: createFormData(form.formState, overrides),\n method: 'POST',\n })\n\n const json = await req.json()\n\n // should expose some sort of helper for this\n if (json?.errors?.length) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.field) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n currentForms[i] = {\n errorCount: fieldErrors.length,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n }\n } catch (error) {\n // swallow error\n } finally {\n setHasSubmitted(true)\n toggleLoadingOverlay({ isLoading: false, key: 'saveAllDocs' })\n }\n })\n\n await Promise.all(promises)\n\n const remainingForms = currentForms.filter(({ errorCount }) => errorCount > 0)\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n\n if (errorCount === 0) {\n closeModal(drawerSlug)\n }\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n },\n [actionURL, activeIndex, closeModal, forms, onSuccess],\n )\n\n React.useEffect(() => {\n if (!hasFetchedInitialFormState.current) {\n void initializeSharedFormState()\n }\n if (!hasFetchedInitialDocPermissions.current) {\n void initilizeSharedDocPermissions()\n }\n return\n }, [initializeSharedFormState, initilizeSharedDocPermissions])\n\n return (\n <Context.Provider\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n collectionSlug,\n docPermissions,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isLoadingFiles,\n removeFile,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n totalErrorCount,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport function useFormsManager() {\n return React.useContext(Context)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","qs","React","toast","fieldReducer","useConfig","useLocale","useTranslation","getFormState","hasSavePermission","getHasSavePermission","useLoadingOverlay","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","collectionSlug","docPermissions","undefined","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","totalErrorCount","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","setHasSubmitted","useState","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","onSuccess","hasInitializedWithFiles","useRef","initialStateRef","actionURL","initilizeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","permission","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","apiRoute","operation","schemaPath","error","index","currentFormsData","type","map","form","i","errorCount","formState","files","isLoading","key","count","overrides","currentForms","newDocs","promises","loadingText","req","status","doc","push","errors","length","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","Array","isArray","data","forEach","dataError","field","all","remainingForms","filter","successCount","Math","max","success","acc","useEffect","_jsx","Provider","value","useFormsManager","useContext"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Data, DocumentPermissions, FormState } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { getFormState } from '../../../utilities/getFormState.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { useBulkUpload } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: DocumentPermissions\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isInitializing: boolean\n readonly removeFile: (index: number) => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly totalErrorCount?: number\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n collectionSlug: '',\n docPermissions: undefined,\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isInitializing: false,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n totalErrorCount: 0,\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\nexport function FormsManagerProvider({ children }: FormsManagerProps) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<DocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [hasInitializedState, setHasInitializedState] = React.useState(false)\n const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false)\n const [isInitializing, setIsInitializing] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug, initialFiles, onSuccess } = useBulkUpload()\n\n const hasInitializedWithFiles = React.useRef(false)\n const initialStateRef = React.useRef<FormState>(null)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n\n const actionURL = `${api}/${collectionSlug}`\n\n const initilizeSharedDocPermissions = React.useCallback(async () => {\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: DocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update?.permission)\n setHasInitializedDocPermissions(true)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(\n async (abortController?: AbortController) => {\n if (abortController?.signal) {\n abortController.abort('aborting previous fetch for initial form state without files')\n }\n\n try {\n const formStateWithoutFiles = await getFormState({\n apiRoute: config.routes.api,\n body: {\n collectionSlug,\n locale: code,\n operation: 'create',\n schemaPath: collectionSlug,\n },\n // onError: onLoadError,\n serverURL: config.serverURL,\n signal: abortController?.signal,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (error) {\n // swallow error\n }\n },\n [code, collectionSlug, config.routes.api, config.serverURL],\n )\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formState: currentFormsData,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n dispatch({ type: 'ADD_FORMS', files, initialState: initialStateRef.current })\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n },\n [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay],\n )\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback((index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n }, [])\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formState: currentFormsData,\n }\n const newDocs = []\n const promises = currentForms.map(async (form, i) => {\n try {\n toggleLoadingOverlay({\n isLoading: true,\n key: 'saveAllDocs',\n loadingText: t('general:uploading'),\n })\n const req = await fetch(actionURL, {\n body: createFormData(form.formState, overrides),\n method: 'POST',\n })\n\n const json = await req.json()\n\n if (req.status === 201 && json?.doc) {\n newDocs.push(json.doc)\n }\n\n // should expose some sort of helper for this\n if (json?.errors?.length) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.field) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n currentForms[i] = {\n errorCount: fieldErrors.length,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n }\n } catch (error) {\n // swallow error\n } finally {\n setHasSubmitted(true)\n toggleLoadingOverlay({ isLoading: false, key: 'saveAllDocs' })\n }\n })\n\n await Promise.all(promises)\n\n const remainingForms = currentForms.filter(({ errorCount }) => errorCount > 0)\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n\n if (typeof onSuccess === 'function') {\n onSuccess(newDocs, errorCount)\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n } else {\n closeModal(drawerSlug)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n },\n [actionURL, activeIndex, forms, onSuccess, t, toggleLoadingOverlay, closeModal, drawerSlug],\n )\n\n React.useEffect(() => {\n if (!collectionSlug) return\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initilizeSharedDocPermissions()\n }\n\n if (initialFiles) {\n if (!hasInitializedState || !hasInitializedDocPermissions) {\n setIsInitializing(true)\n } else {\n setIsInitializing(false)\n }\n }\n\n if (hasInitializedState && initialFiles && !hasInitializedWithFiles.current) {\n void addFiles(initialFiles)\n hasInitializedWithFiles.current = true\n }\n return\n }, [\n addFiles,\n initialFiles,\n initializeSharedFormState,\n initilizeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n ])\n\n return (\n <Context.Provider\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n collectionSlug,\n docPermissions,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n totalErrorCount,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport function useFormsManager() {\n return React.useContext(Context)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/Header/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AACD,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,qBAOrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/Header/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAIrB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AACD,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,qBAOrD"}
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
3
  import { DrawerCloseButton } from '../DrawerCloseButton/index.js';
4
- import { drawerSlug } from '../index.js';
5
4
  import './index.scss';
6
5
  const baseClass = 'bulk-upload--drawer-header';
7
6
  export function DrawerHeader({
@@ -14,8 +13,7 @@ export function DrawerHeader({
14
13
  title: title,
15
14
  children: title
16
15
  }), /*#__PURE__*/_jsx(DrawerCloseButton, {
17
- onClick: onClose,
18
- slug: drawerSlug
16
+ onClick: onClose
19
17
  })]
20
18
  });
21
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","DrawerCloseButton","drawerSlug","baseClass","DrawerHeader","onClose","title","_jsxs","className","_jsx","onClick","slug"],"sources":["../../../../src/elements/BulkUpload/Header/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport { DrawerCloseButton } from '../DrawerCloseButton/index.js'\nimport { drawerSlug } from '../index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--drawer-header'\n\ntype Props = {\n readonly onClose: () => void\n readonly title: string\n}\nexport function DrawerHeader({ onClose, title }: Props) {\n return (\n <div className={baseClass}>\n <h2 title={title}>{title}</h2>\n <DrawerCloseButton onClick={onClose} slug={drawerSlug} />\n </div>\n )\n}\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,UAAU,QAAQ;AAC3B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAMlB,OAAO,SAASC,aAAa;EAAEC,OAAO;EAAEC;AAAK,CAAS;EACpD,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWL,SAAA;4BACdM,IAAA,CAAC;MAAGH,KAAA,EAAOA,KAAA;gBAAQA;qBACnBG,IAAA,CAACR,iBAAA;MAAkBS,OAAA,EAASL,OAAA;MAASM,IAAA,EAAMT;;;AAGjD","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","DrawerCloseButton","baseClass","DrawerHeader","onClose","title","_jsxs","className","_jsx","onClick"],"sources":["../../../../src/elements/BulkUpload/Header/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport { DrawerCloseButton } from '../DrawerCloseButton/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--drawer-header'\n\ntype Props = {\n readonly onClose: () => void\n readonly title: string\n}\nexport function DrawerHeader({ onClose, title }: Props) {\n return (\n <div className={baseClass}>\n <h2 title={title}>{title}</h2>\n <DrawerCloseButton onClick={onClose} />\n </div>\n )\n}\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,SAASC,iBAAiB,QAAQ;AAClC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAMlB,OAAO,SAASC,aAAa;EAAEC,OAAO;EAAEC;AAAK,CAAS;EACpD,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWL,SAAA;4BACdM,IAAA,CAAC;MAAGH,KAAA,EAAOA,KAAA;gBAAQA;qBACnBG,IAAA,CAACP,iBAAA;MAAkBQ,OAAA,EAASL;;;AAGlC","ignoreList":[]}
@@ -1,10 +1,26 @@
1
+ import type { JsonObject } from 'payload';
1
2
  import React from 'react';
2
- export declare const drawerSlug = "bulk-upload-drawer";
3
3
  export type BulkUploadProps = {
4
4
  readonly children: React.ReactNode;
5
- readonly collectionSlug: string;
6
- readonly onSuccess: () => void;
7
5
  };
8
- export declare function BulkUploadDrawer({ collectionSlug, onSuccess }: Omit<BulkUploadProps, 'children'>): React.JSX.Element;
9
- export declare function BulkUploadToggler({ children, collectionSlug, onSuccess }: BulkUploadProps): React.JSX.Element;
6
+ export declare function BulkUploadDrawer(): React.JSX.Element;
7
+ type BulkUploadContext = {
8
+ collectionSlug: string;
9
+ drawerSlug: string;
10
+ initialFiles: FileList;
11
+ maxFiles: number;
12
+ onCancel: () => void;
13
+ onSuccess: (newDocs: JsonObject[], errorCount: number) => void;
14
+ setCollectionSlug: (slug: string) => void;
15
+ setInitialFiles: (files: FileList) => void;
16
+ setMaxFiles: (maxFiles: number) => void;
17
+ setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void;
18
+ setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void;
19
+ };
20
+ export declare function BulkUploadProvider({ children }: {
21
+ readonly children: React.ReactNode;
22
+ }): React.JSX.Element;
23
+ export declare const useBulkUpload: () => BulkUploadContext;
24
+ export declare function useBulkUploadDrawerSlug(): string;
25
+ export {};
10
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/BulkUpload/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,eAAO,MAAM,UAAU,uBAAuB,CAAA;AAoB9C,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAA;CAC/B,CAAA;AAED,wBAAgB,gBAAgB,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,qBAahG;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,eAAe,qBAOzF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/BulkUpload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC,OAAO,KAAK,MAAM,OAAO,CAAA;AA+BzB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,CAAA;AAED,wBAAgB,gBAAgB,sBAa/B;AAED,KAAK,iBAAiB,GAAG;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,QAAQ,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9D,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC1C,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,WAAW,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAC9D,YAAY,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,WAAW,CAAC,KAAK,IAAI,CAAA;CAClE,CAAA;AAeD,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBA8CtF;AAED,eAAO,MAAM,aAAa,yBAAkC,CAAA;AAE5D,wBAAgB,uBAAuB,WAItC"}
@@ -5,21 +5,25 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { useModal } from '@faceless-ui/modal';
6
6
  import React from 'react';
7
7
  import { EditDepthProvider, useEditDepth } from '../../providers/EditDepth/index.js';
8
- import { Drawer, DrawerToggler } from '../Drawer/index.js';
8
+ import { Drawer } from '../Drawer/index.js';
9
9
  import { AddFilesView } from './AddFilesView/index.js';
10
10
  import { AddingFilesView } from './AddingFilesView/index.js';
11
- import { DiscardWithoutSaving } from './DiscardWithoutSaving/index.js';
12
11
  import { FormsManagerProvider, useFormsManager } from './FormsManager/index.js';
13
- export const drawerSlug = 'bulk-upload-drawer';
12
+ const drawerSlug = 'bulk-upload-drawer-slug';
14
13
  function DrawerContent() {
15
- const $ = _c(8);
14
+ const $ = _c(9);
16
15
  const {
17
16
  addFiles,
18
- forms
17
+ forms,
18
+ isInitializing
19
19
  } = useFormsManager();
20
20
  const {
21
21
  closeModal
22
22
  } = useModal();
23
+ const {
24
+ collectionSlug,
25
+ drawerSlug
26
+ } = useBulkUpload();
23
27
  let t0;
24
28
  if ($[0] !== addFiles) {
25
29
  t0 = acceptedFiles => {
@@ -31,84 +35,177 @@ function DrawerContent() {
31
35
  t0 = $[1];
32
36
  }
33
37
  const onDrop = t0;
34
- if (!forms.length) {
38
+ if (!collectionSlug) {
39
+ return null;
40
+ }
41
+ if (!forms.length && !isInitializing) {
35
42
  let t1;
36
- if ($[2] !== closeModal) {
43
+ if ($[2] !== closeModal || $[3] !== drawerSlug) {
37
44
  t1 = () => closeModal(drawerSlug);
38
45
  $[2] = closeModal;
39
- $[3] = t1;
46
+ $[3] = drawerSlug;
47
+ $[4] = t1;
40
48
  } else {
41
- t1 = $[3];
49
+ t1 = $[4];
42
50
  }
43
51
  let t2;
44
- if ($[4] !== t1 || $[5] !== onDrop) {
52
+ if ($[5] !== t1 || $[6] !== onDrop) {
45
53
  t2 = _jsx(AddFilesView, {
46
54
  onCancel: t1,
47
55
  onDrop
48
56
  });
49
- $[4] = t1;
50
- $[5] = onDrop;
51
- $[6] = t2;
57
+ $[5] = t1;
58
+ $[6] = onDrop;
59
+ $[7] = t2;
52
60
  } else {
53
- t2 = $[6];
61
+ t2 = $[7];
54
62
  }
55
63
  return t2;
56
64
  } else {
57
65
  let t1;
58
- if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
66
+ if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
59
67
  t1 = _jsx(AddingFilesView, {});
60
- $[7] = t1;
68
+ $[8] = t1;
61
69
  } else {
62
- t1 = $[7];
70
+ t1 = $[8];
63
71
  }
64
72
  return t1;
65
73
  }
66
74
  }
67
- export function BulkUploadDrawer(t0) {
68
- const $ = _c(4);
69
- const {
70
- collectionSlug,
71
- onSuccess
72
- } = t0;
75
+ export function BulkUploadDrawer() {
76
+ const $ = _c(3);
73
77
  const currentDepth = useEditDepth();
74
- const t1 = currentDepth || 1;
75
- let t2;
76
- if ($[0] !== collectionSlug || $[1] !== onSuccess || $[2] !== t1) {
77
- t2 = _jsx(EditDepthProvider, {
78
- depth: t1,
78
+ const {
79
+ drawerSlug
80
+ } = useBulkUpload();
81
+ const t0 = currentDepth || 1;
82
+ let t1;
83
+ if ($[0] !== drawerSlug || $[1] !== t0) {
84
+ t1 = _jsx(EditDepthProvider, {
85
+ depth: t0,
79
86
  children: _jsx(Drawer, {
80
87
  Header: null,
81
88
  gutter: false,
82
89
  slug: drawerSlug,
83
- children: _jsxs(FormsManagerProvider, {
84
- collectionSlug,
85
- onSuccess,
86
- children: [_jsx(DrawerContent, {}), _jsx(DiscardWithoutSaving, {})]
90
+ children: _jsx(FormsManagerProvider, {
91
+ children: _jsx(DrawerContent, {})
87
92
  })
88
93
  })
89
94
  });
90
- $[0] = collectionSlug;
91
- $[1] = onSuccess;
95
+ $[0] = drawerSlug;
96
+ $[1] = t0;
92
97
  $[2] = t1;
93
- $[3] = t2;
94
98
  } else {
95
- t2 = $[3];
99
+ t1 = $[2];
100
+ }
101
+ return t1;
102
+ }
103
+ const Context = /*#__PURE__*/React.createContext({
104
+ collectionSlug: '',
105
+ drawerSlug: '',
106
+ initialFiles: undefined,
107
+ maxFiles: undefined,
108
+ onCancel: () => null,
109
+ onSuccess: () => null,
110
+ setCollectionSlug: () => null,
111
+ setInitialFiles: () => null,
112
+ setMaxFiles: () => null,
113
+ setOnCancel: () => null,
114
+ setOnSuccess: () => null
115
+ });
116
+ export function BulkUploadProvider(t0) {
117
+ const $ = _c(14);
118
+ const {
119
+ children
120
+ } = t0;
121
+ const [collection, setCollection] = React.useState();
122
+ const [onSuccessFunction, setOnSuccessFunction] = React.useState();
123
+ const [onCancelFunction, setOnCancelFunction] = React.useState();
124
+ const [initialFiles, setInitialFiles] = React.useState(undefined);
125
+ const [maxFiles, setMaxFiles] = React.useState(undefined);
126
+ const drawerSlug = useBulkUploadDrawerSlug();
127
+ let t1;
128
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
129
+ t1 = slug => {
130
+ setCollection(slug);
131
+ };
132
+ $[0] = t1;
133
+ } else {
134
+ t1 = $[0];
135
+ }
136
+ const setCollectionSlug = t1;
137
+ let t2;
138
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
139
+ t2 = onSuccess => {
140
+ setOnSuccessFunction(() => onSuccess);
141
+ };
142
+ $[1] = t2;
143
+ } else {
144
+ t2 = $[1];
145
+ }
146
+ const setOnSuccess = t2;
147
+ let t3;
148
+ if ($[2] !== onCancelFunction) {
149
+ t3 = () => {
150
+ if (typeof onCancelFunction === "function") {
151
+ onCancelFunction();
152
+ }
153
+ };
154
+ $[2] = onCancelFunction;
155
+ $[3] = t3;
156
+ } else {
157
+ t3 = $[3];
158
+ }
159
+ let t4;
160
+ if ($[4] !== onSuccessFunction) {
161
+ t4 = (docIDs, errorCount) => {
162
+ if (typeof onSuccessFunction === "function") {
163
+ onSuccessFunction(docIDs, errorCount);
164
+ }
165
+ };
166
+ $[4] = onSuccessFunction;
167
+ $[5] = t4;
168
+ } else {
169
+ t4 = $[5];
170
+ }
171
+ let t5;
172
+ if ($[6] !== collection || $[7] !== drawerSlug || $[8] !== initialFiles || $[9] !== maxFiles || $[10] !== t3 || $[11] !== t4 || $[12] !== children) {
173
+ t5 = _jsx(Context.Provider, {
174
+ value: {
175
+ collectionSlug: collection,
176
+ drawerSlug,
177
+ initialFiles,
178
+ maxFiles,
179
+ onCancel: t3,
180
+ onSuccess: t4,
181
+ setCollectionSlug,
182
+ setInitialFiles,
183
+ setMaxFiles,
184
+ setOnCancel: setOnCancelFunction,
185
+ setOnSuccess
186
+ },
187
+ children: _jsxs(React.Fragment, {
188
+ children: [children, _jsx(BulkUploadDrawer, {})]
189
+ })
190
+ });
191
+ $[6] = collection;
192
+ $[7] = drawerSlug;
193
+ $[8] = initialFiles;
194
+ $[9] = maxFiles;
195
+ $[10] = t3;
196
+ $[11] = t4;
197
+ $[12] = children;
198
+ $[13] = t5;
199
+ } else {
200
+ t5 = $[13];
96
201
  }
97
- return t2;
202
+ return t5;
98
203
  }
99
- export function BulkUploadToggler({
100
- children,
101
- collectionSlug,
102
- onSuccess
103
- }) {
104
- return /*#__PURE__*/_jsxs(React.Fragment, {
105
- children: [/*#__PURE__*/_jsx(DrawerToggler, {
106
- slug: drawerSlug,
107
- children: children
108
- }), /*#__PURE__*/_jsx(BulkUploadDrawer, {
109
- collectionSlug: collectionSlug,
110
- onSuccess: onSuccess
111
- })]
112
- });
204
+ export const useBulkUpload = () => {
205
+ return React.useContext(Context);
206
+ };
207
+ export function useBulkUploadDrawerSlug() {
208
+ const depth = useEditDepth();
209
+ return `${drawerSlug}-${depth || 1}`;
113
210
  }
114
211
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","React","EditDepthProvider","useEditDepth","Drawer","DrawerToggler","AddFilesView","AddingFilesView","DiscardWithoutSaving","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","$","addFiles","forms","closeModal","t0","acceptedFiles","onDrop","length","t1","t2","_jsx","onCancel","BulkUploadDrawer","collectionSlug","onSuccess","currentDepth","depth","children","Header","gutter","slug","_jsxs","BulkUploadToggler","Fragment"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { EditDepthProvider, useEditDepth } from '../../providers/EditDepth/index.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { DiscardWithoutSaving } from './DiscardWithoutSaving/index.js'\nimport { FormsManagerProvider, useFormsManager } from './FormsManager/index.js'\n\nexport const drawerSlug = 'bulk-upload-drawer'\n\nfunction DrawerContent() {\n const { addFiles, forms } = useFormsManager()\n const { closeModal } = useModal()\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n addFiles(acceptedFiles)\n },\n [addFiles],\n )\n\n if (!forms.length) {\n return <AddFilesView onCancel={() => closeModal(drawerSlug)} onDrop={onDrop} />\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly onSuccess: () => void\n}\n\nexport function BulkUploadDrawer({ collectionSlug, onSuccess }: Omit<BulkUploadProps, 'children'>) {\n const currentDepth = useEditDepth()\n\n return (\n <EditDepthProvider depth={currentDepth || 1}>\n <Drawer Header={null} gutter={false} slug={drawerSlug}>\n <FormsManagerProvider collectionSlug={collectionSlug} onSuccess={onSuccess}>\n <DrawerContent />\n <DiscardWithoutSaving />\n </FormsManagerProvider>\n </Drawer>\n </EditDepthProvider>\n )\n}\n\nexport function BulkUploadToggler({ children, collectionSlug, onSuccess }: BulkUploadProps) {\n return (\n <React.Fragment>\n <DrawerToggler slug={drawerSlug}>{children}</DrawerToggler>\n <BulkUploadDrawer collectionSlug={collectionSlug} onSuccess={onSuccess} />\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,MAAW;AAElB,SAASC,iBAAiB,EAAEC,YAAY,QAAQ;AAChD,SAASC,MAAM,EAAEC,aAAa,QAAQ;AACtC,SAASC,YAAY,QAAQ;AAC7B,SAASC,eAAe,QAAQ;AAChC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,oBAAoB,EAAEC,eAAe,QAAQ;AAEtD,OAAO,MAAMC,UAAA,GAAa;AAE1B,SAAAC,cAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EACE;IAAAe,QAAA;IAAAC;EAAA,IAA4BL,eAAA;EAC5B;IAAAM;EAAA,IAAuBhB,QAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAJ,CAAA,QAAAC,QAAA;IAGrBG,EAAA,GAAAC,aAAA;MACEJ,QAAA,CAASI,aAAA;IAAA;IACXL,CAAA,MAAAC,QAAA;IAAAD,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAHF,MAAAM,MAAA,GAAeF,EAIH;EAAA,KAGPF,KAAA,CAAAK,MAAA;IAAA,IAAAC,EAAA;IAAA,IAAAR,CAAA,QAAAG,UAAA;MAC4BK,EAAA,GAAAA,CAAA,KAAML,UAAA,CAAAL,UAAW;MAAAE,CAAA,MAAAG,UAAA;MAAAH,CAAA,MAAAQ,EAAA;IAAA;MAAAA,EAAA,GAAAR,CAAA;IAAA;IAAA,IAAAS,EAAA;IAAA,IAAAT,CAAA,QAAAQ,EAAA,IAAAR,CAAA,QAAAM,MAAA;MAAzCG,EAAA,GAAAC,IAAA,CAAAjB,YAAA;QAAAkB,QAAA,EAAwBH,EAAiB;QAAAF;MAAA,C;;;;;;;WAAzCG,E;;;;MAEAD,EAAA,GAAAE,IAAA,CAAAhB,eAAA,IAAC;MAAAM,CAAA,MAAAQ,EAAA;IAAA;MAAAA,EAAA,GAAAR,CAAA;IAAA;IAAA,OAADQ,EAAC;EAAA;AAAA;AAUZ,OAAO,SAAAI,iBAAAR,EAAA;EAAA,MAAAJ,CAAA,GAAAd,EAAA;EAA0B;IAAA2B,cAAA;IAAAC;EAAA,IAAAV,EAAgE;EAC/F,MAAAW,YAAA,GAAqBzB,YAAA;EAGO,MAAAkB,EAAA,GAAAO,YAAA,KAAgB;EAAA,IAAAN,EAAA;EAAA,IAAAT,CAAA,QAAAa,cAAA,IAAAb,CAAA,QAAAc,SAAA,IAAAd,CAAA,QAAAQ,EAAA;IAA1CC,EAAA,GAAAC,IAAA,CAAArB,iBAAA;MAAA2B,KAAA,EAA0BR,EAAgB;MAAAS,QAAA,EACxCP,IAAA,CAAAnB,MAAA;QAAA2B,MAAA;QAAAC,MAAA;QAAAC,IAAA,EAAAtB,UAAA;QAAAmB,QAAA,EACEI,KAAA,CAAAzB,oBAAA;UAAAiB,cAAA;UAAAC,SAAA;UAAAG,QAAA,GACEP,IAAA,CAAAX,aAAA,IAAC,GACDW,IAAA,CAAAf,oBAAA,IAAC;QAAA,C;;;;;;;;;;SAJPc,E;;AAWJ,OAAO,SAASa,kBAAkB;EAAEL,QAAQ;EAAEJ,cAAc;EAAEC;AAAS,CAAmB;EACxF,oBACEO,KAAA,CAACjC,KAAA,CAAMmC,QAAQ;4BACbb,IAAA,CAAClB,aAAA;MAAc4B,IAAA,EAAMtB,UAAA;gBAAamB;qBAClCP,IAAA,CAACE,gBAAA;MAAiBC,cAAA,EAAgBA,cAAA;MAAgBC,SAAA,EAAWA;;;AAGnE","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","React","EditDepthProvider","useEditDepth","Drawer","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","$","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","t0","acceptedFiles","onDrop","length","t1","t2","_jsx","onCancel","BulkUploadDrawer","currentDepth","depth","children","Header","gutter","slug","Context","createContext","initialFiles","undefined","maxFiles","onSuccess","setCollectionSlug","setInitialFiles","setMaxFiles","setOnCancel","setOnSuccess","BulkUploadProvider","collection","setCollection","useState","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","Symbol","for","t3","t4","docIDs","errorCount","t5","Provider","value","_jsxs","Fragment","useContext"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { EditDepthProvider, useEditDepth } from '../../providers/EditDepth/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, useFormsManager } from './FormsManager/index.js'\n\nconst drawerSlug = 'bulk-upload-drawer-slug'\n\nfunction DrawerContent() {\n const { addFiles, forms, isInitializing } = useFormsManager()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug } = useBulkUpload()\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n void addFiles(acceptedFiles)\n },\n [addFiles],\n )\n\n if (!collectionSlug) return null\n\n if (!forms.length && !isInitializing) {\n return <AddFilesView onCancel={() => closeModal(drawerSlug)} onDrop={onDrop} />\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const currentDepth = useEditDepth()\n const { drawerSlug } = useBulkUpload()\n\n return (\n <EditDepthProvider depth={currentDepth || 1}>\n <Drawer Header={null} gutter={false} slug={drawerSlug}>\n <FormsManagerProvider>\n <DrawerContent />\n </FormsManagerProvider>\n </Drawer>\n </EditDepthProvider>\n )\n}\n\ntype BulkUploadContext = {\n collectionSlug: string\n drawerSlug: string\n initialFiles: FileList\n maxFiles: number\n onCancel: () => void\n onSuccess: (newDocs: JsonObject[], errorCount: number) => void\n setCollectionSlug: (slug: string) => void\n setInitialFiles: (files: FileList) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n drawerSlug: '',\n initialFiles: undefined,\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n setCollectionSlug: () => null,\n setInitialFiles: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n})\nexport function BulkUploadProvider({ children }: { readonly children: React.ReactNode }) {\n const [collection, setCollection] = React.useState<string>()\n const [onSuccessFunction, setOnSuccessFunction] = React.useState<BulkUploadContext['onSuccess']>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const drawerSlug = useBulkUploadDrawerSlug()\n\n const setCollectionSlug: BulkUploadContext['setCollectionSlug'] = (slug) => {\n setCollection(slug)\n }\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = (onSuccess) => {\n setOnSuccessFunction(() => onSuccess)\n }\n\n return (\n <Context.Provider\n value={{\n collectionSlug: collection,\n drawerSlug,\n initialFiles,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (docIDs, errorCount) => {\n if (typeof onSuccessFunction === 'function') {\n onSuccessFunction(docIDs, errorCount)\n }\n },\n setCollectionSlug,\n setInitialFiles,\n setMaxFiles,\n setOnCancel: setOnCancelFunction,\n setOnSuccess,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context.Provider>\n )\n}\n\nexport const useBulkUpload = () => React.useContext(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useEditDepth()\n\n return `${drawerSlug}-${depth || 1}`\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAcrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA0F/D,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAcrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA4F/D,CAAA"}
@@ -17,9 +17,10 @@ import { IDLabel } from '../IDLabel/index.js';
17
17
  import { RenderTitle } from '../RenderTitle/index.js';
18
18
  import { baseClass } from './index.js';
19
19
  export const DocumentDrawerContent = t0 => {
20
- const $ = _c(29);
20
+ const $ = _c(30);
21
21
  const {
22
22
  id: existingDocID,
23
+ AfterFields,
23
24
  Header,
24
25
  collectionSlug,
25
26
  drawerSlug,
@@ -112,17 +113,18 @@ export const DocumentDrawerContent = t0 => {
112
113
  t6 = $[13];
113
114
  }
114
115
  let t7;
115
- if ($[14] !== t6 || $[15] !== t || $[16] !== toggleModal || $[17] !== drawerSlug || $[18] !== Edit || $[19] !== apiURL || $[20] !== collectionConfig.slug || $[21] !== docID || $[22] !== isEditing || $[23] !== onLoadError || $[24] !== onSave) {
116
+ if ($[14] !== t6 || $[15] !== t || $[16] !== toggleModal || $[17] !== drawerSlug || $[18] !== Edit || $[19] !== AfterFields || $[20] !== apiURL || $[21] !== collectionConfig.slug || $[22] !== docID || $[23] !== isEditing || $[24] !== onLoadError || $[25] !== onSave) {
116
117
  let t8;
117
- if ($[26] !== toggleModal || $[27] !== drawerSlug) {
118
+ if ($[27] !== toggleModal || $[28] !== drawerSlug) {
118
119
  t8 = () => toggleModal(drawerSlug);
119
- $[26] = toggleModal;
120
- $[27] = drawerSlug;
121
- $[28] = t8;
120
+ $[27] = toggleModal;
121
+ $[28] = drawerSlug;
122
+ $[29] = t8;
122
123
  } else {
123
- t8 = $[28];
124
+ t8 = $[29];
124
125
  }
125
126
  t7 = _jsx(DocumentInfoProvider, {
127
+ AfterFields,
126
128
  BeforeDocument: _jsxs(Gutter, {
127
129
  className: `${baseClass}__header`,
128
130
  children: [_jsxs("div", {
@@ -156,15 +158,16 @@ export const DocumentDrawerContent = t0 => {
156
158
  $[16] = toggleModal;
157
159
  $[17] = drawerSlug;
158
160
  $[18] = Edit;
159
- $[19] = apiURL;
160
- $[20] = collectionConfig.slug;
161
- $[21] = docID;
162
- $[22] = isEditing;
163
- $[23] = onLoadError;
164
- $[24] = onSave;
165
- $[25] = t7;
161
+ $[19] = AfterFields;
162
+ $[20] = apiURL;
163
+ $[21] = collectionConfig.slug;
164
+ $[22] = docID;
165
+ $[23] = isEditing;
166
+ $[24] = onLoadError;
167
+ $[25] = onSave;
168
+ $[26] = t7;
166
169
  } else {
167
- t7 = $[25];
170
+ t7 = $[26];
168
171
  }
169
172
  return t7;
170
173
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["c","_c","useModal","React","useCallback","useEffect","useState","toast","XIcon","RenderComponent","useConfig","DocumentInfoProvider","useDocumentInfo","useLocale","useTranslation","useRelatedCollections","Gutter","IDLabel","RenderTitle","baseClass","DocumentDrawerContent","t0","$","id","existingDocID","Header","collectionSlug","drawerSlug","onSave","onSaveFromProps","config","routes","t1","serverURL","api","apiRoute","closeModal","modalState","toggleModal","locale","t","docID","setDocID","isOpen","setIsOpen","collectionConfig","Edit","admin","components","views","edit","default","Component","isEditing","Boolean","apiURL","code","t2","t3","t4","data","error","errors","message","onLoadError","t5","args","doc","t6","_jsx","element","t8","t7","BeforeDocument","_jsxs","className","children","onClick","type","DocumentTitle","slug","disableActions","disableLeaveWithoutSaving","mappedComponent","title","toString"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { XIcon } from '../../icons/X/index.js'\nimport { RenderComponent } from '../../providers/Config/RenderComponent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider, useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useRelatedCollections } from '../AddNewRelation/useRelatedCollections.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { IDLabel } from '../IDLabel/index.js'\nimport { RenderTitle } from '../RenderTitle/index.js'\nimport { baseClass } from './index.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n Header,\n collectionSlug,\n drawerSlug,\n onSave: onSaveFromProps,\n}) => {\n const { config } = useConfig()\n\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const { closeModal, modalState, toggleModal } = useModal()\n const locale = useLocale()\n const { t } = useTranslation()\n const [docID, setDocID] = useState(existingDocID)\n const [isOpen, setIsOpen] = useState(false)\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n\n const Edit = collectionConfig.admin.components.views.edit.default.Component\n\n const isEditing = Boolean(docID)\n const apiURL = docID\n ? `${serverURL}${apiRoute}/${collectionSlug}/${docID}${locale?.code ? `?locale=${locale.code}` : ''}`\n : null\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n const onLoadError = React.useCallback(\n (data) => {\n if (isOpen) {\n closeModal(drawerSlug)\n toast.error(data.errors?.[0].message || t('error:unspecific'))\n }\n },\n [closeModal, drawerSlug, isOpen, t],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setDocID(args.doc.id)\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig],\n )\n\n return (\n <DocumentInfoProvider\n BeforeDocument={\n <Gutter className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-content`}>\n <h2 className={`${baseClass}__header-text`}>\n {Header || <RenderTitle element=\"span\" />}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header-close`}\n onClick={() => toggleModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <DocumentTitle />\n </Gutter>\n }\n apiURL={apiURL}\n collectionSlug={collectionConfig.slug}\n disableActions\n disableLeaveWithoutSaving\n id={docID}\n isEditing={isEditing}\n onLoadError={onLoadError}\n onSave={onSave}\n >\n <RenderComponent mappedComponent={Edit} />\n </DocumentInfoProvider>\n )\n}\n\nconst DocumentTitle: React.FC = () => {\n const { id, title } = useDocumentInfo()\n return id && id !== title ? <IDLabel id={id.toString()} /> : null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["c","_c","useModal","React","useCallback","useEffect","useState","toast","XIcon","RenderComponent","useConfig","DocumentInfoProvider","useDocumentInfo","useLocale","useTranslation","useRelatedCollections","Gutter","IDLabel","RenderTitle","baseClass","DocumentDrawerContent","t0","$","id","existingDocID","AfterFields","Header","collectionSlug","drawerSlug","onSave","onSaveFromProps","config","routes","t1","serverURL","api","apiRoute","closeModal","modalState","toggleModal","locale","t","docID","setDocID","isOpen","setIsOpen","collectionConfig","Edit","admin","components","views","edit","default","Component","isEditing","Boolean","apiURL","code","t2","t3","t4","data","error","errors","message","onLoadError","t5","args","doc","t6","_jsx","element","t8","t7","BeforeDocument","_jsxs","className","children","onClick","type","DocumentTitle","slug","disableActions","disableLeaveWithoutSaving","mappedComponent","title","toString"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { XIcon } from '../../icons/X/index.js'\nimport { RenderComponent } from '../../providers/Config/RenderComponent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider, useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useRelatedCollections } from '../AddNewRelation/useRelatedCollections.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { IDLabel } from '../IDLabel/index.js'\nimport { RenderTitle } from '../RenderTitle/index.js'\nimport { baseClass } from './index.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n AfterFields,\n Header,\n collectionSlug,\n drawerSlug,\n onSave: onSaveFromProps,\n}) => {\n const { config } = useConfig()\n\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const { closeModal, modalState, toggleModal } = useModal()\n const locale = useLocale()\n const { t } = useTranslation()\n const [docID, setDocID] = useState(existingDocID)\n const [isOpen, setIsOpen] = useState(false)\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n\n const Edit = collectionConfig.admin.components.views.edit.default.Component\n\n const isEditing = Boolean(docID)\n const apiURL = docID\n ? `${serverURL}${apiRoute}/${collectionSlug}/${docID}${locale?.code ? `?locale=${locale.code}` : ''}`\n : null\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n const onLoadError = React.useCallback(\n (data) => {\n if (isOpen) {\n closeModal(drawerSlug)\n toast.error(data.errors?.[0].message || t('error:unspecific'))\n }\n },\n [closeModal, drawerSlug, isOpen, t],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setDocID(args.doc.id)\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig],\n )\n\n return (\n <DocumentInfoProvider\n AfterFields={AfterFields}\n BeforeDocument={\n <Gutter className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-content`}>\n <h2 className={`${baseClass}__header-text`}>\n {Header || <RenderTitle element=\"span\" />}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header-close`}\n onClick={() => toggleModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <DocumentTitle />\n </Gutter>\n }\n apiURL={apiURL}\n collectionSlug={collectionConfig.slug}\n disableActions\n disableLeaveWithoutSaving\n id={docID}\n isEditing={isEditing}\n onLoadError={onLoadError}\n onSave={onSave}\n >\n <RenderComponent mappedComponent={Edit} />\n </DocumentInfoProvider>\n )\n}\n\nconst DocumentTitle: React.FC = () => {\n const { id, title } = useDocumentInfo()\n return id && id !== title ? <IDLabel id={id.toString()} /> : null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,7 @@ import type { HTMLAttributes } from 'react';
3
3
  import type { DocumentInfoContext } from '../../providers/DocumentInfo/types.js';
4
4
  import type { Props as DrawerProps } from '../Drawer/types.js';
5
5
  export type DocumentDrawerProps = {
6
+ readonly AfterFields?: React.ReactNode;
6
7
  readonly collectionSlug: string;
7
8
  readonly drawerSlug?: string;
8
9
  readonly id?: null | number | string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAChF,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAE9D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;CAChD,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE/B,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAA;AAErC,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,KAAK;IAC1F,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC7D;QACE,WAAW,EAAE,MAAM,IAAI,CAAA;QACvB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,OAAO,CAAA;QACrB,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,YAAY,EAAE,MAAM,IAAI,CAAA;KACzB;CACF,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAChF,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAE9D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;CAChD,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE/B,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAA;AAErC,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,KAAK;IAC1F,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC7D;QACE,WAAW,EAAE,MAAM,IAAI,CAAA;QACvB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,OAAO,CAAA;QACrB,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,YAAY,EAAE,MAAM,IAAI,CAAA;KACzB;CACF,CAAA"}