@payloadcms/ui 3.56.0-canary.1 → 3.56.0-internal.72f4fd2

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 (157) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.js +18 -4
  2. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  3. package/dist/elements/ClipboardAction/index.js +74 -173
  4. package/dist/elements/ClipboardAction/index.js.map +1 -1
  5. package/dist/elements/CodeEditor/CodeEditor.js +67 -155
  6. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  7. package/dist/elements/Collapsible/index.js +7 -15
  8. package/dist/elements/Collapsible/index.js.map +1 -1
  9. package/dist/elements/ConfirmationModal/index.js +8 -44
  10. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  11. package/dist/elements/CopyLocaleData/index.js +89 -97
  12. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  13. package/dist/elements/CopyToClipboard/index.js +2 -22
  14. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  15. package/dist/elements/DefaultListViewTabs/index.js +32 -47
  16. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  17. package/dist/elements/DeleteMany/index.js +47 -83
  18. package/dist/elements/DeleteMany/index.js.map +1 -1
  19. package/dist/elements/DocumentControls/index.js +27 -55
  20. package/dist/elements/DocumentControls/index.js.map +1 -1
  21. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +2 -10
  22. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  23. package/dist/elements/DocumentDrawer/index.js +47 -99
  24. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  25. package/dist/elements/Drawer/index.js +23 -57
  26. package/dist/elements/Drawer/index.js.map +1 -1
  27. package/dist/elements/DrawerActionHeader/index.js +3 -21
  28. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  29. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +149 -225
  30. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  31. package/dist/elements/FolderView/FolderFileCard/index.js +19 -27
  32. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  33. package/dist/elements/FolderView/MoveDocToFolder/index.js +12 -23
  34. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  35. package/dist/elements/FullscreenModal/index.js +10 -20
  36. package/dist/elements/FullscreenModal/index.js.map +1 -1
  37. package/dist/elements/ListDrawer/index.js +18 -24
  38. package/dist/elements/ListDrawer/index.js.map +1 -1
  39. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +19 -32
  40. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  41. package/dist/elements/ListSelection/index.js +11 -27
  42. package/dist/elements/ListSelection/index.js.map +1 -1
  43. package/dist/elements/LivePreview/Window/index.js +65 -144
  44. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  45. package/dist/elements/Loading/index.js +2 -11
  46. package/dist/elements/Loading/index.js.map +1 -1
  47. package/dist/elements/LoadingOverlay/index.js +46 -102
  48. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  49. package/dist/elements/Localizer/LocalizerLabel/index.js +23 -36
  50. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  51. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +41 -139
  52. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  53. package/dist/elements/RenderIfInViewport/index.d.ts +2 -2
  54. package/dist/elements/RenderIfInViewport/index.d.ts.map +1 -1
  55. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  56. package/dist/elements/SelectRow/index.js +39 -40
  57. package/dist/elements/SelectRow/index.js.map +1 -1
  58. package/dist/elements/ShimmerEffect/index.js +20 -12
  59. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  60. package/dist/elements/SortColumn/index.js +21 -30
  61. package/dist/elements/SortColumn/index.js.map +1 -1
  62. package/dist/elements/Table/DefaultCell/fields/Date/index.js +9 -37
  63. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  64. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +35 -37
  65. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  66. package/dist/elements/Table/DefaultCell/fields/Select/index.js +12 -27
  67. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  68. package/dist/elements/Thumbnail/index.js +35 -75
  69. package/dist/elements/Thumbnail/index.js.map +1 -1
  70. package/dist/elements/ThumbnailCard/index.js +17 -26
  71. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  72. package/dist/elements/Tooltip/index.js +51 -127
  73. package/dist/elements/Tooltip/index.js.map +1 -1
  74. package/dist/elements/Upload/index.js +2 -10
  75. package/dist/elements/Upload/index.js.map +1 -1
  76. package/dist/elements/WhereBuilder/Condition/Select/index.js +31 -44
  77. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  78. package/dist/elements/WhereBuilder/Condition/index.d.ts +1 -1
  79. package/dist/elements/WhereBuilder/Condition/index.js +2 -2
  80. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  81. package/dist/elements/WhereBuilder/index.js +6 -6
  82. package/dist/elements/WhereBuilder/index.js.map +1 -1
  83. package/dist/exports/client/{CodeEditor-URFJPG6I.js → CodeEditor-RHQXPDK5.js} +2 -2
  84. package/dist/exports/client/{DatePicker-NMDEHPWL.js → DatePicker-F432AIH3.js} +2 -2
  85. package/dist/exports/client/{chunk-7RGKTZG2.js → chunk-AZDI6MW4.js} +1 -1
  86. package/dist/exports/client/{chunk-7RGKTZG2.js.map → chunk-AZDI6MW4.js.map} +1 -1
  87. package/dist/exports/client/{chunk-KPQQ5IUL.js → chunk-FKP64OEZ.js} +5 -5
  88. package/dist/exports/client/{chunk-KPQQ5IUL.js.map → chunk-FKP64OEZ.js.map} +3 -3
  89. package/dist/exports/client/index.d.ts +4 -2
  90. package/dist/exports/client/index.d.ts.map +1 -1
  91. package/dist/exports/client/index.js +12 -12
  92. package/dist/exports/client/index.js.map +4 -4
  93. package/dist/exports/rsc/index.d.ts +1 -0
  94. package/dist/exports/rsc/index.d.ts.map +1 -1
  95. package/dist/exports/rsc/index.js +1 -0
  96. package/dist/exports/rsc/index.js.map +1 -1
  97. package/dist/fields/Array/ArrayRow.d.ts +2 -3
  98. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  99. package/dist/fields/Array/ArrayRow.js +13 -23
  100. package/dist/fields/Array/ArrayRow.js.map +1 -1
  101. package/dist/fields/Array/index.js +273 -477
  102. package/dist/fields/Array/index.js.map +1 -1
  103. package/dist/fields/Checkbox/Input.js +2 -19
  104. package/dist/fields/Checkbox/Input.js.map +1 -1
  105. package/dist/fields/FieldError/index.js +30 -29
  106. package/dist/fields/FieldError/index.js.map +1 -1
  107. package/dist/fields/FieldLabel/index.js +12 -64
  108. package/dist/fields/FieldLabel/index.js.map +1 -1
  109. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +45 -103
  110. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  111. package/dist/fields/Relationship/select-components/SingleValue/index.js +29 -44
  112. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  113. package/dist/fields/Row/index.d.ts +1 -3
  114. package/dist/fields/Row/index.d.ts.map +1 -1
  115. package/dist/fields/Select/Input.js +18 -31
  116. package/dist/fields/Select/Input.js.map +1 -1
  117. package/dist/fields/Tabs/Tab/index.js +2 -11
  118. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  119. package/dist/fields/Tabs/index.d.ts +2 -1
  120. package/dist/fields/Tabs/index.d.ts.map +1 -1
  121. package/dist/fields/Tabs/index.js +185 -225
  122. package/dist/fields/Tabs/index.js.map +1 -1
  123. package/dist/fields/Upload/RelationshipContent/index.js +79 -127
  124. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  125. package/dist/forms/RenderFields/RenderField.js +245 -237
  126. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  127. package/dist/forms/RenderFields/types.d.ts +2 -10
  128. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  129. package/dist/forms/RenderFields/types.js.map +1 -1
  130. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +35 -0
  131. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -0
  132. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +83 -0
  133. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -0
  134. package/dist/forms/useField/index.d.ts +5 -0
  135. package/dist/forms/useField/index.d.ts.map +1 -1
  136. package/dist/forms/useField/index.js +74 -45
  137. package/dist/forms/useField/index.js.map +1 -1
  138. package/dist/hooks/useIntersect.js +35 -53
  139. package/dist/hooks/useIntersect.js.map +1 -1
  140. package/dist/hooks/usePayloadAPI.js +36 -44
  141. package/dist/hooks/usePayloadAPI.js.map +1 -1
  142. package/dist/providers/ServerFunctions/index.d.ts +4 -1
  143. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  144. package/dist/providers/ServerFunctions/index.js +13 -0
  145. package/dist/providers/ServerFunctions/index.js.map +1 -1
  146. package/dist/utilities/reduceFieldsToOptions.d.ts +2 -2
  147. package/dist/utilities/reduceFieldsToOptions.js +2 -2
  148. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  149. package/dist/views/BrowseByFolder/index.js +37 -55
  150. package/dist/views/BrowseByFolder/index.js.map +1 -1
  151. package/dist/views/CollectionFolder/index.js +13 -40
  152. package/dist/views/CollectionFolder/index.js.map +1 -1
  153. package/dist/views/Edit/Auth/index.js +93 -105
  154. package/dist/views/Edit/Auth/index.js.map +1 -1
  155. package/package.json +7 -7
  156. /package/dist/exports/client/{CodeEditor-URFJPG6I.js.map → CodeEditor-RHQXPDK5.js.map} +0 -0
  157. /package/dist/exports/client/{DatePicker-NMDEHPWL.js.map → DatePicker-F432AIH3.js.map} +0 -0
