@payloadcms/ui 3.1.1 → 3.2.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/index.d.ts.map +1 -1
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AnimateHeight/index.d.ts +10 -0
- package/dist/elements/AnimateHeight/index.d.ts.map +1 -0
- package/dist/elements/AnimateHeight/index.js +75 -0
- package/dist/elements/AnimateHeight/index.js.map +1 -0
- package/dist/elements/AnimateHeight/index.scss +8 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts +8 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts.map +1 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +49 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -0
- package/dist/elements/AppHeader/index.scss +7 -8
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +2 -4
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/Collapsible/index.d.ts.map +1 -1
- package/dist/elements/Collapsible/index.js +1 -3
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.d.ts +4 -0
- package/dist/elements/CopyLocaleData/index.d.ts.map +1 -0
- package/dist/elements/CopyLocaleData/index.js +182 -0
- package/dist/elements/CopyLocaleData/index.js.map +1 -0
- package/dist/elements/CopyLocaleData/index.scss +24 -0
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +3 -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 +3 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +30 -27
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +2 -0
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +2 -3
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +3 -1
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/types.d.ts +2 -0
- package/dist/elements/ListDrawer/types.d.ts.map +1 -1
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/NavGroup/index.d.ts.map +1 -1
- package/dist/elements/NavGroup/index.js +1 -2
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.js +5 -0
- package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +4 -4
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/SearchFilter/index.d.ts.map +1 -1
- package/dist/elements/SearchFilter/index.js +0 -1
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +1 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +22 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +1 -0
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +1 -0
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +1 -0
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +10 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts +7 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js +5 -0
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +3 -2
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +4 -3
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +0 -1
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Locale/index.js +30 -29
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +0 -4
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +8 -0
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +19 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildClientFieldSchemaMap/index.d.ts +16 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.d.ts.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.js +70 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts +15 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +129 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -0
- package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/index.js +13 -14
- package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
- package/dist/utilities/buildFormState.d.ts +1 -8
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +19 -41
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/buildTableState.d.ts +1 -7
- package/dist/utilities/buildTableState.d.ts.map +1 -1
- package/dist/utilities/buildTableState.js +2 -21
- package/dist/utilities/buildTableState.js.map +1 -1
- package/dist/utilities/copyDataFromLocale.d.ts +13 -0
- package/dist/utilities/copyDataFromLocale.d.ts.map +1 -0
- package/dist/utilities/copyDataFromLocale.js +195 -0
- package/dist/utilities/copyDataFromLocale.js.map +1 -0
- package/dist/utilities/getClientConfig.d.ts +8 -0
- package/dist/utilities/getClientConfig.d.ts.map +1 -0
- package/dist/utilities/getClientConfig.js +25 -0
- package/dist/utilities/getClientConfig.js.map +1 -0
- package/dist/utilities/getClientSchemaMap.d.ts +11 -0
- package/dist/utilities/getClientSchemaMap.d.ts.map +1 -0
- package/dist/utilities/getClientSchemaMap.js +39 -0
- package/dist/utilities/getClientSchemaMap.js.map +1 -0
- package/dist/utilities/getSchemaMap.d.ts +9 -0
- package/dist/utilities/getSchemaMap.d.ts.map +1 -0
- package/dist/utilities/getSchemaMap.js +35 -0
- package/dist/utilities/getSchemaMap.js.map +1 -0
- package/dist/views/Edit/Auth/types.d.ts +2 -2
- package/dist/views/Edit/Auth/types.d.ts.map +1 -1
- package/dist/views/Edit/Auth/types.js.map +1 -1
- package/package.json +5 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderField.js","names":["getTranslation","createClientField","deepCopyObjectSimple","MissingEditorProp","RenderServerComponent","FieldDescription","defaultUIFieldComponentKeys","renderField","id","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","formState","indexPath","operation","parentPath","parentSchemaPath","path","permissions","preferences","req","schemaPath","siblingData","clientField","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","customComponents","readOnly","includes","type","serverProps","user","rows","forEach","row","rowIndex","admin","components","RowLabels","Component","RowLabel","rowLabel","labels","singular","String","padStart","rowNumber","editor","Error","Field","FieldComponent","key","description","Description","_jsx","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, deepCopyObjectSimple, MissingEditorProp } from 'payload'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\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 } 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 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 = createClientField({\n clientField: deepCopyObjectSimple(fieldConfig) as ClientField,\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n })\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n customComponents: fieldState?.customComponents || {},\n field: clientField,\n path,\n readOnly: typeof permissions === 'boolean' ? !permissions : !permissions?.[operation],\n schemaPath,\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 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 if (!fieldState?.customComponents) {\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 = RenderServerComponent({\n clientProps,\n Component: fieldConfig.editor.FieldComponent,\n importMap: req.payload.importMap,\n serverProps,\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 const Component = fieldConfig.admin.components[key]\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 ('description' in fieldConfig.admin) {\n if (typeof fieldConfig.admin?.description === 'function') {\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\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 = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Field,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Field',\n serverProps,\n })\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"renderField.js","names":["getTranslation","createClientField","MissingEditorProp","RenderServerComponent","FieldDescription","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","customComponents","readOnly","includes","type","serverProps","user","rows","forEach","row","rowIndex","admin","components","RowLabels","Component","RowLabel","rowLabel","labels","singular","String","padStart","rowNumber","editor","Error","Field","FieldComponent","key","description","Description","_jsx","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'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\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 } 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 const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n customComponents: fieldState?.customComponents || {},\n field: clientField,\n path,\n readOnly: typeof permissions === 'boolean' ? !permissions : !permissions?.[operation],\n schemaPath,\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 if (!fieldState?.customComponents) {\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 = RenderServerComponent({\n clientProps,\n Component: fieldConfig.editor.FieldComponent,\n importMap: req.payload.importMap,\n serverProps,\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 const Component = fieldConfig.admin.components[key]\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 ('description' in fieldConfig.admin) {\n if (typeof fieldConfig.admin?.description === 'function') {\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\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 = RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Field,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Field',\n serverProps,\n })\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { Data, DocumentPreferences, Field, FieldSchemaMap, FieldState, FormState, Operation, PayloadRequest, SanitizedFieldPermissions } from 'payload';
|
|
1
|
+
import type { ClientFieldSchemaMap, Data, DocumentPreferences, Field, FieldSchemaMap, FieldState, FormState, Operation, PayloadRequest, SanitizedFieldPermissions } from 'payload';
|
|
2
2
|
export type RenderFieldArgs = {
|
|
3
|
+
clientFieldSchemaMap?: ClientFieldSchemaMap;
|
|
3
4
|
collectionSlug: string;
|
|
4
5
|
data: Data;
|
|
5
6
|
fieldConfig: Field;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,KAAK,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,SAAS,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,yBAAyB,CAAA;IACtC,WAAW,EAAE,mBAAmB,CAAA;IAChC,kBAAkB,EAAE,UAAU,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,eAAe,GAAG;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,KAAK,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,SAAS,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,yBAAyB,CAAA;IACtC,WAAW,EAAE,mBAAmB,CAAA;IAChC,kBAAkB,EAAE,UAAU,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/fieldSchemasToFormState/types.ts"],"sourcesContent":["import type {\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FormState,\n Operation,\n PayloadRequest,\n SanitizedFieldPermissions,\n} from 'payload'\n\nexport type RenderFieldArgs = {\n collectionSlug: string\n data: Data\n fieldConfig: Field\n fieldSchemaMap: FieldSchemaMap\n fieldState: FieldState\n formState: FormState\n id?: number | string\n indexPath: string\n operation: Operation\n parentPath: string\n parentSchemaPath: string\n path: string\n permissions: SanitizedFieldPermissions\n preferences: DocumentPreferences\n previousFieldState: FieldState\n req: PayloadRequest\n schemaPath: string\n siblingData: Data\n}\n\nexport type RenderFieldMethod = (args: RenderFieldArgs) => void\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/fieldSchemasToFormState/types.ts"],"sourcesContent":["import type {\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FormState,\n Operation,\n PayloadRequest,\n SanitizedFieldPermissions,\n} from 'payload'\n\nexport type RenderFieldArgs = {\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug: string\n data: Data\n fieldConfig: Field\n fieldSchemaMap: FieldSchemaMap\n fieldState: FieldState\n formState: FormState\n id?: number | string\n indexPath: string\n operation: Operation\n parentPath: string\n parentSchemaPath: string\n path: string\n permissions: SanitizedFieldPermissions\n preferences: DocumentPreferences\n previousFieldState: FieldState\n req: PayloadRequest\n schemaPath: string\n siblingData: Data\n}\n\nexport type RenderFieldMethod = (args: RenderFieldArgs) => void\n"],"mappings":"AAmCA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAK9D,OAAO,KAAsE,MAAM,OAAO,CAAA;AAE1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAM3D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAA;AAErE,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD,GAAG,eAAe,CAAA;AAInB,eAAO,MAAM,YAAY,QAAO,gBAAuC,CAAA;AAEvE,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAK9D,OAAO,KAAsE,MAAM,OAAO,CAAA;AAE1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAM3D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAA;AAErE,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD,GAAG,eAAe,CAAA;AAInB,eAAO,MAAM,YAAY,QAAO,gBAAuC,CAAA;AAEvE,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAmKtD,CAAA"}
|
|
@@ -118,7 +118,6 @@ export const ListQueryProvider = ({
|
|
|
118
118
|
currentQuery.sort = defaultSort;
|
|
119
119
|
shouldUpdateQueryString = true;
|
|
120
120
|
}
|
|
121
|
-
// eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
|
|
122
121
|
setCurrentQuery(currentQuery);
|
|
123
122
|
if (shouldUpdateQueryString) {
|
|
124
123
|
router.replace(`?${qs.stringify(currentQuery)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useRouter","isNumber","qs","React","createContext","useCallback","useContext","useEffect","useState","useListDrawerContext","usePreferences","useSearchParams","Context","useListQuery","ListQueryProvider","children","collectionSlug","data","defaultLimit","defaultSort","modifySearchParams","onQueryChange","onQueryChangeFromProps","preferenceKey","router","setPreference","searchParams","currentQuery","setCurrentQuery","refineListData","query","pageQuery","page","updatedPreferences","updatePreferences","limit","Number","sort","newQuery","search","where","replace","stringify","addQueryPrefix","onChangeFn","handlePageChange","arg","String","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","shouldUpdateQueryString","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery, PaginatedDocs, Where } from 'payload'\n\nimport { useRouter } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\n\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n}\n\nexport type ListQueryProps = {\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly data: PaginatedDocs\n readonly defaultLimit?: number\n readonly defaultSort?: string\n readonly modifySearchParams?: boolean\n readonly onQueryChange?: (query: ListQuery) => void\n readonly preferenceKey?: string\n}\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n query: ListQuery\n refineListData: (args: ListQuery) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n defaultLimit,\n defaultSort,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n preferenceKey,\n}) => {\n 'use no memo'\n const router = useRouter()\n const { setPreference } = usePreferences()\n const { searchParams } = useSearchParams()\n\n const { onQueryChange } = useListDrawerContext()\n\n const [currentQuery, setCurrentQuery] = useState(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {}\n }\n })\n\n useEffect(() => {\n if (modifySearchParams) {\n setCurrentQuery(searchParams)\n }\n }, [searchParams, modifySearchParams])\n\n const refineListData = useCallback(\n async (query: ListQuery) => {\n let pageQuery = 'page' in query ? query.page : currentQuery?.page\n\n if ('where' in query || 'search' in query) {\n pageQuery = '1'\n }\n\n const updatedPreferences: Record<string, unknown> = {}\n let updatePreferences = false\n\n if ('limit' in query) {\n updatedPreferences.limit = Number(query.limit)\n updatePreferences = true\n }\n\n if ('sort' in query) {\n updatedPreferences.sort = query.sort\n updatePreferences = true\n }\n\n if (updatePreferences && preferenceKey) {\n await setPreference(preferenceKey, updatedPreferences, true)\n }\n\n const newQuery: ListQuery = {\n limit: 'limit' in query ? query.limit : (currentQuery?.limit as string),\n page: pageQuery as string,\n search: 'search' in query ? query.search : (currentQuery?.search as string),\n sort: 'sort' in query ? query.sort : (currentQuery?.sort as string),\n where: 'where' in query ? query.where : (currentQuery?.where as Where),\n }\n\n if (modifySearchParams) {\n router.replace(`${qs.stringify(newQuery, { addQueryPrefix: true })}`)\n } else if (\n typeof onQueryChange === 'function' ||\n typeof onQueryChangeFromProps === 'function'\n ) {\n const onChangeFn = onQueryChange || onQueryChangeFromProps\n onChangeFn(newQuery)\n }\n },\n [\n modifySearchParams,\n currentQuery?.page,\n currentQuery?.limit,\n currentQuery?.sort,\n currentQuery?.where,\n currentQuery?.search,\n preferenceKey,\n router,\n setPreference,\n onQueryChange,\n onQueryChangeFromProps,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: String(arg) })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: String(arg), page: '1' })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (arg: string) => {\n await refineListData({ sort: arg })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (arg: Where) => {\n await refineListData({ where: arg })\n },\n [refineListData],\n )\n\n useEffect(() => {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n currentQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n\n if (defaultSort && !('sort' in currentQuery)) {\n currentQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setCurrentQuery(currentQuery)\n\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n query: currentQuery,\n refineListData,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useRouter","isNumber","qs","React","createContext","useCallback","useContext","useEffect","useState","useListDrawerContext","usePreferences","useSearchParams","Context","useListQuery","ListQueryProvider","children","collectionSlug","data","defaultLimit","defaultSort","modifySearchParams","onQueryChange","onQueryChangeFromProps","preferenceKey","router","setPreference","searchParams","currentQuery","setCurrentQuery","refineListData","query","pageQuery","page","updatedPreferences","updatePreferences","limit","Number","sort","newQuery","search","where","replace","stringify","addQueryPrefix","onChangeFn","handlePageChange","arg","String","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","shouldUpdateQueryString","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery, PaginatedDocs, Where } from 'payload'\n\nimport { useRouter } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\n\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n}\n\nexport type ListQueryProps = {\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly data: PaginatedDocs\n readonly defaultLimit?: number\n readonly defaultSort?: string\n readonly modifySearchParams?: boolean\n readonly onQueryChange?: (query: ListQuery) => void\n readonly preferenceKey?: string\n}\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n query: ListQuery\n refineListData: (args: ListQuery) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n defaultLimit,\n defaultSort,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n preferenceKey,\n}) => {\n 'use no memo'\n const router = useRouter()\n const { setPreference } = usePreferences()\n const { searchParams } = useSearchParams()\n\n const { onQueryChange } = useListDrawerContext()\n\n const [currentQuery, setCurrentQuery] = useState(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {}\n }\n })\n\n useEffect(() => {\n if (modifySearchParams) {\n setCurrentQuery(searchParams)\n }\n }, [searchParams, modifySearchParams])\n\n const refineListData = useCallback(\n async (query: ListQuery) => {\n let pageQuery = 'page' in query ? query.page : currentQuery?.page\n\n if ('where' in query || 'search' in query) {\n pageQuery = '1'\n }\n\n const updatedPreferences: Record<string, unknown> = {}\n let updatePreferences = false\n\n if ('limit' in query) {\n updatedPreferences.limit = Number(query.limit)\n updatePreferences = true\n }\n\n if ('sort' in query) {\n updatedPreferences.sort = query.sort\n updatePreferences = true\n }\n\n if (updatePreferences && preferenceKey) {\n await setPreference(preferenceKey, updatedPreferences, true)\n }\n\n const newQuery: ListQuery = {\n limit: 'limit' in query ? query.limit : (currentQuery?.limit as string),\n page: pageQuery as string,\n search: 'search' in query ? query.search : (currentQuery?.search as string),\n sort: 'sort' in query ? query.sort : (currentQuery?.sort as string),\n where: 'where' in query ? query.where : (currentQuery?.where as Where),\n }\n\n if (modifySearchParams) {\n router.replace(`${qs.stringify(newQuery, { addQueryPrefix: true })}`)\n } else if (\n typeof onQueryChange === 'function' ||\n typeof onQueryChangeFromProps === 'function'\n ) {\n const onChangeFn = onQueryChange || onQueryChangeFromProps\n onChangeFn(newQuery)\n }\n },\n [\n modifySearchParams,\n currentQuery?.page,\n currentQuery?.limit,\n currentQuery?.sort,\n currentQuery?.where,\n currentQuery?.search,\n preferenceKey,\n router,\n setPreference,\n onQueryChange,\n onQueryChangeFromProps,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: String(arg) })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: String(arg), page: '1' })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (arg: string) => {\n await refineListData({ sort: arg })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (arg: Where) => {\n await refineListData({ where: arg })\n },\n [refineListData],\n )\n\n useEffect(() => {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n currentQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n\n if (defaultSort && !('sort' in currentQuery)) {\n currentQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n\n setCurrentQuery(currentQuery)\n\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n query: currentQuery,\n refineListData,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,8 +18,9 @@ export const LocaleProvider = t0 => {
|
|
|
18
18
|
config: t1
|
|
19
19
|
} = useConfig();
|
|
20
20
|
const {
|
|
21
|
-
localization
|
|
21
|
+
localization: t2
|
|
22
22
|
} = t1;
|
|
23
|
+
const localization = t2 === undefined ? false : t2;
|
|
23
24
|
const {
|
|
24
25
|
user
|
|
25
26
|
} = useAuth();
|
|
@@ -29,23 +30,23 @@ export const LocaleProvider = t0 => {
|
|
|
29
30
|
} = useSearchParams();
|
|
30
31
|
const localeFromParams = searchParams?.locale;
|
|
31
32
|
const [localeCode, setLocaleCode] = useState(localeFromParams || defaultLocale);
|
|
32
|
-
let
|
|
33
|
+
let t3;
|
|
33
34
|
if ($[0] !== localization || $[1] !== localeCode) {
|
|
34
|
-
|
|
35
|
+
t3 = localization && findLocaleFromCode(localization, localeCode);
|
|
35
36
|
$[0] = localization;
|
|
36
37
|
$[1] = localeCode;
|
|
37
|
-
$[2] =
|
|
38
|
+
$[2] = t3;
|
|
38
39
|
} else {
|
|
39
|
-
|
|
40
|
+
t3 = $[2];
|
|
40
41
|
}
|
|
41
|
-
const [locale, setLocale] = useState(
|
|
42
|
+
const [locale, setLocale] = useState(t3);
|
|
42
43
|
const {
|
|
43
44
|
getPreference,
|
|
44
45
|
setPreference
|
|
45
46
|
} = usePreferences();
|
|
46
|
-
let
|
|
47
|
+
let t4;
|
|
47
48
|
if ($[3] !== localization || $[4] !== defaultLocale || $[5] !== localeCode || $[6] !== user || $[7] !== setPreference) {
|
|
48
|
-
|
|
49
|
+
t4 = async newLocale => {
|
|
49
50
|
if (!localization) {
|
|
50
51
|
return;
|
|
51
52
|
}
|
|
@@ -58,8 +59,8 @@ export const LocaleProvider = t0 => {
|
|
|
58
59
|
if (user) {
|
|
59
60
|
await setPreference("locale", localeToSet);
|
|
60
61
|
}
|
|
61
|
-
} catch (
|
|
62
|
-
const error =
|
|
62
|
+
} catch (t5) {
|
|
63
|
+
const error = t5;
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
};
|
|
@@ -68,14 +69,14 @@ export const LocaleProvider = t0 => {
|
|
|
68
69
|
$[5] = localeCode;
|
|
69
70
|
$[6] = user;
|
|
70
71
|
$[7] = setPreference;
|
|
71
|
-
$[8] =
|
|
72
|
+
$[8] = t4;
|
|
72
73
|
} else {
|
|
73
|
-
|
|
74
|
+
t4 = $[8];
|
|
74
75
|
}
|
|
75
|
-
const switchLocale =
|
|
76
|
-
let
|
|
76
|
+
const switchLocale = t4;
|
|
77
|
+
let t5;
|
|
77
78
|
if ($[9] !== defaultLocale || $[10] !== localeFromParams || $[11] !== user || $[12] !== getPreference || $[13] !== switchLocale) {
|
|
78
|
-
|
|
79
|
+
t5 = () => {
|
|
79
80
|
const setInitialLocale = async function setInitialLocale() {
|
|
80
81
|
let localeToSet_0 = defaultLocale;
|
|
81
82
|
if (typeof localeFromParams === "string") {
|
|
@@ -85,8 +86,8 @@ export const LocaleProvider = t0 => {
|
|
|
85
86
|
;
|
|
86
87
|
try {
|
|
87
88
|
localeToSet_0 = await getPreference("locale");
|
|
88
|
-
} catch (
|
|
89
|
-
const error_0 =
|
|
89
|
+
} catch (t6) {
|
|
90
|
+
const error_0 = t6;
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
93
|
}
|
|
@@ -99,13 +100,13 @@ export const LocaleProvider = t0 => {
|
|
|
99
100
|
$[11] = user;
|
|
100
101
|
$[12] = getPreference;
|
|
101
102
|
$[13] = switchLocale;
|
|
102
|
-
$[14] =
|
|
103
|
+
$[14] = t5;
|
|
103
104
|
} else {
|
|
104
|
-
|
|
105
|
+
t5 = $[14];
|
|
105
106
|
}
|
|
106
|
-
let
|
|
107
|
+
let t6;
|
|
107
108
|
if ($[15] !== defaultLocale || $[16] !== getPreference || $[17] !== localization || $[18] !== localeFromParams || $[19] !== setPreference || $[20] !== user || $[21] !== switchLocale) {
|
|
108
|
-
|
|
109
|
+
t6 = [defaultLocale, getPreference, localization, localeFromParams, setPreference, user, switchLocale];
|
|
109
110
|
$[15] = defaultLocale;
|
|
110
111
|
$[16] = getPreference;
|
|
111
112
|
$[17] = localization;
|
|
@@ -113,24 +114,24 @@ export const LocaleProvider = t0 => {
|
|
|
113
114
|
$[19] = setPreference;
|
|
114
115
|
$[20] = user;
|
|
115
116
|
$[21] = switchLocale;
|
|
116
|
-
$[22] =
|
|
117
|
+
$[22] = t6;
|
|
117
118
|
} else {
|
|
118
|
-
|
|
119
|
+
t6 = $[22];
|
|
119
120
|
}
|
|
120
|
-
useEffect(
|
|
121
|
-
let
|
|
121
|
+
useEffect(t5, t6);
|
|
122
|
+
let t7;
|
|
122
123
|
if ($[23] !== locale || $[24] !== children) {
|
|
123
|
-
|
|
124
|
+
t7 = _jsx(LocaleContext.Provider, {
|
|
124
125
|
value: locale,
|
|
125
126
|
children
|
|
126
127
|
});
|
|
127
128
|
$[23] = locale;
|
|
128
129
|
$[24] = children;
|
|
129
|
-
$[25] =
|
|
130
|
+
$[25] = t7;
|
|
130
131
|
} else {
|
|
131
|
-
|
|
132
|
+
t7 = $[25];
|
|
132
133
|
}
|
|
133
|
-
return
|
|
134
|
+
return t7;
|
|
134
135
|
};
|
|
135
136
|
/**
|
|
136
137
|
* A hook that returns the current locale object.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","createContext","useContext","useEffect","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","useSearchParams","LocaleContext","LocaleProvider","t0","$","children","config","t1","localization","user","defaultLocale","searchParams","localeFromParams","locale","localeCode","setLocaleCode","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","createContext","useContext","useEffect","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","useSearchParams","LocaleContext","LocaleProvider","t0","$","children","config","t1","localization","t2","undefined","user","defaultLocale","searchParams","localeFromParams","locale","localeCode","setLocaleCode","t3","setLocale","getPreference","setPreference","t4","newLocale","localeToSet","localeCodes","indexOf","t5","error","switchLocale","setInitialLocale","localeToSet_0","t6","t7","_jsx","Provider","value","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport React, { createContext, useContext, useEffect, useState } from 'react'\n\nimport { findLocaleFromCode } from '../../utilities/findLocaleFromCode.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nconst LocaleContext = createContext({} as Locale)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const {\n config: { localization = false },\n } = useConfig()\n\n const { user } = useAuth()\n const defaultLocale =\n localization && localization.defaultLocale ? localization.defaultLocale : 'en'\n\n const { searchParams } = useSearchParams()\n const localeFromParams = searchParams?.locale\n\n const [localeCode, setLocaleCode] = useState<string>(\n (localeFromParams as string) || defaultLocale,\n )\n\n const [locale, setLocale] = useState<Locale | null>(\n localization && findLocaleFromCode(localization, localeCode),\n )\n\n const { getPreference, setPreference } = usePreferences()\n\n const switchLocale = React.useCallback(\n async (newLocale: string) => {\n if (!localization) {\n return\n }\n\n const localeToSet =\n localization.localeCodes.indexOf(newLocale) > -1 ? newLocale : defaultLocale\n\n if (localeToSet !== localeCode) {\n setLocaleCode(localeToSet)\n setLocale(findLocaleFromCode(localization, localeToSet))\n try {\n if (user) {\n await setPreference('locale', localeToSet)\n }\n } catch (error) {\n // swallow error\n }\n }\n },\n [localization, setPreference, user, defaultLocale, localeCode],\n )\n\n useEffect(() => {\n async function setInitialLocale() {\n let localeToSet = defaultLocale\n\n if (typeof localeFromParams === 'string') {\n localeToSet = localeFromParams\n } else if (user) {\n try {\n localeToSet = await getPreference<string>('locale')\n } catch (error) {\n // swallow error\n }\n }\n\n await switchLocale(localeToSet)\n }\n\n void setInitialLocale()\n }, [\n defaultLocale,\n getPreference,\n localization,\n localeFromParams,\n setPreference,\n user,\n switchLocale,\n ])\n\n return <LocaleContext.Provider value={locale}>{children}</LocaleContext.Provider>\n}\n\n/**\n * A hook that returns the current locale object.\n */\nexport const useLocale = (): Locale => useContext(LocaleContext)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Selection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGhD,OAAO,KAA8E,MAAM,OAAO,CAAA;AAKlG,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,CAAC,gBAAgB,CAAC,EAAE,KAAK,KAAK,MAAM,CAAA;IACpD,SAAS,EAAE,eAAe,CAAA;IAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAID,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAElC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Selection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGhD,OAAO,KAA8E,MAAM,OAAO,CAAA;AAKlG,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,CAAC,gBAAgB,CAAC,EAAE,KAAK,KAAK,MAAM,CAAA;IACpD,SAAS,EAAE,eAAe,CAAA;IAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAID,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAElC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqK7C,CAAA;AAED,eAAO,MAAM,YAAY,QAAO,gBAAuC,CAAA"}
|
|
@@ -132,13 +132,10 @@ export const SelectionProvider = ({
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
if (all && selected.size === docs.length) {
|
|
135
|
-
// eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
|
|
136
135
|
setSelectAll("allInPage");
|
|
137
136
|
} else if (some) {
|
|
138
|
-
// eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
|
|
139
137
|
setSelectAll("some");
|
|
140
138
|
} else {
|
|
141
|
-
// eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
|
|
142
139
|
setSelectAll("none");
|
|
143
140
|
}
|
|
144
141
|
}, [selectAll, selected, totalDocs, docs]);
|
|
@@ -153,7 +150,6 @@ export const SelectionProvider = ({
|
|
|
153
150
|
}
|
|
154
151
|
}
|
|
155
152
|
}
|
|
156
|
-
// eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
|
|
157
153
|
setCount(newCount);
|
|
158
154
|
}, [selectAll, selected, totalDocs]);
|
|
159
155
|
contextRef.current = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","useLocale","useSearchParams","SelectAllStatus","Context","SelectionProvider","children","docs","totalDocs","user","contextRef","code","locale","selected","setSelected","rows","Map","forEach","id","set","selectAll","setSelectAll","count","setCount","searchParams","toggleAll","allAvailable","_isLocked","_userEditing","setSelection","doc","find","existingValue","get","isSelected","newMap","getQueryParams","additionalWhereParams","where","params","not_equals","ids","key","value","push","in","and","stringify","addQueryPrefix","some","all","size","_","length","newCount","current","_jsx","Provider","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../Locale/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n setSelection: (id: number | string) => void\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({} as SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n user: ClientUser\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs, user }) => {\n const contextRef = useRef({} as SelectionContext)\n\n const { code: locale } = useLocale()\n\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const { searchParams } = useSearchParams()\n\n const toggleAll = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, selectAll !== SelectAllStatus.Some)\n }\n })\n }\n\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n let newMap = new Map()\n\n if (isSelected) {\n newMap = new Map(selected.set(id, isSelected))\n } else {\n newMap = new Map(selected.set(id, false))\n }\n\n setSelected(newMap)\n },\n [selected, docs, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalWhereParams?: Where): string => {\n let where: Where\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = searchParams?.where as Where\n\n where = params || {\n id: { not_equals: '' },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n\n if (additionalWhereParams) {\n where = {\n and: [{ ...additionalWhereParams }, where],\n }\n }\n\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.Some)\n } else {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n contextRef.current = {\n count,\n getQueryParams,\n selectAll,\n selected,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context.Provider value={contextRef.current}>{children}</Context.Provider>\n}\n\nexport const useSelection = (): SelectionContext => useContext(Context)\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","useLocale","useSearchParams","SelectAllStatus","Context","SelectionProvider","children","docs","totalDocs","user","contextRef","code","locale","selected","setSelected","rows","Map","forEach","id","set","selectAll","setSelectAll","count","setCount","searchParams","toggleAll","allAvailable","_isLocked","_userEditing","setSelection","doc","find","existingValue","get","isSelected","newMap","getQueryParams","additionalWhereParams","where","params","not_equals","ids","key","value","push","in","and","stringify","addQueryPrefix","some","all","size","_","length","newCount","current","_jsx","Provider","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../Locale/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n setSelection: (id: number | string) => void\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({} as SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n user: ClientUser\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs, user }) => {\n const contextRef = useRef({} as SelectionContext)\n\n const { code: locale } = useLocale()\n\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const { searchParams } = useSearchParams()\n\n const toggleAll = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, selectAll !== SelectAllStatus.Some)\n }\n })\n }\n\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n let newMap = new Map()\n\n if (isSelected) {\n newMap = new Map(selected.set(id, isSelected))\n } else {\n newMap = new Map(selected.set(id, false))\n }\n\n setSelected(newMap)\n },\n [selected, docs, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalWhereParams?: Where): string => {\n let where: Where\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = searchParams?.where as Where\n\n where = params || {\n id: { not_equals: '' },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n\n if (additionalWhereParams) {\n where = {\n and: [{ ...additionalWhereParams }, where],\n }\n }\n\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n setSelectAll(SelectAllStatus.Some)\n } else {\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n contextRef.current = {\n count,\n getQueryParams,\n selectAll,\n selected,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context.Provider value={contextRef.current}>{children}</Context.Provider>\n}\n\nexport const useSelection = (): SelectionContext => useContext(Context)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@ import type { BuildFormStateArgs, BuildTableStateArgs, Data, DocumentSlots, Serv
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { buildFormStateHandler } from '../../utilities/buildFormState.js';
|
|
4
4
|
import type { buildTableStateHandler } from '../../utilities/buildTableState.js';
|
|
5
|
+
import type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js';
|
|
5
6
|
type GetFormStateClient = (args: {
|
|
6
7
|
signal?: AbortSignal;
|
|
7
8
|
} & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>) => ReturnType<typeof buildFormStateHandler>;
|
|
@@ -14,6 +15,7 @@ type RenderDocument = (args: {
|
|
|
14
15
|
docID?: number | string;
|
|
15
16
|
drawerSlug?: string;
|
|
16
17
|
initialData?: Data;
|
|
18
|
+
overrideEntityVisibility?: boolean;
|
|
17
19
|
redirectAfterDelete?: boolean;
|
|
18
20
|
redirectAfterDuplicate?: boolean;
|
|
19
21
|
signal?: AbortSignal;
|
|
@@ -21,11 +23,17 @@ type RenderDocument = (args: {
|
|
|
21
23
|
data: Data;
|
|
22
24
|
Document: React.ReactNode;
|
|
23
25
|
}>;
|
|
26
|
+
type CopyDataFromLocaleClient = (args: {
|
|
27
|
+
signal?: AbortSignal;
|
|
28
|
+
} & Omit<CopyDataFromLocaleArgs, 'req'>) => Promise<{
|
|
29
|
+
data: Data;
|
|
30
|
+
}>;
|
|
24
31
|
type GetDocumentSlots = (args: {
|
|
25
32
|
collectionSlug: string;
|
|
26
33
|
signal?: AbortSignal;
|
|
27
34
|
}) => Promise<DocumentSlots>;
|
|
28
35
|
type ServerFunctionsContextType = {
|
|
36
|
+
copyDataFromLocale: CopyDataFromLocaleClient;
|
|
29
37
|
getDocumentSlots: GetDocumentSlots;
|
|
30
38
|
getFormState: GetFormStateClient;
|
|
31
39
|
getTableState: GetTableStateClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ServerFunctions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,IAAI,EACJ,aAAa,EACb,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAqC,MAAM,OAAO,CAAA;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ServerFunctions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,IAAI,EACJ,aAAa,EACb,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAqC,MAAM,OAAO,CAAA;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAEnF,KAAK,kBAAkB,GAAG,CACxB,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,KAAK,CAAC,KACjD,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE7C,KAAK,mBAAmB,GAAG,CACzB,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,KAAK,CAAC,KAClD,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE9C,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,KAAK,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAAC,CAAA;AAExD,KAAK,wBAAwB,GAAG,CAC9B,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,KACpC,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAA;AAE5B,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;AAE5B,KAAK,0BAA0B,GAAG;IAChC,kBAAkB,EAAE,wBAAwB,CAAA;IAC5C,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,YAAY,EAAE,kBAAkB,CAAA;IAChC,aAAa,EAAE,mBAAmB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,oBAAoB,CAAA;CACrC,CAAA;AAED,eAAO,MAAM,sBAAsB,2CAElC,CAAA;AAED,eAAO,MAAM,kBAAkB,kCAM9B,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC7C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,cAAc,EAAE,oBAAoB,CAAA;CACrC,CAkHA,CAAA"}
|
|
@@ -90,8 +90,27 @@ export const ServerFunctionsProvider = ({
|
|
|
90
90
|
;
|
|
91
91
|
}
|
|
92
92
|
}, [serverFunction]);
|
|
93
|
+
const copyDataFromLocale = useCallback(async args => {
|
|
94
|
+
const {
|
|
95
|
+
signal: remoteSignal,
|
|
96
|
+
...rest
|
|
97
|
+
} = args || {};
|
|
98
|
+
try {
|
|
99
|
+
const result = await serverFunction({
|
|
100
|
+
name: 'copy-data-from-locale',
|
|
101
|
+
args: rest
|
|
102
|
+
});
|
|
103
|
+
if (!remoteSignal?.aborted) {
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
} catch (_err) {
|
|
107
|
+
console.error(_err) // eslint-disable-line no-console
|
|
108
|
+
;
|
|
109
|
+
}
|
|
110
|
+
}, [serverFunction]);
|
|
93
111
|
return /*#__PURE__*/_jsx(ServerFunctionsContext.Provider, {
|
|
94
112
|
value: {
|
|
113
|
+
copyDataFromLocale,
|
|
95
114
|
getDocumentSlots,
|
|
96
115
|
getFormState,
|
|
97
116
|
getTableState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","createContext","useCallback","ServerFunctionsContext","undefined","useServerFunctions","context","useContext","Error","ServerFunctionsProvider","children","serverFunction","getDocumentSlots","args","name","getFormState","signal","remoteSignal","rest","aborted","result","fallbackLocale","_err","console","error","state","getTableState","renderDocument","_jsx","Provider","value"],"sources":["../../../src/providers/ServerFunctions/index.tsx"],"sourcesContent":["import type {\n BuildFormStateArgs,\n BuildTableStateArgs,\n Data,\n DocumentSlots,\n ServerFunctionClient,\n} from 'payload'\n\nimport React, { createContext, useCallback } from 'react'\n\nimport type { buildFormStateHandler } from '../../utilities/buildFormState.js'\nimport type { buildTableStateHandler } from '../../utilities/buildTableState.js'\n\ntype GetFormStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildFormStateHandler>\n\ntype GetTableStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildTableStateHandler>\n\ntype RenderDocument = (args: {\n collectionSlug: string\n disableActions?: boolean\n docID?: number | string\n drawerSlug?: string\n initialData?: Data\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n signal?: AbortSignal\n}) => Promise<{ data: Data; Document: React.ReactNode }>\n\ntype GetDocumentSlots = (args: {\n collectionSlug: string\n signal?: AbortSignal\n}) => Promise<DocumentSlots>\n\ntype ServerFunctionsContextType = {\n getDocumentSlots: GetDocumentSlots\n getFormState: GetFormStateClient\n getTableState: GetTableStateClient\n renderDocument: RenderDocument\n serverFunction: ServerFunctionClient\n}\n\nexport const ServerFunctionsContext = createContext<ServerFunctionsContextType | undefined>(\n undefined,\n)\n\nexport const useServerFunctions = () => {\n const context = React.useContext(ServerFunctionsContext)\n if (context === undefined) {\n throw new Error('useServerFunctions must be used within a ServerFunctionsProvider')\n }\n return context\n}\n\nexport const ServerFunctionsProvider: React.FC<{\n children: React.ReactNode\n serverFunction: ServerFunctionClient\n}> = ({ children, serverFunction }) => {\n if (!serverFunction) {\n throw new Error('ServerFunctionsProvider requires a serverFunction prop')\n }\n\n const getDocumentSlots = useCallback<GetDocumentSlots>(\n async (args) =>\n await serverFunction({\n name: 'render-document-slots',\n args,\n }),\n [serverFunction],\n )\n\n const getFormState = useCallback<GetFormStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'form-state',\n args: { fallbackLocale: false, ...rest },\n })) as ReturnType<typeof buildFormStateHandler> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n return { state: null }\n },\n [serverFunction],\n )\n\n const getTableState = useCallback<GetTableStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'table-state',\n args: { fallbackLocale: false, ...rest },\n })) as ReturnType<typeof buildTableStateHandler> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n // return { state: args.formState }\n },\n [serverFunction],\n )\n\n const renderDocument = useCallback<RenderDocument>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'render-document',\n args: { fallbackLocale: false, ...rest },\n })) as { data: Data; Document: React.ReactNode }\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n return (\n <ServerFunctionsContext.Provider\n value={{\n getDocumentSlots,\n getFormState,\n getTableState,\n renderDocument,\n serverFunction,\n }}\n >\n {children}\n </ServerFunctionsContext.Provider>\n )\n}\n"],"mappings":";AAQA,OAAOA,KAAA,IAASC,aAAa,EAAEC,WAAW,QAAQ;
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","createContext","useCallback","ServerFunctionsContext","undefined","useServerFunctions","context","useContext","Error","ServerFunctionsProvider","children","serverFunction","getDocumentSlots","args","name","getFormState","signal","remoteSignal","rest","aborted","result","fallbackLocale","_err","console","error","state","getTableState","renderDocument","copyDataFromLocale","_jsx","Provider","value"],"sources":["../../../src/providers/ServerFunctions/index.tsx"],"sourcesContent":["import type {\n BuildFormStateArgs,\n BuildTableStateArgs,\n Data,\n DocumentSlots,\n ServerFunctionClient,\n} from 'payload'\n\nimport React, { createContext, useCallback } from 'react'\n\nimport type { buildFormStateHandler } from '../../utilities/buildFormState.js'\nimport type { buildTableStateHandler } from '../../utilities/buildTableState.js'\nimport type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js'\n\ntype GetFormStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildFormStateHandler>\n\ntype GetTableStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildTableStateHandler>\n\ntype RenderDocument = (args: {\n collectionSlug: string\n disableActions?: boolean\n docID?: number | string\n drawerSlug?: string\n initialData?: Data\n overrideEntityVisibility?: boolean\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n signal?: AbortSignal\n}) => Promise<{ data: Data; Document: React.ReactNode }>\n\ntype CopyDataFromLocaleClient = (\n args: {\n signal?: AbortSignal\n } & Omit<CopyDataFromLocaleArgs, 'req'>,\n) => Promise<{ data: Data }>\n\ntype GetDocumentSlots = (args: {\n collectionSlug: string\n signal?: AbortSignal\n}) => Promise<DocumentSlots>\n\ntype ServerFunctionsContextType = {\n copyDataFromLocale: CopyDataFromLocaleClient\n getDocumentSlots: GetDocumentSlots\n getFormState: GetFormStateClient\n getTableState: GetTableStateClient\n renderDocument: RenderDocument\n serverFunction: ServerFunctionClient\n}\n\nexport const ServerFunctionsContext = createContext<ServerFunctionsContextType | undefined>(\n undefined,\n)\n\nexport const useServerFunctions = () => {\n const context = React.useContext(ServerFunctionsContext)\n if (context === undefined) {\n throw new Error('useServerFunctions must be used within a ServerFunctionsProvider')\n }\n return context\n}\n\nexport const ServerFunctionsProvider: React.FC<{\n children: React.ReactNode\n serverFunction: ServerFunctionClient\n}> = ({ children, serverFunction }) => {\n if (!serverFunction) {\n throw new Error('ServerFunctionsProvider requires a serverFunction prop')\n }\n\n const getDocumentSlots = useCallback<GetDocumentSlots>(\n async (args) =>\n await serverFunction({\n name: 'render-document-slots',\n args,\n }),\n [serverFunction],\n )\n\n const getFormState = useCallback<GetFormStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'form-state',\n args: { fallbackLocale: false, ...rest },\n })) as ReturnType<typeof buildFormStateHandler> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n return { state: null }\n },\n [serverFunction],\n )\n\n const getTableState = useCallback<GetTableStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'table-state',\n args: { fallbackLocale: false, ...rest },\n })) as ReturnType<typeof buildTableStateHandler> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n // return { state: args.formState }\n },\n [serverFunction],\n )\n\n const renderDocument = useCallback<RenderDocument>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'render-document',\n args: { fallbackLocale: false, ...rest },\n })) as { data: Data; Document: React.ReactNode }\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const copyDataFromLocale = useCallback<CopyDataFromLocaleClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'copy-data-from-locale',\n args: rest,\n })) as { data: Data }\n\n if (!remoteSignal?.aborted) {\n return result\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n return (\n <ServerFunctionsContext.Provider\n value={{\n copyDataFromLocale,\n getDocumentSlots,\n getFormState,\n getTableState,\n renderDocument,\n serverFunction,\n }}\n >\n {children}\n </ServerFunctionsContext.Provider>\n )\n}\n"],"mappings":";AAQA,OAAOA,KAAA,IAASC,aAAa,EAAEC,WAAW,QAAQ;AAkDlD,OAAO,MAAMC,sBAAA,gBAAyBF,aAAA,CACpCG,SAAA;AAGF,OAAO,MAAMC,kBAAA,GAAqBA,CAAA;EAChC,MAAMC,OAAA,GAAUN,KAAA,CAAMO,UAAU,CAACJ,sBAAA;EACjC,IAAIG,OAAA,KAAYF,SAAA,EAAW;IACzB,MAAM,IAAII,KAAA,CAAM;EAClB;EACA,OAAOF,OAAA;AACT;AAEA,OAAO,MAAMG,uBAAA,GAGRA,CAAC;EAAEC,QAAQ;EAAEC;AAAc,CAAE;EAChC,IAAI,CAACA,cAAA,EAAgB;IACnB,MAAM,IAAIH,KAAA,CAAM;EAClB;EAEA,MAAMI,gBAAA,GAAmBV,WAAA,CACvB,MAAOW,IAAA,IACL,MAAMF,cAAA,CAAe;IACnBG,IAAA,EAAM;IACND;EACF,IACF,CAACF,cAAA,CAAe;EAGlB,MAAMI,YAAA,GAAeb,WAAA,CACnB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,IAAI,CAACI,YAAA,EAAcE,OAAA,EAAS;QAC1B,MAAMC,MAAA,GAAU,MAAMT,cAAA,CAAe;UACnCG,IAAA,EAAM;UACND,IAAA,EAAM;YAAEQ,cAAA,EAAgB;YAAO,GAAGH;UAAK;QACzC;QAAgD;QAEhD,IAAI,CAACD,YAAA,EAAcE,OAAA,EAAS;UAC1B,OAAOC,MAAA;QACT;MACF;IACF,EAAE,OAAOE,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;IAEA,OAAO;MAAEG,KAAA,EAAO;IAAK;EACvB,GACA,CAACd,cAAA,CAAe;EAGlB,MAAMe,aAAA,GAAgBxB,WAAA,CACpB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,IAAI,CAACI,YAAA,EAAcE,OAAA,EAAS;QAC1B,MAAMC,MAAA,GAAU,MAAMT,cAAA,CAAe;UACnCG,IAAA,EAAM;UACND,IAAA,EAAM;YAAEQ,cAAA,EAAgB;YAAO,GAAGH;UAAK;QACzC;QAAiD;QAEjD,IAAI,CAACD,YAAA,EAAcE,OAAA,EAAS;UAC1B,OAAOC,MAAA;QACT;MACF;IACF,EAAE,OAAOE,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;IAEA;EACF,GACA,CAACX,cAAA,CAAe;EAGlB,MAAMgB,cAAA,GAAiBzB,WAAA,CACrB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,MAAMO,MAAA,GAAU,MAAMT,cAAA,CAAe;QACnCG,IAAA,EAAM;QACND,IAAA,EAAM;UAAEQ,cAAA,EAAgB;UAAO,GAAGH;QAAK;MACzC;MAEA,OAAOE,MAAA;IACT,EAAE,OAAOE,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;EACF,GACA,CAACX,cAAA,CAAe;EAGlB,MAAMiB,kBAAA,GAAqB1B,WAAA,CACzB,MAAOW,IAAA;IACL,MAAM;MAAEG,MAAA,EAAQC,YAAY;MAAE,GAAGC;IAAA,CAAM,GAAGL,IAAA,IAAQ,CAAC;IAEnD,IAAI;MACF,MAAMO,MAAA,GAAU,MAAMT,cAAA,CAAe;QACnCG,IAAA,EAAM;QACND,IAAA,EAAMK;MACR;MAEA,IAAI,CAACD,YAAA,EAAcE,OAAA,EAAS;QAC1B,OAAOC,MAAA;MACT;IACF,EAAE,OAAOE,IAAA,EAAM;MACbC,OAAA,CAAQC,KAAK,CAACF,IAAA,EAAM;MAAA;IACtB;EACF,GACA,CAACX,cAAA,CAAe;EAGlB,oBACEkB,IAAA,CAAC1B,sBAAA,CAAuB2B,QAAQ;IAC9BC,KAAA,EAAO;MACLH,kBAAA;MACAhB,gBAAA;MACAG,YAAA;MACAW,aAAA;MACAC,cAAA;MACAhB;IACF;cAECD;;AAGP","ignoreList":[]}
|