@payloadcms/ui 3.3.0 → 3.4.1-canary.2a8fa30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/elements/CodeEditor/CodeEditor.js +39 -32
  2. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  3. package/dist/elements/CodeEditor/types.d.ts +4 -0
  4. package/dist/elements/CodeEditor/types.d.ts.map +1 -1
  5. package/dist/elements/CodeEditor/types.js.map +1 -1
  6. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  7. package/dist/elements/CopyLocaleData/index.js +4 -3
  8. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  9. package/dist/elements/FieldSelect/index.js +2 -2
  10. package/dist/elements/FieldSelect/index.js.map +1 -1
  11. package/dist/elements/PublishButton/index.js +15 -18
  12. package/dist/elements/PublishButton/index.js.map +1 -1
  13. package/dist/elements/RelationshipTable/index.d.ts +2 -0
  14. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  15. package/dist/elements/RelationshipTable/index.js +35 -31
  16. package/dist/elements/RelationshipTable/index.js.map +1 -1
  17. package/dist/elements/Table/DefaultCell/index.js +2 -2
  18. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  19. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  20. package/dist/elements/TableColumns/buildColumnState.js +5 -2
  21. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  22. package/dist/elements/WhereBuilder/reduceClientFields.d.ts.map +1 -1
  23. package/dist/elements/WhereBuilder/reduceClientFields.js +2 -2
  24. package/dist/elements/WhereBuilder/reduceClientFields.js.map +1 -1
  25. package/dist/exports/client/{CodeEditor-RZ32B2QF.js → CodeEditor-QIIK6FKF.js} +2 -2
  26. package/dist/exports/client/{chunk-CKHKQPOO.js → chunk-MFQ5YTBK.js} +6 -6
  27. package/dist/exports/client/chunk-MFQ5YTBK.js.map +8 -0
  28. package/dist/exports/client/index.d.ts +4 -0
  29. package/dist/exports/client/index.d.ts.map +1 -1
  30. package/dist/exports/client/index.js +10 -10
  31. package/dist/exports/client/index.js.map +4 -4
  32. package/dist/exports/shared/index.js +2 -2
  33. package/dist/exports/shared/index.js.map +3 -3
  34. package/dist/fields/Group/index.d.ts.map +1 -1
  35. package/dist/fields/Group/index.js +2 -1
  36. package/dist/fields/Group/index.js.map +1 -1
  37. package/dist/fields/Join/index.d.ts.map +1 -1
  38. package/dist/fields/Join/index.js +15 -3
  39. package/dist/fields/Join/index.js.map +1 -1
  40. package/dist/fields/Relationship/index.d.ts.map +1 -1
  41. package/dist/fields/Relationship/index.js +1 -1
  42. package/dist/fields/Relationship/index.js.map +1 -1
  43. package/dist/fields/Select/Input.d.ts +1 -0
  44. package/dist/fields/Select/Input.d.ts.map +1 -1
  45. package/dist/fields/Select/Input.js +41 -38
  46. package/dist/fields/Select/Input.js.map +1 -1
  47. package/dist/fields/Tabs/index.d.ts +15 -0
  48. package/dist/fields/Tabs/index.d.ts.map +1 -1
  49. package/dist/fields/Tabs/index.js +2 -2
  50. package/dist/fields/Tabs/index.js.map +1 -1
  51. package/dist/forms/Form/index.d.ts.map +1 -1
  52. package/dist/forms/Form/index.js +2 -1
  53. package/dist/forms/Form/index.js.map +1 -1
  54. package/dist/forms/RenderFields/index.js +2 -2
  55. package/dist/forms/RenderFields/index.js.map +1 -1
  56. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  57. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +5 -8
  58. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  59. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  60. package/dist/forms/fieldSchemasToFormState/renderField.js +4 -0
  61. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  62. package/dist/providers/Locale/index.d.ts +15 -1
  63. package/dist/providers/Locale/index.d.ts.map +1 -1
  64. package/dist/providers/Locale/index.js +50 -119
  65. package/dist/providers/Locale/index.js.map +1 -1
  66. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  67. package/dist/providers/SearchParams/index.js +25 -68
  68. package/dist/providers/SearchParams/index.js.map +1 -1
  69. package/dist/styles.css +1 -1
  70. package/dist/utilities/buildTableState.d.ts.map +1 -1
  71. package/dist/utilities/buildTableState.js.map +1 -1
  72. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  73. package/dist/utilities/copyDataFromLocale.js +11 -4
  74. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  75. package/dist/utilities/formatFields.d.ts.map +1 -1
  76. package/dist/utilities/formatFields.js +2 -2
  77. package/dist/utilities/formatFields.js.map +1 -1
  78. package/dist/utilities/groupNavItems.d.ts.map +1 -1
  79. package/dist/utilities/groupNavItems.js +6 -6
  80. package/dist/utilities/groupNavItems.js.map +1 -1
  81. package/dist/utilities/renderTable.d.ts.map +1 -1
  82. package/dist/utilities/renderTable.js +4 -0
  83. package/dist/utilities/renderTable.js.map +1 -1
  84. package/dist/views/Edit/index.js +1 -1
  85. package/dist/views/Edit/index.js.map +1 -1
  86. package/package.json +4 -4
  87. package/dist/exports/client/chunk-CKHKQPOO.js.map +0 -8
  88. /package/dist/exports/client/{CodeEditor-RZ32B2QF.js.map → CodeEditor-QIIK6FKF.js.map} +0 -0
