@payloadcms/ui 3.18.0-canary.df484f6 → 3.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/useRelatedCollections.js +6 -4
  3. package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -1
  4. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
  5. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  6. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  7. package/dist/elements/BulkUpload/index.js +4 -2
  8. package/dist/elements/BulkUpload/index.js.map +1 -1
  9. package/dist/elements/DeleteDocument/index.js.map +1 -1
  10. package/dist/elements/DocumentControls/index.js.map +1 -1
  11. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.js +4 -4
  13. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  14. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  15. package/dist/elements/ListDrawer/DrawerContent.js +6 -6
  16. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  17. package/dist/elements/Localizer/index.d.ts.map +1 -1
  18. package/dist/elements/Localizer/index.js +21 -21
  19. package/dist/elements/Localizer/index.js.map +1 -1
  20. package/dist/elements/PublishButton/index.js +79 -100
  21. package/dist/elements/PublishButton/index.js.map +1 -1
  22. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
  23. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  24. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  25. package/dist/elements/RelationshipTable/index.js.map +1 -1
  26. package/dist/elements/SortColumn/index.scss +0 -1
  27. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -1
  28. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
  29. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  30. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -1
  31. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  32. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  33. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  34. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -0
  35. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  36. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  37. package/dist/elements/Table/DefaultCell/index.js +33 -40
  38. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  39. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  40. package/dist/elements/TableColumns/RenderDefaultCell/index.js +1 -1
  41. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  42. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  43. package/dist/elements/TableColumns/buildColumnState.js +30 -11
  44. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  45. package/dist/elements/TableColumns/index.js.map +1 -1
  46. package/dist/elements/Upload/index.d.ts.map +1 -1
  47. package/dist/elements/Upload/index.js +72 -33
  48. package/dist/elements/Upload/index.js.map +1 -1
  49. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  50. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +18 -11
  51. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  52. package/dist/elements/WhereBuilder/validateWhereQuery.js +2 -2
  53. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
  54. package/dist/exports/client/{CodeEditor-W7RSWONH.js → CodeEditor-BMYVMDNZ.js} +2 -2
  55. package/dist/exports/client/chunk-CQQHQHCB.js +26 -0
  56. package/dist/exports/client/{chunk-3MXUY6XL.js.map → chunk-CQQHQHCB.js.map} +3 -3
  57. package/dist/exports/client/index.js +22 -22
  58. package/dist/exports/client/index.js.map +4 -4
  59. package/dist/exports/shared/index.js +2 -2
  60. package/dist/exports/shared/index.js.map +3 -3
  61. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  62. package/dist/fields/Blocks/BlockRow.js +32 -47
  63. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  64. package/dist/fields/Blocks/index.js +3 -2
  65. package/dist/fields/Blocks/index.js.map +1 -1
  66. package/dist/fields/Join/index.d.ts.map +1 -1
  67. package/dist/fields/Join/index.js +5 -5
  68. package/dist/fields/Join/index.js.map +1 -1
  69. package/dist/fields/Relationship/index.d.ts.map +1 -1
  70. package/dist/fields/Relationship/index.js +14 -8
  71. package/dist/fields/Relationship/index.js.map +1 -1
  72. package/dist/forms/Form/reduceToSerializableFields.d.ts +4 -0
  73. package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
  74. package/dist/forms/Form/reduceToSerializableFields.js +15 -12
  75. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  76. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  77. package/dist/forms/fieldSchemasToFormState/renderField.js +26 -1
  78. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  79. package/dist/providers/Config/index.d.ts +22 -13
  80. package/dist/providers/Config/index.d.ts.map +1 -1
  81. package/dist/providers/Config/index.js +45 -61
  82. package/dist/providers/Config/index.js.map +1 -1
  83. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  84. package/dist/providers/DocumentInfo/index.js.map +1 -1
  85. package/dist/providers/Locale/index.d.ts.map +1 -1
  86. package/dist/providers/Locale/index.js +62 -54
  87. package/dist/providers/Locale/index.js.map +1 -1
  88. package/dist/scss/toasts.scss +2 -0
  89. package/dist/styles.css +1 -1
  90. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  91. package/dist/utilities/handleFormStateLocking.js +3 -3
  92. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  93. package/dist/utilities/isURLAllowed.d.ts +3 -0
  94. package/dist/utilities/isURLAllowed.d.ts.map +1 -0
  95. package/dist/utilities/isURLAllowed.js +31 -0
  96. package/dist/utilities/isURLAllowed.js.map +1 -0
  97. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  98. package/dist/views/Edit/Auth/APIKey.js +4 -3
  99. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  100. package/dist/views/Edit/index.d.ts.map +1 -1
  101. package/dist/views/Edit/index.js.map +1 -1
  102. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  103. package/dist/views/List/ListHeader/index.js +5 -4
  104. package/dist/views/List/ListHeader/index.js.map +1 -1
  105. package/dist/views/List/index.d.ts.map +1 -1
  106. package/dist/views/List/index.js.map +1 -1
  107. package/package.json +5 -5
  108. package/dist/exports/client/chunk-3MXUY6XL.js +0 -26
  109. /package/dist/exports/client/{CodeEditor-W7RSWONH.js.map → CodeEditor-BMYVMDNZ.js.map} +0 -0
