@payloadcms/ui 3.45.0-internal.2f73d3c → 3.45.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.
- package/dist/elements/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +20 -30
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +36 -63
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +20 -16
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +6 -5
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.d.ts +3 -4
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +26 -33
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +9 -7
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +11 -14
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +1 -1
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.js +2 -2
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/index.js +22 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +2 -4
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +31 -27
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +0 -1
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +19 -23
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.d.ts +8 -0
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.d.ts.map +1 -0
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js +18 -0
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js.map +1 -0
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +68 -75
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/hooks/useControllableState.d.ts +6 -0
- package/dist/hooks/useControllableState.d.ts.map +1 -0
- package/dist/hooks/useControllableState.js +21 -0
- package/dist/hooks/useControllableState.js.map +1 -0
- package/dist/hooks/useQueues.d.ts +1 -1
- package/dist/hooks/useQueues.d.ts.map +1 -1
- package/dist/hooks/useQueues.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +12 -11
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +12 -15
- package/dist/views/List/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -96,7 +96,8 @@ export function FormsManagerProvider({
|
|
|
96
96
|
collectionSlug,
|
|
97
97
|
drawerSlug,
|
|
98
98
|
initialFiles,
|
|
99
|
-
onSuccess
|
|
99
|
+
onSuccess,
|
|
100
|
+
setInitialFiles
|
|
100
101
|
} = useBulkUpload();
|
|
101
102
|
const [isUploading, setIsUploading] = React.useState(false);
|
|
102
103
|
const [loadingText, setLoadingText] = React.useState('');
|
|
@@ -308,14 +309,11 @@ export function FormsManagerProvider({
|
|
|
308
309
|
setLoadingText('');
|
|
309
310
|
setIsUploading(false);
|
|
310
311
|
const remainingForms = [];
|
|
311
|
-
const thumbnailIndexesToRemove = [];
|
|
312
312
|
currentForms.forEach(({
|
|
313
313
|
errorCount: errorCount_0
|
|
314
314
|
}, i_1) => {
|
|
315
315
|
if (errorCount_0) {
|
|
316
316
|
remainingForms.push(currentForms[i_1]);
|
|
317
|
-
} else {
|
|
318
|
-
thumbnailIndexesToRemove.push(i_1);
|
|
319
317
|
}
|
|
320
318
|
});
|
|
321
319
|
const successCount = Math.max(0, currentForms.length - remainingForms.length);
|
|
@@ -341,7 +339,10 @@ export function FormsManagerProvider({
|
|
|
341
339
|
}) => acc + errorCount_2, 0)
|
|
342
340
|
}
|
|
343
341
|
});
|
|
344
|
-
|
|
342
|
+
if (remainingForms.length === 0) {
|
|
343
|
+
setInitialFiles(undefined);
|
|
344
|
+
}
|
|
345
|
+
}, [setInitialFiles, actionURL, collectionSlug, getUploadHandler, t, forms, activeIndex, closeModal, drawerSlug, onSuccess]);
|
|
345
346
|
const bulkUpdateForm = React.useCallback(async (updatedFields, afterStateUpdate) => {
|
|
346
347
|
for (let i_2 = 0; i_2 < forms.length; i_2++) {
|
|
347
348
|
Object.entries(updatedFields).forEach(([path, value]) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","qs","React","toast","fieldReducer","useConfig","useLocale","useServerFunctions","useTranslation","useUploadHandlers","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","bulkUpdateForm","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","totalErrorCount","updateUploadEdits","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","getUploadHandler","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","onSuccess","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","skipValidation","_err","index","currentFormsData","type","map","form","i","errorCount","formID","formState","uploadEdits","files","length","isLoading","key","count","overrides","currentForms","newDocs","total","actionURLWithParams","addQueryPrefix","req","status","doc","push","fieldErrors","nonFieldErrors","errors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","Array","isArray","data","forEach","dataError","path","error","_","remainingForms","thumbnailIndexesToRemove","successCount","Math","max","success","acc","updatedFields","afterStateUpdate","Object","entries","value","newFormErrorCount","values","valid","resetUploadEdits","useEffect","_jsxs","_jsx","animationDuration","overlayType","show","useFormsManager","use"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n Data,\n DocumentSlots,\n FormState,\n SanitizedDocumentPermissions,\n UploadEdits,\n} 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 { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../../providers/UploadHandlers/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.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 bulkUpdateForm: (\n updatedFields: Record<string, unknown>,\n afterStateUpdate?: () => void,\n ) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\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 resetUploadEdits?: () => 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 readonly updateUploadEdits: (args: UploadEdits) => void\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n bulkUpdateForm: () => null,\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\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 updateUploadEdits: () => {},\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\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 { getDocumentSlots, getFormState } = useServerFunctions()\n const { getUploadHandler } = useUploadHandlers()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\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 formsRef = React.useRef(forms)\n formsRef.current = forms\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug, initialFiles, onSuccess } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\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 initializeSharedDocPermissions = 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: SanitizedDocumentPermissions = 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)\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 // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n skipValidation: true,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\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 formID: form.formID,\n formState: currentFormsData,\n uploadEdits: form.uploadEdits,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n if (forms.length) {\n // save the state of the current form before adding new files\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: getFormDataRef.current(),\n index: activeIndex,\n })\n }\n\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, activeIndex, forms],\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 formID: currentForms[activeIndex].formID,\n formState: currentFormsData,\n uploadEdits: currentForms[activeIndex].uploadEdits,\n }\n const newDocs = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const actionURLWithParams = `${actionURL}${qs.stringify(\n {\n uploadEdits: form?.uploadEdits || undefined,\n },\n {\n addQueryPrefix: true,\n },\n )}`\n\n const req = await fetch(actionURLWithParams, {\n body: await createFormData(\n form.formState,\n overrides,\n collectionSlug,\n getUploadHandler({ collectionSlug }),\n ),\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 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?.path) {\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 formID: currentForms[i].formID,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413 || req.status === 400) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = []\n const thumbnailIndexesToRemove = []\n\n currentForms.forEach(({ errorCount }, i) => {\n if (errorCount) {\n remainingForms.push(currentForms[i])\n } else {\n thumbnailIndexesToRemove.push(i)\n }\n })\n\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 [\n actionURL,\n collectionSlug,\n getUploadHandler,\n t,\n forms,\n activeIndex,\n closeModal,\n drawerSlug,\n onSuccess,\n ],\n )\n\n const bulkUpdateForm = React.useCallback(\n async (updatedFields: Record<string, unknown>, afterStateUpdate?: () => void) => {\n for (let i = 0; i < forms.length; i++) {\n Object.entries(updatedFields).forEach(([path, value]) => {\n if (forms[i].formState[path]) {\n forms[i].formState[path].value = value\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[i].errorCount,\n formState: forms[i].formState,\n index: i,\n })\n }\n })\n\n if (typeof afterStateUpdate === 'function') {\n afterStateUpdate()\n }\n\n if (hasSubmitted) {\n const { state } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: null,\n formState: forms[i].formState,\n operation: 'create',\n schemaPath: collectionSlug,\n })\n\n const newFormErrorCount = Object.values(state).reduce(\n (acc, value) => (value?.valid === false ? acc + 1 : acc),\n 0,\n )\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: newFormErrorCount,\n formState: state,\n index: i,\n })\n }\n }\n },\n [collectionSlug, docPermissions, forms, getFormState, hasSubmitted],\n )\n\n const updateUploadEdits = React.useCallback<FormsManagerContext['updateUploadEdits']>(\n (uploadEdits) => {\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: forms[activeIndex].formState,\n index: activeIndex,\n uploadEdits,\n })\n },\n [activeIndex, forms],\n )\n\n const resetUploadEdits = React.useCallback<FormsManagerContext['resetUploadEdits']>(() => {\n dispatch({\n type: 'REPLACE',\n state: {\n forms: forms.map((form) => ({\n ...form,\n uploadEdits: {},\n })),\n },\n })\n }, [forms])\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\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 initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n ])\n\n return (\n <Context\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n bulkUpdateForm,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n resetUploadEdits,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n totalErrorCount,\n updateUploadEdits,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context>\n )\n}\n\nexport function useFormsManager() {\n return React.use(Context)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","qs","React","toast","fieldReducer","useConfig","useLocale","useServerFunctions","useTranslation","useUploadHandlers","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","bulkUpdateForm","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","totalErrorCount","updateUploadEdits","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","getUploadHandler","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","onSuccess","setInitialFiles","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","skipValidation","_err","index","currentFormsData","type","map","form","i","errorCount","formID","formState","uploadEdits","files","length","isLoading","key","count","overrides","currentForms","newDocs","total","actionURLWithParams","addQueryPrefix","req","status","doc","push","fieldErrors","nonFieldErrors","errors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","Array","isArray","data","forEach","dataError","path","error","_","remainingForms","successCount","Math","max","success","acc","updatedFields","afterStateUpdate","Object","entries","value","newFormErrorCount","values","valid","resetUploadEdits","useEffect","_jsxs","_jsx","animationDuration","overlayType","show","useFormsManager","use"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n Data,\n DocumentSlots,\n FormState,\n SanitizedDocumentPermissions,\n UploadEdits,\n} 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 { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../../providers/UploadHandlers/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.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 bulkUpdateForm: (\n updatedFields: Record<string, unknown>,\n afterStateUpdate?: () => void,\n ) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\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 resetUploadEdits?: () => 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 readonly updateUploadEdits: (args: UploadEdits) => void\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n bulkUpdateForm: () => null,\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\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 updateUploadEdits: () => {},\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\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 { getDocumentSlots, getFormState } = useServerFunctions()\n const { getUploadHandler } = useUploadHandlers()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\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 formsRef = React.useRef(forms)\n formsRef.current = forms\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug, initialFiles, onSuccess, setInitialFiles } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\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 initializeSharedDocPermissions = 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: SanitizedDocumentPermissions = 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)\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 // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n skipValidation: true,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\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 formID: form.formID,\n formState: currentFormsData,\n uploadEdits: form.uploadEdits,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n if (forms.length) {\n // save the state of the current form before adding new files\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: getFormDataRef.current(),\n index: activeIndex,\n })\n }\n\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, activeIndex, forms],\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 formID: currentForms[activeIndex].formID,\n formState: currentFormsData,\n uploadEdits: currentForms[activeIndex].uploadEdits,\n }\n const newDocs = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const actionURLWithParams = `${actionURL}${qs.stringify(\n {\n uploadEdits: form?.uploadEdits || undefined,\n },\n {\n addQueryPrefix: true,\n },\n )}`\n\n const req = await fetch(actionURLWithParams, {\n body: await createFormData(\n form.formState,\n overrides,\n collectionSlug,\n getUploadHandler({ collectionSlug }),\n ),\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 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?.path) {\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 formID: currentForms[i].formID,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413 || req.status === 400) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = []\n\n currentForms.forEach(({ errorCount }, i) => {\n if (errorCount) {\n remainingForms.push(currentForms[i])\n }\n })\n\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 if (remainingForms.length === 0) {\n setInitialFiles(undefined)\n }\n },\n [\n setInitialFiles,\n actionURL,\n collectionSlug,\n getUploadHandler,\n t,\n forms,\n activeIndex,\n closeModal,\n drawerSlug,\n onSuccess,\n ],\n )\n\n const bulkUpdateForm = React.useCallback(\n async (updatedFields: Record<string, unknown>, afterStateUpdate?: () => void) => {\n for (let i = 0; i < forms.length; i++) {\n Object.entries(updatedFields).forEach(([path, value]) => {\n if (forms[i].formState[path]) {\n forms[i].formState[path].value = value\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[i].errorCount,\n formState: forms[i].formState,\n index: i,\n })\n }\n })\n\n if (typeof afterStateUpdate === 'function') {\n afterStateUpdate()\n }\n\n if (hasSubmitted) {\n const { state } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: null,\n formState: forms[i].formState,\n operation: 'create',\n schemaPath: collectionSlug,\n })\n\n const newFormErrorCount = Object.values(state).reduce(\n (acc, value) => (value?.valid === false ? acc + 1 : acc),\n 0,\n )\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: newFormErrorCount,\n formState: state,\n index: i,\n })\n }\n }\n },\n [collectionSlug, docPermissions, forms, getFormState, hasSubmitted],\n )\n\n const updateUploadEdits = React.useCallback<FormsManagerContext['updateUploadEdits']>(\n (uploadEdits) => {\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: forms[activeIndex].formState,\n index: activeIndex,\n uploadEdits,\n })\n },\n [activeIndex, forms],\n )\n\n const resetUploadEdits = React.useCallback<FormsManagerContext['resetUploadEdits']>(() => {\n dispatch({\n type: 'REPLACE',\n state: {\n forms: forms.map((form) => ({\n ...form,\n uploadEdits: {},\n })),\n },\n })\n }, [forms])\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\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 initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n ])\n\n return (\n <Context\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n bulkUpdateForm,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n resetUploadEdits,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n totalErrorCount,\n updateUploadEdits,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context>\n )\n}\n\nexport function useFormsManager() {\n return React.use(Context)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,21 +6,20 @@ export type BulkUploadProps = {
|
|
|
6
6
|
export declare function BulkUploadDrawer(): React.JSX.Element;
|
|
7
7
|
type BulkUploadContext = {
|
|
8
8
|
collectionSlug: string;
|
|
9
|
-
currentActivePath: string;
|
|
10
9
|
drawerSlug: string;
|
|
11
10
|
initialFiles: FileList;
|
|
12
11
|
maxFiles: number;
|
|
13
12
|
onCancel: () => void;
|
|
14
13
|
onSuccess: (newDocs: JsonObject[], errorCount: number) => void;
|
|
15
14
|
setCollectionSlug: (slug: string) => void;
|
|
16
|
-
setCurrentActivePath: (path: string) => void;
|
|
17
15
|
setInitialFiles: (files: FileList) => void;
|
|
18
16
|
setMaxFiles: (maxFiles: number) => void;
|
|
19
17
|
setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void;
|
|
20
|
-
setOnSuccess: (
|
|
18
|
+
setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void;
|
|
21
19
|
};
|
|
22
|
-
export declare function BulkUploadProvider({ children }: {
|
|
20
|
+
export declare function BulkUploadProvider({ children, drawerSlugPrefix, }: {
|
|
23
21
|
readonly children: React.ReactNode;
|
|
22
|
+
readonly drawerSlugPrefix?: string;
|
|
24
23
|
}): React.JSX.Element;
|
|
25
24
|
export declare const useBulkUpload: () => BulkUploadContext;
|
|
26
25
|
export declare function useBulkUploadDrawerSlug(): string;
|
|
@@ -1 +1 @@
|
|
|
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;AAIzC,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
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;AAIzC,OAAO,KAAK,MAAM,OAAO,CAAA;AA+DzB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,CAAA;AAED,wBAAgB,gBAAgB,sBAc/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,EACjC,QAAQ,EACR,gBAAgB,GACjB,EAAE;IACD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC,qBA8CA;AAED,eAAO,MAAM,aAAa,yBAA2B,CAAA;AAErD,wBAAgB,uBAAuB,WAItC"}
|
|
@@ -7,6 +7,7 @@ import { validateMimeType } from 'payload/shared';
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import { toast } from 'sonner';
|
|
9
9
|
import { useConfig } from '../../providers/Config/index.js';
|
|
10
|
+
import { EditDepthProvider } from '../../providers/EditDepth/index.js';
|
|
10
11
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
11
12
|
import { UploadControlsProvider } from '../../providers/UploadControls/index.js';
|
|
12
13
|
import { Drawer, useDrawerDepth } from '../Drawer/index.js';
|
|
@@ -77,7 +78,9 @@ export function BulkUploadDrawer() {
|
|
|
77
78
|
slug: drawerSlug,
|
|
78
79
|
children: _jsx(FormsManagerProvider, {
|
|
79
80
|
children: _jsx(UploadControlsProvider, {
|
|
80
|
-
children: _jsx(
|
|
81
|
+
children: _jsx(EditDepthProvider, {
|
|
82
|
+
children: _jsx(DrawerContent, {})
|
|
83
|
+
})
|
|
81
84
|
})
|
|
82
85
|
})
|
|
83
86
|
});
|
|
@@ -90,31 +93,29 @@ export function BulkUploadDrawer() {
|
|
|
90
93
|
}
|
|
91
94
|
const Context = /*#__PURE__*/React.createContext({
|
|
92
95
|
collectionSlug: '',
|
|
93
|
-
currentActivePath: undefined,
|
|
94
96
|
drawerSlug: '',
|
|
95
97
|
initialFiles: undefined,
|
|
96
98
|
maxFiles: undefined,
|
|
97
99
|
onCancel: () => null,
|
|
98
100
|
onSuccess: () => null,
|
|
99
101
|
setCollectionSlug: () => null,
|
|
100
|
-
setCurrentActivePath: () => null,
|
|
101
102
|
setInitialFiles: () => null,
|
|
102
103
|
setMaxFiles: () => null,
|
|
103
104
|
setOnCancel: () => null,
|
|
104
105
|
setOnSuccess: () => null
|
|
105
106
|
});
|
|
106
107
|
export function BulkUploadProvider(t0) {
|
|
107
|
-
const $ = _c(
|
|
108
|
+
const $ = _c(14);
|
|
108
109
|
const {
|
|
109
|
-
children
|
|
110
|
+
children,
|
|
111
|
+
drawerSlugPrefix
|
|
110
112
|
} = t0;
|
|
111
113
|
const [collection, setCollection] = React.useState();
|
|
112
|
-
const [
|
|
114
|
+
const [onSuccessFunction, setOnSuccessFunction] = React.useState();
|
|
113
115
|
const [onCancelFunction, setOnCancelFunction] = React.useState();
|
|
114
116
|
const [initialFiles, setInitialFiles] = React.useState(undefined);
|
|
115
117
|
const [maxFiles, setMaxFiles] = React.useState(undefined);
|
|
116
|
-
const
|
|
117
|
-
const drawerSlug = useBulkUploadDrawerSlug();
|
|
118
|
+
const drawerSlug = `${drawerSlugPrefix ? `${drawerSlugPrefix}-` : ""}${useBulkUploadDrawerSlug()}`;
|
|
118
119
|
let t1;
|
|
119
120
|
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
120
121
|
t1 = slug => {
|
|
@@ -127,11 +128,8 @@ export function BulkUploadProvider(t0) {
|
|
|
127
128
|
const setCollectionSlug = t1;
|
|
128
129
|
let t2;
|
|
129
130
|
if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
130
|
-
t2 =
|
|
131
|
-
|
|
132
|
-
...prev,
|
|
133
|
-
[path]: onSuccess
|
|
134
|
-
}));
|
|
131
|
+
t2 = onSuccess => {
|
|
132
|
+
setOnSuccessFunction(() => onSuccess);
|
|
135
133
|
};
|
|
136
134
|
$[1] = t2;
|
|
137
135
|
} else {
|
|
@@ -151,32 +149,28 @@ export function BulkUploadProvider(t0) {
|
|
|
151
149
|
t3 = $[3];
|
|
152
150
|
}
|
|
153
151
|
let t4;
|
|
154
|
-
if ($[4] !==
|
|
152
|
+
if ($[4] !== onSuccessFunction) {
|
|
155
153
|
t4 = (docIDs, errorCount) => {
|
|
156
|
-
if (
|
|
157
|
-
const onSuccessFunction = onSuccessFunctionMap[currentActivePath];
|
|
154
|
+
if (typeof onSuccessFunction === "function") {
|
|
158
155
|
onSuccessFunction(docIDs, errorCount);
|
|
159
156
|
}
|
|
160
157
|
};
|
|
161
|
-
$[4] =
|
|
162
|
-
$[5] =
|
|
163
|
-
$[6] = t4;
|
|
158
|
+
$[4] = onSuccessFunction;
|
|
159
|
+
$[5] = t4;
|
|
164
160
|
} else {
|
|
165
|
-
t4 = $[
|
|
161
|
+
t4 = $[5];
|
|
166
162
|
}
|
|
167
163
|
let t5;
|
|
168
|
-
if ($[
|
|
164
|
+
if ($[6] !== children || $[7] !== collection || $[8] !== drawerSlug || $[9] !== initialFiles || $[10] !== maxFiles || $[11] !== t3 || $[12] !== t4) {
|
|
169
165
|
t5 = _jsx(Context, {
|
|
170
166
|
value: {
|
|
171
167
|
collectionSlug: collection,
|
|
172
|
-
currentActivePath,
|
|
173
168
|
drawerSlug,
|
|
174
169
|
initialFiles,
|
|
175
170
|
maxFiles,
|
|
176
171
|
onCancel: t3,
|
|
177
172
|
onSuccess: t4,
|
|
178
173
|
setCollectionSlug,
|
|
179
|
-
setCurrentActivePath,
|
|
180
174
|
setInitialFiles,
|
|
181
175
|
setMaxFiles,
|
|
182
176
|
setOnCancel: setOnCancelFunction,
|
|
@@ -186,17 +180,16 @@ export function BulkUploadProvider(t0) {
|
|
|
186
180
|
children: [children, _jsx(BulkUploadDrawer, {})]
|
|
187
181
|
})
|
|
188
182
|
});
|
|
189
|
-
$[
|
|
190
|
-
$[
|
|
191
|
-
$[
|
|
192
|
-
$[
|
|
193
|
-
$[
|
|
194
|
-
$[
|
|
195
|
-
$[
|
|
196
|
-
$[
|
|
197
|
-
$[15] = t5;
|
|
183
|
+
$[6] = children;
|
|
184
|
+
$[7] = collection;
|
|
185
|
+
$[8] = drawerSlug;
|
|
186
|
+
$[9] = initialFiles;
|
|
187
|
+
$[10] = maxFiles;
|
|
188
|
+
$[11] = t3;
|
|
189
|
+
$[12] = t4;
|
|
190
|
+
$[13] = t5;
|
|
198
191
|
} else {
|
|
199
|
-
t5 = $[
|
|
192
|
+
t5 = $[13];
|
|
200
193
|
}
|
|
201
194
|
return t5;
|
|
202
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","validateMimeType","React","toast","useConfig","useTranslation","UploadControlsProvider","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","getEntityConfig","t","uploadCollection","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","_jsx","acceptMimeTypes","join","onCancel","BulkUploadDrawer","$","t0","gutter","Header","slug","children","Context","createContext","currentActivePath","initialFiles","maxFiles","onSuccess","setCollectionSlug","setCurrentActivePath","setInitialFiles","setMaxFiles","setOnCancel","setOnSuccess","BulkUploadProvider","collection","setCollection","useState","onSuccessFunctionMap","setOnSuccessFunctionMap","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","t1","Symbol","for","t2","path","prev","t3","t4","docIDs","errorCount","Object","hasOwn","onSuccessFunction","t5","value","_jsxs","Fragment","use","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { Drawer, useDrawerDepth } 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 const { getEntityConfig } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = getEntityConfig({ collectionSlug })\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n }\n },\n [addFiles, t, uploadMimeTypes],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n onCancel={() => closeModal(drawerSlug)}\n onDrop={onDrop}\n />\n )\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const { drawerSlug } = useBulkUpload()\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <UploadControlsProvider>\n <DrawerContent />\n </UploadControlsProvider>\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\ntype BulkUploadContext = {\n collectionSlug: string\n currentActivePath: 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 setCurrentActivePath: (path: string) => void\n setInitialFiles: (files: FileList) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (path: string, onSuccess: BulkUploadContext['onSuccess']) => void\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n currentActivePath: undefined,\n drawerSlug: '',\n initialFiles: undefined,\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n setCollectionSlug: () => null,\n setCurrentActivePath: () => 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 [onSuccessFunctionMap, setOnSuccessFunctionMap] =\n React.useState<Record<string, 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 [currentActivePath, setCurrentActivePath] = React.useState<string>(undefined)\n const drawerSlug = useBulkUploadDrawerSlug()\n\n const setCollectionSlug: BulkUploadContext['setCollectionSlug'] = (slug) => {\n setCollection(slug)\n }\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = React.useCallback((path, onSuccess) => {\n setOnSuccessFunctionMap((prev) => ({\n ...prev,\n [path]: onSuccess,\n }))\n }, [])\n\n return (\n <Context\n value={{\n collectionSlug: collection,\n currentActivePath,\n drawerSlug,\n initialFiles,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (docIDs, errorCount) => {\n if (onSuccessFunctionMap && Object.hasOwn(onSuccessFunctionMap, currentActivePath)) {\n const onSuccessFunction = onSuccessFunctionMap[currentActivePath]\n onSuccessFunction(docIDs, errorCount)\n }\n },\n setCollectionSlug,\n setCurrentActivePath,\n setInitialFiles,\n setMaxFiles,\n setOnCancel: setOnCancelFunction,\n setOnSuccess,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context>\n )\n}\n\nexport const useBulkUpload = () => React.use(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\n\n return `${drawerSlug}-${depth || 1}`\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","validateMimeType","React","toast","useConfig","EditDepthProvider","useTranslation","UploadControlsProvider","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","getEntityConfig","t","uploadCollection","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","_jsx","acceptMimeTypes","join","onCancel","BulkUploadDrawer","$","t0","gutter","Header","slug","children","Context","createContext","initialFiles","maxFiles","onSuccess","setCollectionSlug","setInitialFiles","setMaxFiles","setOnCancel","setOnSuccess","BulkUploadProvider","drawerSlugPrefix","collection","setCollection","useState","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","t1","Symbol","for","t2","t3","t4","docIDs","errorCount","t5","value","_jsxs","Fragment","use","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { Drawer, useDrawerDepth } 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 const { getEntityConfig } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = getEntityConfig({ collectionSlug })\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n }\n },\n [addFiles, t, uploadMimeTypes],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n onCancel={() => closeModal(drawerSlug)}\n onDrop={onDrop}\n />\n )\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const { drawerSlug } = useBulkUpload()\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <UploadControlsProvider>\n <EditDepthProvider>\n <DrawerContent />\n </EditDepthProvider>\n </UploadControlsProvider>\n </FormsManagerProvider>\n </Drawer>\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({\n children,\n drawerSlugPrefix,\n}: {\n readonly children: React.ReactNode\n readonly drawerSlugPrefix?: string\n}) {\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 = `${drawerSlugPrefix ? `${drawerSlugPrefix}-` : ''}${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\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>\n )\n}\n\nexport const useBulkUpload = () => React.use(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\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,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmK/D,CAAA"}
|
|
@@ -44,11 +44,13 @@ export const DocumentDrawerContent = ({
|
|
|
44
44
|
} = useServerFunctions();
|
|
45
45
|
const [DocumentView, setDocumentView] = useState(undefined);
|
|
46
46
|
const [isLoading, setIsLoading] = useState(true);
|
|
47
|
-
const
|
|
48
|
-
const getDocumentView = useCallback(docID => {
|
|
47
|
+
const hasInitialized = useRef(false);
|
|
48
|
+
const getDocumentView = useCallback((docID, showLoadingIndicator = false) => {
|
|
49
49
|
const controller = handleAbortRef(abortGetDocumentViewRef);
|
|
50
50
|
const fetchDocumentView = async () => {
|
|
51
|
-
|
|
51
|
+
if (showLoadingIndicator) {
|
|
52
|
+
setIsLoading(true);
|
|
53
|
+
}
|
|
52
54
|
try {
|
|
53
55
|
const result = await renderDocument({
|
|
54
56
|
collectionSlug,
|
|
@@ -104,12 +106,12 @@ export const DocumentDrawerContent = ({
|
|
|
104
106
|
closeModal(drawerSlug);
|
|
105
107
|
}, [onDeleteFromProps, closeModal, drawerSlug, collectionConfig]);
|
|
106
108
|
const clearDoc = useCallback(() => {
|
|
107
|
-
getDocumentView();
|
|
109
|
+
getDocumentView(undefined, true);
|
|
108
110
|
}, [getDocumentView]);
|
|
109
111
|
useEffect(() => {
|
|
110
|
-
if (!DocumentView && !
|
|
111
|
-
getDocumentView(existingDocID);
|
|
112
|
-
|
|
112
|
+
if (!DocumentView && !hasInitialized.current) {
|
|
113
|
+
getDocumentView(existingDocID, true);
|
|
114
|
+
hasInitialized.current = true;
|
|
113
115
|
}
|
|
114
116
|
}, [DocumentView, getDocumentView, existingDocID]);
|
|
115
117
|
// Cleanup any pending requests when the component unmounts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useLocale","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","getEntityConfig","locale","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","
|
|
1
|
+
{"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useLocale","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","getEntityConfig","locale","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasInitialized","getDocumentView","docID","showLoadingIndicator","controller","fetchDocumentView","result","signal","Document","error","message","current","args","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n}) => {\n const { getEntityConfig } = useConfig()\n const locale = useLocale()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n const hasInitialized = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: number | string, showLoadingIndicator: boolean = false) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n if (showLoadingIndicator) {\n setIsLoading(true)\n }\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterCreate,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n // toast.error(data?.errors?.[0].message || t('error:unspecific'))\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n renderDocument,\n redirectAfterCreate,\n closeModal,\n overrideEntityVisibility,\n t,\n locale,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView(undefined, true)\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasInitialized.current) {\n getDocumentView(existingDocID, true)\n hasInitialized.current = true\n }\n }, [DocumentView, getDocumentView, existingDocID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -48,7 +48,7 @@ export const StaticFileDetails = props => {
|
|
|
48
48
|
mimeType: mimeType,
|
|
49
49
|
url: url,
|
|
50
50
|
width: width
|
|
51
|
-
}), (enableAdjustments || customUploadActions) && /*#__PURE__*/_jsx(UploadActions, {
|
|
51
|
+
}), (enableAdjustments || hasImageSizes && doc.filename || customUploadActions) && /*#__PURE__*/_jsx(UploadActions, {
|
|
52
52
|
customActions: customUploadActions,
|
|
53
53
|
enableAdjustments: Boolean(enableAdjustments),
|
|
54
54
|
enablePreviewSizes: hasImageSizes && doc.filename,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","Button","Thumbnail","UploadActions","FileMeta","baseClass","StaticFileDetails","props","customUploadActions","doc","enableAdjustments","handleRemove","hasImageSizes","hideRemoveFile","imageCacheTag","uploadConfig","filename","filesize","height","mimeType","thumbnailURL","url","width","previewAllowed","displayPreview","_jsx","className","_jsxs","fileSrc","customActions","Boolean","enablePreviewSizes","buttonStyle","icon","iconStyle","onClick","round"],"sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { Button } from '../../Button/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport { UploadActions } from '../../Upload/index.js'\nimport { FileMeta } from '../FileMeta/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-details'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nexport type StaticFileDetailsProps = {\n customUploadActions?: React.ReactNode[]\n doc: {\n sizes?: FileSizes\n } & Data\n enableAdjustments?: boolean\n handleRemove?: () => void\n hasImageSizes?: boolean\n hideRemoveFile?: boolean\n imageCacheTag?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const StaticFileDetails: React.FC<StaticFileDetailsProps> = (props) => {\n const {\n customUploadActions,\n doc,\n enableAdjustments,\n handleRemove,\n hasImageSizes,\n hideRemoveFile,\n imageCacheTag,\n uploadConfig,\n } = props\n\n const { filename, filesize, height, mimeType, thumbnailURL, url, width } = doc\n\n const previewAllowed = uploadConfig.displayPreview ?? true\n\n return (\n <div className={baseClass}>\n <header>\n {previewAllowed && (\n <Thumbnail\n // size=\"small\"\n className={`${baseClass}__thumbnail`}\n doc={doc}\n fileSrc={thumbnailURL || url}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n )}\n <div className={`${baseClass}__main-detail`}>\n <FileMeta\n filename={filename as string}\n filesize={filesize as number}\n height={height as number}\n mimeType={mimeType as string}\n url={url as string}\n width={width as number}\n />\n\n {(enableAdjustments || customUploadActions) && (\n <UploadActions\n customActions={customUploadActions}\n enableAdjustments={Boolean(enableAdjustments)}\n enablePreviewSizes={hasImageSizes && doc.filename}\n mimeType={mimeType}\n />\n )}\n </div>\n {!hideRemoveFile && handleRemove && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleRemove}\n round\n />\n )}\n </header>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAiBlB,OAAO,MAAMC,iBAAA,GAAuDC,KAAA;EAClE,MAAM;IACJC,mBAAmB;IACnBC,GAAG;IACHC,iBAAiB;IACjBC,YAAY;IACZC,aAAa;IACbC,cAAc;IACdC,aAAa;IACbC;EAAY,CACb,GAAGR,KAAA;EAEJ,MAAM;IAAES,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,YAAY;IAAEC,GAAG;IAAEC;EAAK,CAAE,GAAGb,GAAA;EAE3E,MAAMc,cAAA,GAAiBR,YAAA,CAAaS,cAAc,IAAI;EAEtD,oBACEC,IAAA,CAAC;IAAIC,SAAA,EAAWrB,SAAA;cACd,aAAAsB,KAAA,CAAC;iBACEJ,cAAA,iBACCE,IAAA,CAACvB,SAAA;QACC;QACAwB,SAAA,EAAW,GAAGrB,SAAA,aAAsB;QACpCI,GAAA,EAAKA,GAAA;QACLmB,OAAA,EAASR,YAAA,IAAgBC,GAAA;QACzBP,aAAA,EAAeA,aAAA;QACfC,YAAA,EAAcA;uBAGlBY,KAAA,CAAC;QAAID,SAAA,EAAW,GAAGrB,SAAA,eAAwB;gCACzCoB,IAAA,CAACrB,QAAA;UACCY,QAAA,EAAUA,QAAA;UACVC,QAAA,EAAUA,QAAA;UACVC,MAAA,EAAQA,MAAA;UACRC,QAAA,EAAUA,QAAA;UACVE,GAAA,EAAKA,GAAA;UACLC,KAAA,EAAOA;YAGP,CAAAZ,iBAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","Button","Thumbnail","UploadActions","FileMeta","baseClass","StaticFileDetails","props","customUploadActions","doc","enableAdjustments","handleRemove","hasImageSizes","hideRemoveFile","imageCacheTag","uploadConfig","filename","filesize","height","mimeType","thumbnailURL","url","width","previewAllowed","displayPreview","_jsx","className","_jsxs","fileSrc","customActions","Boolean","enablePreviewSizes","buttonStyle","icon","iconStyle","onClick","round"],"sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { Button } from '../../Button/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport { UploadActions } from '../../Upload/index.js'\nimport { FileMeta } from '../FileMeta/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-details'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nexport type StaticFileDetailsProps = {\n customUploadActions?: React.ReactNode[]\n doc: {\n sizes?: FileSizes\n } & Data\n enableAdjustments?: boolean\n handleRemove?: () => void\n hasImageSizes?: boolean\n hideRemoveFile?: boolean\n imageCacheTag?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const StaticFileDetails: React.FC<StaticFileDetailsProps> = (props) => {\n const {\n customUploadActions,\n doc,\n enableAdjustments,\n handleRemove,\n hasImageSizes,\n hideRemoveFile,\n imageCacheTag,\n uploadConfig,\n } = props\n\n const { filename, filesize, height, mimeType, thumbnailURL, url, width } = doc\n\n const previewAllowed = uploadConfig.displayPreview ?? true\n\n return (\n <div className={baseClass}>\n <header>\n {previewAllowed && (\n <Thumbnail\n // size=\"small\"\n className={`${baseClass}__thumbnail`}\n doc={doc}\n fileSrc={thumbnailURL || url}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n )}\n <div className={`${baseClass}__main-detail`}>\n <FileMeta\n filename={filename as string}\n filesize={filesize as number}\n height={height as number}\n mimeType={mimeType as string}\n url={url as string}\n width={width as number}\n />\n\n {(enableAdjustments || (hasImageSizes && doc.filename) || customUploadActions) && (\n <UploadActions\n customActions={customUploadActions}\n enableAdjustments={Boolean(enableAdjustments)}\n enablePreviewSizes={hasImageSizes && doc.filename}\n mimeType={mimeType}\n />\n )}\n </div>\n {!hideRemoveFile && handleRemove && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleRemove}\n round\n />\n )}\n </header>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAiBlB,OAAO,MAAMC,iBAAA,GAAuDC,KAAA;EAClE,MAAM;IACJC,mBAAmB;IACnBC,GAAG;IACHC,iBAAiB;IACjBC,YAAY;IACZC,aAAa;IACbC,cAAc;IACdC,aAAa;IACbC;EAAY,CACb,GAAGR,KAAA;EAEJ,MAAM;IAAES,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,YAAY;IAAEC,GAAG;IAAEC;EAAK,CAAE,GAAGb,GAAA;EAE3E,MAAMc,cAAA,GAAiBR,YAAA,CAAaS,cAAc,IAAI;EAEtD,oBACEC,IAAA,CAAC;IAAIC,SAAA,EAAWrB,SAAA;cACd,aAAAsB,KAAA,CAAC;iBACEJ,cAAA,iBACCE,IAAA,CAACvB,SAAA;QACC;QACAwB,SAAA,EAAW,GAAGrB,SAAA,aAAsB;QACpCI,GAAA,EAAKA,GAAA;QACLmB,OAAA,EAASR,YAAA,IAAgBC,GAAA;QACzBP,aAAA,EAAeA,aAAA;QACfC,YAAA,EAAcA;uBAGlBY,KAAA,CAAC;QAAID,SAAA,EAAW,GAAGrB,SAAA,eAAwB;gCACzCoB,IAAA,CAACrB,QAAA;UACCY,QAAA,EAAUA,QAAA;UACVC,QAAA,EAAUA,QAAA;UACVC,MAAA,EAAQA,MAAA;UACRC,QAAA,EAAUA,QAAA;UACVE,GAAA,EAAKA,GAAA;UACLC,KAAA,EAAOA;YAGP,CAAAZ,iBAAA,IAAsBE,aAAA,IAAiBH,GAAA,CAAIO,QAAQ,IAAKR,mBAAkB,kBAC1EiB,IAAA,CAACtB,aAAA;UACC0B,aAAA,EAAerB,mBAAA;UACfE,iBAAA,EAAmBoB,OAAA,CAAQpB,iBAAA;UAC3BqB,kBAAA,EAAoBnB,aAAA,IAAiBH,GAAA,CAAIO,QAAQ;UACjDG,QAAA,EAAUA;;UAIf,CAACN,cAAA,IAAkBF,YAAA,iBAClBc,IAAA,CAACxB,MAAA;QACC+B,WAAA,EAAY;QACZN,SAAA,EAAW,GAAGrB,SAAA,UAAmB;QACjC4B,IAAA,EAAK;QACLC,SAAA,EAAU;QACVC,OAAA,EAASxB,YAAA;QACTyB,KAAK;;;;AAMjB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListBulkUploadButton.d.ts","sourceRoot":"","sources":["../../../../src/elements/ListHeader/TitleActions/ListBulkUploadButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,wBAAgB,oBAAoB,CAAC,EACnC,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EAAE,uBAAuB,GACxC,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B,
|
|
1
|
+
{"version":3,"file":"ListBulkUploadButton.d.ts","sourceRoot":"","sources":["../../../../src/elements/ListHeader/TitleActions/ListBulkUploadButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,wBAAgB,oBAAoB,CAAC,EACnC,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EAAE,uBAAuB,GACxC,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B,qBA8CA"}
|