@@ -1 +1 @@
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
+ {"version":3,"file":"renderField.js","names":["getTranslation","createClientField","MissingEditorProp","fieldIsHiddenOrDisabled","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'\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 } 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 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":[]}
@@ -4,7 +4,21 @@ export declare const LocaleProvider: React.FC<{
4
4
  children?: React.ReactNode;
5
5
  }>;
6
6
  /**
7
- * A hook that returns the current locale object.
7
+ * @deprecated A hook that returns the current locale object.
8
+ *
9
+ * ---
10
+ *
11
+ * #### 🚨 V4 Breaking Change
12
+ * The `useLocale` return type now reflects `null | Locale` instead of `false | Locale`.
13
+ *
14
+ * **Old (V3):**
15
+ * ```ts
16
+ * const { code } = useLocale();
17
+ * ```
18
+ * **New (V4):**
19
+ * ```ts
20
+ * const locale = useLocale();
21
+ * ```
8
22
  */
9
23
  export declare const useLocale: () => Locale;
10
24
  //# sourceMappingURL=index.d.ts.map
@@ -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,KAAyD,MAAM,OAAO,CAAA;AAS7E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAyEnE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,MAAmC,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,KAAyD,MAAM,OAAO,CAAA;AAS7E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAkDnE,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,SAAS,QAAO,MAAmC,CAAA"}
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
5
4
  import { useSearchParams } from 'next/navigation.js';
6
5
  import React, { createContext, useContext, useEffect, useState } from 'react';
@@ -9,138 +8,70 @@ import { useAuth } from '../Auth/index.js';
9
8
  import { useConfig } from '../Config/index.js';
10
9
  import { usePreferences } from '../Preferences/index.js';
11
10
  const LocaleContext = /*#__PURE__*/createContext({});
12
- export const LocaleProvider = t0 => {
13
- const $ = _c(28);
11
+ export const LocaleProvider = ({
12
+ children
13
+ }) => {
14
14
  const {
15
- children
16
- } = t0;
17
- const {
18
- config: t1
15
+ config: {
16
+ localization = false
17
+ }
19
18
  } = useConfig();
20
- const {
21
- localization: t2
22
- } = t1;
23
- const localization = t2 === undefined ? false : t2;
24
19
  const {
25
20
  user
26
21
  } = useAuth();
27
- const defaultLocale = localization && localization.defaultLocale ? localization.defaultLocale : "en";
28
- const searchParams = useSearchParams();
29
- let t3;
30
- if ($[0] !== searchParams) {
31
- t3 = searchParams.get("locale");
32
- $[0] = searchParams;
33
- $[1] = t3;
34
- } else {
35
- t3 = $[1];
36
- }
37
- const localeFromParams = t3;
38
- const [localeCode, setLocaleCode] = useState(localeFromParams || defaultLocale);
39
- let t4;
40
- if ($[2] !== localeCode || $[3] !== localization) {
41
- t4 = localization && findLocaleFromCode(localization, localeCode);
42
- $[2] = localeCode;
43
- $[3] = localization;
44
- $[4] = t4;
45
- } else {
46
- t4 = $[4];
47
- }
48
- const [locale, setLocale] = useState(t4);
22
+ const defaultLocale = localization && localization.defaultLocale ? localization.defaultLocale : 'en';
49
23
  const {
50
24
  getPreference,
51
25
  setPreference
52
26
  } = usePreferences();
53
- let t5;
54
- if ($[5] !== defaultLocale || $[6] !== localeCode || $[7] !== localization || $[8] !== setPreference || $[9] !== user) {
55
- t5 = async newLocale => {
56
- if (!localization) {
57
- return;
58
- }
59
- const localeToSet = localization.localeCodes.indexOf(newLocale) > -1 ? newLocale : defaultLocale;
60
- if (localeToSet !== localeCode) {
61
- setLocaleCode(localeToSet);
62
- setLocale(findLocaleFromCode(localization, localeToSet));
63
- ;
64
- try {
65
- if (user) {
66
- await setPreference("locale", localeToSet);
27
+ const searchParams = useSearchParams();
28
+ const localeFromParams = searchParams.get('locale');
29
+ const [localeCode, setLocaleCode] = useState(defaultLocale);
30
+ const locale = React.useMemo(() => {
31
+ if (!localization) {
32
+ // TODO: return null V4
33
+ return {};
34
+ }
35
+ return findLocaleFromCode(localization, localeFromParams || localeCode) || findLocaleFromCode(localization, defaultLocale);
36
+ }, [localeCode, localeFromParams, localization, defaultLocale]);
37
+ useEffect(() => {
38
+ async function setInitialLocale() {
39
+ if (localization && user) {
40
+ if (typeof localeFromParams !== 'string') {
41
+ try {
42
+ const localeToSet = await getPreference('locale');
43
+ setLocaleCode(localeToSet);
44
+ } catch (_) {
45
+ setLocaleCode(defaultLocale);
67
46
  }
68
- } catch (t6) {
69
- const error = t6;
70
- }
71
- }
72
- };
73
- $[5] = defaultLocale;
74
- $[6] = localeCode;
75
- $[7] = localization;
76
- $[8] = setPreference;
77
- $[9] = user;
78
- $[10] = t5;
79
- } else {
80
- t5 = $[10];
81
- }
82
- const switchLocale = t5;
83
- let t6;
84
- if ($[11] !== defaultLocale || $[12] !== getPreference || $[13] !== localeFromParams || $[14] !== switchLocale || $[15] !== user) {
85
- t6 = () => {
86
- const setInitialLocale = async function setInitialLocale() {
87
- let localeToSet_0 = defaultLocale;
88
- if (typeof localeFromParams === "string") {
89
- localeToSet_0 = localeFromParams;
90
47
  } else {
91
- if (user) {
92
- ;
93
- try {
94
- localeToSet_0 = await getPreference("locale");
95
- } catch (t7) {
96
- const error_0 = t7;
97
- }
98
- }
48
+ void setPreference('locale', findLocaleFromCode(localization, localeFromParams)?.code || defaultLocale);
99
49
  }
100
- await switchLocale(localeToSet_0);
101
- };
102
- setInitialLocale();
103
- };
104
- $[11] = defaultLocale;
105
- $[12] = getPreference;
106
- $[13] = localeFromParams;
107
- $[14] = switchLocale;
108
- $[15] = user;
109
- $[16] = t6;
110
- } else {
111
- t6 = $[16];
112
- }
113
- let t7;
114
- if ($[17] !== defaultLocale || $[18] !== getPreference || $[19] !== localeFromParams || $[20] !== localization || $[21] !== setPreference || $[22] !== switchLocale || $[23] !== user) {
115
- t7 = [defaultLocale, getPreference, localization, localeFromParams, setPreference, user, switchLocale];
116
- $[17] = defaultLocale;
117
- $[18] = getPreference;
118
- $[19] = localeFromParams;
119
- $[20] = localization;
120
- $[21] = setPreference;
121
- $[22] = switchLocale;
122
- $[23] = user;
123
- $[24] = t7;
124
- } else {
125
- t7 = $[24];
126
- }
127
- useEffect(t6, t7);
128
- let t8;
129
- if ($[25] !== children || $[26] !== locale) {
130
- t8 = _jsx(LocaleContext.Provider, {
131
- value: locale,
132
- children
133
- });
134
- $[25] = children;
135
- $[26] = locale;
136
- $[27] = t8;
137
- } else {
138
- t8 = $[27];
139
- }
140
- return t8;
50
+ }
51
+ }
52
+ void setInitialLocale();
53
+ }, [defaultLocale, getPreference, localization, localeFromParams, setPreference, user]);
54
+ return /*#__PURE__*/_jsx(LocaleContext.Provider, {
55
+ value: locale,
56
+ children: children
57
+ });
141
58
  };
142
59
  /**
143
- * A hook that returns the current locale object.
60
+ * @deprecated A hook that returns the current locale object.
61
+ *
62
+ * ---
63
+ *
64
+ * #### 🚨 V4 Breaking Change
65
+ * The `useLocale` return type now reflects `null | Locale` instead of `false | Locale`.
66
+ *
67
+ * **Old (V3):**
68
+ * ```ts
69
+ * const { code } = useLocale();
70
+ * ```
71
+ * **New (V4):**
72
+ * ```ts
73
+ * const locale = useLocale();
74
+ * ```
144
75
  */
145
76
  export const useLocale = () => {
146
77
  return useContext(LocaleContext);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useSearchParams","React","createContext","useContext","useEffect","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","LocaleContext","LocaleProvider","t0","$","children","config","t1","localization","t2","undefined","user","defaultLocale","searchParams","t3","get","localeFromParams","localeCode","setLocaleCode","t4","locale","setLocale","getPreference","setPreference","t5","newLocale","localeToSet","localeCodes","indexOf","t6","error","switchLocale","setInitialLocale","localeToSet_0","t7","t8","_jsx","Provider","value","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport { useSearchParams } from 'next/navigation.js'\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'\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.get('locale')\n\n const [localeCode, setLocaleCode] = useState<string>(localeFromParams || defaultLocale)\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
+ {"version":3,"file":"index.js","names":["useSearchParams","React","createContext","useContext","useEffect","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","LocaleContext","LocaleProvider","children","config","localization","user","defaultLocale","getPreference","setPreference","searchParams","localeFromParams","get","localeCode","setLocaleCode","locale","useMemo","setInitialLocale","localeToSet","_","code","_jsx","Provider","value","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport { useSearchParams } from 'next/navigation.js'\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'\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 { getPreference, setPreference } = usePreferences()\n const searchParams = useSearchParams()\n const localeFromParams = searchParams.get('locale')\n\n const [localeCode, setLocaleCode] = useState<string>(defaultLocale)\n\n const locale: Locale = React.useMemo(() => {\n if (!localization) {\n // TODO: return null V4\n return {} as Locale\n }\n\n return (\n findLocaleFromCode(localization, localeFromParams || localeCode) ||\n findLocaleFromCode(localization, defaultLocale)\n )\n }, [localeCode, localeFromParams, localization, defaultLocale])\n\n useEffect(() => {\n async function setInitialLocale() {\n if (localization && user) {\n if (typeof localeFromParams !== 'string') {\n try {\n const localeToSet = await getPreference<string>('locale')\n setLocaleCode(localeToSet)\n } catch (_) {\n setLocaleCode(defaultLocale)\n }\n } else {\n void setPreference(\n 'locale',\n findLocaleFromCode(localization, localeFromParams)?.code || defaultLocale,\n )\n }\n }\n }\n\n void setInitialLocale()\n }, [defaultLocale, getPreference, localization, localeFromParams, setPreference, user])\n\n return <LocaleContext.Provider value={locale}>{children}</LocaleContext.Provider>\n}\n\n/**\n * @deprecated A hook that returns the current locale object.\n *\n * ---\n *\n * #### 🚨 V4 Breaking Change\n * The `useLocale` return type now reflects `null | Locale` instead of `false | Locale`.\n *\n * **Old (V3):**\n * ```ts\n * const { code } = useLocale();\n * ```\n * **New (V4):**\n * ```ts\n * const locale = useLocale();\n * ```\n */\nexport const useLocale = (): Locale => useContext(LocaleContext)\n"],"mappings":"AAAA;;;AAIA,SAASA,eAAe,QAAQ;AAChC,OAAOC,KAAA,IAASC,aAAa,EAAEC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AAEtE,SAASC,kBAAkB,QAAQ;AACnC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAE/B,MAAMC,aAAA,gBAAgBR,aAAA,CAAc,CAAC;AAErC,OAAO,MAAMS,cAAA,GAA2DA,CAAC;EAAEC;AAAQ,CAAE;EACnF,MAAM;IACJC,MAAA,EAAQ;MAAEC,YAAA,GAAe;IAAK;EAAE,CACjC,GAAGN,SAAA;EAEJ,MAAM;IAAEO;EAAI,CAAE,GAAGR,OAAA;EACjB,MAAMS,aAAA,GACJF,YAAA,IAAgBA,YAAA,CAAaE,aAAa,GAAGF,YAAA,CAAaE,aAAa,GAAG;EAE5E,MAAM;IAAEC,aAAa;IAAEC;EAAa,CAAE,GAAGT,cAAA;EACzC,MAAMU,YAAA,GAAenB,eAAA;EACrB,MAAMoB,gBAAA,GAAmBD,YAAA,CAAaE,GAAG,CAAC;EAE1C,MAAM,CAACC,UAAA,EAAYC,aAAA,CAAc,GAAGlB,QAAA,CAAiBW,aAAA;EAErD,MAAMQ,MAAA,GAAiBvB,KAAA,CAAMwB,OAAO,CAAC;IACnC,IAAI,CAACX,YAAA,EAAc;MACjB;MACA,OAAO,CAAC;IACV;IAEA,OACER,kBAAA,CAAmBQ,YAAA,EAAcM,gBAAA,IAAoBE,UAAA,KACrDhB,kBAAA,CAAmBQ,YAAA,EAAcE,aAAA;EAErC,GAAG,CAACM,UAAA,EAAYF,gBAAA,EAAkBN,YAAA,EAAcE,aAAA,CAAc;EAE9DZ,SAAA,CAAU;IACR,eAAesB,iBAAA;MACb,IAAIZ,YAAA,IAAgBC,IAAA,EAAM;QACxB,IAAI,OAAOK,gBAAA,KAAqB,UAAU;UACxC,IAAI;YACF,MAAMO,WAAA,GAAc,MAAMV,aAAA,CAAsB;YAChDM,aAAA,CAAcI,WAAA;UAChB,EAAE,OAAOC,CAAA,EAAG;YACVL,aAAA,CAAcP,aAAA;UAChB;QACF,OAAO;UACL,KAAKE,aAAA,CACH,UACAZ,kBAAA,CAAmBQ,YAAA,EAAcM,gBAAA,GAAmBS,IAAA,IAAQb,aAAA;QAEhE;MACF;IACF;IAEA,KAAKU,gBAAA;EACP,GAAG,CAACV,aAAA,EAAeC,aAAA,EAAeH,YAAA,EAAcM,gBAAA,EAAkBF,aAAA,EAAeH,IAAA,CAAK;EAEtF,oBAAOe,IAAA,CAACpB,aAAA,CAAcqB,QAAQ;IAACC,KAAA,EAAOR,MAAA;cAASZ;;AACjD;AAEA;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAMqB,SAAA,GAAYA,CAAA;EAAA,OAAc9B,UAAA,CAAAO,aAAW;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/SearchParams/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,KAAoC,MAAM,OAAO,CAAA;AAIxD,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAA;IACzB,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAA;CAC7F,CAAA;AASD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAuBzE,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,QAAO,mBAA0C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/SearchParams/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,KAAoC,MAAM,OAAO,CAAA;AAExD,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAA;IACzB,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAA;CAC7F,CAAA;AASD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CA2BzE,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,QAAO,mBAA0C,CAAA"}
@@ -1,11 +1,9 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
5
4
  import { useSearchParams as useNextSearchParams } from 'next/navigation.js';
6
5
  import * as qs from 'qs-esm';
7
6
  import React, { createContext, useContext } from 'react';
8
- import { parseSearchParams } from '../../utilities/parseSearchParams.js';
9
7
  const initialContext = {
10
8
  searchParams: {},
11
9
  stringifyParams: () => ''
@@ -19,74 +17,33 @@ const Context = /*#__PURE__*/createContext(initialContext);
19
17
  * import { useSearchParams } from 'next/navigation'
20
18
  * ```
21
19
  */
22
- export const SearchParamsProvider = t0 => {
23
- const $ = _c(11);
24
- const {
25
- children
26
- } = t0;
20
+ export const SearchParamsProvider = ({
21
+ children
22
+ }) => {
27
23
  const nextSearchParams = useNextSearchParams();
28
- let t1;
29
- if ($[0] !== nextSearchParams) {
30
- t1 = () => parseSearchParams(nextSearchParams);
31
- $[0] = nextSearchParams;
32
- $[1] = t1;
33
- } else {
34
- t1 = $[1];
35
- }
36
- const [searchParams, setSearchParams] = React.useState(t1);
37
- let t2;
38
- if ($[2] !== searchParams) {
39
- t2 = t3 => {
40
- const {
41
- params,
42
- replace: t4
43
- } = t3;
44
- const replace = t4 === undefined ? false : t4;
45
- return qs.stringify({
46
- ...(replace ? {} : searchParams),
47
- ...params
48
- }, {
49
- addQueryPrefix: true
50
- });
51
- };
52
- $[2] = searchParams;
53
- $[3] = t2;
54
- } else {
55
- t2 = $[3];
56
- }
57
- const stringifyParams = t2;
58
- let t3;
59
- let t4;
60
- if ($[4] !== nextSearchParams) {
61
- t3 = () => {
62
- setSearchParams(parseSearchParams(nextSearchParams));
63
- };
64
- t4 = [nextSearchParams];
65
- $[4] = nextSearchParams;
66
- $[5] = t3;
67
- $[6] = t4;
68
- } else {
69
- t3 = $[5];
70
- t4 = $[6];
71
- }
72
- React.useEffect(t3, t4);
73
- let t5;
74
- if ($[7] !== children || $[8] !== searchParams || $[9] !== stringifyParams) {
75
- t5 = _jsx(Context.Provider, {
76
- value: {
77
- searchParams,
78
- stringifyParams
79
- },
80
- children
24
+ const searchString = nextSearchParams.toString();
25
+ const searchParams = React.useMemo(() => qs.parse(searchString, {
26
+ depth: 10,
27
+ ignoreQueryPrefix: true
28
+ }), [searchString]);
29
+ const stringifyParams = React.useCallback(({
30
+ params,
31
+ replace = false
32
+ }) => {
33
+ return qs.stringify({
34
+ ...(replace ? {} : searchParams),
35
+ ...params
36
+ }, {
37
+ addQueryPrefix: true
81
38
  });
82
- $[7] = children;
83
- $[8] = searchParams;
84
- $[9] = stringifyParams;
85
- $[10] = t5;
86
- } else {
87
- t5 = $[10];
88
- }
89
- return t5;
39
+ }, [searchParams]);
40
+ return /*#__PURE__*/_jsx(Context.Provider, {
41
+ value: {
42
+ searchParams,
43
+ stringifyParams
44
+ },
45
+ children: children
46
+ });
90
47
  };
91
48
  /**
92
49
  * @deprecated
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useSearchParams","useNextSearchParams","qs","React","createContext","useContext","parseSearchParams","initialContext","searchParams","stringifyParams","Context","SearchParamsProvider","t0","$","children","nextSearchParams","t1","setSearchParams","useState","t2","t3","params","replace","t4","undefined","stringify","addQueryPrefix","useEffect","t5","_jsx","Provider","value"],"sources":["../../../src/providers/SearchParams/index.tsx"],"sourcesContent":["'use client'\n\nimport { useSearchParams as useNextSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useContext } from 'react'\n\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\n\nexport type SearchParamsContext = {\n searchParams: qs.ParsedQs\n stringifyParams: ({ params, replace }: { params: qs.ParsedQs; replace?: boolean }) => string\n}\n\nconst initialContext: SearchParamsContext = {\n searchParams: {},\n stringifyParams: () => '',\n}\n\nconst Context = createContext(initialContext)\n\n/**\n * @deprecated\n * The SearchParamsProvider is deprecated and will be removed in the next major release. Instead, use the `useSearchParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.\n * @example\n * ```tsx\n * import { useSearchParams } from 'next/navigation'\n * ```\n */\nexport const SearchParamsProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const nextSearchParams = useNextSearchParams()\n\n const [searchParams, setSearchParams] = React.useState(() => parseSearchParams(nextSearchParams))\n\n const stringifyParams = React.useCallback(\n ({ params, replace = false }: { params: qs.ParsedQs; replace?: boolean }) => {\n return qs.stringify(\n {\n ...(replace ? {} : searchParams),\n ...params,\n },\n { addQueryPrefix: true },\n )\n },\n [searchParams],\n )\n\n React.useEffect(() => {\n setSearchParams(parseSearchParams(nextSearchParams))\n }, [nextSearchParams])\n\n return <Context.Provider value={{ searchParams, stringifyParams }}>{children}</Context.Provider>\n}\n\n/**\n * @deprecated\n * The `useSearchParams` hook is deprecated and will be removed in the next major release. Instead, use the `useSearchParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.\n * @example\n * ```tsx\n * import { useSearchParams } from 'next/navigation'\n * ```\n * If you need to parse the `where` query, you can do so with the `parseSearchParams` utility.\n * ```tsx\n * import { parseSearchParams } from '@payloadcms/ui'\n * const parsedSearchParams = parseSearchParams(searchParams)\n * ```\n */\nexport const useSearchParams = (): SearchParamsContext => useContext(Context)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,eAAA,IAAmBC,mBAAmB,QAAQ;AACvD,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,aAAa,EAAEC,UAAU,QAAQ;AAEjD,SAASC,iBAAiB,QAAQ;AAOlC,MAAMC,cAAA,GAAsC;EAC1CC,YAAA,EAAc,CAAC;EACfC,eAAA,EAAiBA,CAAA,KAAM;AACzB;AAEA,MAAMC,OAAA,gBAAUN,aAAA,CAAcG,cAAA;AAE9B;;;;;;;;AAQA,OAAO,MAAMI,oBAAA,GAAiEC,EAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAAC;IAAAe;EAAA,IAAAF,EAAY;EACzF,MAAAG,gBAAA,GAAyBd,mBAAA;EAAA,IAAAe,EAAA;EAAA,IAAAH,CAAA,QAAAE,gBAAA;IAE8BC,EAAA,GAAAA,CAAA,KAAMV,iBAAA,CAAkBS,gBAAA;IAAAF,CAAA,MAAAE,gBAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAA/E,OAAAL,YAAA,EAAAS,eAAA,IAAwCd,KAAA,CAAAe,QAAA,CAAeF,EAAwB;EAAA,IAAAG,EAAA;EAAA,IAAAN,CAAA,QAAAL,YAAA;IAG7EW,EAAA,GAAAC,EAAA;MAAC;QAAAC,MAAA;QAAAC,OAAA,EAAAC;MAAA,IAAAH,EAAuE;MAA7D,MAAAE,OAAA,GAAAC,EAAe,KAAAC,SAAA,WAAfD,EAAe;MAAA,OACjBrB,EAAA,CAAAuB,SAAA;QAAA,IAECH,OAAA,QAAed,YAAY;QAAA,GAC5Ba;MAAM;QAAAK,cAAA;MAAA,CAEY;IAAA;IAE3Bb,CAAA,MAAAL,YAAA;IAAAK,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EATF,MAAAJ,eAAA,GAAwBU,EAUR;EAAA,IAAAC,EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAV,CAAA,QAAAE,gBAAA;IAGAK,EAAA,GAAAA,CAAA;MACdH,eAAA,CAAgBX,iBAAA,CAAkBS,gBAAA;IAAA;IACjCQ,EAAA,IAACR,gBAAA;IAAiBF,CAAA,MAAAE,gBAAA;IAAAF,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAU,EAAA;EAAA;IAAAH,EAAA,GAAAP,CAAA;IAAAU,EAAA,GAAAV,CAAA;EAAA;EAFrBV,KAAA,CAAAwB,SAAA,CAAgBP,EAEhB,EAAGG,EAAkB;EAAA,IAAAK,EAAA;EAAA,IAAAf,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAL,YAAA,IAAAK,CAAA,QAAAJ,eAAA;IAEdmB,EAAA,GAAAC,IAAA,CAAAnB,OAAA,CAAAoB,QAAA;MAAAC,KAAA;QAAAvB,YAAA;QAAAC;MAAA;MAAAK;IAAA,C;;;;;;;;SAAAc,E;CACT;AAEA;;;;;;;;;;;;;AAaA,OAAO,MAAM5B,eAAA,GAAkBA,CAAA;EAAA,OAA2BK,UAAA,CAAAK,OAAW;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useSearchParams","useNextSearchParams","qs","React","createContext","useContext","initialContext","searchParams","stringifyParams","Context","SearchParamsProvider","children","nextSearchParams","searchString","toString","useMemo","parse","depth","ignoreQueryPrefix","useCallback","params","replace","stringify","addQueryPrefix","_jsx","Provider","value"],"sources":["../../../src/providers/SearchParams/index.tsx"],"sourcesContent":["'use client'\n\nimport { useSearchParams as useNextSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useContext } from 'react'\n\nexport type SearchParamsContext = {\n searchParams: qs.ParsedQs\n stringifyParams: ({ params, replace }: { params: qs.ParsedQs; replace?: boolean }) => string\n}\n\nconst initialContext: SearchParamsContext = {\n searchParams: {},\n stringifyParams: () => '',\n}\n\nconst Context = createContext(initialContext)\n\n/**\n * @deprecated\n * The SearchParamsProvider is deprecated and will be removed in the next major release. Instead, use the `useSearchParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.\n * @example\n * ```tsx\n * import { useSearchParams } from 'next/navigation'\n * ```\n */\nexport const SearchParamsProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const nextSearchParams = useNextSearchParams()\n const searchString = nextSearchParams.toString()\n\n const searchParams = React.useMemo(\n () =>\n qs.parse(searchString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n [searchString],\n )\n\n const stringifyParams = React.useCallback(\n ({ params, replace = false }: { params: qs.ParsedQs; replace?: boolean }) => {\n return qs.stringify(\n {\n ...(replace ? {} : searchParams),\n ...params,\n },\n { addQueryPrefix: true },\n )\n },\n [searchParams],\n )\n\n return <Context.Provider value={{ searchParams, stringifyParams }}>{children}</Context.Provider>\n}\n\n/**\n * @deprecated\n * The `useSearchParams` hook is deprecated and will be removed in the next major release. Instead, use the `useSearchParams` hook from `next/navigation` directly. See https://github.com/payloadcms/payload/pull/9581.\n * @example\n * ```tsx\n * import { useSearchParams } from 'next/navigation'\n * ```\n * If you need to parse the `where` query, you can do so with the `parseSearchParams` utility.\n * ```tsx\n * import { parseSearchParams } from '@payloadcms/ui'\n * const parsedSearchParams = parseSearchParams(searchParams)\n * ```\n */\nexport const useSearchParams = (): SearchParamsContext => useContext(Context)\n"],"mappings":"AAAA;;;AAEA,SAASA,eAAA,IAAmBC,mBAAmB,QAAQ;AACvD,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,aAAa,EAAEC,UAAU,QAAQ;AAOjD,MAAMC,cAAA,GAAsC;EAC1CC,YAAA,EAAc,CAAC;EACfC,eAAA,EAAiBA,CAAA,KAAM;AACzB;AAEA,MAAMC,OAAA,gBAAUL,aAAA,CAAcE,cAAA;AAE9B;;;;;;;;AAQA,OAAO,MAAMI,oBAAA,GAAiEA,CAAC;EAAEC;AAAQ,CAAE;EACzF,MAAMC,gBAAA,GAAmBX,mBAAA;EACzB,MAAMY,YAAA,GAAeD,gBAAA,CAAiBE,QAAQ;EAE9C,MAAMP,YAAA,GAAeJ,KAAA,CAAMY,OAAO,CAChC,MACEb,EAAA,CAAGc,KAAK,CAACH,YAAA,EAAc;IACrBI,KAAA,EAAO;IACPC,iBAAA,EAAmB;EACrB,IACF,CAACL,YAAA,CAAa;EAGhB,MAAML,eAAA,GAAkBL,KAAA,CAAMgB,WAAW,CACvC,CAAC;IAAEC,MAAM;IAAEC,OAAA,GAAU;EAAK,CAA8C;IACtE,OAAOnB,EAAA,CAAGoB,SAAS,CACjB;MACE,IAAID,OAAA,GAAU,CAAC,IAAId,YAAY;MAC/B,GAAGa;IACL,GACA;MAAEG,cAAA,EAAgB;IAAK;EAE3B,GACA,CAAChB,YAAA,CAAa;EAGhB,oBAAOiB,IAAA,CAACf,OAAA,CAAQgB,QAAQ;IAACC,KAAA,EAAO;MAAEnB,YAAA;MAAcC;IAAgB;cAAIG;;AACtE;AAEA;;;;;;;;;;;;;AAaA,OAAO,MAAMX,eAAA,GAAkBA,CAAA;EAAA,OAA2BK,UAAA,CAAAI,OAAW;AAAA","ignoreList":[]}