@@ -13,7 +13,7 @@ export const LocaleLoadingContext = /*#__PURE__*/createContext({
13
13
  localeIsLoading: false,
14
14
  setLocaleIsLoading: _ => undefined
15
15
  });
16
- const fetchPreferences = async key => await fetch(`/api/payload-preferences/${key}`, {
16
+ const fetchPreferences = async (key, baseURL) => await fetch(`${baseURL}/payload-preferences/${key}`, {
17
17
  credentials: 'include',
18
18
  headers: {
19
19
  'Content-Type': 'application/json'
@@ -21,7 +21,7 @@ const fetchPreferences = async key => await fetch(`/api/payload-preferences/${ke
21
21
  method: 'GET'
22
22
  })?.then(res => res.json());
23
23
  export const LocaleProvider = t0 => {
24
- const $ = _c(25);
24
+ const $ = _c(27);
25
25
  const {
26
26
  children,
27
27
  locale: initialLocaleFromPrefs
@@ -30,9 +30,14 @@ export const LocaleProvider = t0 => {
30
30
  config: t1
31
31
  } = useConfig();
32
32
  const {
33
- localization: t2
33
+ localization: t2,
34
+ routes: t3,
35
+ serverURL
34
36
  } = t1;
35
37
  const localization = t2 === undefined ? false : t2;
38
+ const {
39
+ api: apiRoute
40
+ } = t3;
36
41
  const {
37
42
  user
38
43
  } = useAuth();
@@ -40,19 +45,19 @@ export const LocaleProvider = t0 => {
40
45
  const {
41
46
  getPreference
42
47
  } = usePreferences();
43
- const t3 = useSearchParams();
44
- let t4;
45
- if ($[0] !== t3) {
46
- t4 = t3.get("locale");
47
- $[0] = t3;
48
- $[1] = t4;
48
+ const t4 = useSearchParams();
49
+ let t5;
50
+ if ($[0] !== t4) {
51
+ t5 = t4.get("locale");
52
+ $[0] = t4;
53
+ $[1] = t5;
49
54
  } else {
50
- t4 = $[1];
55
+ t5 = $[1];
51
56
  }
52
- const localeFromParams = t4;
53
- let t5;
57
+ const localeFromParams = t5;
58
+ let t6;
54
59
  if ($[2] !== defaultLocale || $[3] !== initialLocaleFromPrefs || $[4] !== localeFromParams || $[5] !== localization) {
55
- t5 = () => {
60
+ t6 = () => {
56
61
  if (!localization) {
57
62
  return {};
58
63
  }
@@ -62,37 +67,38 @@ export const LocaleProvider = t0 => {
62
67
  $[3] = initialLocaleFromPrefs;
63
68
  $[4] = localeFromParams;
64
69
  $[5] = localization;
65
- $[6] = t5;
70
+ $[6] = t6;
66
71
  } else {
67
- t5 = $[6];
72
+ t6 = $[6];
68
73
  }
69
- const [locale, setLocale] = React.useState(t5);
74
+ const [locale, setLocale] = React.useState(t6);
70
75
  const [isLoading, setLocaleIsLoading] = useState(false);
71
76
  const prevLocale = useRef(locale);
72
- let t6;
73
77
  let t7;
78
+ let t8;
74
79
  if ($[7] !== locale) {
75
- t6 = () => {
80
+ t7 = () => {
76
81
  if (locale.code !== prevLocale.current.code) {
77
82
  setLocaleIsLoading(false);
78
83
  }
79
84
  prevLocale.current = locale;
80
85
  };
81
- t7 = [locale];
86
+ t8 = [locale];
82
87
  $[7] = locale;
83
- $[8] = t6;
84
- $[9] = t7;
88
+ $[8] = t7;
89
+ $[9] = t8;
85
90
  } else {
86
- t6 = $[8];
87
- t7 = $[9];
91
+ t7 = $[8];
92
+ t8 = $[9];
88
93
  }
89
- useEffect(t6, t7);
90
- let t8;
91
- if ($[10] !== defaultLocale || $[11] !== localeFromParams || $[12] !== localization || $[13] !== user?.id) {
92
- t8 = () => {
94
+ useEffect(t7, t8);
95
+ const fetchURL = `${serverURL}${apiRoute}`;
96
+ let t9;
97
+ if ($[10] !== defaultLocale || $[11] !== fetchURL || $[12] !== localeFromParams || $[13] !== localization || $[14] !== user?.id) {
98
+ t9 = () => {
93
99
  const resetLocale = async function resetLocale() {
94
100
  if (localization && user?.id) {
95
- const localeToUse = localeFromParams || (await fetchPreferences("locale")?.then(_temp)) || defaultLocale;
101
+ const localeToUse = localeFromParams || (await fetchPreferences("locale", fetchURL)?.then(_temp)) || defaultLocale;
96
102
  const newLocale = findLocaleFromCode(localization, localeToUse) || findLocaleFromCode(localization, defaultLocale);
97
103
  setLocale(newLocale);
98
104
  }
@@ -100,30 +106,32 @@ export const LocaleProvider = t0 => {
100
106
  resetLocale();
101
107
  };
102
108
  $[10] = defaultLocale;
103
- $[11] = localeFromParams;
104
- $[12] = localization;
105
- $[13] = user?.id;
106
- $[14] = t8;
109
+ $[11] = fetchURL;
110
+ $[12] = localeFromParams;
111
+ $[13] = localization;
112
+ $[14] = user?.id;
113
+ $[15] = t9;
107
114
  } else {
108
- t8 = $[14];
115
+ t9 = $[15];
109
116
  }
110
- const t9 = user?.id;
111
- let t10;
112
- if ($[15] !== defaultLocale || $[16] !== getPreference || $[17] !== localeFromParams || $[18] !== localization || $[19] !== t9) {
113
- t10 = [defaultLocale, getPreference, localization, localeFromParams, t9];
114
- $[15] = defaultLocale;
115
- $[16] = getPreference;
116
- $[17] = localeFromParams;
117
- $[18] = localization;
118
- $[19] = t9;
119
- $[20] = t10;
117
+ const t10 = user?.id;
118
+ let t11;
119
+ if ($[16] !== defaultLocale || $[17] !== fetchURL || $[18] !== getPreference || $[19] !== localeFromParams || $[20] !== localization || $[21] !== t10) {
120
+ t11 = [defaultLocale, getPreference, localization, fetchURL, localeFromParams, t10];
121
+ $[16] = defaultLocale;
122
+ $[17] = fetchURL;
123
+ $[18] = getPreference;
124
+ $[19] = localeFromParams;
125
+ $[20] = localization;
126
+ $[21] = t10;
127
+ $[22] = t11;
120
128
  } else {
121
- t10 = $[20];
129
+ t11 = $[22];
122
130
  }
123
- useEffect(t8, t10);
124
- let t11;
125
- if ($[21] !== children || $[22] !== isLoading || $[23] !== locale) {
126
- t11 = _jsx(LocaleContext.Provider, {
131
+ useEffect(t9, t11);
132
+ let t12;
133
+ if ($[23] !== children || $[24] !== isLoading || $[25] !== locale) {
134
+ t12 = _jsx(LocaleContext.Provider, {
127
135
  value: locale,
128
136
  children: _jsx(LocaleLoadingContext.Provider, {
129
137
  value: {
@@ -133,14 +141,14 @@ export const LocaleProvider = t0 => {
133
141
  children
134
142
  })
135
143
  });
136
- $[21] = children;
137
- $[22] = isLoading;
138
- $[23] = locale;
139
- $[24] = t11;
144
+ $[23] = children;
145
+ $[24] = isLoading;
146
+ $[25] = locale;
147
+ $[26] = t12;
140
148
  } else {
141
- t11 = $[24];
149
+ t12 = $[26];
142
150
  }
143
- return t11;
151
+ return t12;
144
152
  };
145
153
  export const useLocaleLoading = () => {
146
154
  return useContext(LocaleLoadingContext);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useSearchParams","React","createContext","useContext","useEffect","useRef","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","LocaleContext","LocaleLoadingContext","localeIsLoading","setLocaleIsLoading","_","undefined","fetchPreferences","key","fetch","credentials","headers","method","then","res","json","LocaleProvider","t0","$","children","locale","initialLocaleFromPrefs","config","t1","localization","t2","user","defaultLocale","getPreference","t3","t4","get","localeFromParams","t5","setLocale","isLoading","prevLocale","t6","t7","code","current","t8","id","resetLocale","localeToUse","_temp","newLocale","t9","t10","t11","_jsx","Provider","value","useLocaleLoading","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, useRef, 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 LocaleLoadingContext = createContext({\n localeIsLoading: false,\n setLocaleIsLoading: (_: boolean) => undefined,\n})\n\nconst fetchPreferences = async <T extends Record<string, unknown> | string>(\n key: string,\n): Promise<{ id: string; value: T }> =>\n await fetch(`/api/payload-preferences/${key}`, {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })?.then((res) => res.json() as Promise<{ id: string; value: T }>)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode; locale?: Locale['code'] }> = ({\n children,\n /**\n The `locale` prop originates from the root layout, which does not have access to search params\n This component uses the `useSearchParams` hook to get the locale from the URL as precedence over this prop\n This prop does not update as the user navigates the site, because the root layout does not re-render\n */\n locale: initialLocaleFromPrefs,\n}) => {\n const {\n config: { localization = false },\n } = useConfig()\n\n const { user } = useAuth()\n\n const defaultLocale =\n localization && localization.defaultLocale ? localization.defaultLocale : 'en'\n\n const { getPreference, setPreference } = usePreferences()\n const localeFromParams = useSearchParams().get('locale')\n\n const [locale, setLocale] = React.useState<Locale>(() => {\n if (!localization) {\n // TODO: return null V4\n return {} as Locale\n }\n\n return (\n findLocaleFromCode(localization, localeFromParams) ||\n findLocaleFromCode(localization, initialLocaleFromPrefs) ||\n findLocaleFromCode(localization, defaultLocale)\n )\n })\n\n const [isLoading, setLocaleIsLoading] = useState(false)\n\n const prevLocale = useRef<Locale>(locale)\n\n useEffect(() => {\n /**\n * We need to set `isLoading` back to false once the locale is detected to be different\n * This happens when the user clicks an anchor link which appends the `?locale=` query param\n * This triggers a client-side navigation, which re-renders the page with the new locale\n * In Next.js, local state is persisted during this type of navigation because components are not unmounted\n */\n if (locale.code !== prevLocale.current.code) {\n setLocaleIsLoading(false)\n }\n\n prevLocale.current = locale\n }, [locale])\n\n useEffect(() => {\n /**\n * This effect should only run when `localeFromParams` changes, i.e. when the user clicks an anchor link\n * The root layout, which sends the initial locale from prefs, will not re-render as the user navigates the site\n * For this reason, we need to fetch the locale from prefs if the search params clears the `locale` query param\n */\n async function resetLocale() {\n if (localization && user?.id) {\n const localeToUse =\n localeFromParams ||\n (await fetchPreferences<Locale['code']>('locale')?.then((res) => res.value)) ||\n defaultLocale\n\n const newLocale =\n findLocaleFromCode(localization, localeToUse) ||\n findLocaleFromCode(localization, defaultLocale)\n\n setLocale(newLocale)\n }\n }\n\n void resetLocale()\n }, [defaultLocale, getPreference, localization, localeFromParams, user?.id])\n\n return (\n <LocaleContext.Provider value={locale}>\n <LocaleLoadingContext.Provider value={{ localeIsLoading: isLoading, setLocaleIsLoading }}>\n {children}\n </LocaleLoadingContext.Provider>\n </LocaleContext.Provider>\n )\n}\n\nexport const useLocaleLoading = () => useContext(LocaleLoadingContext)\n\n/**\n * TODO: V4\n * The return type of the `useLocale` hook will change in v4. It will return `null | Locale` instead of `false | {} | Locale`.\n */\nexport const useLocale = (): Locale => useContext(LocaleContext)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useSearchParams","React","createContext","useContext","useEffect","useRef","useState","findLocaleFromCode","useAuth","useConfig","usePreferences","LocaleContext","LocaleLoadingContext","localeIsLoading","setLocaleIsLoading","_","undefined","fetchPreferences","key","baseURL","fetch","credentials","headers","method","then","res","json","LocaleProvider","t0","$","children","locale","initialLocaleFromPrefs","config","t1","localization","t2","routes","t3","serverURL","api","apiRoute","user","defaultLocale","getPreference","t4","t5","get","localeFromParams","t6","setLocale","isLoading","prevLocale","t7","t8","code","current","fetchURL","t9","id","resetLocale","localeToUse","_temp","newLocale","t10","t11","t12","_jsx","Provider","value","useLocaleLoading","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, useRef, 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 LocaleLoadingContext = createContext({\n localeIsLoading: false,\n setLocaleIsLoading: (_: boolean) => undefined,\n})\n\nconst fetchPreferences = async <T extends Record<string, unknown> | string>(\n key: string,\n baseURL: string,\n): Promise<{ id: string; value: T }> =>\n await fetch(`${baseURL}/payload-preferences/${key}`, {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })?.then((res) => res.json() as Promise<{ id: string; value: T }>)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode; locale?: Locale['code'] }> = ({\n children,\n /**\n The `locale` prop originates from the root layout, which does not have access to search params\n This component uses the `useSearchParams` hook to get the locale from the URL as precedence over this prop\n This prop does not update as the user navigates the site, because the root layout does not re-render\n */\n locale: initialLocaleFromPrefs,\n}) => {\n const {\n config: {\n localization = false,\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { user } = useAuth()\n\n const defaultLocale =\n localization && localization.defaultLocale ? localization.defaultLocale : 'en'\n\n const { getPreference, setPreference } = usePreferences()\n const localeFromParams = useSearchParams().get('locale')\n\n const [locale, setLocale] = React.useState<Locale>(() => {\n if (!localization) {\n // TODO: return null V4\n return {} as Locale\n }\n\n return (\n findLocaleFromCode(localization, localeFromParams) ||\n findLocaleFromCode(localization, initialLocaleFromPrefs) ||\n findLocaleFromCode(localization, defaultLocale)\n )\n })\n\n const [isLoading, setLocaleIsLoading] = useState(false)\n\n const prevLocale = useRef<Locale>(locale)\n\n useEffect(() => {\n /**\n * We need to set `isLoading` back to false once the locale is detected to be different\n * This happens when the user clicks an anchor link which appends the `?locale=` query param\n * This triggers a client-side navigation, which re-renders the page with the new locale\n * In Next.js, local state is persisted during this type of navigation because components are not unmounted\n */\n if (locale.code !== prevLocale.current.code) {\n setLocaleIsLoading(false)\n }\n\n prevLocale.current = locale\n }, [locale])\n\n const fetchURL = `${serverURL}${apiRoute}`\n\n useEffect(() => {\n /**\n * This effect should only run when `localeFromParams` changes, i.e. when the user clicks an anchor link\n * The root layout, which sends the initial locale from prefs, will not re-render as the user navigates the site\n * For this reason, we need to fetch the locale from prefs if the search params clears the `locale` query param\n */\n async function resetLocale() {\n if (localization && user?.id) {\n const localeToUse =\n localeFromParams ||\n (await fetchPreferences<Locale['code']>('locale', fetchURL)?.then((res) => res.value)) ||\n defaultLocale\n\n const newLocale =\n findLocaleFromCode(localization, localeToUse) ||\n findLocaleFromCode(localization, defaultLocale)\n\n setLocale(newLocale)\n }\n }\n\n void resetLocale()\n }, [defaultLocale, getPreference, localization, fetchURL, localeFromParams, user?.id])\n\n return (\n <LocaleContext.Provider value={locale}>\n <LocaleLoadingContext.Provider value={{ localeIsLoading: isLoading, setLocaleIsLoading }}>\n {children}\n </LocaleLoadingContext.Provider>\n </LocaleContext.Provider>\n )\n}\n\nexport const useLocaleLoading = () => useContext(LocaleLoadingContext)\n\n/**\n * TODO: V4\n * The return type of the `useLocale` hook will change in v4. It will return `null | Locale` instead of `false | {} | Locale`.\n */\nexport const useLocale = (): Locale => useContext(LocaleContext)\n"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,8 @@
2
2
 
3
3
  @layer payload-default {
4
4
  .payload-toast-container {
5
+ --offset: calc(var(--gutter-h) / 2);
6
+
5
7
  padding: 0;
6
8
  margin: 0;
7
9