@@ -0,0 +1,83 @@
1
+ import { getClientConfig } from '../../../utilities/getClientConfig.js';
2
+ import { getClientSchemaMap } from '../../../utilities/getClientSchemaMap.js';
3
+ import { getSchemaMap } from '../../../utilities/getSchemaMap.js';
4
+ import { renderField } from '../renderField.js';
5
+ /**
6
+ * @experimental - may break in minor releases
7
+ */
8
+ export const _internal_renderFieldHandler = async ({
9
+ field: fieldArg,
10
+ initialValue,
11
+ path,
12
+ req,
13
+ schemaPath
14
+ }) => {
15
+ if (!req.user) {
16
+ throw new Error('Unauthorized');
17
+ }
18
+ const [entityType, entitySlug, ...fieldPath] = schemaPath.split('.');
19
+ const schemaMap = getSchemaMap({
20
+ collectionSlug: entityType === 'collection' ? entitySlug : undefined,
21
+ config: req.payload.config,
22
+ globalSlug: entityType === 'global' ? entitySlug : undefined,
23
+ i18n: req.i18n
24
+ });
25
+ // Provide client schema map as it would have been provided if the target editor field would have been rendered.
26
+ // For lexical, only then will it contain all the lexical-internal entries
27
+ const clientSchemaMap = getClientSchemaMap({
28
+ collectionSlug: entityType === 'collection' ? entitySlug : undefined,
29
+ config: getClientConfig({
30
+ config: req.payload.config,
31
+ i18n: req.i18n,
32
+ importMap: req.payload.importMap,
33
+ user: req.user
34
+ }),
35
+ globalSlug: entityType === 'global' ? entitySlug : undefined,
36
+ i18n: req.i18n,
37
+ payload: req.payload,
38
+ schemaMap
39
+ });
40
+ const targetField = schemaMap.get(`${entitySlug}.${fieldPath.join('.')}`);
41
+ if (!targetField) {
42
+ throw new Error(`Could not find target field at schemaPath: ${schemaPath}`);
43
+ }
44
+ const field = {
45
+ ...(targetField || {}),
46
+ ...(fieldArg || {})
47
+ };
48
+ let data = {};
49
+ if (typeof initialValue !== 'undefined') {
50
+ if ('name' in field) {
51
+ data[field.name] = initialValue;
52
+ } else {
53
+ data = initialValue;
54
+ }
55
+ }
56
+ const fieldState = {};
57
+ renderField({
58
+ clientFieldSchemaMap: clientSchemaMap,
59
+ collectionSlug: entityType === 'collection' && entitySlug ? entitySlug : '-',
60
+ data,
61
+ fieldConfig: field,
62
+ fieldSchemaMap: schemaMap,
63
+ fieldState,
64
+ formState: {},
65
+ indexPath: '',
66
+ lastRenderedPath: '',
67
+ operation: 'create',
68
+ parentPath: '',
69
+ parentSchemaPath: '',
70
+ path: path ?? ('name' in field ? field.name : ''),
71
+ permissions: true,
72
+ preferences: {
73
+ fields: {}
74
+ },
75
+ previousFieldState: undefined,
76
+ renderAllFields: true,
77
+ req,
78
+ schemaPath: `${entitySlug}.${fieldPath.join('.')}`,
79
+ siblingData: data
80
+ });
81
+ return fieldState.customComponents ?? {};
82
+ };
83
+ //# sourceMappingURL=renderFieldServerFn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderFieldServerFn.js","names":["getClientConfig","getClientSchemaMap","getSchemaMap","renderField","_internal_renderFieldHandler","field","fieldArg","initialValue","path","req","schemaPath","user","Error","entityType","entitySlug","fieldPath","split","schemaMap","collectionSlug","undefined","config","payload","globalSlug","i18n","clientSchemaMap","importMap","targetField","get","join","data","name","fieldState","clientFieldSchemaMap","fieldConfig","fieldSchemaMap","formState","indexPath","lastRenderedPath","operation","parentPath","parentSchemaPath","permissions","preferences","fields","previousFieldState","renderAllFields","siblingData","customComponents"],"sources":["../../../../src/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.ts"],"sourcesContent":["import { type Field, type FieldState, type ServerFunction } from 'payload'\n\nimport { getClientConfig } from '../../../utilities/getClientConfig.js'\nimport { getClientSchemaMap } from '../../../utilities/getClientSchemaMap.js'\nimport { getSchemaMap } from '../../../utilities/getSchemaMap.js'\nimport { renderField } from '../renderField.js'\n\nexport type RenderFieldServerFnArgs = {\n /**\n * Override field config pulled from schemaPath lookup\n */\n field?: Partial<Field>\n /**\n * Pass the value this field will receive when rendering it on the server.\n * For richText, this helps provide initial state for sub-fields that are immediately rendered (like blocks)\n * so that we can avoid multiple waterfall requests for each block that renders on the client.\n */\n initialValue?: unknown\n /**\n * Path to the field to render\n * @default field name\n */\n path?: string\n /**\n * Dot schema path to a richText field declared in your config.\n * Format:\n * \"collection.<collectionSlug>.<fieldPath>\"\n * \"global.<globalSlug>.<fieldPath>\"\n *\n * Examples:\n * \"collection.posts.richText\"\n * \"global.siteSettings.content\"\n */\n schemaPath: string\n}\nexport type RenderFieldServerFnReturnType = {} & FieldState['customComponents']\n\n/**\n * @experimental - may break in minor releases\n */\nexport const _internal_renderFieldHandler: ServerFunction<\n RenderFieldServerFnArgs,\n Promise<RenderFieldServerFnReturnType>\n // eslint-disable-next-line @typescript-eslint/require-await\n> = async ({ field: fieldArg, initialValue, path, req, schemaPath }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const [entityType, entitySlug, ...fieldPath] = schemaPath.split('.')\n\n const schemaMap = getSchemaMap({\n collectionSlug: entityType === 'collection' ? entitySlug : undefined,\n config: req.payload.config,\n globalSlug: entityType === 'global' ? entitySlug : undefined,\n i18n: req.i18n,\n })\n\n // Provide client schema map as it would have been provided if the target editor field would have been rendered.\n // For lexical, only then will it contain all the lexical-internal entries\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug: entityType === 'collection' ? entitySlug : undefined,\n config: getClientConfig({\n config: req.payload.config,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n user: req.user,\n }),\n globalSlug: entityType === 'global' ? entitySlug : undefined,\n i18n: req.i18n,\n payload: req.payload,\n schemaMap,\n })\n\n const targetField = schemaMap.get(`${entitySlug}.${fieldPath.join('.')}`) as Field | undefined\n\n if (!targetField) {\n throw new Error(`Could not find target field at schemaPath: ${schemaPath}`)\n }\n\n const field: Field = {\n ...(targetField || {}),\n ...(fieldArg || {}),\n } as Field\n\n let data = {}\n if (typeof initialValue !== 'undefined') {\n if ('name' in field) {\n data[field.name] = initialValue\n } else {\n data = initialValue\n }\n }\n\n const fieldState: FieldState = {}\n renderField({\n clientFieldSchemaMap: clientSchemaMap,\n collectionSlug: entityType === 'collection' && entitySlug ? entitySlug : '-',\n data,\n fieldConfig: field,\n fieldSchemaMap: schemaMap,\n fieldState, // TODO,\n formState: {}, // TODO,\n indexPath: '',\n lastRenderedPath: '',\n operation: 'create',\n parentPath: '',\n parentSchemaPath: '',\n path: path ?? ('name' in field ? field.name : ''),\n permissions: true,\n preferences: {\n fields: {},\n },\n previousFieldState: undefined,\n renderAllFields: true,\n req,\n schemaPath: `${entitySlug}.${fieldPath.join('.')}`,\n siblingData: data,\n })\n\n return fieldState.customComponents ?? {}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,10 @@
1
+ import React from 'react';
1
2
  import type { FieldType, Options } from './types.js';
