@payloadcms/ui 3.18.0-canary.df484f6 → 3.18.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/AddNewRelation/useRelatedCollections.d.ts.map +1 -1
- package/dist/elements/AddNewRelation/useRelatedCollections.js +6 -4
- package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.js +4 -2
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +4 -4
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +6 -6
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/Localizer/index.d.ts.map +1 -1
- package/dist/elements/Localizer/index.js +21 -21
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.js +79 -100
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/SortColumn/index.scss +0 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -0
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +33 -40
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.js +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.js +30 -11
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +72 -33
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +18 -11
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/validateWhereQuery.js +2 -2
- package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
- package/dist/exports/client/{CodeEditor-W7RSWONH.js → CodeEditor-BMYVMDNZ.js} +2 -2
- package/dist/exports/client/chunk-CQQHQHCB.js +26 -0
- package/dist/exports/client/{chunk-3MXUY6XL.js.map → chunk-CQQHQHCB.js.map} +3 -3
- package/dist/exports/client/index.js +22 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +3 -3
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +32 -47
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/index.js +3 -2
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +5 -5
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +14 -8
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/forms/Form/reduceToSerializableFields.d.ts +4 -0
- package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
- package/dist/forms/Form/reduceToSerializableFields.js +15 -12
- package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +26 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/providers/Config/index.d.ts +22 -13
- package/dist/providers/Config/index.d.ts.map +1 -1
- package/dist/providers/Config/index.js +45 -61
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +62 -54
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/scss/toasts.scss +2 -0
- package/dist/styles.css +1 -1
- package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
- package/dist/utilities/handleFormStateLocking.js +3 -3
- package/dist/utilities/handleFormStateLocking.js.map +1 -1
- package/dist/utilities/isURLAllowed.d.ts +3 -0
- package/dist/utilities/isURLAllowed.d.ts.map +1 -0
- package/dist/utilities/isURLAllowed.js +31 -0
- package/dist/utilities/isURLAllowed.js.map +1 -0
- package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Auth/APIKey.js +4 -3
- package/dist/views/Edit/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +5 -4
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/exports/client/chunk-3MXUY6XL.js +0 -26
- /package/dist/exports/client/{CodeEditor-W7RSWONH.js.map → CodeEditor-BMYVMDNZ.js.map} +0 -0
|
@@ -81,7 +81,6 @@ export const renderField = ({
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
switch (fieldConfig.type) {
|
|
84
|
-
// TODO: handle block row labels as well in a similar fashion
|
|
85
84
|
case 'array':
|
|
86
85
|
{
|
|
87
86
|
fieldState?.rows?.forEach((row, rowIndex) => {
|
|
@@ -103,6 +102,32 @@ export const renderField = ({
|
|
|
103
102
|
});
|
|
104
103
|
break;
|
|
105
104
|
}
|
|
105
|
+
case 'blocks':
|
|
106
|
+
{
|
|
107
|
+
fieldState?.rows?.forEach((row, rowIndex) => {
|
|
108
|
+
const blockConfig = fieldConfig.blocks.find(block => block.slug === row.blockType);
|
|
109
|
+
if (blockConfig.admin?.components && 'Label' in blockConfig.admin.components) {
|
|
110
|
+
if (!fieldState.customComponents) {
|
|
111
|
+
fieldState.customComponents = {};
|
|
112
|
+
}
|
|
113
|
+
if (!fieldState.customComponents.RowLabels) {
|
|
114
|
+
fieldState.customComponents.RowLabels = [];
|
|
115
|
+
}
|
|
116
|
+
fieldState.customComponents.RowLabels[rowIndex] = RenderServerComponent({
|
|
117
|
+
clientProps,
|
|
118
|
+
Component: blockConfig.admin.components.Label,
|
|
119
|
+
importMap: req.payload.importMap,
|
|
120
|
+
serverProps: {
|
|
121
|
+
...serverProps,
|
|
122
|
+
blockType: row.blockType,
|
|
123
|
+
rowLabel: `${getTranslation(blockConfig.labels.singular, req.i18n)} ${String(rowIndex + 1).padStart(2, '0')}`,
|
|
124
|
+
rowNumber: rowIndex + 1
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
106
131
|
case 'richText':
|
|
107
132
|
{
|
|
108
133
|
if (!fieldConfig?.editor) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderField.js","names":["getTranslation","createClientField","MissingEditorProp","fieldIsHiddenOrDisabled","RenderServerComponent","FieldDescription","WatchCondition","defaultUIFieldComponentKeys","renderField","id","clientFieldSchemaMap","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","formState","indexPath","operation","parentPath","parentSchemaPath","path","permissions","preferences","req","schemaPath","siblingData","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","readOnly","customComponents","includes","type","serverProps","user","admin","Object","keys","components","length","description","rows","forEach","row","rowIndex","RowLabels","Component","RowLabel","rowLabel","labels","singular","String","padStart","rowNumber","editor","Error","Field","_jsx","FieldComponent","key","Description","t","AfterInput","afterInput","BeforeInput","beforeInput","Label"],"sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"sourcesContent":["import type { ClientComponentProps, ClientField, FieldPaths, ServerComponentProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { createClientField, MissingEditorProp } from 'payload'\nimport { fieldIsHiddenOrDisabled } from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- need this to reference already existing bundle. Otherwise, bundle size increases., payload/no-imports-from-exports-dir\nimport { FieldDescription, WatchCondition } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n formState,\n indexPath,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\n req,\n schemaPath,\n siblingData,\n}) => {\n const clientField = clientFieldSchemaMap\n ? (clientFieldSchemaMap.get(schemaPath) as ClientField)\n : createClientField({\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n })\n\n if (fieldIsHiddenOrDisabled(clientField)) {\n return\n }\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n field: clientField,\n path,\n permissions,\n readOnly: typeof permissions === 'boolean' ? !permissions : !permissions?.[operation],\n schemaPath,\n }\n\n if (fieldState?.customComponents) {\n clientProps.customComponents = fieldState.customComponents\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n clientFieldSchemaMap,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n }\n\n /**\n * Only create the `customComponents` object if needed.\n * This will prevent unnecessary data from being transferred to the client.\n */\n if (fieldConfig.admin) {\n if (\n (Object.keys(fieldConfig.admin.components || {}).length > 0 ||\n fieldConfig.type === 'richText' ||\n ('description' in fieldConfig.admin &&\n typeof fieldConfig.admin.description === 'function')) &&\n !fieldState?.customComponents\n ) {\n fieldState.customComponents = {}\n }\n }\n switch (fieldConfig.type) {\n // TODO: handle block row labels as well in a similar fashion\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!fieldState.customComponents.RowLabels) {\n fieldState.customComponents.RowLabels = []\n }\n\n fieldState.customComponents.RowLabels[rowIndex] = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.RowLabel,\n importMap: req.payload.importMap,\n serverProps: {\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n }\n })\n\n break\n }\n\n case 'richText': {\n if (!fieldConfig?.editor) {\n throw new MissingEditorProp(fieldConfig) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof fieldConfig?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!fieldConfig.admin) {\n fieldConfig.admin = {}\n }\n\n if (!fieldConfig.admin.components) {\n fieldConfig.admin.components = {}\n }\n\n fieldState.customComponents.Field = (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.editor.FieldComponent,\n importMap: req.payload.importMap,\n serverProps,\n })}\n </WatchCondition>\n )\n\n break\n }\n\n case 'ui': {\n if (fieldConfig?.admin?.components) {\n // Render any extra, untyped components\n for (const key in fieldConfig.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n\n const Component = fieldConfig.admin.components[key]\n\n fieldState.customComponents[key] = RenderServerComponent({\n clientProps,\n Component,\n importMap: req.payload.importMap,\n key: `field.admin.components.${key}`,\n serverProps,\n })\n }\n }\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldConfig.admin) {\n if (\n 'description' in fieldConfig.admin &&\n typeof fieldConfig.admin?.description === 'function'\n ) {\n fieldState.customComponents.Description = (\n <FieldDescription\n description={fieldConfig.admin?.description({\n t: req.i18n.t,\n })}\n path={path}\n />\n )\n }\n\n if (fieldConfig.admin?.components) {\n if ('afterInput' in fieldConfig.admin.components) {\n fieldState.customComponents.AfterInput = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.afterInput,\n importMap: req.payload.importMap,\n key: 'field.admin.components.afterInput',\n serverProps,\n })\n }\n\n if ('beforeInput' in fieldConfig.admin.components) {\n fieldState.customComponents.BeforeInput = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.beforeInput,\n importMap: req.payload.importMap,\n key: 'field.admin.components.beforeInput',\n serverProps,\n })\n }\n\n if ('Description' in fieldConfig.admin.components) {\n fieldState.customComponents.Description = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Description,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Description',\n serverProps,\n })\n }\n\n if ('Error' in fieldConfig.admin.components) {\n fieldState.customComponents.Error = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Error,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Error',\n serverProps,\n })\n }\n\n if ('Label' in fieldConfig.admin.components) {\n fieldState.customComponents.Label = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Label',\n serverProps,\n })\n }\n\n if ('Field' in fieldConfig.admin.components) {\n fieldState.customComponents.Field = (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Field,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Field',\n serverProps,\n })}\n </WatchCondition>\n )\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"renderField.js","names":["getTranslation","createClientField","MissingEditorProp","fieldIsHiddenOrDisabled","RenderServerComponent","FieldDescription","WatchCondition","defaultUIFieldComponentKeys","renderField","id","clientFieldSchemaMap","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","formState","indexPath","operation","parentPath","parentSchemaPath","path","permissions","preferences","req","schemaPath","siblingData","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","readOnly","customComponents","includes","type","serverProps","user","admin","Object","keys","components","length","description","rows","forEach","row","rowIndex","RowLabels","Component","RowLabel","rowLabel","labels","singular","String","padStart","rowNumber","blockConfig","blocks","find","block","slug","blockType","Label","editor","Error","Field","_jsx","FieldComponent","key","Description","t","AfterInput","afterInput","BeforeInput","beforeInput"],"sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"sourcesContent":["import type { ClientComponentProps, ClientField, FieldPaths, ServerComponentProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { createClientField, MissingEditorProp } from 'payload'\nimport { fieldIsHiddenOrDisabled } from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- need this to reference already existing bundle. Otherwise, bundle size increases., payload/no-imports-from-exports-dir\nimport { FieldDescription, WatchCondition } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n formState,\n indexPath,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\n req,\n schemaPath,\n siblingData,\n}) => {\n const clientField = clientFieldSchemaMap\n ? (clientFieldSchemaMap.get(schemaPath) as ClientField)\n : createClientField({\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n })\n\n if (fieldIsHiddenOrDisabled(clientField)) {\n return\n }\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n field: clientField,\n path,\n permissions,\n readOnly: typeof permissions === 'boolean' ? !permissions : !permissions?.[operation],\n schemaPath,\n }\n\n if (fieldState?.customComponents) {\n clientProps.customComponents = fieldState.customComponents\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n clientFieldSchemaMap,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n }\n\n /**\n * Only create the `customComponents` object if needed.\n * This will prevent unnecessary data from being transferred to the client.\n */\n if (fieldConfig.admin) {\n if (\n (Object.keys(fieldConfig.admin.components || {}).length > 0 ||\n fieldConfig.type === 'richText' ||\n ('description' in fieldConfig.admin &&\n typeof fieldConfig.admin.description === 'function')) &&\n !fieldState?.customComponents\n ) {\n fieldState.customComponents = {}\n }\n }\n\n switch (fieldConfig.type) {\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!fieldState.customComponents.RowLabels) {\n fieldState.customComponents.RowLabels = []\n }\n\n fieldState.customComponents.RowLabels[rowIndex] = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.RowLabel,\n importMap: req.payload.importMap,\n serverProps: {\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n }\n })\n\n break\n }\n\n case 'blocks': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const blockConfig = fieldConfig.blocks.find((block) => block.slug === row.blockType)\n\n if (blockConfig.admin?.components && 'Label' in blockConfig.admin.components) {\n if (!fieldState.customComponents) {\n fieldState.customComponents = {}\n }\n\n if (!fieldState.customComponents.RowLabels) {\n fieldState.customComponents.RowLabels = []\n }\n\n fieldState.customComponents.RowLabels[rowIndex] = RenderServerComponent({\n clientProps,\n Component: blockConfig.admin.components.Label,\n importMap: req.payload.importMap,\n serverProps: {\n ...serverProps,\n blockType: row.blockType,\n rowLabel: `${getTranslation(blockConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n }\n })\n\n break\n }\n\n case 'richText': {\n if (!fieldConfig?.editor) {\n throw new MissingEditorProp(fieldConfig) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof fieldConfig?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!fieldConfig.admin) {\n fieldConfig.admin = {}\n }\n\n if (!fieldConfig.admin.components) {\n fieldConfig.admin.components = {}\n }\n\n fieldState.customComponents.Field = (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.editor.FieldComponent,\n importMap: req.payload.importMap,\n serverProps,\n })}\n </WatchCondition>\n )\n\n break\n }\n\n case 'ui': {\n if (fieldConfig?.admin?.components) {\n // Render any extra, untyped components\n for (const key in fieldConfig.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n\n const Component = fieldConfig.admin.components[key]\n\n fieldState.customComponents[key] = RenderServerComponent({\n clientProps,\n Component,\n importMap: req.payload.importMap,\n key: `field.admin.components.${key}`,\n serverProps,\n })\n }\n }\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldConfig.admin) {\n if (\n 'description' in fieldConfig.admin &&\n typeof fieldConfig.admin?.description === 'function'\n ) {\n fieldState.customComponents.Description = (\n <FieldDescription\n description={fieldConfig.admin?.description({\n t: req.i18n.t,\n })}\n path={path}\n />\n )\n }\n\n if (fieldConfig.admin?.components) {\n if ('afterInput' in fieldConfig.admin.components) {\n fieldState.customComponents.AfterInput = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.afterInput,\n importMap: req.payload.importMap,\n key: 'field.admin.components.afterInput',\n serverProps,\n })\n }\n\n if ('beforeInput' in fieldConfig.admin.components) {\n fieldState.customComponents.BeforeInput = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.beforeInput,\n importMap: req.payload.importMap,\n key: 'field.admin.components.beforeInput',\n serverProps,\n })\n }\n\n if ('Description' in fieldConfig.admin.components) {\n fieldState.customComponents.Description = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Description,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Description',\n serverProps,\n })\n }\n\n if ('Error' in fieldConfig.admin.components) {\n fieldState.customComponents.Error = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Error,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Error',\n serverProps,\n })\n }\n\n if ('Label' in fieldConfig.admin.components) {\n fieldState.customComponents.Label = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Label',\n serverProps,\n })\n }\n\n if ('Field' in fieldConfig.admin.components) {\n fieldState.customComponents.Field = (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Field,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Field',\n serverProps,\n })}\n </WatchCondition>\n )\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,24 +1,33 @@
|
|
|
1
|
-
import type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig } from 'payload';
|
|
1
|
+
import type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig, CollectionSlug, GlobalSlug } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
type GetEntityConfigFn = {
|
|
4
|
+
(args: {
|
|
5
|
+
collectionSlug: {} | CollectionSlug;
|
|
6
|
+
globalSlug?: never;
|
|
7
|
+
}): ClientCollectionConfig;
|
|
8
|
+
(args: {
|
|
9
|
+
collectionSlug?: never;
|
|
10
|
+
globalSlug: {} | GlobalSlug;
|
|
11
|
+
}): ClientGlobalConfig;
|
|
12
|
+
(args: {
|
|
13
|
+
collectionSlug?: {} | CollectionSlug;
|
|
14
|
+
globalSlug?: {} | GlobalSlug;
|
|
15
|
+
}): ClientCollectionConfig | ClientGlobalConfig | null;
|
|
16
|
+
};
|
|
3
17
|
export type ClientConfigContext = {
|
|
4
18
|
config: ClientConfig;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Get a collection or global config by its slug. This is preferred over
|
|
21
|
+
* using `config.collections.find` or `config.globals.find`, because
|
|
22
|
+
* getEntityConfig uses a lookup map for O(1) lookups.
|
|
23
|
+
*/
|
|
24
|
+
getEntityConfig: GetEntityConfigFn;
|
|
9
25
|
setConfig: (config: ClientConfig) => void;
|
|
10
26
|
};
|
|
11
|
-
export type EntityConfigContext = {
|
|
12
|
-
collectionConfig?: ClientCollectionConfig;
|
|
13
|
-
globalConfig?: ClientGlobalConfig;
|
|
14
|
-
setEntityConfig: (args: {
|
|
15
|
-
collectionConfig?: ClientCollectionConfig | null;
|
|
16
|
-
globalConfig?: ClientGlobalConfig | null;
|
|
17
|
-
}) => void;
|
|
18
|
-
};
|
|
19
27
|
export declare const ConfigProvider: React.FC<{
|
|
20
28
|
readonly children: React.ReactNode;
|
|
21
29
|
readonly config: ClientConfig;
|
|
22
30
|
}>;
|
|
23
31
|
export declare const useConfig: () => ClientConfigContext;
|
|
32
|
+
export {};
|
|
24
33
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACX,MAAM,SAAS,CAAA;AAEhB,OAAO,KAA+E,MAAM,OAAO,CAAA;AAEnG,KAAK,iBAAiB,GAAG;IAGvB,CAAC,IAAI,EAAE;QAAE,cAAc,EAAE,EAAE,GAAG,cAAc,CAAC;QAAC,UAAU,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,sBAAsB,CAAA;IAI3F,CAAC,IAAI,EAAE;QAAE,cAAc,CAAC,EAAE,KAAK,CAAC;QAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAA;KAAE,GAAG,kBAAkB,CAAA;IAGnF,CAAC,IAAI,EAAE;QACL,cAAc,CAAC,EAAE,EAAE,GAAG,cAAc,CAAA;QACpC,UAAU,CAAC,EAAE,EAAE,GAAG,UAAU,CAAA;KAC7B,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,IAAI,CAAA;CACvD,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,YAAY,CAAA;IACpB;;;;OAIG;IACH,eAAe,EAAE,iBAAiB,CAAA;IAClC,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CAC1C,CAAA;AAID,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAC9B,CA0CA,CAAA;AAED,eAAO,MAAM,SAAS,QAAO,mBAAoD,CAAA"}
|
|
@@ -1,70 +1,54 @@
|
|
|
1
|
+
/* eslint-disable perfectionist/sort-object-types */ // Need to disable this rule because the order of the overloads is important
|
|
1
2
|
'use client';
|
|
2
3
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';
|
|
5
|
+
import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
|
|
6
6
|
const RootConfigContext = /*#__PURE__*/createContext(undefined);
|
|
7
|
-
export const ConfigProvider =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
config: configFromProps
|
|
12
|
-
} = t0;
|
|
7
|
+
export const ConfigProvider = ({
|
|
8
|
+
children,
|
|
9
|
+
config: configFromProps
|
|
10
|
+
}) => {
|
|
13
11
|
const [config, setConfig] = useState(configFromProps);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
} = t4;
|
|
36
|
-
if (collectionSlug) {
|
|
37
|
-
return config.collections.find(collection => collection.slug === collectionSlug);
|
|
38
|
-
}
|
|
39
|
-
if (globalSlug) {
|
|
40
|
-
return config.globals.find(global => global.slug === globalSlug);
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
12
|
+
// Need to update local config state if config from props changes, for HMR.
|
|
13
|
+
// That way, config changes will be updated in the UI immediately without needing a refresh.
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
setConfig(configFromProps);
|
|
16
|
+
}, [configFromProps]);
|
|
17
|
+
// Build lookup maps for collections and globals so we can do O(1) lookups by slug
|
|
18
|
+
const {
|
|
19
|
+
collectionsBySlug: collectionsBySlug_0,
|
|
20
|
+
globalsBySlug: globalsBySlug_0
|
|
21
|
+
} = useMemo(() => {
|
|
22
|
+
const collectionsBySlug = {};
|
|
23
|
+
const globalsBySlug = {};
|
|
24
|
+
for (const collection of config.collections) {
|
|
25
|
+
collectionsBySlug[collection.slug] = collection;
|
|
26
|
+
}
|
|
27
|
+
for (const global of config.globals) {
|
|
28
|
+
globalsBySlug[global.slug] = global;
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
collectionsBySlug,
|
|
32
|
+
globalsBySlug
|
|
43
33
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
$[7] = getEntityConfig;
|
|
63
|
-
$[8] = t4;
|
|
64
|
-
} else {
|
|
65
|
-
t4 = $[8];
|
|
66
|
-
}
|
|
67
|
-
return t4;
|
|
34
|
+
}, [config]);
|
|
35
|
+
const getEntityConfig = useCallback(args => {
|
|
36
|
+
if ('collectionSlug' in args) {
|
|
37
|
+
return collectionsBySlug_0[args.collectionSlug] ?? null;
|
|
38
|
+
}
|
|
39
|
+
if ('globalSlug' in args) {
|
|
40
|
+
return globalsBySlug_0[args.globalSlug] ?? null;
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
}, [collectionsBySlug_0, globalsBySlug_0]);
|
|
44
|
+
return /*#__PURE__*/_jsx(RootConfigContext.Provider, {
|
|
45
|
+
value: {
|
|
46
|
+
config,
|
|
47
|
+
getEntityConfig,
|
|
48
|
+
setConfig
|
|
49
|
+
},
|
|
50
|
+
children: children
|
|
51
|
+
});
|
|
68
52
|
};
|
|
69
53
|
export const useConfig = () => {
|
|
70
54
|
return useContext(RootConfigContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useEffect","useMemo","useState","RootConfigContext","undefined","ConfigProvider","children","config","configFromProps","setConfig","collectionsBySlug","globalsBySlug","collection","collections","slug","global","globals","getEntityConfig","args","collectionSlug","globalSlug","_jsx","Provider","value","useConfig"],"sources":["../../../src/providers/Config/index.tsx"],"sourcesContent":["/* eslint-disable perfectionist/sort-object-types */ // Need to disable this rule because the order of the overloads is important\n'use client'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientGlobalConfig,\n CollectionSlug,\n GlobalSlug,\n} from 'payload'\n\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'\n\ntype GetEntityConfigFn = {\n // Overload #1: collectionSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug: {} | CollectionSlug; globalSlug?: never }): ClientCollectionConfig\n\n // Overload #2: globalSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug?: never; globalSlug: {} | GlobalSlug }): ClientGlobalConfig\n\n // Overload #3: both/none (fall back to union | null)\n (args: {\n collectionSlug?: {} | CollectionSlug\n globalSlug?: {} | GlobalSlug\n }): ClientCollectionConfig | ClientGlobalConfig | null\n}\n\nexport type ClientConfigContext = {\n config: ClientConfig\n /**\n * Get a collection or global config by its slug. This is preferred over\n * using `config.collections.find` or `config.globals.find`, because\n * getEntityConfig uses a lookup map for O(1) lookups.\n */\n getEntityConfig: GetEntityConfigFn\n setConfig: (config: ClientConfig) => void\n}\n\nconst RootConfigContext = createContext<ClientConfigContext | undefined>(undefined)\n\nexport const ConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig\n}> = ({ children, config: configFromProps }) => {\n const [config, setConfig] = useState<ClientConfig>(configFromProps)\n\n // Need to update local config state if config from props changes, for HMR.\n // That way, config changes will be updated in the UI immediately without needing a refresh.\n useEffect(() => {\n setConfig(configFromProps)\n }, [configFromProps])\n\n // Build lookup maps for collections and globals so we can do O(1) lookups by slug\n const { collectionsBySlug, globalsBySlug } = useMemo(() => {\n const collectionsBySlug: Record<string, ClientCollectionConfig> = {}\n const globalsBySlug: Record<string, ClientGlobalConfig> = {}\n\n for (const collection of config.collections) {\n collectionsBySlug[collection.slug] = collection\n }\n for (const global of config.globals) {\n globalsBySlug[global.slug] = global\n }\n\n return { collectionsBySlug, globalsBySlug }\n }, [config])\n\n const getEntityConfig = useCallback<GetEntityConfigFn>(\n (args) => {\n if ('collectionSlug' in args) {\n return collectionsBySlug[args.collectionSlug] ?? null\n }\n if ('globalSlug' in args) {\n return globalsBySlug[args.globalSlug] ?? null\n }\n return null as any\n },\n [collectionsBySlug, globalsBySlug],\n )\n\n return (\n <RootConfigContext.Provider value={{ config, getEntityConfig, setConfig }}>\n {children}\n </RootConfigContext.Provider>\n )\n}\n\nexport const useConfig = (): ClientConfigContext => useContext(RootConfigContext)\n"],"mappings":"AAAA,sDAAsD;AACtD;;;AASA,OAAOA,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AA6B5F,MAAMC,iBAAA,gBAAoBN,aAAA,CAA+CO,SAAA;AAEzE,OAAO,MAAMC,cAAA,GAGRA,CAAC;EAAEC,QAAQ;EAAEC,MAAA,EAAQC;AAAe,CAAE;EACzC,MAAM,CAACD,MAAA,EAAQE,SAAA,CAAU,GAAGP,QAAA,CAAuBM,eAAA;EAEnD;EACA;EACAR,SAAA,CAAU;IACRS,SAAA,CAAUD,eAAA;EACZ,GAAG,CAACA,eAAA,CAAgB;EAEpB;EACA,MAAM;IAAEE,iBAAiB,EAAjBA,mBAAiB;IAAEC,aAAa,EAAbA;EAAa,CAAE,GAAGV,OAAA,CAAQ;IACnD,MAAMS,iBAAA,GAA4D,CAAC;IACnE,MAAMC,aAAA,GAAoD,CAAC;IAE3D,KAAK,MAAMC,UAAA,IAAcL,MAAA,CAAOM,WAAW,EAAE;MAC3CH,iBAAiB,CAACE,UAAA,CAAWE,IAAI,CAAC,GAAGF,UAAA;IACvC;IACA,KAAK,MAAMG,MAAA,IAAUR,MAAA,CAAOS,OAAO,EAAE;MACnCL,aAAa,CAACI,MAAA,CAAOD,IAAI,CAAC,GAAGC,MAAA;IAC/B;IAEA,OAAO;MAAEL,iBAAA;MAAmBC;IAAc;EAC5C,GAAG,CAACJ,MAAA,CAAO;EAEX,MAAMU,eAAA,GAAkBnB,WAAA,CACrBoB,IAAA;IACC,IAAI,oBAAoBA,IAAA,EAAM;MAC5B,OAAOR,mBAAiB,CAACQ,IAAA,CAAKC,cAAc,CAAC,IAAI;IACnD;IACA,IAAI,gBAAgBD,IAAA,EAAM;MACxB,OAAOP,eAAa,CAACO,IAAA,CAAKE,UAAU,CAAC,IAAI;IAC3C;IACA,OAAO;EACT,GACA,CAACV,mBAAA,EAAmBC,eAAA,CAAc;EAGpC,oBACEU,IAAA,CAAClB,iBAAA,CAAkBmB,QAAQ;IAACC,KAAA,EAAO;MAAEhB,MAAA;MAAQU,eAAA;MAAiBR;IAAU;cACrEH;;AAGP;AAEA,OAAO,MAAMkB,SAAA,GAAYA,CAAA;EAAA,OAA2BzB,UAAA,CAAAI,iBAAW;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAQN,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAcxE,mBAAmB,YAAY,CAAA;AAE/B,eAAO,MAAM,eAAe,QAAO,mBAA0C,CAAA;AAsU7E,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CACzC;IACE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,GAAG,iBAAiB,CAOtB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["qs","React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","useAuth","requests","formatDocTitle","useConfig","useLocale","useLocaleLoading","usePreferences","useTranslation","UploadEditsProvider","useUploadEdits","useGetDocPermissions","Context","useDocumentInfo","DocumentInfo","children","props","id","collectionSlug","currentEditor","currentEditorFromProps","docPermissions","docPermissionsFromProps","globalSlug","hasPublishedDoc","hasPublishedDocFromProps","hasPublishPermission","hasPublishPermissionFromProps","hasSavePermission","hasSavePermissionFromProps","initialData","initialState","isLocked","isLockedFromProps","lastUpdateTime","lastUpdateTimeFromProps","mostRecentVersionIsAutosaved","mostRecentVersionIsAutosavedFromProps","unpublishedVersionCount","unpublishedVersionCountFromProps","versionCount","versionCountFromProps","setDocPermissions","setHasSavePermission","setHasPublishPermission","permissions","config","admin","dateFormat","routes","api","serverURL","getEntityConfig","collectionConfig","globalConfig","abortControllerRef","AbortController","docConfig","i18n","uploadEdits","documentTitle","setDocumentTitle","data","fallback","toString","setMostRecentVersionIsAutosaved","setVersionCount","setHasPublishedDoc","setUnpublishedVersionCount","documentIsLocked","setDocumentIsLocked","setCurrentEditor","setLastUpdateTime","savedDocumentData","setSavedDocumentData","uploadStatus","setUploadStatus","updateUploadStatus","status","getPreference","setPreference","code","locale","localeIsLoading","isInitializing","undefined","baseURL","slug","pluralType","preferencesKey","unlockDocument","docID","isGlobal","query","request","get","docs","json","length","lockID","delete","headers","error","console","updateDocumentEditor","user","userData","relationTo","collection","value","patch","body","JSON","stringify","getDocPermissions","getDocPreferences","setDocFieldPreferences","path","fieldPreferences","allPreferences","fields","e","incrementVersionCount","versions","Math","min","maxPerDoc","max","updateSavedDocumentData","re1","current","abort","_err","action","docURL","params","depth","addQueryPrefix","title","_jsx","Provider","DocumentInfoProvider"],"sources":["../../../src/providers/DocumentInfo/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n DocumentPreferences,\n SanitizedDocumentPermissions,\n} from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport type { DocumentInfoContext, DocumentInfoProps } from './types.js'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale, useLocaleLoading } from '../Locale/index.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { UploadEditsProvider, useUploadEdits } from '../UploadEdits/index.js'\nimport { useGetDocPermissions } from './useGetDocPermissions.js'\n\nconst Context = createContext({} as DocumentInfoContext)\n\nexport type * from './types.js'\n\nexport const useDocumentInfo = (): DocumentInfoContext => useContext(Context)\n\nconst DocumentInfo: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = ({ children, ...props }) => {\n const {\n id,\n collectionSlug,\n currentEditor: currentEditorFromProps,\n docPermissions: docPermissionsFromProps,\n globalSlug,\n hasPublishedDoc: hasPublishedDocFromProps,\n hasPublishPermission: hasPublishPermissionFromProps,\n hasSavePermission: hasSavePermissionFromProps,\n initialData,\n initialState,\n isLocked: isLockedFromProps,\n lastUpdateTime: lastUpdateTimeFromProps,\n mostRecentVersionIsAutosaved: mostRecentVersionIsAutosavedFromProps,\n unpublishedVersionCount: unpublishedVersionCountFromProps,\n versionCount: versionCountFromProps,\n } = props\n\n const [docPermissions, setDocPermissions] =\n useState<SanitizedDocumentPermissions>(docPermissionsFromProps)\n\n const [hasSavePermission, setHasSavePermission] = useState<boolean>(hasSavePermissionFromProps)\n\n const [hasPublishPermission, setHasPublishPermission] = useState<boolean>(\n hasPublishPermissionFromProps,\n )\n\n const { permissions } = useAuth()\n\n const {\n config: {\n admin: { dateFormat },\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const abortControllerRef = useRef(new AbortController())\n const docConfig = collectionConfig || globalConfig\n\n const { i18n } = useTranslation()\n\n const { uploadEdits } = useUploadEdits()\n\n const [documentTitle, setDocumentTitle] = useState(() =>\n formatDocTitle({\n collectionConfig,\n data: { ...(initialData || {}), id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n\n const [mostRecentVersionIsAutosaved, setMostRecentVersionIsAutosaved] = useState(\n mostRecentVersionIsAutosavedFromProps,\n )\n\n const [versionCount, setVersionCount] = useState(versionCountFromProps)\n\n const [hasPublishedDoc, setHasPublishedDoc] = useState(hasPublishedDocFromProps)\n const [unpublishedVersionCount, setUnpublishedVersionCount] = useState(\n unpublishedVersionCountFromProps,\n )\n\n const [documentIsLocked, setDocumentIsLocked] = useState<boolean | undefined>(isLockedFromProps)\n const [currentEditor, setCurrentEditor] = useState<ClientUser | null>(currentEditorFromProps)\n const [lastUpdateTime, setLastUpdateTime] = useState<number>(lastUpdateTimeFromProps)\n const [savedDocumentData, setSavedDocumentData] = useState(initialData)\n const [uploadStatus, setUploadStatus] = useState<'failed' | 'idle' | 'uploading'>('idle')\n\n const updateUploadStatus = useCallback((status: 'failed' | 'idle' | 'uploading') => {\n setUploadStatus(status)\n }, [])\n\n const { getPreference, setPreference } = usePreferences()\n const { code: locale } = useLocale()\n const { localeIsLoading } = useLocaleLoading()\n\n const isInitializing = useMemo(\n () => initialState === undefined || initialData === undefined || localeIsLoading,\n [initialData, initialState, localeIsLoading],\n )\n\n const baseURL = `${serverURL}${api}`\n let slug: string\n let pluralType: 'collections' | 'globals'\n let preferencesKey: string\n\n if (globalSlug) {\n slug = globalSlug\n pluralType = 'globals'\n preferencesKey = `global-${slug}`\n }\n\n if (collectionSlug) {\n slug = collectionSlug\n pluralType = 'collections'\n\n if (id) {\n preferencesKey = `collection-${slug}-${id}`\n }\n }\n\n const unlockDocument = useCallback(\n async (docID: number | string, slug: string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docID}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockID = docs[0].id\n await requests.delete(`${serverURL}${api}/payload-locked-documents/${lockID}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to unlock the document', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const updateDocumentEditor = useCallback(\n async (docID: number | string, slug: string, user: ClientUser | number | string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docID}&where[document.relationTo][equals]=${slug}`\n\n // Check if the document is already locked\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockID = docs[0].id\n\n const userData =\n typeof user === 'object'\n ? { relationTo: user.collection, value: user.id }\n : { relationTo: 'users', value: user }\n\n // Send a patch request to update the _lastEdited info\n await requests.patch(`${serverURL}${api}/payload-locked-documents/${lockID}`, {\n body: JSON.stringify({\n user: userData,\n }),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to update the document editor', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const getDocPermissions = useGetDocPermissions({\n id: id as string,\n api,\n collectionSlug,\n globalSlug,\n i18n,\n locale,\n permissions,\n serverURL,\n setDocPermissions,\n setHasPublishPermission,\n setHasSavePermission,\n })\n\n const getDocPreferences = useCallback(() => {\n return getPreference<DocumentPreferences>(preferencesKey)\n }, [getPreference, preferencesKey])\n\n const setDocFieldPreferences = useCallback<DocumentInfoContext['setDocFieldPreferences']>(\n async (path, fieldPreferences) => {\n const allPreferences = await getDocPreferences()\n\n if (preferencesKey) {\n try {\n await setPreference(preferencesKey, {\n ...allPreferences,\n fields: {\n ...(allPreferences?.fields || {}),\n [path]: {\n ...allPreferences?.fields?.[path],\n ...fieldPreferences,\n },\n },\n })\n } catch (e) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n },\n [setPreference, preferencesKey, getDocPreferences],\n )\n\n const incrementVersionCount = useCallback(() => {\n if (collectionConfig && collectionConfig.versions) {\n setVersionCount(Math.min(versionCount + 1, collectionConfig.versions.maxPerDoc))\n } else if (globalConfig && globalConfig.versions) {\n setVersionCount(Math.min(versionCount + 1, globalConfig.versions.max))\n }\n }, [collectionConfig, globalConfig, versionCount])\n\n const updateSavedDocumentData = React.useCallback<DocumentInfoContext['updateSavedDocumentData']>(\n (json) => {\n setSavedDocumentData(json)\n },\n [],\n )\n\n useEffect(() => {\n setDocumentTitle(\n formatDocTitle({\n collectionConfig,\n data: { ...savedDocumentData, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n }, [collectionConfig, globalConfig, savedDocumentData, dateFormat, i18n, id])\n\n // clean on unmount\n useEffect(() => {\n const re1 = abortControllerRef.current\n\n return () => {\n if (re1) {\n try {\n re1.abort()\n } catch (_err) {\n // swallow error\n }\n }\n }\n }, [])\n\n const action: string = React.useMemo(() => {\n const docURL = `${baseURL}${pluralType === 'globals' ? `/globals` : ''}/${slug}${id ? `/${id}` : ''}`\n const params = {\n depth: 0,\n 'fallback-locale': 'null',\n locale,\n uploadEdits: uploadEdits || undefined,\n }\n\n return `${docURL}${qs.stringify(params, {\n addQueryPrefix: true,\n })}`\n }, [baseURL, locale, pluralType, id, slug, uploadEdits])\n\n const value: DocumentInfoContext = {\n ...props,\n action,\n currentEditor,\n docConfig,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n hasPublishedDoc,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialData,\n initialState,\n isInitializing,\n lastUpdateTime,\n mostRecentVersionIsAutosaved,\n preferencesKey,\n savedDocumentData,\n setCurrentEditor,\n setDocFieldPreferences,\n setDocumentIsLocked,\n setDocumentTitle,\n setHasPublishedDoc,\n setLastUpdateTime,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n setUploadStatus: updateUploadStatus,\n title: documentTitle,\n unlockDocument,\n unpublishedVersionCount,\n updateDocumentEditor,\n updateSavedDocumentData,\n uploadStatus,\n versionCount,\n }\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n}\n\nexport const DocumentInfoProvider: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = (props) => {\n return (\n <UploadEditsProvider>\n <DocumentInfo {...props} />\n </UploadEditsProvider>\n )\n}\n"],"mappings":"AAAA;;;AASA,YAAYA,EAAA,MAAQ;AACpB,OAAOC,KAAA,IACLC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH;AAIP,SAASC,OAAO,QAAQ;AACxB,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,EAAEC,gBAAgB,QAAQ;AAC5C,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,mBAAmB,EAAEC,cAAc,QAAQ;AACpD,SAASC,oBAAoB,QAAQ;AAErC,MAAMC,OAAA,gBAAUlB,aAAA,CAAc,CAAC;AAI/B,OAAO,MAAMmB,eAAA,GAAkBA,CAAA;EAAA,OAA2BjB,UAAA,CAAAgB,OAAW;AAAA;AAErE,MAAME,YAAA,GAIFA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAA,CAAO;EACzB,MAAM;IACJC,EAAE;IACFC,cAAc;IACdC,aAAA,EAAeC,sBAAsB;IACrCC,cAAA,EAAgBC,uBAAuB;IACvCC,UAAU;IACVC,eAAA,EAAiBC,wBAAwB;IACzCC,oBAAA,EAAsBC,6BAA6B;IACnDC,iBAAA,EAAmBC,0BAA0B;IAC7CC,WAAW;IACXC,YAAY;IACZC,QAAA,EAAUC,iBAAiB;IAC3BC,cAAA,EAAgBC,uBAAuB;IACvCC,4BAAA,EAA8BC,qCAAqC;IACnEC,uBAAA,EAAyBC,gCAAgC;IACzDC,YAAA,EAAcC;EAAqB,CACpC,GAAGzB,KAAA;EAEJ,MAAM,CAACK,cAAA,EAAgBqB,iBAAA,CAAkB,GACvC1C,QAAA,CAAuCsB,uBAAA;EAEzC,MAAM,CAACM,iBAAA,EAAmBe,oBAAA,CAAqB,GAAG3C,QAAA,CAAkB6B,0BAAA;EAEpE,MAAM,CAACH,oBAAA,EAAsBkB,uBAAA,CAAwB,GAAG5C,QAAA,CACtD2B,6BAAA;EAGF,MAAM;IAAEkB;EAAW,CAAE,GAAG5C,OAAA;EAExB,MAAM;IACJ6C,MAAA,EAAQ;MACNC,KAAA,EAAO;QAAEC;MAAU,CAAE;MACrBC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS,CACV;IACDC;EAAe,CAChB,GAAGhD,SAAA;EAEJ,MAAMiD,gBAAA,GAAmBD,eAAA,CAAgB;IAAElC;EAAe;EAC1D,MAAMoC,YAAA,GAAeF,eAAA,CAAgB;IAAE7B;EAAW;EAElD,MAAMgC,kBAAA,GAAqBxD,MAAA,CAAO,IAAIyD,eAAA;EACtC,MAAMC,SAAA,GAAYJ,gBAAA,IAAoBC,YAAA;EAEtC,MAAM;IAAEI;EAAI,CAAE,GAAGlD,cAAA;EAEjB,MAAM;IAAEmD;EAAW,CAAE,GAAGjD,cAAA;EAExB,MAAM,CAACkD,aAAA,EAAeC,gBAAA,CAAiB,GAAG7D,QAAA,CAAS,MACjDG,cAAA,CAAe;IACbkD,gBAAA;IACAS,IAAA,EAAM;MAAE,IAAIhC,WAAA,IAAe,CAAC,CAAC;MAAGb;IAAG;IACnC+B,UAAA;IACAe,QAAA,EAAU9C,EAAA,EAAI+C,QAAA;IACdV,YAAA;IACAI;EACF;EAGF,MAAM,CAACtB,4BAAA,EAA8B6B,+BAAA,CAAgC,GAAGjE,QAAA,CACtEqC,qCAAA;EAGF,MAAM,CAACG,YAAA,EAAc0B,eAAA,CAAgB,GAAGlE,QAAA,CAASyC,qBAAA;EAEjD,MAAM,CAACjB,eAAA,EAAiB2C,kBAAA,CAAmB,GAAGnE,QAAA,CAASyB,wBAAA;EACvD,MAAM,CAACa,uBAAA,EAAyB8B,0BAAA,CAA2B,GAAGpE,QAAA,CAC5DuC,gCAAA;EAGF,MAAM,CAAC8B,gBAAA,EAAkBC,mBAAA,CAAoB,GAAGtE,QAAA,CAA8BiC,iBAAA;EAC9E,MAAM,CAACd,aAAA,EAAeoD,gBAAA,CAAiB,GAAGvE,QAAA,CAA4BoB,sBAAA;EACtE,MAAM,CAACc,cAAA,EAAgBsC,iBAAA,CAAkB,GAAGxE,QAAA,CAAiBmC,uBAAA;EAC7D,MAAM,CAACsC,iBAAA,EAAmBC,oBAAA,CAAqB,GAAG1E,QAAA,CAAS8B,WAAA;EAC3D,MAAM,CAAC6C,YAAA,EAAcC,eAAA,CAAgB,GAAG5E,QAAA,CAA0C;EAElF,MAAM6E,kBAAA,GAAqBlF,WAAA,CAAamF,MAAA;IACtCF,eAAA,CAAgBE,MAAA;EAClB,GAAG,EAAE;EAEL,MAAM;IAAEC,aAAa;IAAEC;EAAa,CAAE,GAAGzE,cAAA;EACzC,MAAM;IAAE0E,IAAA,EAAMC;EAAM,CAAE,GAAG7E,SAAA;EACzB,MAAM;IAAE8E;EAAe,CAAE,GAAG7E,gBAAA;EAE5B,MAAM8E,cAAA,GAAiBtF,OAAA,CACrB,MAAMiC,YAAA,KAAiBsD,SAAA,IAAavD,WAAA,KAAgBuD,SAAA,IAAaF,eAAA,EACjE,CAACrD,WAAA,EAAaC,YAAA,EAAcoD,eAAA,CAAgB;EAG9C,MAAMG,OAAA,GAAU,GAAGnC,SAAA,GAAYD,GAAA,EAAK;EACpC,IAAIqC,IAAA;EACJ,IAAIC,UAAA;EACJ,IAAIC,cAAA;EAEJ,IAAIlE,UAAA,EAAY;IACdgE,IAAA,GAAOhE,UAAA;IACPiE,UAAA,GAAa;IACbC,cAAA,GAAiB,UAAUF,IAAA,EAAM;EACnC;EAEA,IAAIrE,cAAA,EAAgB;IAClBqE,IAAA,GAAOrE,cAAA;IACPsE,UAAA,GAAa;IAEb,IAAIvE,EAAA,EAAI;MACNwE,cAAA,GAAiB,cAAcF,IAAA,IAAQtE,EAAA,EAAI;IAC7C;EACF;EAEA,MAAMyE,cAAA,GAAiB/F,WAAA,CACrB,OAAOgG,KAAA,EAAwBJ,MAAA;IAC7B,IAAI;MACF,MAAMK,QAAA,GAAWL,MAAA,KAAShE,UAAA;MAE1B,MAAMsE,KAAA,GAAQD,QAAA,GACV,6BAA6BL,MAAA,EAAM,GACnC,iCAAiCI,KAAA,uCAA4CJ,MAAA,EAAM;MAEvF,MAAMO,OAAA,GAAU,MAAM5F,QAAA,CAAS6F,GAAG,CAAC,GAAG5C,SAAA,GAAYD,GAAA,6BAAgC2C,KAAA,EAAO;MAEzF,MAAM;QAAEG;MAAI,CAAE,GAAG,MAAMF,OAAA,CAAQG,IAAI;MAEnC,IAAID,IAAA,CAAKE,MAAM,GAAG,GAAG;QACnB,MAAMC,MAAA,GAASH,IAAI,CAAC,EAAE,CAAC/E,EAAE;QACzB,MAAMf,QAAA,CAASkG,MAAM,CAAC,GAAGjD,SAAA,GAAYD,GAAA,6BAAgCiD,MAAA,EAAQ,EAAE;UAC7EE,OAAA,EAAS;YACP,gBAAgB;UAClB;QACF;QACA/B,mBAAA,CAAoB;MACtB;IACF,EAAE,OAAOgC,KAAA,EAAO;MACd;MACAC,OAAA,CAAQD,KAAK,CAAC,iCAAiCA,KAAA;IACjD;EACF,GACA,CAACnD,SAAA,EAAWD,GAAA,EAAK3B,UAAA,CAAW;EAG9B,MAAMiF,oBAAA,GAAuB7G,WAAA,CAC3B,OAAOgG,OAAA,EAAwBJ,MAAA,EAAckB,IAAA;IAC3C,IAAI;MACF,MAAMb,UAAA,GAAWL,MAAA,KAAShE,UAAA;MAE1B,MAAMsE,OAAA,GAAQD,UAAA,GACV,6BAA6BL,MAAA,EAAM,GACnC,iCAAiCI,OAAA,uCAA4CJ,MAAA,EAAM;MAEvF;MACA,MAAMO,SAAA,GAAU,MAAM5F,QAAA,CAAS6F,GAAG,CAAC,GAAG5C,SAAA,GAAYD,GAAA,6BAAgC2C,OAAA,EAAO;MAEzF,MAAM;QAAEG,IAAI,EAAJA;MAAI,CAAE,GAAG,MAAMF,SAAA,CAAQG,IAAI;MAEnC,IAAID,MAAA,CAAKE,MAAM,GAAG,GAAG;QACnB,MAAMC,QAAA,GAASH,MAAI,CAAC,EAAE,CAAC/E,EAAE;QAEzB,MAAMyF,QAAA,GACJ,OAAOD,IAAA,KAAS,WACZ;UAAEE,UAAA,EAAYF,IAAA,CAAKG,UAAU;UAAEC,KAAA,EAAOJ,IAAA,CAAKxF;QAAG,IAC9C;UAAE0F,UAAA,EAAY;UAASE,KAAA,EAAOJ;QAAK;QAEzC;QACA,MAAMvG,QAAA,CAAS4G,KAAK,CAAC,GAAG3D,SAAA,GAAYD,GAAA,6BAAgCiD,QAAA,EAAQ,EAAE;UAC5EY,IAAA,EAAMC,IAAA,CAAKC,SAAS,CAAC;YACnBR,IAAA,EAAMC;UACR;UACAL,OAAA,EAAS;YACP,gBAAgB;UAClB;QACF;MACF;IACF,EAAE,OAAOC,OAAA,EAAO;MACd;MACAC,OAAA,CAAQD,KAAK,CAAC,wCAAwCA,OAAA;IACxD;EACF,GACA,CAACnD,SAAA,EAAWD,GAAA,EAAK3B,UAAA,CAAW;EAG9B,MAAM2F,iBAAA,GAAoBvG,oBAAA,CAAqB;IAC7CM,EAAA,EAAIA,EAAA;IACJiC,GAAA;IACAhC,cAAA;IACAK,UAAA;IACAmC,IAAA;IACAwB,MAAA;IACArC,WAAA;IACAM,SAAA;IACAT,iBAAA;IACAE,uBAAA;IACAD;EACF;EAEA,MAAMwE,iBAAA,GAAoBxH,WAAA,CAAY;IACpC,OAAOoF,aAAA,CAAmCU,cAAA;EAC5C,GAAG,CAACV,aAAA,EAAeU,cAAA,CAAe;EAElC,MAAM2B,sBAAA,GAAyBzH,WAAA,CAC7B,OAAO0H,IAAA,EAAMC,gBAAA;IACX,MAAMC,cAAA,GAAiB,MAAMJ,iBAAA;IAE7B,IAAI1B,cAAA,EAAgB;MAClB,IAAI;QACF,MAAMT,aAAA,CAAcS,cAAA,EAAgB;UAClC,GAAG8B,cAAc;UACjBC,MAAA,EAAQ;YACN,IAAID,cAAA,EAAgBC,MAAA,IAAU,CAAC,CAAC;YAChC,CAACH,IAAA,GAAO;cACN,GAAGE,cAAA,EAAgBC,MAAA,GAASH,IAAA,CAAK;cACjC,GAAGC;YACL;UACF;QACF;MACF,EAAE,OAAOG,CAAA,EAAG;QACVlB,OAAA,CAAQD,KAAK,CAACmB,CAAA,EAAG;QAAA;MACnB;IACF;EACF,GACA,CAACzC,aAAA,EAAeS,cAAA,EAAgB0B,iBAAA,CAAkB;EAGpD,MAAMO,qBAAA,GAAwB/H,WAAA,CAAY;IACxC,IAAI0D,gBAAA,IAAoBA,gBAAA,CAAiBsE,QAAQ,EAAE;MACjDzD,eAAA,CAAgB0D,IAAA,CAAKC,GAAG,CAACrF,YAAA,GAAe,GAAGa,gBAAA,CAAiBsE,QAAQ,CAACG,SAAS;IAChF,OAAO,IAAIxE,YAAA,IAAgBA,YAAA,CAAaqE,QAAQ,EAAE;MAChDzD,eAAA,CAAgB0D,IAAA,CAAKC,GAAG,CAACrF,YAAA,GAAe,GAAGc,YAAA,CAAaqE,QAAQ,CAACI,GAAG;IACtE;EACF,GAAG,CAAC1E,gBAAA,EAAkBC,YAAA,EAAcd,YAAA,CAAa;EAEjD,MAAMwF,uBAAA,GAA0BvI,KAAA,CAAME,WAAW,CAC9CsG,IAAA;IACCvB,oBAAA,CAAqBuB,IAAA;EACvB,GACA,EAAE;EAGJpG,SAAA,CAAU;IACRgE,gBAAA,CACE1D,cAAA,CAAe;MACbkD,gBAAA;MACAS,IAAA,EAAM;QAAE,GAAGW,iBAAiB;QAAExD;MAAG;MACjC+B,UAAA;MACAe,QAAA,EAAU9C,EAAA,EAAI+C,QAAA;MACdV,YAAA;MACAI;IACF;EAEJ,GAAG,CAACL,gBAAA,EAAkBC,YAAA,EAAcmB,iBAAA,EAAmBzB,UAAA,EAAYU,IAAA,EAAMzC,EAAA,CAAG;EAE5E;EACApB,SAAA,CAAU;IACR,MAAMoI,GAAA,GAAM1E,kBAAA,CAAmB2E,OAAO;IAEtC,OAAO;MACL,IAAID,GAAA,EAAK;QACP,IAAI;UACFA,GAAA,CAAIE,KAAK;QACX,EAAE,OAAOC,IAAA,EAAM;UACb;QAAA;MAEJ;IACF;EACF,GAAG,EAAE;EAEL,MAAMC,MAAA,GAAiB5I,KAAA,CAAMK,OAAO,CAAC;IACnC,MAAMwI,MAAA,GAAS,GAAGhD,OAAA,GAAUE,UAAA,KAAe,YAAY,UAAU,GAAG,MAAMD,IAAA,GAAOtE,EAAA,GAAK,IAAIA,EAAA,EAAI,GAAG,IAAI;IACrG,MAAMsH,MAAA,GAAS;MACbC,KAAA,EAAO;MACP,mBAAmB;MACnBtD,MAAA;MACAvB,WAAA,EAAaA,WAAA,IAAe0B;IAC9B;IAEA,OAAO,GAAGiD,MAAA,GAAS9I,EAAA,CAAGyH,SAAS,CAACsB,MAAA,EAAQ;MACtCE,cAAA,EAAgB;IAClB,IAAI;EACN,GAAG,CAACnD,OAAA,EAASJ,MAAA,EAAQM,UAAA,EAAYvE,EAAA,EAAIsE,IAAA,EAAM5B,WAAA,CAAY;EAEvD,MAAMkD,KAAA,GAA6B;IACjC,GAAG7F,KAAK;IACRqH,MAAA;IACAlH,aAAA;IACAsC,SAAA;IACApC,cAAA;IACAgD,gBAAA;IACA6C,iBAAA;IACAC,iBAAA;IACA3F,eAAA;IACAE,oBAAA;IACAE,iBAAA;IACA8F,qBAAA;IACA5F,WAAA;IACAC,YAAA;IACAqD,cAAA;IACAlD,cAAA;IACAE,4BAAA;IACAqD,cAAA;IACAhB,iBAAA;IACAF,gBAAA;IACA6C,sBAAA;IACA9C,mBAAA;IACAT,gBAAA;IACAM,kBAAA;IACAK,iBAAA;IACAP,+BAAA;IACAG,0BAAA;IACAQ,eAAA,EAAiBC,kBAAA;IACjB6D,KAAA,EAAO9E,aAAA;IACP8B,cAAA;IACApD,uBAAA;IACAkE,oBAAA;IACAwB,uBAAA;IACArD,YAAA;IACAnC;EACF;EAEA,oBAAOmG,IAAA,CAAC/H,OAAA,CAAQgI,QAAQ;IAAC/B,KAAA,EAAOA,KAAA;cAAQ9F;;AAC1C;AAEA,OAAO,MAAM8H,oBAAA,GAIR7H,KAAA;EACH,oBACE2H,IAAA,CAAClI,mBAAA;cACC,aAAAkI,IAAA,CAAC7H,YAAA;MAAc,GAAGE;;;AAGxB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["qs","React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","useAuth","requests","formatDocTitle","useConfig","useLocale","useLocaleLoading","usePreferences","useTranslation","UploadEditsProvider","useUploadEdits","useGetDocPermissions","Context","useDocumentInfo","DocumentInfo","children","props","id","collectionSlug","currentEditor","currentEditorFromProps","docPermissions","docPermissionsFromProps","globalSlug","hasPublishedDoc","hasPublishedDocFromProps","hasPublishPermission","hasPublishPermissionFromProps","hasSavePermission","hasSavePermissionFromProps","initialData","initialState","isLocked","isLockedFromProps","lastUpdateTime","lastUpdateTimeFromProps","mostRecentVersionIsAutosaved","mostRecentVersionIsAutosavedFromProps","unpublishedVersionCount","unpublishedVersionCountFromProps","versionCount","versionCountFromProps","setDocPermissions","setHasSavePermission","setHasPublishPermission","permissions","config","admin","dateFormat","routes","api","serverURL","getEntityConfig","collectionConfig","globalConfig","abortControllerRef","AbortController","docConfig","i18n","uploadEdits","documentTitle","setDocumentTitle","data","fallback","toString","setMostRecentVersionIsAutosaved","setVersionCount","setHasPublishedDoc","setUnpublishedVersionCount","documentIsLocked","setDocumentIsLocked","setCurrentEditor","setLastUpdateTime","savedDocumentData","setSavedDocumentData","uploadStatus","setUploadStatus","updateUploadStatus","status","getPreference","setPreference","code","locale","localeIsLoading","isInitializing","undefined","baseURL","slug","pluralType","preferencesKey","unlockDocument","docID","isGlobal","query","request","get","docs","json","length","lockID","delete","headers","error","console","updateDocumentEditor","user","userData","relationTo","collection","value","patch","body","JSON","stringify","getDocPermissions","getDocPreferences","setDocFieldPreferences","path","fieldPreferences","allPreferences","fields","e","incrementVersionCount","versions","Math","min","maxPerDoc","max","updateSavedDocumentData","re1","current","abort","_err","action","docURL","params","depth","addQueryPrefix","title","_jsx","Provider","DocumentInfoProvider"],"sources":["../../../src/providers/DocumentInfo/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, DocumentPreferences, SanitizedDocumentPermissions } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport type { DocumentInfoContext, DocumentInfoProps } from './types.js'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale, useLocaleLoading } from '../Locale/index.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { UploadEditsProvider, useUploadEdits } from '../UploadEdits/index.js'\nimport { useGetDocPermissions } from './useGetDocPermissions.js'\n\nconst Context = createContext({} as DocumentInfoContext)\n\nexport type * from './types.js'\n\nexport const useDocumentInfo = (): DocumentInfoContext => useContext(Context)\n\nconst DocumentInfo: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = ({ children, ...props }) => {\n const {\n id,\n collectionSlug,\n currentEditor: currentEditorFromProps,\n docPermissions: docPermissionsFromProps,\n globalSlug,\n hasPublishedDoc: hasPublishedDocFromProps,\n hasPublishPermission: hasPublishPermissionFromProps,\n hasSavePermission: hasSavePermissionFromProps,\n initialData,\n initialState,\n isLocked: isLockedFromProps,\n lastUpdateTime: lastUpdateTimeFromProps,\n mostRecentVersionIsAutosaved: mostRecentVersionIsAutosavedFromProps,\n unpublishedVersionCount: unpublishedVersionCountFromProps,\n versionCount: versionCountFromProps,\n } = props\n\n const [docPermissions, setDocPermissions] =\n useState<SanitizedDocumentPermissions>(docPermissionsFromProps)\n\n const [hasSavePermission, setHasSavePermission] = useState<boolean>(hasSavePermissionFromProps)\n\n const [hasPublishPermission, setHasPublishPermission] = useState<boolean>(\n hasPublishPermissionFromProps,\n )\n\n const { permissions } = useAuth()\n\n const {\n config: {\n admin: { dateFormat },\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const abortControllerRef = useRef(new AbortController())\n const docConfig = collectionConfig || globalConfig\n\n const { i18n } = useTranslation()\n\n const { uploadEdits } = useUploadEdits()\n\n const [documentTitle, setDocumentTitle] = useState(() =>\n formatDocTitle({\n collectionConfig,\n data: { ...(initialData || {}), id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n\n const [mostRecentVersionIsAutosaved, setMostRecentVersionIsAutosaved] = useState(\n mostRecentVersionIsAutosavedFromProps,\n )\n\n const [versionCount, setVersionCount] = useState(versionCountFromProps)\n\n const [hasPublishedDoc, setHasPublishedDoc] = useState(hasPublishedDocFromProps)\n const [unpublishedVersionCount, setUnpublishedVersionCount] = useState(\n unpublishedVersionCountFromProps,\n )\n\n const [documentIsLocked, setDocumentIsLocked] = useState<boolean | undefined>(isLockedFromProps)\n const [currentEditor, setCurrentEditor] = useState<ClientUser | null>(currentEditorFromProps)\n const [lastUpdateTime, setLastUpdateTime] = useState<number>(lastUpdateTimeFromProps)\n const [savedDocumentData, setSavedDocumentData] = useState(initialData)\n const [uploadStatus, setUploadStatus] = useState<'failed' | 'idle' | 'uploading'>('idle')\n\n const updateUploadStatus = useCallback((status: 'failed' | 'idle' | 'uploading') => {\n setUploadStatus(status)\n }, [])\n\n const { getPreference, setPreference } = usePreferences()\n const { code: locale } = useLocale()\n const { localeIsLoading } = useLocaleLoading()\n\n const isInitializing = useMemo(\n () => initialState === undefined || initialData === undefined || localeIsLoading,\n [initialData, initialState, localeIsLoading],\n )\n\n const baseURL = `${serverURL}${api}`\n let slug: string\n let pluralType: 'collections' | 'globals'\n let preferencesKey: string\n\n if (globalSlug) {\n slug = globalSlug\n pluralType = 'globals'\n preferencesKey = `global-${slug}`\n }\n\n if (collectionSlug) {\n slug = collectionSlug\n pluralType = 'collections'\n\n if (id) {\n preferencesKey = `collection-${slug}-${id}`\n }\n }\n\n const unlockDocument = useCallback(\n async (docID: number | string, slug: string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docID}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockID = docs[0].id\n await requests.delete(`${serverURL}${api}/payload-locked-documents/${lockID}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to unlock the document', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const updateDocumentEditor = useCallback(\n async (docID: number | string, slug: string, user: ClientUser | number | string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docID}&where[document.relationTo][equals]=${slug}`\n\n // Check if the document is already locked\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockID = docs[0].id\n\n const userData =\n typeof user === 'object'\n ? { relationTo: user.collection, value: user.id }\n : { relationTo: 'users', value: user }\n\n // Send a patch request to update the _lastEdited info\n await requests.patch(`${serverURL}${api}/payload-locked-documents/${lockID}`, {\n body: JSON.stringify({\n user: userData,\n }),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to update the document editor', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const getDocPermissions = useGetDocPermissions({\n id: id as string,\n api,\n collectionSlug,\n globalSlug,\n i18n,\n locale,\n permissions,\n serverURL,\n setDocPermissions,\n setHasPublishPermission,\n setHasSavePermission,\n })\n\n const getDocPreferences = useCallback(() => {\n return getPreference<DocumentPreferences>(preferencesKey)\n }, [getPreference, preferencesKey])\n\n const setDocFieldPreferences = useCallback<DocumentInfoContext['setDocFieldPreferences']>(\n async (path, fieldPreferences) => {\n const allPreferences = await getDocPreferences()\n\n if (preferencesKey) {\n try {\n await setPreference(preferencesKey, {\n ...allPreferences,\n fields: {\n ...(allPreferences?.fields || {}),\n [path]: {\n ...allPreferences?.fields?.[path],\n ...fieldPreferences,\n },\n },\n })\n } catch (e) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n },\n [setPreference, preferencesKey, getDocPreferences],\n )\n\n const incrementVersionCount = useCallback(() => {\n if (collectionConfig && collectionConfig.versions) {\n setVersionCount(Math.min(versionCount + 1, collectionConfig.versions.maxPerDoc))\n } else if (globalConfig && globalConfig.versions) {\n setVersionCount(Math.min(versionCount + 1, globalConfig.versions.max))\n }\n }, [collectionConfig, globalConfig, versionCount])\n\n const updateSavedDocumentData = React.useCallback<DocumentInfoContext['updateSavedDocumentData']>(\n (json) => {\n setSavedDocumentData(json)\n },\n [],\n )\n\n useEffect(() => {\n setDocumentTitle(\n formatDocTitle({\n collectionConfig,\n data: { ...savedDocumentData, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n }, [collectionConfig, globalConfig, savedDocumentData, dateFormat, i18n, id])\n\n // clean on unmount\n useEffect(() => {\n const re1 = abortControllerRef.current\n\n return () => {\n if (re1) {\n try {\n re1.abort()\n } catch (_err) {\n // swallow error\n }\n }\n }\n }, [])\n\n const action: string = React.useMemo(() => {\n const docURL = `${baseURL}${pluralType === 'globals' ? `/globals` : ''}/${slug}${id ? `/${id}` : ''}`\n const params = {\n depth: 0,\n 'fallback-locale': 'null',\n locale,\n uploadEdits: uploadEdits || undefined,\n }\n\n return `${docURL}${qs.stringify(params, {\n addQueryPrefix: true,\n })}`\n }, [baseURL, locale, pluralType, id, slug, uploadEdits])\n\n const value: DocumentInfoContext = {\n ...props,\n action,\n currentEditor,\n docConfig,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n hasPublishedDoc,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialData,\n initialState,\n isInitializing,\n lastUpdateTime,\n mostRecentVersionIsAutosaved,\n preferencesKey,\n savedDocumentData,\n setCurrentEditor,\n setDocFieldPreferences,\n setDocumentIsLocked,\n setDocumentTitle,\n setHasPublishedDoc,\n setLastUpdateTime,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n setUploadStatus: updateUploadStatus,\n title: documentTitle,\n unlockDocument,\n unpublishedVersionCount,\n updateDocumentEditor,\n updateSavedDocumentData,\n uploadStatus,\n versionCount,\n }\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n}\n\nexport const DocumentInfoProvider: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = (props) => {\n return (\n <UploadEditsProvider>\n <DocumentInfo {...props} />\n </UploadEditsProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Locale/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAGrC,OAAO,KAAiE,MAAM,OAAO,CAAA;AASrF,eAAO,MAAM,oBAAoB;;4BAEP,OAAO;EAC/B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Locale/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAGrC,OAAO,KAAiE,MAAM,OAAO,CAAA;AASrF,eAAO,MAAM,oBAAoB;;4BAEP,OAAO;EAC/B,CAAA;AAcF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;CAAE,CAyF5F,CAAA;AAED,eAAO,MAAM,gBAAgB;;4BA1GH,OAAO;CA0GqC,CAAA;AAEtE;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAO,MAAmC,CAAA"}
|