2
3
  export type { FieldType, Options };
4
+ /**
5
+ * Context to allow providing useField value for fields directly, if managed outside the form
6
+ */
7
+ export declare const FieldContext: React.Context<FieldType<unknown>>;
3
8
  /**
4
9
  * Get and set the value of a form field.
5
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAkBlC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,YAAa,OAAO,KAAG,SAAS,CAAC,MAAM,CAuMrE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAG3D,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AA2NlC;;GAEG;AACH,eAAO,MAAM,YAAY,mCAAiE,CAAA;AAE1F;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,YAAa,OAAO,KAAG,SAAS,CAAC,MAAM,CAgCrE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
- import { useCallback, useMemo, useRef } from 'react';
4
+ import React, { useCallback, useMemo, useRef } from 'react';
5
5
  import { useThrottledEffect } from '../../hooks/useThrottledEffect.js';
6
6
  import { useAuth } from '../../providers/Auth/index.js';
7
7
  import { useConfig } from '../../providers/Config/index.js';
@@ -10,12 +10,7 @@ import { useOperation } from '../../providers/Operation/index.js';
10
10
  import { useTranslation } from '../../providers/Translation/index.js';
11
11
  import { useDocumentForm, useForm, useFormFields, useFormInitializing, useFormProcessing, useFormSubmitted } from '../Form/context.js';
12
12
  import { useFieldPath } from '../RenderFields/context.js';
13
- /**
14
- * Get and set the value of a form field.
15
- *
16
- * @see https://payloadcms.com/docs/admin/react-hooks#usefield
17
- */
18
- export const useField = options => {
13
+ const useFieldInForm = options => {
19
14
  const $ = _c(64);
20
15
  let t0;
21
16
  if ($[0] !== options) {
@@ -114,39 +109,38 @@ export const useField = options => {
114
109
  t4 = $[11];
115
110
  }
116
111
  const setValue = t4;
117
- let t5;
118
- const t6 = field?.customComponents;
119
- const t7 = processing || initializing;
120
- const t8 = field?.errorMessage;
121
- let t9;
112
+ const t5 = field?.customComponents;
113
+ const t6 = processing || initializing;
114
+ const t7 = field?.errorMessage;
115
+ let t8;
122
116
  if ($[12] !== field?.errorPaths) {
123
- t9 = field?.errorPaths || [];
117
+ t8 = field?.errorPaths || [];
124
118
  $[12] = field?.errorPaths;
125
- $[13] = t9;
119
+ $[13] = t8;
126
120
  } else {
127
- t9 = $[13];
121
+ t8 = $[13];
128
122
  }
129
- const t10 = field?.rows;
130
- const t11 = field?.selectFilterOptions;
131
- const t12 = field?.valid;
132
- let t13;
133
- if ($[14] !== filterOptions || $[15] !== initialValue || $[16] !== initializing || $[17] !== path || $[18] !== processing || $[19] !== setValue || $[20] !== showError || $[21] !== submitted || $[22] !== t10 || $[23] !== t11 || $[24] !== t12 || $[25] !== t6 || $[26] !== t7 || $[27] !== t8 || $[28] !== t9 || $[29] !== value) {
134
- t13 = {
135
- customComponents: t6,
136
- disabled: t7,
137
- errorMessage: t8,
138
- errorPaths: t9,
123
+ const t9 = field?.rows;
124
+ const t10 = field?.selectFilterOptions;
125
+ const t11 = field?.valid;
126
+ let t12;
127
+ if ($[14] !== filterOptions || $[15] !== initialValue || $[16] !== initializing || $[17] !== path || $[18] !== processing || $[19] !== setValue || $[20] !== showError || $[21] !== submitted || $[22] !== t10 || $[23] !== t11 || $[24] !== t5 || $[25] !== t6 || $[26] !== t7 || $[27] !== t8 || $[28] !== t9 || $[29] !== value) {
128
+ t12 = {
129
+ customComponents: t5,
130
+ disabled: t6,
131
+ errorMessage: t7,
132
+ errorPaths: t8,
139
133
  filterOptions,
140
134
  formInitializing: initializing,
141
135
  formProcessing: processing,
142
136
  formSubmitted: submitted,
143
137
  initialValue,
144
138
  path,
145
- rows: t10,
146
- selectFilterOptions: t11,
139
+ rows: t9,
140
+ selectFilterOptions: t10,
147
141
  setValue,
148
142
  showError,
149
- valid: t12,
143
+ valid: t11,
150
144
  value
151
145
  };
152
146
  $[14] = filterOptions;
@@ -159,21 +153,20 @@ export const useField = options => {
159
153
  $[21] = submitted;
160
154
  $[22] = t10;
161
155
  $[23] = t11;
162
- $[24] = t12;
156
+ $[24] = t5;
163
157
  $[25] = t6;
164
158
  $[26] = t7;
165
159
  $[27] = t8;
166
160
  $[28] = t9;
167
161
  $[29] = value;
168
- $[30] = t13;
162
+ $[30] = t12;
169
163
  } else {
170
- t13 = $[30];
164
+ t12 = $[30];
171
165
  }
172
- t5 = t13;
173
- const result = t5;
174
- let t14;
166
+ const result = t12;
167
+ let t13;
175
168
  if ($[31] !== collectionSlug || $[32] !== config || $[33] !== disableFormData || $[34] !== dispatchField || $[35] !== documentForm || $[36] !== field || $[37] !== getData || $[38] !== getDataByPath || $[39] !== getSiblingData || $[40] !== hasRows || $[41] !== id || $[42] !== operation || $[43] !== path || $[44] !== pathSegments || $[45] !== t || $[46] !== user || $[47] !== validate || $[48] !== value) {
176
- t14 = () => {
169
+ t13 = () => {
177
170
  const validateField = async () => {
178
171
  let valueToValidate = value;
179
172
  if (field?.rows && Array.isArray(field.rows)) {
@@ -249,14 +242,14 @@ export const useField = options => {
249
242
  $[46] = user;
250
243
  $[47] = validate;
251
244
  $[48] = value;
252
- $[49] = t14;
245
+ $[49] = t13;
253
246
  } else {
254
- t14 = $[49];
247
+ t13 = $[49];
255
248
  }
256
- const t15 = field?.rows;
257
- let t16;
258
- if ($[50] !== collectionSlug || $[51] !== disableFormData || $[52] !== dispatchField || $[53] !== getData || $[54] !== getDataByPath || $[55] !== getSiblingData || $[56] !== id || $[57] !== operation || $[58] !== path || $[59] !== t15 || $[60] !== user || $[61] !== validate || $[62] !== value) {
259
- t16 = [value, disableFormData, dispatchField, getData, getSiblingData, getDataByPath, id, operation, path, user, validate, t15, collectionSlug];
249
+ const t14 = field?.rows;
250
+ let t15;
251
+ if ($[50] !== collectionSlug || $[51] !== disableFormData || $[52] !== dispatchField || $[53] !== getData || $[54] !== getDataByPath || $[55] !== getSiblingData || $[56] !== id || $[57] !== operation || $[58] !== path || $[59] !== t14 || $[60] !== user || $[61] !== validate || $[62] !== value) {
252
+ t15 = [value, disableFormData, dispatchField, getData, getSiblingData, getDataByPath, id, operation, path, user, validate, t14, collectionSlug];
260
253
  $[50] = collectionSlug;
261
254
  $[51] = disableFormData;
262
255
  $[52] = dispatchField;
@@ -266,17 +259,53 @@ export const useField = options => {
266
259
  $[56] = id;
267
260
  $[57] = operation;
268
261
  $[58] = path;
269
- $[59] = t15;
262
+ $[59] = t14;
270
263
  $[60] = user;
271
264
  $[61] = validate;
272
265
  $[62] = value;
273
- $[63] = t16;
266
+ $[63] = t15;
274
267
  } else {
275
- t16 = $[63];
268
+ t15 = $[63];
276
269
  }
277
- useThrottledEffect(t14, 150, t16);
270
+ useThrottledEffect(t13, 150, t15);
278
271
  return result;
279
272
  };
273
+ /**
274
+ * Context to allow providing useField value for fields directly, if managed outside the form
275
+ */
276
+ export const FieldContext = /*#__PURE__*/React.createContext(undefined);
277
+ /**
278
+ * Get and set the value of a form field.
279
+ *
280
+ * @see https://payloadcms.com/docs/admin/react-hooks#usefield
281
+ */
282
+ export const useField = options => {
283
+ const pathFromContext = useFieldPath();
284
+ const ctx = React.use(FieldContext);
285
+ // Lock the mode on first render so hook order is stable forever. This ensures
286
+ // that hooks are called in the same order each time a component renders => should
287
+ // not break the rule of hooks.
288
+ const modeRef = React.useRef(null);
289
+ if (modeRef.current === null) {
290
+ // Use field context, if a field context exists **and** the path matches. If the path
291
+ // does not match, this could be the field context of a parent field => there likely is
292
+ // a nested <Form /> we should use instead => 'impl'
293
+ const currentPath = options?.path || pathFromContext || options.potentiallyStalePath;
294
+ modeRef.current = ctx && currentPath && ctx.path === currentPath ? 'context' : 'impl';
295
+ }
296
+ if (modeRef.current === 'context') {
297
+ if (!ctx) {
298
+ // Provider was removed after mount. That violates hook guarantees.
299
+ throw new Error('FieldContext was removed after mount. This breaks hook ordering.');
300
+ }
301
+ return ctx;
302
+ }
303
+ // We intentionally guard this hook call with a mode that is fixed on first render.
304
+ // The order is consistent across renders. Silence the linter’s false positive.
305
+ // eslint-disable-next-line react-compiler/react-compiler
306
+ // eslint-disable-next-line react-hooks/rules-of-hooks
307
+ return useFieldInForm(options);
308
+ };
280
309
  function _temp(t0) {
281
310
  const [, dispatch] = t0;
282
311
  return dispatch;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useCallback","useMemo","useRef","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useOperation","useTranslation","useDocumentForm","useForm","useFormFields","useFormInitializing","useFormProcessing","useFormSubmitted","useFieldPath","useField","options","$","t0","disableFormData","t1","hasRows","path","pathFromOptions","potentiallyStalePath","validate","undefined","pathFromContext","submitted","processing","initializing","user","id","collectionSlug","operation","dispatchField","_temp","t2","t3","fields","field","t","config","getData","getDataByPath","getSiblingData","setModified","documentForm","filterOptions","value","initialValue","valid","showError","prevValid","prevErrorMessage","errorMessage","split","pathSegments","t4","e","t5","disableModifyingForm","isEvent","preventDefault","stopPropagation","val","target","type","setValue","t6","customComponents","t7","t8","t9","errorPaths","t10","rows","t11","selectFilterOptions","t12","t13","disabled","formInitializing","formProcessing","formSubmitted","result","t14","validateField","valueToValidate","Array","isArray","current","valid_0","data","isValid","blockData","event","preferences","req","payload","siblingData","update","t15","t16","dispatch"],"sources":["../../../src/forms/useField/index.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest } from 'payload'\n\nimport { useCallback, useMemo, useRef } from 'react'\n\nimport type { UPDATE } from '../Form/types.js'\nimport type { FieldType, Options } from './types.js'\n\nexport type { FieldType, Options }\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport {\n useDocumentForm,\n useForm,\n useFormFields,\n useFormInitializing,\n useFormProcessing,\n useFormSubmitted,\n} from '../Form/context.js'\nimport { useFieldPath } from '../RenderFields/context.js'\n\n/**\n * Get and set the value of a form field.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#usefield\n */\nexport const useField = <TValue,>(options?: Options): FieldType<TValue> => {\n const {\n disableFormData = false,\n hasRows,\n path: pathFromOptions,\n potentiallyStalePath,\n validate,\n } = options || {}\n\n const pathFromContext = useFieldPath()\n\n // This is a workaround for stale props given to server rendered components.\n // See the notes in the `potentiallyStalePath` type definition for more details.\n const path = pathFromOptions || pathFromContext || potentiallyStalePath\n\n const submitted = useFormSubmitted()\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { user } = useAuth()\n const { id, collectionSlug } = useDocumentInfo()\n const operation = useOperation()\n\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const field = useFormFields(([fields]) => (fields && fields?.[path]) || null)\n\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const { getData, getDataByPath, getSiblingData, setModified } = useForm()\n const documentForm = useDocumentForm()\n\n const filterOptions = field?.filterOptions\n const value = field?.value as TValue\n const initialValue = field?.initialValue as TValue\n const valid = typeof field?.valid === 'boolean' ? field.valid : true\n const showError = valid === false && submitted\n\n const prevValid = useRef(valid)\n const prevErrorMessage = useRef(field?.errorMessage)\n\n const pathSegments = path ? path.split('.') : []\n\n // Method to return from `useField`, used to\n // update field values from field component(s)\n const setValue = useCallback(\n (e, disableModifyingForm = false) => {\n // TODO:\n // There are no built-in fields that pass events into `e`.\n // Remove this check in the next major version.\n const isEvent =\n e &&\n typeof e === 'object' &&\n typeof e.preventDefault === 'function' &&\n typeof e.stopPropagation === 'function'\n\n const val = isEvent ? e.target.value : e\n\n dispatchField({\n type: 'UPDATE',\n disableFormData: disableFormData || (hasRows && val > 0),\n path,\n value: val,\n })\n\n if (!disableModifyingForm) {\n setModified(true)\n }\n },\n [setModified, path, dispatchField, disableFormData, hasRows],\n )\n\n // Store result from hook as ref\n // to prevent unnecessary rerenders\n const result: FieldType<TValue> = useMemo(\n () => ({\n customComponents: field?.customComponents,\n disabled: processing || initializing,\n errorMessage: field?.errorMessage,\n errorPaths: field?.errorPaths || [],\n filterOptions,\n formInitializing: initializing,\n formProcessing: processing,\n formSubmitted: submitted,\n initialValue,\n path,\n rows: field?.rows,\n selectFilterOptions: field?.selectFilterOptions,\n setValue,\n showError,\n valid: field?.valid,\n value,\n }),\n [\n field,\n processing,\n setValue,\n showError,\n submitted,\n value,\n initialValue,\n path,\n filterOptions,\n initializing,\n ],\n )\n\n // Throttle the validate function\n useThrottledEffect(\n () => {\n const validateField = async () => {\n let valueToValidate = value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = getDataByPath(path)\n }\n\n let errorMessage: string | undefined = prevErrorMessage.current\n let valid: boolean | string = prevValid.current\n\n const data = getData()\n const isValid =\n typeof validate === 'function'\n ? await validate(valueToValidate, {\n id,\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n collectionSlug,\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'onChange',\n operation,\n path: pathSegments,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: getSiblingData(path),\n })\n : typeof prevErrorMessage.current === 'string'\n ? prevErrorMessage.current\n : prevValid.current\n\n if (typeof isValid === 'string') {\n valid = false\n errorMessage = isValid\n } else if (typeof isValid === 'boolean') {\n valid = isValid\n errorMessage = undefined\n }\n\n // Only dispatch if the validation result has changed\n // This will prevent unnecessary rerenders\n if (valid !== prevValid.current || errorMessage !== prevErrorMessage.current) {\n prevValid.current = valid\n prevErrorMessage.current = errorMessage\n\n const update: UPDATE = {\n type: 'UPDATE',\n errorMessage,\n path,\n rows: field?.rows,\n valid,\n validate,\n value,\n }\n\n if (disableFormData || (hasRows ? typeof value === 'number' && value > 0 : false)) {\n update.disableFormData = true\n }\n\n if (typeof dispatchField === 'function') {\n dispatchField(update)\n }\n }\n }\n\n void validateField()\n },\n 150,\n [\n value,\n disableFormData,\n dispatchField,\n getData,\n getSiblingData,\n getDataByPath,\n id,\n operation,\n path,\n user,\n validate,\n field?.rows,\n collectionSlug,\n ],\n )\n\n return result\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useMemo","useRef","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useOperation","useTranslation","useDocumentForm","useForm","useFormFields","useFormInitializing","useFormProcessing","useFormSubmitted","useFieldPath","useFieldInForm","options","$","t0","disableFormData","t1","hasRows","path","pathFromOptions","potentiallyStalePath","validate","undefined","pathFromContext","submitted","processing","initializing","user","id","collectionSlug","operation","dispatchField","_temp","t2","t3","fields","field","t","config","getData","getDataByPath","getSiblingData","setModified","documentForm","filterOptions","value","initialValue","valid","showError","prevValid","prevErrorMessage","errorMessage","split","pathSegments","t4","e","t5","disableModifyingForm","isEvent","preventDefault","stopPropagation","val","target","type","setValue","customComponents","t6","t7","t8","errorPaths","t9","rows","t10","selectFilterOptions","t11","t12","disabled","formInitializing","formProcessing","formSubmitted","result","t13","validateField","valueToValidate","Array","isArray","current","valid_0","data","isValid","blockData","event","preferences","req","payload","siblingData","update","t14","t15","FieldContext","createContext","useField","ctx","use","modeRef","currentPath","Error","dispatch"],"sources":["../../../src/forms/useField/index.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest } from 'payload'\n\nimport React, { useCallback, useMemo, useRef } from 'react'\n\nimport type { UPDATE } from '../Form/types.js'\nimport type { FieldType, Options } from './types.js'\n\nexport type { FieldType, Options }\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport {\n useDocumentForm,\n useForm,\n useFormFields,\n useFormInitializing,\n useFormProcessing,\n useFormSubmitted,\n} from '../Form/context.js'\nimport { useFieldPath } from '../RenderFields/context.js'\n\nconst useFieldInForm = <TValue,>(options?: Options): FieldType<TValue> => {\n const {\n disableFormData = false,\n hasRows,\n path: pathFromOptions,\n potentiallyStalePath,\n validate,\n } = options || {}\n\n const pathFromContext = useFieldPath()\n\n // This is a workaround for stale props given to server rendered components.\n // See the notes in the `potentiallyStalePath` type definition for more details.\n const path = pathFromOptions || pathFromContext || potentiallyStalePath\n\n const submitted = useFormSubmitted()\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { user } = useAuth()\n const { id, collectionSlug } = useDocumentInfo()\n const operation = useOperation()\n\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const field = useFormFields(([fields]) => (fields && fields?.[path]) || null)\n\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const { getData, getDataByPath, getSiblingData, setModified } = useForm()\n const documentForm = useDocumentForm()\n\n const filterOptions = field?.filterOptions\n const value = field?.value as TValue\n const initialValue = field?.initialValue as TValue\n const valid = typeof field?.valid === 'boolean' ? field.valid : true\n const showError = valid === false && submitted\n\n const prevValid = useRef(valid)\n const prevErrorMessage = useRef(field?.errorMessage)\n\n const pathSegments = path ? path.split('.') : []\n\n // Method to return from `useField`, used to\n // update field values from field component(s)\n const setValue = useCallback(\n (e, disableModifyingForm = false) => {\n // TODO:\n // There are no built-in fields that pass events into `e`.\n // Remove this check in the next major version.\n const isEvent =\n e &&\n typeof e === 'object' &&\n typeof e.preventDefault === 'function' &&\n typeof e.stopPropagation === 'function'\n\n const val = isEvent ? e.target.value : e\n\n dispatchField({\n type: 'UPDATE',\n disableFormData: disableFormData || (hasRows && val > 0),\n path,\n value: val,\n })\n\n if (!disableModifyingForm) {\n setModified(true)\n }\n },\n [setModified, path, dispatchField, disableFormData, hasRows],\n )\n\n // Store result from hook as ref\n // to prevent unnecessary rerenders\n const result: FieldType<TValue> = useMemo(\n () => ({\n customComponents: field?.customComponents,\n disabled: processing || initializing,\n errorMessage: field?.errorMessage,\n errorPaths: field?.errorPaths || [],\n filterOptions,\n formInitializing: initializing,\n formProcessing: processing,\n formSubmitted: submitted,\n initialValue,\n path,\n rows: field?.rows,\n selectFilterOptions: field?.selectFilterOptions,\n setValue,\n showError,\n valid: field?.valid,\n value,\n }),\n [\n field,\n processing,\n setValue,\n showError,\n submitted,\n value,\n initialValue,\n path,\n filterOptions,\n initializing,\n ],\n )\n\n // Throttle the validate function\n useThrottledEffect(\n () => {\n const validateField = async () => {\n let valueToValidate = value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = getDataByPath(path)\n }\n\n let errorMessage: string | undefined = prevErrorMessage.current\n let valid: boolean | string = prevValid.current\n\n const data = getData()\n const isValid =\n typeof validate === 'function'\n ? await validate(valueToValidate, {\n id,\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n collectionSlug,\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'onChange',\n operation,\n path: pathSegments,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: getSiblingData(path),\n })\n : typeof prevErrorMessage.current === 'string'\n ? prevErrorMessage.current\n : prevValid.current\n\n if (typeof isValid === 'string') {\n valid = false\n errorMessage = isValid\n } else if (typeof isValid === 'boolean') {\n valid = isValid\n errorMessage = undefined\n }\n\n // Only dispatch if the validation result has changed\n // This will prevent unnecessary rerenders\n if (valid !== prevValid.current || errorMessage !== prevErrorMessage.current) {\n prevValid.current = valid\n prevErrorMessage.current = errorMessage\n\n const update: UPDATE = {\n type: 'UPDATE',\n errorMessage,\n path,\n rows: field?.rows,\n valid,\n validate,\n value,\n }\n\n if (disableFormData || (hasRows ? typeof value === 'number' && value > 0 : false)) {\n update.disableFormData = true\n }\n\n if (typeof dispatchField === 'function') {\n dispatchField(update)\n }\n }\n }\n\n void validateField()\n },\n 150,\n [\n value,\n disableFormData,\n dispatchField,\n getData,\n getSiblingData,\n getDataByPath,\n id,\n operation,\n path,\n user,\n validate,\n field?.rows,\n collectionSlug,\n ],\n )\n\n return result\n}\n\n/**\n * Context to allow providing useField value for fields directly, if managed outside the form\n */\nexport const FieldContext = React.createContext<FieldType<unknown> | undefined>(undefined)\n\n/**\n * Get and set the value of a form field.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#usefield\n */\nexport const useField = <TValue,>(options?: Options): FieldType<TValue> => {\n const pathFromContext = useFieldPath()\n\n const ctx = React.use(FieldContext) as FieldType<TValue> | undefined\n\n // Lock the mode on first render so hook order is stable forever. This ensures\n // that hooks are called in the same order each time a component renders => should\n // not break the rule of hooks.\n const modeRef = React.useRef<'context' | 'impl' | null>(null)\n if (modeRef.current === null) {\n // Use field context, if a field context exists **and** the path matches. If the path\n // does not match, this could be the field context of a parent field => there likely is\n // a nested <Form /> we should use instead => 'impl'\n const currentPath = options?.path || pathFromContext || options.potentiallyStalePath\n\n modeRef.current = ctx && currentPath && ctx.path === currentPath ? 'context' : 'impl'\n }\n\n if (modeRef.current === 'context') {\n if (!ctx) {\n // Provider was removed after mount. That violates hook guarantees.\n throw new Error('FieldContext was removed after mount. This breaks hook ordering.')\n }\n return ctx\n }\n\n // We intentionally guard this hook call with a mode that is fixed on first render.\n // The order is consistent across renders. Silence the linter’s false positive.\n\n // eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useFieldInForm<TValue>(options)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,48 +3,29 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { useEffect, useRef, useState } from 'react';
5
5
  export const useIntersect = (t0, disable) => {
6
- const $ = _c(14);
7
- let t1;
8
- if ($[0] !== t0) {
9
- t1 = t0 === undefined ? {} : t0;
10
- $[0] = t0;
11
- $[1] = t1;
12
- } else {
13
- t1 = $[1];
14
- }
6
+ const $ = _c(8);
15
7
  const {
16
- root: t2,
17
- rootMargin: t3,
18
- threshold: t4
19
- } = t1;
20
- const root = t2 === undefined ? null : t2;
21
- const rootMargin = t3 === undefined ? "0px" : t3;
22
- const threshold = t4 === undefined ? 0 : t4;
8
+ root: t1,
9
+ rootMargin: t2,
10
+ threshold: t3
11
+ } = t0 === undefined ? {} : t0;
12
+ const root = t1 === undefined ? null : t1;
13
+ const rootMargin = t2 === undefined ? "0px" : t2;
14
+ const threshold = t3 === undefined ? 0 : t3;
23
15
  const [entry, updateEntry] = useState();
24
16
  const [node, setNode] = useState(null);
17
+ const observer = useRef(typeof window !== "undefined" && "IntersectionObserver" in window && !disable ? new window.IntersectionObserver(t4 => {
18
+ const [ent] = t4;
19
+ return updateEntry(ent);
20
+ }, {
21
+ root,
22
+ rootMargin,
23
+ threshold
24
+ }) : null);
25
25
  let t5;
26
- if ($[2] !== disable || $[3] !== root || $[4] !== rootMargin || $[5] !== threshold) {
27
- t5 = typeof window !== "undefined" && "IntersectionObserver" in window && !disable ? new window.IntersectionObserver(t6 => {
28
- const [ent] = t6;
29
- return updateEntry(ent);
30
- }, {
31
- root,
32
- rootMargin,
33
- threshold
34
- }) : null;
35
- $[2] = disable;
36
- $[3] = root;
37
- $[4] = rootMargin;
38
- $[5] = threshold;
39
- $[6] = t5;
40
- } else {
41
- t5 = $[6];
42
- }
43
- const observer = useRef(t5);
44
26
  let t6;
45
- let t7;
46
- if ($[7] !== disable || $[8] !== node) {
47
- t6 = () => {
27
+ if ($[0] !== disable || $[1] !== node) {
28
+ t5 = () => {
48
29
  if (disable) {
49
30
  return;
50
31
  }
@@ -57,25 +38,26 @@ export const useIntersect = (t0, disable) => {
57
38
  }
58
39
  return () => currentObserver.disconnect();
59
40
  };
60
- t7 = [node, disable];
61
- $[7] = disable;
62
- $[8] = node;
63
- $[9] = t6;
64
- $[10] = t7;
41
+ t6 = [node, disable];
42
+ $[0] = disable;
43
+ $[1] = node;
44
+ $[2] = t5;
45
+ $[3] = t6;
65
46
  } else {
66
- t6 = $[9];
67
- t7 = $[10];
47
+ t5 = $[2];
48
+ t6 = $[3];
68
49
  }
69
- useEffect(t6, t7);
70
- let t8;
71
- if ($[11] !== entry || $[12] !== node) {
72
- t8 = [setNode, entry, node];
73
- $[11] = entry;
74
- $[12] = node;
75
- $[13] = t8;
50
+ useEffect(t5, t6);
51
+ let t7;
52
+ if ($[4] !== entry || $[5] !== node || $[6] !== setNode) {
53
+ t7 = [setNode, entry, node];
54
+ $[4] = entry;
55
+ $[5] = node;
56
+ $[6] = setNode;
57
+ $[7] = t7;
76
58
  } else {
77
- t8 = $[13];
59
+ t7 = $[7];
78
60
  }
79
- return t8;
61
+ return t7;
80
62
  };
81
63
  //# sourceMappingURL=useIntersect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","t1","undefined","root","t2","rootMargin","t3","threshold","t4","entry","updateEntry","node","setNode","t5","window","IntersectionObserver","t6","ent","observer","t7","current","currentObserver","disconnect","observe","t8"],"sources":["../../src/hooks/useIntersect.ts"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect, useRef, useState } from 'react'\n\ntype Intersect = [\n setNode: React.Dispatch<HTMLElement>,\n entry: IntersectionObserverEntry,\n node: HTMLElement,\n]\n\nexport const useIntersect = (\n { root = null, rootMargin = '0px', threshold = 0 } = {},\n disable?: boolean,\n): Intersect => {\n const [entry, updateEntry] = useState<IntersectionObserverEntry>()\n const [node, setNode] = useState(null)\n\n const observer = useRef(\n typeof window !== 'undefined' && 'IntersectionObserver' in window && !disable\n ? new window.IntersectionObserver(([ent]) => updateEntry(ent), {\n root,\n rootMargin,\n threshold,\n })\n : null,\n )\n\n useEffect(() => {\n if (disable) {\n return\n }\n const { current: currentObserver } = observer\n currentObserver.disconnect()\n\n if (node) {\n currentObserver.observe(node)\n }\n\n return () => currentObserver.disconnect()\n }, [node, disable])\n\n return [setNode, entry, node]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAQ5C,OAAO,MAAMC,YAAA,GAAeA,CAAAC,EAAA,EAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAF,EAAA;IAC1BG,EAAA,GAAAH,EAAuD,KAAAI,SAAA,QAAvDJ,EAAuD;IAAAE,CAAA,MAAAF,EAAA;IAAAE,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAvD;IAAAG,IAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,SAAA,EAAAC;EAAA,IAAAP,EAAuD;EAArD,MAAAE,IAAA,GAAAC,EAAW,KAAAF,SAAA,UAAXE,EAAW;EAAE,MAAAC,UAAA,GAAAC,EAAkB,KAAAJ,SAAA,GAAL,KAAK,GAAlBI,EAAkB;EAAE,MAAAC,SAAA,GAAAC,EAAa,KAAAN,SAAA,OAAbM,EAAa;EAGhD,OAAAC,KAAA,EAAAC,WAAA,IAA6Bd,QAAA;EAC7B,OAAAe,IAAA,EAAAC,OAAA,IAAwBhB,QAAA,KAAS;EAAA,IAAAiB,EAAA;EAAA,IAAAb,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAG,IAAA,IAAAH,CAAA,QAAAK,UAAA,IAAAL,CAAA,QAAAO,SAAA;IAG/BM,EAAA,UAAAC,MAAA,KAAkB,eAAe,0BAAAA,MAA0B,KAAWf,OAAA,OAAAe,MAAA,CAAAC,oBAAA,CAAAC,EAAA;MACjC,OAAAC,GAAA,IAAAD,EAAK;MAAA,OAAKN,WAAA,CAAYO,GAAA;IAAA;MAAAd,IAAA;MAAAE,UAAA;MAAAE;IAAA,SAKvD;IAAAP,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAO,SAAA;IAAAP,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAPN,MAAAkB,QAAA,GAAiBvB,MAAA,CACfkB,EAMI;EAAA,IAAAG,EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAnB,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAW,IAAA;IAGIK,EAAA,GAAAA,CAAA;MAAA,IACJjB,OAAA;QAAA;MAAA;MAGJ;QAAAqB,OAAA,EAAAC;MAAA,IAAqCH,QAAA;MACrCG,eAAA,CAAAC,UAAA,CAA0B;MAAA,IAEtBX,IAAA;QACFU,eAAA,CAAAE,OAAA,CAAwBZ,IAAA;MAAA;MAAA,aAGbU,eAAA,CAAAC,UAAA,CAA0B;IAAA;IACtCH,EAAA,IAACR,IAAA,EAAMZ,OAAA;IAAQC,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAW,IAAA;IAAAX,CAAA,MAAAgB,EAAA;IAAAhB,CAAA,OAAAmB,EAAA;EAAA;IAAAH,EAAA,GAAAhB,CAAA;IAAAmB,EAAA,GAAAnB,CAAA;EAAA;EAZlBN,SAAA,CAAUsB,EAYV,EAAGG,EAAe;EAAA,IAAAK,EAAA;EAAA,IAAAxB,CAAA,SAAAS,KAAA,IAAAT,CAAA,SAAAW,IAAA;IAEXa,EAAA,IAACZ,OAAA,EAASH,KAAA,EAAOE,IAAA;IAAKX,CAAA,OAAAS,KAAA;IAAAT,CAAA,OAAAW,IAAA;IAAAX,CAAA,OAAAwB,EAAA;EAAA;IAAAA,EAAA,GAAAxB,CAAA;EAAA;EAAA,OAAtBwB,EAAsB;AAAA,CAC/B","ignoreList":[]}
1
+ {"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","root","t1","rootMargin","t2","threshold","t3","undefined","entry","updateEntry","node","setNode","observer","window","IntersectionObserver","t4","ent","t5","t6","current","currentObserver","disconnect","observe","t7"],"sources":["../../src/hooks/useIntersect.ts"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect, useRef, useState } from 'react'\n\ntype Intersect = [\n setNode: React.Dispatch<HTMLElement>,\n entry: IntersectionObserverEntry,\n node: HTMLElement,\n]\n\nexport const useIntersect = (\n { root = null, rootMargin = '0px', threshold = 0 } = {},\n disable?: boolean,\n): Intersect => {\n const [entry, updateEntry] = useState<IntersectionObserverEntry>()\n const [node, setNode] = useState(null)\n\n const observer = useRef(\n typeof window !== 'undefined' && 'IntersectionObserver' in window && !disable\n ? new window.IntersectionObserver(([ent]) => updateEntry(ent), {\n root,\n rootMargin,\n threshold,\n })\n : null,\n )\n\n useEffect(() => {\n if (disable) {\n return\n }\n const { current: currentObserver } = observer\n currentObserver.disconnect()\n\n if (node) {\n currentObserver.observe(node)\n }\n\n return () => currentObserver.disconnect()\n }, [node, disable])\n\n return [setNode, entry, node]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAQ5C,OAAO,MAAMC,YAAA,GAAeA,CAAAC,EAAA,EAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAC1B;IAAAQ,IAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,SAAA,EAAAC;EAAA,IAAAR,EAAuD,KAAAS,SAAA,QAAvDT,EAAuD;EAArD,MAAAG,IAAA,GAAAC,EAAW,KAAAK,SAAA,UAAXL,EAAW;EAAE,MAAAC,UAAA,GAAAC,EAAkB,KAAAG,SAAA,GAAL,KAAK,GAAlBH,EAAkB;EAAE,MAAAC,SAAA,GAAAC,EAAa,KAAAC,SAAA,OAAbD,EAAa;EAGhD,OAAAE,KAAA,EAAAC,WAAA,IAA6Bb,QAAA;EAC7B,OAAAc,IAAA,EAAAC,OAAA,IAAwBf,QAAA,KAAS;EAEjC,MAAAgB,QAAA,GAAiBjB,MAAA,CACf,OAAAkB,MAAA,KAAkB,eAAe,0BAAAA,MAA0B,KAAWd,OAAA,OAAAc,MAAA,CAAAC,oBAAA,CAAAC,EAAA;IACjC,OAAAC,GAAA,IAAAD,EAAK;IAAA,OAAKN,WAAA,CAAYO,GAAA;EAAA;IAAAf,IAAA;IAAAE,UAAA;IAAAE;EAAA,SAKvD;EAAA,IAAAY,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAU,IAAA;IAGIO,EAAA,GAAAA,CAAA;MAAA,IACJlB,OAAA;QAAA;MAAA;MAGJ;QAAAoB,OAAA,EAAAC;MAAA,IAAqCR,QAAA;MACrCQ,eAAA,CAAAC,UAAA,CAA0B;MAAA,IAEtBX,IAAA;QACFU,eAAA,CAAAE,OAAA,CAAwBZ,IAAA;MAAA;MAAA,aAGbU,eAAA,CAAAC,UAAA,CAA0B;IAAA;IACtCH,EAAA,IAACR,IAAA,EAAMX,OAAA;IAAQC,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAU,IAAA;IAAAV,CAAA,MAAAiB,EAAA;IAAAjB,CAAA,MAAAkB,EAAA;EAAA;IAAAD,EAAA,GAAAjB,CAAA;IAAAkB,EAAA,GAAAlB,CAAA;EAAA;EAZlBN,SAAA,CAAUuB,EAYV,EAAGC,EAAe;EAAA,IAAAK,EAAA;EAAA,IAAAvB,CAAA,QAAAQ,KAAA,IAAAR,CAAA,QAAAU,IAAA,IAAAV,CAAA,QAAAW,OAAA;IAEXY,EAAA,IAACZ,OAAA,EAASH,KAAA,EAAOE,IAAA;IAAKV,CAAA,MAAAQ,KAAA;IAAAR,CAAA,MAAAU,IAAA;IAAAV,CAAA,MAAAW,OAAA;IAAAX,CAAA,MAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EAAA,OAAtBuB,EAAsB;AAAA,CAC/B","ignoreList":[]}