@payloadcms/ui 3.41.0-internal.c079756 → 3.41.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 (122) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/EditForm/index.js +2 -1
  3. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  4. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  5. package/dist/elements/DocumentControls/index.js +2 -1
  6. package/dist/elements/DocumentControls/index.js.map +1 -1
  7. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts +1 -0
  8. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
  9. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +30 -19
  10. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  11. package/dist/elements/DocumentDrawer/DrawerHeader/index.scss +16 -8
  12. package/dist/elements/DrawerActionHeader/index.d.ts +2 -1
  13. package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
  14. package/dist/elements/DrawerActionHeader/index.js +41 -30
  15. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  16. package/dist/elements/DrawerActionHeader/index.scss +2 -2
  17. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
  18. package/dist/elements/EmailAndUsername/index.js +3 -0
  19. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  20. package/dist/elements/FolderView/Cell/index.client.d.ts +6 -5
  21. package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
  22. package/dist/elements/FolderView/Cell/index.client.js +6 -3
  23. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  24. package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -1
  25. package/dist/elements/FolderView/Cell/index.server.js +4 -0
  26. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  27. package/dist/elements/FolderView/CollectionTypePill/index.d.ts.map +1 -1
  28. package/dist/elements/FolderView/CollectionTypePill/index.js +20 -18
  29. package/dist/elements/FolderView/CollectionTypePill/index.js.map +1 -1
  30. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -1
  31. package/dist/elements/FolderView/CurrentFolderActions/index.js +20 -14
  32. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  33. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +9 -0
  34. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -0
  35. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +36 -0
  36. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -0
  37. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +2 -0
  38. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -1
  39. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +120 -101
  40. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  41. package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +1 -1
  42. package/dist/elements/FolderView/Field/index.server.d.ts.map +1 -1
  43. package/dist/elements/FolderView/Field/index.server.js +4 -0
  44. package/dist/elements/FolderView/Field/index.server.js.map +1 -1
  45. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +19 -16
  46. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -1
  47. package/dist/elements/FolderView/MoveDocToFolder/index.js +52 -41
  48. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  49. package/dist/elements/ListFolderPills/index.d.ts +4 -3
  50. package/dist/elements/ListFolderPills/index.d.ts.map +1 -1
  51. package/dist/elements/ListFolderPills/index.js +5 -1
  52. package/dist/elements/ListFolderPills/index.js.map +1 -1
  53. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -1
  54. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +75 -55
  55. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  56. package/dist/elements/Upload/index.scss +2 -3
  57. package/dist/elements/WhereBuilder/reduceFields.d.ts.map +1 -1
  58. package/dist/elements/WhereBuilder/reduceFields.js +1 -28
  59. package/dist/elements/WhereBuilder/reduceFields.js.map +1 -1
  60. package/dist/exports/client/{CodeEditor-7N7BMHRP.js → CodeEditor-Z3ZZJH7C.js} +2 -2
  61. package/dist/exports/client/chunk-CNCOIY3Y.js +26 -0
  62. package/dist/exports/client/{chunk-QPA2ZA5J.js.map → chunk-CNCOIY3Y.js.map} +3 -3
  63. package/dist/exports/client/index.d.ts +0 -1
  64. package/dist/exports/client/index.d.ts.map +1 -1
  65. package/dist/exports/client/index.js +22 -22
  66. package/dist/exports/client/index.js.map +4 -4
  67. package/dist/exports/shared/index.js +2 -2
  68. package/dist/exports/shared/index.js.map +1 -1
  69. package/dist/fields/Number/index.d.ts.map +1 -1
  70. package/dist/fields/Number/index.js +4 -3
  71. package/dist/fields/Number/index.js.map +1 -1
  72. package/dist/fields/Text/Input.d.ts.map +1 -1
  73. package/dist/fields/Text/Input.js +55 -52
  74. package/dist/fields/Text/Input.js.map +1 -1
  75. package/dist/fields/Text/index.d.ts.map +1 -1
  76. package/dist/fields/Text/index.js +4 -0
  77. package/dist/fields/Text/index.js.map +1 -1
  78. package/dist/fields/Text/types.d.ts +4 -1
  79. package/dist/fields/Text/types.d.ts.map +1 -1
  80. package/dist/fields/Text/types.js.map +1 -1
  81. package/dist/providers/Config/index.d.ts.map +1 -1
  82. package/dist/providers/Config/index.js +12 -6
  83. package/dist/providers/Config/index.js.map +1 -1
  84. package/dist/providers/Folders/index.d.ts +10 -2
  85. package/dist/providers/Folders/index.d.ts.map +1 -1
  86. package/dist/providers/Folders/index.js +7 -5
  87. package/dist/providers/Folders/index.js.map +1 -1
  88. package/dist/styles.css +1 -1
  89. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts +3 -3
  90. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -1
  91. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
  92. package/dist/views/BrowseByFolder/index.d.ts.map +1 -1
  93. package/dist/views/BrowseByFolder/index.js +4 -3
  94. package/dist/views/BrowseByFolder/index.js.map +1 -1
  95. package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -1
  96. package/dist/views/CollectionFolder/ListSelection/index.js +36 -37
  97. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  98. package/dist/views/CollectionFolder/index.d.ts.map +1 -1
  99. package/dist/views/CollectionFolder/index.js +7 -4
  100. package/dist/views/CollectionFolder/index.js.map +1 -1
  101. package/dist/views/Edit/index.d.ts.map +1 -1
  102. package/dist/views/Edit/index.js +5 -3
  103. package/dist/views/Edit/index.js.map +1 -1
  104. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  105. package/dist/views/List/ListHeader/index.js +2 -1
  106. package/dist/views/List/ListHeader/index.js.map +1 -1
  107. package/package.json +4 -4
  108. package/dist/elements/FolderView/Drawers/DrawerHeader/index.d.ts +0 -10
  109. package/dist/elements/FolderView/Drawers/DrawerHeader/index.d.ts.map +0 -1
  110. package/dist/elements/FolderView/Drawers/DrawerHeader/index.js +0 -55
  111. package/dist/elements/FolderView/Drawers/DrawerHeader/index.js.map +0 -1
  112. package/dist/elements/FolderView/Drawers/DrawerHeader/index.scss +0 -30
  113. package/dist/elements/FolderView/Drawers/NewFolder/index.d.ts +0 -9
  114. package/dist/elements/FolderView/Drawers/NewFolder/index.d.ts.map +0 -1
  115. package/dist/elements/FolderView/Drawers/NewFolder/index.js +0 -157
  116. package/dist/elements/FolderView/Drawers/NewFolder/index.js.map +0 -1
  117. package/dist/elements/FolderView/Drawers/RenameFolder/index.d.ts +0 -13
  118. package/dist/elements/FolderView/Drawers/RenameFolder/index.d.ts.map +0 -1
  119. package/dist/elements/FolderView/Drawers/RenameFolder/index.js +0 -140
  120. package/dist/elements/FolderView/Drawers/RenameFolder/index.js.map +0 -1
  121. package/dist/exports/client/chunk-QPA2ZA5J.js +0 -26
  122. /package/dist/exports/client/{CodeEditor-7N7BMHRP.js.map → CodeEditor-Z3ZZJH7C.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","names":["c","_c","getTranslation","React","ReactSelect","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useTranslation","fieldBaseClass","TextInput","props","$","AfterInput","BeforeInput","className","Description","description","Error","hasMany","inputRef","Label","label","localized","maxRows","onChange","onKeyDown","path","placeholder","readOnly","required","rtl","showError","style","value","valueToRender","i18n","t","editableProps","_temp2","t0","t1","t2","t3","filter","Boolean","t4","join","t5","_jsxs","children","_jsx","CustomComponent","Fallback","replace","components","DropdownIndicator","customProps","disabled","filterOption","Array","isArray","length","isClearable","isCreatable","isMulti","isSortable","menuIsOpen","noOptionsMessage","isOverHasMany","max","options","id","name","ref","type","_temp","event","currentTarget","contentEditable","data","className_0","selectProps","editableClassName","onBlur","onClick","event_0","classList","add","focus","event_1","key","remove","innerText","replaceAll","action","option","newValues","v","removedValue","preventDefault","stopPropagation"],"sources":["../../../src/fields/Text/Input.tsx"],"sourcesContent":["'use client'\nimport type { ChangeEvent } from 'react'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { TextInputProps } from './types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n hasMany,\n inputRef,\n Label,\n label,\n localized,\n maxRows,\n onChange,\n onKeyDown,\n path,\n placeholder,\n readOnly,\n required,\n rtl,\n showError,\n style,\n value,\n valueToRender,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editableProps: ReactSelectAdapterProps['customProps']['editableProps'] = (\n data,\n className,\n selectProps,\n ) => {\n const editableClassName = `${className}--editable`\n\n return {\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n event.currentTarget.contentEditable = 'false'\n },\n onClick: (event: React.MouseEvent<HTMLDivElement>) => {\n event.currentTarget.contentEditable = 'true'\n event.currentTarget.classList.add(editableClassName)\n event.currentTarget.focus()\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' || event.key === 'Tab' || event.key === 'Escape') {\n event.currentTarget.contentEditable = 'false'\n event.currentTarget.classList.remove(editableClassName)\n data.value.value = event.currentTarget.innerText\n data.label = event.currentTarget.innerText\n\n if (data.value.value.replaceAll('\\n', '')) {\n selectProps.onChange(selectProps.value, {\n action: 'create-option',\n option: data,\n })\n } else {\n if (Array.isArray(selectProps.value)) {\n const newValues = selectProps.value.filter((v) => v.id !== data.id)\n selectProps.onChange(newValues, {\n action: 'pop-value',\n removedValue: data,\n })\n }\n }\n\n event.preventDefault()\n }\n event.stopPropagation()\n },\n }\n }\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'text',\n className,\n showError && 'error',\n readOnly && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n components={{ DropdownIndicator: null }}\n customProps={{\n editableProps,\n }}\n disabled={readOnly}\n // prevent adding additional options if maxRows is reached\n filterOption={() =>\n !maxRows ? true : !(Array.isArray(value) && maxRows && value.length >= maxRows)\n }\n isClearable={false}\n isCreatable\n isMulti\n isSortable\n menuIsOpen={false}\n noOptionsMessage={() => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n if (isOverHasMany) {\n return t('validation:limitReached', { max: maxRows, value: value.length + 1 })\n }\n return null\n }}\n onChange={onChange}\n options={[]}\n placeholder={t('general:enterAValue')}\n showError={showError}\n value={valueToRender}\n />\n ) : (\n <input\n data-rtl={rtl}\n disabled={readOnly}\n id={`field-${path?.replace(/\\./g, '__')}`}\n name={path}\n onChange={onChange as (e: ChangeEvent<HTMLInputElement>) => void}\n onKeyDown={onKeyDown}\n placeholder={getTranslation(placeholder, i18n)}\n ref={inputRef}\n type=\"text\"\n value={value || ''}\n />\n )}\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Input.js","names":["c","_c","getTranslation","React","ReactSelect","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useTranslation","fieldBaseClass","TextInput","props","$","AfterInput","BeforeInput","className","Description","description","Error","hasMany","htmlAttributes","inputRef","Label","label","localized","maxRows","onChange","onKeyDown","path","placeholder","placeholderFromProps","readOnly","required","rtl","showError","style","value","valueToRender","i18n","t","editableProps","_temp2","t0","t1","t2","t3","t4","filter","Boolean","_jsxs","join","children","_jsx","CustomComponent","Fallback","replace","components","DropdownIndicator","customProps","disabled","filterOption","Array","isArray","length","isClearable","isCreatable","isMulti","isSortable","menuIsOpen","noOptionsMessage","isOverHasMany","max","options","id","name","ref","type","_temp","event","currentTarget","contentEditable","data","className_0","selectProps","editableClassName","onBlur","onClick","event_0","classList","add","focus","event_1","key","remove","innerText","replaceAll","action","option","newValues","v","removedValue","preventDefault","stopPropagation"],"sources":["../../../src/fields/Text/Input.tsx"],"sourcesContent":["'use client'\nimport type { ChangeEvent } from 'react'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { TextInputProps } from './types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n hasMany,\n htmlAttributes,\n inputRef,\n Label,\n label,\n localized,\n maxRows,\n onChange,\n onKeyDown,\n path,\n placeholder: placeholderFromProps,\n readOnly,\n required,\n rtl,\n showError,\n style,\n value,\n valueToRender,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editableProps: ReactSelectAdapterProps['customProps']['editableProps'] = (\n data,\n className,\n selectProps,\n ) => {\n const editableClassName = `${className}--editable`\n\n return {\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n event.currentTarget.contentEditable = 'false'\n },\n onClick: (event: React.MouseEvent<HTMLDivElement>) => {\n event.currentTarget.contentEditable = 'true'\n event.currentTarget.classList.add(editableClassName)\n event.currentTarget.focus()\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' || event.key === 'Tab' || event.key === 'Escape') {\n event.currentTarget.contentEditable = 'false'\n event.currentTarget.classList.remove(editableClassName)\n data.value.value = event.currentTarget.innerText\n data.label = event.currentTarget.innerText\n\n if (data.value.value.replaceAll('\\n', '')) {\n selectProps.onChange(selectProps.value, {\n action: 'create-option',\n option: data,\n })\n } else {\n if (Array.isArray(selectProps.value)) {\n const newValues = selectProps.value.filter((v) => v.id !== data.id)\n selectProps.onChange(newValues, {\n action: 'pop-value',\n removedValue: data,\n })\n }\n }\n\n event.preventDefault()\n }\n event.stopPropagation()\n },\n }\n }\n\n const placeholder = getTranslation(placeholderFromProps, i18n)\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'text',\n className,\n showError && 'error',\n readOnly && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n components={{ DropdownIndicator: null }}\n customProps={{\n editableProps,\n }}\n disabled={readOnly}\n // prevent adding additional options if maxRows is reached\n filterOption={() =>\n !maxRows ? true : !(Array.isArray(value) && maxRows && value.length >= maxRows)\n }\n isClearable={false}\n isCreatable\n isMulti\n isSortable\n menuIsOpen={false}\n noOptionsMessage={() => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n if (isOverHasMany) {\n return t('validation:limitReached', { max: maxRows, value: value.length + 1 })\n }\n return null\n }}\n onChange={onChange}\n options={[]}\n placeholder={placeholder}\n showError={showError}\n value={valueToRender}\n />\n ) : (\n <input\n data-rtl={rtl}\n disabled={readOnly}\n id={`field-${path?.replace(/\\./g, '__')}`}\n name={path}\n onChange={onChange as (e: ChangeEvent<HTMLInputElement>) => void}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n ref={inputRef}\n type=\"text\"\n value={value || ''}\n {...(htmlAttributes ?? {})}\n />\n )}\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAsIpC,eAAO,MAAM,SAAS;wBAjIlB,MAAI,SACJ;yBAA4C,MAAQ,oBAC7C;;;;;+EA+H+C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAyIpC,eAAO,MAAM,SAAS;wBApIlB,MAAI,SACJ;yBAA4C,MAAO,oBAAoB;;;;;+EAmIjB,CAAA"}
@@ -16,6 +16,7 @@ const TextFieldComponent = props => {
16
16
  field,
17
17
  field: {
18
18
  admin: {
19
+ autoComplete,
19
20
  className,
20
21
  description,
21
22
  placeholder,
@@ -114,6 +115,9 @@ const TextFieldComponent = props => {
114
115
  description: description,
115
116
  Error: Error,
116
117
  hasMany: hasMany,
118
+ htmlAttributes: {
119
+ autoComplete: autoComplete || undefined
120
+ },
117
121
  inputRef: inputRef,
118
122
  Label: Label,
119
123
  label: label,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useMemo","useState","useField","withCondition","useConfig","useLocale","mergeFieldStyles","isFieldRTL","TextInput","TextFieldComponent","props","field","admin","className","description","placeholder","rtl","hasMany","label","localized","maxLength","maxRows","minLength","minRows","required","inputRef","path","pathFromProps","readOnly","validate","locale","config","localization","localizationConfig","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","potentiallyStalePath","renderRTL","fieldLocalized","fieldRTL","undefined","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","val","index","id","toString","styles","_jsx","onChange","e","target","style","TextField"],"sources":["../../../src/fields/Text/index.tsx"],"sourcesContent":["'use client'\nimport type { TextFieldClientComponent } from 'payload'\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { TextInputProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextInput } from './Input.js'\nimport './index.scss'\n\nexport { TextInput, TextInputProps }\n\nconst TextFieldComponent: TextFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, description, placeholder, rtl } = {},\n hasMany,\n label,\n localized,\n maxLength,\n maxRows,\n minLength,\n minRows,\n required,\n },\n inputRef,\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const locale = useLocale()\n\n const {\n config: { localization: localizationConfig },\n } = useConfig()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, minLength, maxLength, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n path,\n setValue,\n showError,\n value,\n } = useField({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const renderRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localizationConfig || undefined,\n })\n\n const [valueToRender, setValueToRender] = useState<\n { id: string; label: string; value: { value: number } }[]\n >([]) // Only for hasMany\n\n const handleHasManyChange = useCallback(\n (selectedOption) => {\n if (!(readOnly || disabled)) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value?.value || option.value)\n } else {\n newValue = [selectedOption.value?.value || selectedOption.value]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, setValue, disabled],\n )\n\n // useEffect update valueToRender:\n useEffect(() => {\n if (hasMany && Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n // React-select automatically uses \"label-value\" as a key, so we will get that react duplicate key warning if we just pass in the value as multiple values can be the same. So we need to append the index to the toString() of the value to avoid that warning, as it uses that as the key.\n toString: () => `${val}${index}`,\n value: val?.value || val,\n },\n }\n }),\n )\n }\n }, [value, hasMany])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <TextInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n hasMany={hasMany}\n inputRef={inputRef}\n Label={Label}\n label={label}\n localized={localized}\n maxRows={maxRows}\n minRows={minRows}\n onChange={\n hasMany\n ? handleHasManyChange\n : (e) => {\n setValue(e.target.value)\n }\n }\n path={path}\n placeholder={placeholder}\n readOnly={readOnly || disabled}\n required={required}\n rtl={renderRTL}\n showError={showError}\n style={styles}\n value={(value as string) || ''}\n valueToRender={valueToRender as Option[]}\n />\n )\n}\n\nexport const TextField = withCondition(TextFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useMemo","useState","useField","withCondition","useConfig","useLocale","mergeFieldStyles","isFieldRTL","TextInput","TextFieldComponent","props","field","admin","autoComplete","className","description","placeholder","rtl","hasMany","label","localized","maxLength","maxRows","minLength","minRows","required","inputRef","path","pathFromProps","readOnly","validate","locale","config","localization","localizationConfig","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","potentiallyStalePath","renderRTL","fieldLocalized","fieldRTL","undefined","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","val","index","id","toString","styles","_jsx","htmlAttributes","onChange","e","target","style","TextField"],"sources":["../../../src/fields/Text/index.tsx"],"sourcesContent":["'use client'\nimport type { TextFieldClientComponent } from 'payload'\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { TextInputProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextInput } from './Input.js'\nimport './index.scss'\n\nexport { TextInput, TextInputProps }\n\nconst TextFieldComponent: TextFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { autoComplete, className, description, placeholder, rtl } = {},\n hasMany,\n label,\n localized,\n maxLength,\n maxRows,\n minLength,\n minRows,\n required,\n },\n inputRef,\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const locale = useLocale()\n\n const {\n config: { localization: localizationConfig },\n } = useConfig()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, minLength, maxLength, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n path,\n setValue,\n showError,\n value,\n } = useField({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const renderRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localizationConfig || undefined,\n })\n\n const [valueToRender, setValueToRender] = useState<\n { id: string; label: string; value: { value: number } }[]\n >([]) // Only for hasMany\n\n const handleHasManyChange = useCallback(\n (selectedOption) => {\n if (!(readOnly || disabled)) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value?.value || option.value)\n } else {\n newValue = [selectedOption.value?.value || selectedOption.value]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, setValue, disabled],\n )\n\n // useEffect update valueToRender:\n useEffect(() => {\n if (hasMany && Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n // React-select automatically uses \"label-value\" as a key, so we will get that react duplicate key warning if we just pass in the value as multiple values can be the same. So we need to append the index to the toString() of the value to avoid that warning, as it uses that as the key.\n toString: () => `${val}${index}`,\n value: val?.value || val,\n },\n }\n }),\n )\n }\n }, [value, hasMany])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <TextInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n hasMany={hasMany}\n htmlAttributes={{\n autoComplete: autoComplete || undefined,\n }}\n inputRef={inputRef}\n Label={Label}\n label={label}\n localized={localized}\n maxRows={maxRows}\n minRows={minRows}\n onChange={\n hasMany\n ? handleHasManyChange\n : (e) => {\n setValue(e.target.value)\n }\n }\n path={path}\n placeholder={placeholder}\n readOnly={readOnly || disabled}\n required={required}\n rtl={renderRTL}\n showError={showError}\n style={styles}\n value={(value as string) || ''}\n valueToRender={valueToRender as Option[]}\n />\n )\n}\n\nexport const TextField = withCondition(TextFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { StaticDescription, StaticLabel } from 'payload';
2
- import type { ChangeEvent } from 'react';
2
+ import type { ChangeEvent, JSX } from 'react';
3
3
  import type React from 'react';
4
4
  import type { Option, ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js';
5
5
  export type SharedTextFieldProps = {
@@ -16,6 +16,9 @@ export type TextInputProps = {
16
16
  readonly Description?: React.ReactNode;
17
17
  readonly description?: StaticDescription;
18
18
  readonly Error?: React.ReactNode;
19
+ readonly htmlAttributes?: {
20
+ autoComplete?: JSX.IntrinsicElements['input']['autoComplete'];
21
+ };
19
22
  readonly inputRef?: React.RefObject<HTMLInputElement>;
20
23
  readonly Label?: React.ReactNode;
21
24
  readonly label?: StaticLabel;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAE1F,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAA;CAC/D,GACD;IACE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAA;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAA;CACxD,CAAA;AAEL,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAClC,GAAG,oBAAoB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAE1F,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAA;CAC/D,GACD;IACE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAA;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAA;CACxD,CAAA;AAEL,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE;QACxB,YAAY,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAA;KAC9D,CAAA;IACD,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAClC,GAAG,oBAAoB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/fields/Text/types.ts"],"sourcesContent":["import type { StaticDescription, StaticLabel } from 'payload'\nimport type { ChangeEvent } from 'react'\nimport type React from 'react'\n\nimport type { Option, ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\n\nexport type SharedTextFieldProps =\n | {\n readonly hasMany?: false\n readonly onChange?: (e: ChangeEvent<HTMLInputElement>) => void\n }\n | {\n readonly hasMany?: true\n readonly onChange?: ReactSelectAdapterProps['onChange']\n }\n\nexport type TextInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly inputRef?: React.RefObject<HTMLInputElement>\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly localized?: boolean\n readonly maxRows?: number\n readonly minRows?: number\n readonly onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>\n readonly path: string\n readonly placeholder?: Record<string, string> | string\n readonly readOnly?: boolean\n readonly required?: boolean\n readonly rtl?: boolean\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: string\n readonly valueToRender?: Option[]\n} & SharedTextFieldProps\n"],"mappings":"AAgBA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/fields/Text/types.ts"],"sourcesContent":["import type { StaticDescription, StaticLabel } from 'payload'\nimport type { ChangeEvent, JSX } from 'react'\nimport type React from 'react'\n\nimport type { Option, ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\n\nexport type SharedTextFieldProps =\n | {\n readonly hasMany?: false\n readonly onChange?: (e: ChangeEvent<HTMLInputElement>) => void\n }\n | {\n readonly hasMany?: true\n readonly onChange?: ReactSelectAdapterProps['onChange']\n }\n\nexport type TextInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly htmlAttributes?: {\n autoComplete?: JSX.IntrinsicElements['input']['autoComplete']\n }\n readonly inputRef?: React.RefObject<HTMLInputElement>\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly localized?: boolean\n readonly maxRows?: number\n readonly minRows?: number\n readonly onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>\n readonly path: string\n readonly placeholder?: Record<string, string> | string\n readonly readOnly?: boolean\n readonly required?: boolean\n readonly rtl?: boolean\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: string\n readonly valueToRender?: Option[]\n} & SharedTextFieldProps\n"],"mappings":"AAgBA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAwE,MAAM,OAAO,CAAA;AAE5F,KAAK,iBAAiB,GAAG;IAGvB,CAAC,IAAI,EAAE;QAAE,cAAc,EAAE,EAAE,GAAG,cAAc,CAAC;QAAC,UAAU,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,sBAAsB,CAAA;IAI3F,CAAC,IAAI,EAAE;QAAE,cAAc,CAAC,EAAE,KAAK,CAAC;QAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAA;KAAE,GAAG,kBAAkB,CAAA;IAGnF,CAAC,IAAI,EAAE;QACL,cAAc,CAAC,EAAE,EAAE,GAAG,cAAc,CAAA;QACpC,UAAU,CAAC,EAAE,EAAE,GAAG,UAAU,CAAA;KAC7B,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,IAAI,CAAA;CACvD,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,YAAY,CAAA;IACpB;;;;OAIG;IACH,eAAe,EAAE,iBAAiB,CAAA;IAClC,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CAC1C,CAAA;AAsBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,uBAAuB,CAAA;CACxD,CAwCA,CAAA;AAED,eAAO,MAAM,SAAS,QAAO,mBAA6C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAgF,MAAM,OAAO,CAAA;AAEpG,KAAK,iBAAiB,GAAG;IAGvB,CAAC,IAAI,EAAE;QAAE,cAAc,EAAE,EAAE,GAAG,cAAc,CAAC;QAAC,UAAU,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,sBAAsB,CAAA;IAI3F,CAAC,IAAI,EAAE;QAAE,cAAc,CAAC,EAAE,KAAK,CAAC;QAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAA;KAAE,GAAG,kBAAkB,CAAA;IAGnF,CAAC,IAAI,EAAE;QACL,cAAc,CAAC,EAAE,EAAE,GAAG,cAAc,CAAA;QACpC,UAAU,CAAC,EAAE,EAAE,GAAG,UAAU,CAAA;KAC7B,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,IAAI,CAAA;CACvD,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,YAAY,CAAA;IACpB;;;;OAIG;IACH,eAAe,EAAE,iBAAiB,CAAA;IAClC,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CAC1C,CAAA;AAsBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,uBAAuB,CAAA;CACxD,CA8CA,CAAA;AAED,eAAO,MAAM,SAAS,QAAO,mBAA6C,CAAA"}
@@ -2,7 +2,7 @@
2
2
  'use client';
3
3
 
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import React, { createContext, use, useCallback, useEffect, useMemo, useState } from 'react';
5
+ import React, { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react';
6
6
  const RootConfigContext = /*#__PURE__*/createContext(undefined);
7
7
  function sanitizeClientConfig(unSanitizedConfig) {
8
8
  if (!unSanitizedConfig?.blocks?.length || unSanitizedConfig.blocksMap) {
@@ -24,9 +24,14 @@ export const ConfigProvider = ({
24
24
  config: configFromProps
25
25
  }) => {
26
26
  const [config, setConfig] = useState(() => sanitizeClientConfig(configFromProps));
27
+ const isFirstRenderRef = useRef(true);
27
28
  // Need to update local config state if config from props changes, for HMR.
28
29
  // That way, config changes will be updated in the UI immediately without needing a refresh.
29
30
  useEffect(() => {
31
+ if (isFirstRenderRef.current) {
32
+ isFirstRenderRef.current = false;
33
+ return;
34
+ }
30
35
  setConfig(sanitizeClientConfig(configFromProps));
31
36
  }, [configFromProps]);
32
37
  // Build lookup maps for collections and globals so we can do O(1) lookups by slug
@@ -56,12 +61,13 @@ export const ConfigProvider = ({
56
61
  }
57
62
  return null;
58
63
  }, [collectionsBySlug_0, globalsBySlug_0]);
64
+ const value = useMemo(() => ({
65
+ config,
66
+ getEntityConfig,
67
+ setConfig
68
+ }), [config, getEntityConfig]);
59
69
  return /*#__PURE__*/_jsx(RootConfigContext, {
60
- value: {
61
- config,
62
- getEntityConfig,
63
- setConfig
64
- },
70
+ value: value,
65
71
  children: children
66
72
  });
67
73
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","createContext","use","useCallback","useEffect","useMemo","useState","RootConfigContext","undefined","sanitizeClientConfig","unSanitizedConfig","blocks","length","blocksMap","sanitizedConfig","block","slug","ConfigProvider","children","config","configFromProps","setConfig","collectionsBySlug","globalsBySlug","collection","collections","global","globals","getEntityConfig","args","collectionSlug","globalSlug","_jsx","value","useConfig"],"sources":["../../../src/providers/Config/index.tsx"],"sourcesContent":["/* eslint-disable perfectionist/sort-object-types */ // Need to disable this rule because the order of the overloads is important\n'use client'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientGlobalConfig,\n CollectionSlug,\n GlobalSlug,\n UnsanitizedClientConfig,\n} from 'payload'\n\nimport React, { createContext, use, useCallback, useEffect, useMemo, useState } from 'react'\n\ntype GetEntityConfigFn = {\n // Overload #1: collectionSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug: {} | CollectionSlug; globalSlug?: never }): ClientCollectionConfig\n\n // Overload #2: globalSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug?: never; globalSlug: {} | GlobalSlug }): ClientGlobalConfig\n\n // Overload #3: both/none (fall back to union | null)\n (args: {\n collectionSlug?: {} | CollectionSlug\n globalSlug?: {} | GlobalSlug\n }): ClientCollectionConfig | ClientGlobalConfig | null\n}\n\nexport type ClientConfigContext = {\n config: ClientConfig\n /**\n * Get a collection or global config by its slug. This is preferred over\n * using `config.collections.find` or `config.globals.find`, because\n * getEntityConfig uses a lookup map for O(1) lookups.\n */\n getEntityConfig: GetEntityConfigFn\n setConfig: (config: ClientConfig) => void\n}\n\nconst RootConfigContext = createContext<ClientConfigContext | undefined>(undefined)\n\nfunction sanitizeClientConfig(\n unSanitizedConfig: ClientConfig | UnsanitizedClientConfig,\n): ClientConfig {\n if (!unSanitizedConfig?.blocks?.length || (unSanitizedConfig as ClientConfig).blocksMap) {\n ;(unSanitizedConfig as ClientConfig).blocksMap = {}\n return unSanitizedConfig as ClientConfig\n }\n const sanitizedConfig: ClientConfig = { ...unSanitizedConfig } as ClientConfig\n\n sanitizedConfig.blocksMap = {}\n\n for (const block of unSanitizedConfig.blocks) {\n sanitizedConfig.blocksMap[block.slug] = block\n }\n\n return sanitizedConfig\n}\n\nexport const ConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig | UnsanitizedClientConfig\n}> = ({ children, config: configFromProps }) => {\n const [config, setConfig] = useState<ClientConfig>(() => sanitizeClientConfig(configFromProps))\n\n // Need to update local config state if config from props changes, for HMR.\n // That way, config changes will be updated in the UI immediately without needing a refresh.\n useEffect(() => {\n setConfig(sanitizeClientConfig(configFromProps))\n }, [configFromProps])\n\n // Build lookup maps for collections and globals so we can do O(1) lookups by slug\n const { collectionsBySlug, globalsBySlug } = useMemo(() => {\n const collectionsBySlug: Record<string, ClientCollectionConfig> = {}\n const globalsBySlug: Record<string, ClientGlobalConfig> = {}\n\n for (const collection of config.collections) {\n collectionsBySlug[collection.slug] = collection\n }\n for (const global of config.globals) {\n globalsBySlug[global.slug] = global\n }\n\n return { collectionsBySlug, globalsBySlug }\n }, [config])\n\n const getEntityConfig = useCallback<GetEntityConfigFn>(\n (args) => {\n if ('collectionSlug' in args) {\n return collectionsBySlug[args.collectionSlug] ?? null\n }\n if ('globalSlug' in args) {\n return globalsBySlug[args.globalSlug] ?? null\n }\n return null as any\n },\n [collectionsBySlug, globalsBySlug],\n )\n\n return (\n <RootConfigContext value={{ config, getEntityConfig, setConfig }}>{children}</RootConfigContext>\n )\n}\n\nexport const useConfig = (): ClientConfigContext => use(RootConfigContext)\n"],"mappings":"AAAA,sDAAsD;AACtD;;;AAUA,OAAOA,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AA6BrF,MAAMC,iBAAA,gBAAoBN,aAAA,CAA+CO,SAAA;AAEzE,SAASC,qBACPC,iBAAyD;EAEzD,IAAI,CAACA,iBAAA,EAAmBC,MAAA,EAAQC,MAAA,IAAUF,iBAAC,CAAmCG,SAAS,EAAE;;IACrFH,iBAAA,CAAmCG,SAAS,GAAG,CAAC;IAClD,OAAOH,iBAAA;EACT;EACA,MAAMI,eAAA,GAAgC;IAAE,GAAGJ;EAAkB;EAE7DI,eAAA,CAAgBD,SAAS,GAAG,CAAC;EAE7B,KAAK,MAAME,KAAA,IAASL,iBAAA,CAAkBC,MAAM,EAAE;IAC5CG,eAAA,CAAgBD,SAAS,CAACE,KAAA,CAAMC,IAAI,CAAC,GAAGD,KAAA;EAC1C;EAEA,OAAOD,eAAA;AACT;AAEA,OAAO,MAAMG,cAAA,GAGRA,CAAC;EAAEC,QAAQ;EAAEC,MAAA,EAAQC;AAAe,CAAE;EACzC,MAAM,CAACD,MAAA,EAAQE,SAAA,CAAU,GAAGf,QAAA,CAAuB,MAAMG,oBAAA,CAAqBW,eAAA;EAE9E;EACA;EACAhB,SAAA,CAAU;IACRiB,SAAA,CAAUZ,oBAAA,CAAqBW,eAAA;EACjC,GAAG,CAACA,eAAA,CAAgB;EAEpB;EACA,MAAM;IAAEE,iBAAiB,EAAjBA,mBAAiB;IAAEC,aAAa,EAAbA;EAAa,CAAE,GAAGlB,OAAA,CAAQ;IACnD,MAAMiB,iBAAA,GAA4D,CAAC;IACnE,MAAMC,aAAA,GAAoD,CAAC;IAE3D,KAAK,MAAMC,UAAA,IAAcL,MAAA,CAAOM,WAAW,EAAE;MAC3CH,iBAAiB,CAACE,UAAA,CAAWR,IAAI,CAAC,GAAGQ,UAAA;IACvC;IACA,KAAK,MAAME,MAAA,IAAUP,MAAA,CAAOQ,OAAO,EAAE;MACnCJ,aAAa,CAACG,MAAA,CAAOV,IAAI,CAAC,GAAGU,MAAA;IAC/B;IAEA,OAAO;MAAEJ,iBAAA;MAAmBC;IAAc;EAC5C,GAAG,CAACJ,MAAA,CAAO;EAEX,MAAMS,eAAA,GAAkBzB,WAAA,CACrB0B,IAAA;IACC,IAAI,oBAAoBA,IAAA,EAAM;MAC5B,OAAOP,mBAAiB,CAACO,IAAA,CAAKC,cAAc,CAAC,IAAI;IACnD;IACA,IAAI,gBAAgBD,IAAA,EAAM;MACxB,OAAON,eAAa,CAACM,IAAA,CAAKE,UAAU,CAAC,IAAI;IAC3C;IACA,OAAO;EACT,GACA,CAACT,mBAAA,EAAmBC,eAAA,CAAc;EAGpC,oBACES,IAAA,CAACzB,iBAAA;IAAkB0B,KAAA,EAAO;MAAEd,MAAA;MAAQS,eAAA;MAAiBP;IAAU;cAAIH;;AAEvE;AAEA,OAAO,MAAMgB,SAAA,GAAYA,CAAA,KAA2BhC,GAAA,CAAIK,iBAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","createContext","use","useCallback","useEffect","useMemo","useRef","useState","RootConfigContext","undefined","sanitizeClientConfig","unSanitizedConfig","blocks","length","blocksMap","sanitizedConfig","block","slug","ConfigProvider","children","config","configFromProps","setConfig","isFirstRenderRef","current","collectionsBySlug","globalsBySlug","collection","collections","global","globals","getEntityConfig","args","collectionSlug","globalSlug","value","_jsx","useConfig"],"sources":["../../../src/providers/Config/index.tsx"],"sourcesContent":["/* eslint-disable perfectionist/sort-object-types */ // Need to disable this rule because the order of the overloads is important\n'use client'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientGlobalConfig,\n CollectionSlug,\n GlobalSlug,\n UnsanitizedClientConfig,\n} from 'payload'\n\nimport React, { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\ntype GetEntityConfigFn = {\n // Overload #1: collectionSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug: {} | CollectionSlug; globalSlug?: never }): ClientCollectionConfig\n\n // Overload #2: globalSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug?: never; globalSlug: {} | GlobalSlug }): ClientGlobalConfig\n\n // Overload #3: both/none (fall back to union | null)\n (args: {\n collectionSlug?: {} | CollectionSlug\n globalSlug?: {} | GlobalSlug\n }): ClientCollectionConfig | ClientGlobalConfig | null\n}\n\nexport type ClientConfigContext = {\n config: ClientConfig\n /**\n * Get a collection or global config by its slug. This is preferred over\n * using `config.collections.find` or `config.globals.find`, because\n * getEntityConfig uses a lookup map for O(1) lookups.\n */\n getEntityConfig: GetEntityConfigFn\n setConfig: (config: ClientConfig) => void\n}\n\nconst RootConfigContext = createContext<ClientConfigContext | undefined>(undefined)\n\nfunction sanitizeClientConfig(\n unSanitizedConfig: ClientConfig | UnsanitizedClientConfig,\n): ClientConfig {\n if (!unSanitizedConfig?.blocks?.length || (unSanitizedConfig as ClientConfig).blocksMap) {\n ;(unSanitizedConfig as ClientConfig).blocksMap = {}\n return unSanitizedConfig as ClientConfig\n }\n const sanitizedConfig: ClientConfig = { ...unSanitizedConfig } as ClientConfig\n\n sanitizedConfig.blocksMap = {}\n\n for (const block of unSanitizedConfig.blocks) {\n sanitizedConfig.blocksMap[block.slug] = block\n }\n\n return sanitizedConfig\n}\n\nexport const ConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig | UnsanitizedClientConfig\n}> = ({ children, config: configFromProps }) => {\n const [config, setConfig] = useState<ClientConfig>(() => sanitizeClientConfig(configFromProps))\n\n const isFirstRenderRef = useRef(true)\n\n // Need to update local config state if config from props changes, for HMR.\n // That way, config changes will be updated in the UI immediately without needing a refresh.\n useEffect(() => {\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false\n return\n }\n setConfig(sanitizeClientConfig(configFromProps))\n }, [configFromProps])\n\n // Build lookup maps for collections and globals so we can do O(1) lookups by slug\n const { collectionsBySlug, globalsBySlug } = useMemo(() => {\n const collectionsBySlug: Record<string, ClientCollectionConfig> = {}\n const globalsBySlug: Record<string, ClientGlobalConfig> = {}\n\n for (const collection of config.collections) {\n collectionsBySlug[collection.slug] = collection\n }\n for (const global of config.globals) {\n globalsBySlug[global.slug] = global\n }\n\n return { collectionsBySlug, globalsBySlug }\n }, [config])\n\n const getEntityConfig = useCallback<GetEntityConfigFn>(\n (args) => {\n if ('collectionSlug' in args) {\n return collectionsBySlug[args.collectionSlug] ?? null\n }\n if ('globalSlug' in args) {\n return globalsBySlug[args.globalSlug] ?? null\n }\n return null as any\n },\n [collectionsBySlug, globalsBySlug],\n )\n\n const value = useMemo(() => ({ config, getEntityConfig, setConfig }), [config, getEntityConfig])\n\n return <RootConfigContext value={value}>{children}</RootConfigContext>\n}\n\nexport const useConfig = (): ClientConfigContext => use(RootConfigContext)\n"],"mappings":"AAAA,sDAAsD;AACtD;;;AAUA,OAAOA,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AA6B7F,MAAMC,iBAAA,gBAAoBP,aAAA,CAA+CQ,SAAA;AAEzE,SAASC,qBACPC,iBAAyD;EAEzD,IAAI,CAACA,iBAAA,EAAmBC,MAAA,EAAQC,MAAA,IAAUF,iBAAC,CAAmCG,SAAS,EAAE;;IACrFH,iBAAA,CAAmCG,SAAS,GAAG,CAAC;IAClD,OAAOH,iBAAA;EACT;EACA,MAAMI,eAAA,GAAgC;IAAE,GAAGJ;EAAkB;EAE7DI,eAAA,CAAgBD,SAAS,GAAG,CAAC;EAE7B,KAAK,MAAME,KAAA,IAASL,iBAAA,CAAkBC,MAAM,EAAE;IAC5CG,eAAA,CAAgBD,SAAS,CAACE,KAAA,CAAMC,IAAI,CAAC,GAAGD,KAAA;EAC1C;EAEA,OAAOD,eAAA;AACT;AAEA,OAAO,MAAMG,cAAA,GAGRA,CAAC;EAAEC,QAAQ;EAAEC,MAAA,EAAQC;AAAe,CAAE;EACzC,MAAM,CAACD,MAAA,EAAQE,SAAA,CAAU,GAAGf,QAAA,CAAuB,MAAMG,oBAAA,CAAqBW,eAAA;EAE9E,MAAME,gBAAA,GAAmBjB,MAAA,CAAO;EAEhC;EACA;EACAF,SAAA,CAAU;IACR,IAAImB,gBAAA,CAAiBC,OAAO,EAAE;MAC5BD,gBAAA,CAAiBC,OAAO,GAAG;MAC3B;IACF;IACAF,SAAA,CAAUZ,oBAAA,CAAqBW,eAAA;EACjC,GAAG,CAACA,eAAA,CAAgB;EAEpB;EACA,MAAM;IAAEI,iBAAiB,EAAjBA,mBAAiB;IAAEC,aAAa,EAAbA;EAAa,CAAE,GAAGrB,OAAA,CAAQ;IACnD,MAAMoB,iBAAA,GAA4D,CAAC;IACnE,MAAMC,aAAA,GAAoD,CAAC;IAE3D,KAAK,MAAMC,UAAA,IAAcP,MAAA,CAAOQ,WAAW,EAAE;MAC3CH,iBAAiB,CAACE,UAAA,CAAWV,IAAI,CAAC,GAAGU,UAAA;IACvC;IACA,KAAK,MAAME,MAAA,IAAUT,MAAA,CAAOU,OAAO,EAAE;MACnCJ,aAAa,CAACG,MAAA,CAAOZ,IAAI,CAAC,GAAGY,MAAA;IAC/B;IAEA,OAAO;MAAEJ,iBAAA;MAAmBC;IAAc;EAC5C,GAAG,CAACN,MAAA,CAAO;EAEX,MAAMW,eAAA,GAAkB5B,WAAA,CACrB6B,IAAA;IACC,IAAI,oBAAoBA,IAAA,EAAM;MAC5B,OAAOP,mBAAiB,CAACO,IAAA,CAAKC,cAAc,CAAC,IAAI;IACnD;IACA,IAAI,gBAAgBD,IAAA,EAAM;MACxB,OAAON,eAAa,CAACM,IAAA,CAAKE,UAAU,CAAC,IAAI;IAC3C;IACA,OAAO;EACT,GACA,CAACT,mBAAA,EAAmBC,eAAA,CAAc;EAGpC,MAAMS,KAAA,GAAQ9B,OAAA,CAAQ,OAAO;IAAEe,MAAA;IAAQW,eAAA;IAAiBT;EAAU,IAAI,CAACF,MAAA,EAAQW,eAAA,CAAgB;EAE/F,oBAAOK,IAAA,CAAC5B,iBAAA;IAAkB2B,KAAA,EAAOA,KAAA;cAAQhB;;AAC3C;AAEA,OAAO,MAAMkB,SAAA,GAAYA,CAAA,KAA2BnC,GAAA,CAAIM,iBAAA","ignoreList":[]}
@@ -23,6 +23,10 @@ export type FolderContextValue = {
23
23
  focusedRowIndex: number;
24
24
  folderCollectionConfig: ClientCollectionConfig;
25
25
  folderCollectionSlug: string;
26
+ /**
27
+ * Folder enabled collection slugs that can be populated within the provider
28
+ */
29
+ readonly folderCollectionSlugs?: CollectionSlug[];
26
30
  folderFieldName: string;
27
31
  folderID?: number | string;
28
32
  getSelectedItems?: () => FolderOrDocument[];
@@ -89,9 +93,13 @@ export type FolderProviderProps = {
89
93
  */
90
94
  readonly filteredCollectionSlugs?: CollectionSlug[];
91
95
  /**
92
- * Folder enabled collection slugs
96
+ * Folder enabled collection slugs that can be populated within the provider
93
97
  */
94
98
  readonly folderCollectionSlugs: CollectionSlug[];
99
+ /**
100
+ * The name of the field that contains the folder relation
101
+ */
102
+ readonly folderFieldName: string;
95
103
  /**
96
104
  * The ID of the current folder
97
105
  */
@@ -113,7 +121,7 @@ export type FolderProviderProps = {
113
121
  */
114
122
  readonly subfolders: FolderOrDocument[];
115
123
  };
116
- export declare function FolderProvider({ allowMultiSelection, breadcrumbs: _breadcrumbsFromProps, children, collectionSlug, documents: allDocumentsFromProps, filteredCollectionSlugs, folderCollectionSlugs, folderID: _folderIDFromProps, search: _searchFromProps, sort, subfolders: subfoldersFromProps, }: FolderProviderProps): React.JSX.Element;
124
+ export declare function FolderProvider({ allowMultiSelection, breadcrumbs: _breadcrumbsFromProps, children, collectionSlug, documents: allDocumentsFromProps, filteredCollectionSlugs, folderCollectionSlugs, folderFieldName, folderID: _folderIDFromProps, search: _searchFromProps, sort, subfolders: subfoldersFromProps, }: FolderProviderProps): React.JSX.Element;
117
125
  export declare function useFolder(): FolderContextValue;
118
126
  export {};
119
127
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Folders/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Folders/index.tsx"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ const Context = /*#__PURE__*/React.createContext({
21
21
  focusedRowIndex: -1,
22
22
  folderCollectionConfig: null,
23
23
  folderCollectionSlug: '',
24
+ folderCollectionSlugs: [],
24
25
  folderFieldName: 'folder',
25
26
  folderID: undefined,
26
27
  getSelectedItems: () => [],
@@ -66,6 +67,7 @@ export function FolderProvider({
66
67
  documents: allDocumentsFromProps = [],
67
68
  filteredCollectionSlugs,
68
69
  folderCollectionSlugs = [],
70
+ folderFieldName,
69
71
  folderID: _folderIDFromProps = undefined,
70
72
  search: _searchFromProps,
71
73
  sort,
@@ -76,7 +78,6 @@ export function FolderProvider({
76
78
  config,
77
79
  getEntityConfig
78
80
  } = useConfig();
79
- const folderFieldName = config.folders.fieldName;
80
81
  const {
81
82
  routes,
82
83
  serverURL
@@ -89,7 +90,7 @@ export function FolderProvider({
89
90
  const {
90
91
  startRouteTransition
91
92
  } = useRouteTransition();
92
- const [folderCollectionConfig] = React.useState(() => config.collections.find(collection => collection.slug === config.folders.slug));
93
+ const [folderCollectionConfig] = React.useState(() => config.collections.find(collection => config.folders && collection.slug === config.folders.slug));
93
94
  const folderCollectionSlug = folderCollectionConfig.slug;
94
95
  const [isDragging, setIsDragging] = React.useState(false);
95
96
  const [selectedIndexes, setSelectedIndexes] = React.useState(() => new Set());
@@ -640,7 +641,7 @@ export function FolderProvider({
640
641
  setSubfolders(sortedSubfolders_1);
641
642
  setAllSubfolders(sortedAllSubfolders);
642
643
  }
643
- }, [activeFolderID, documents, separateItems, sortItems, subfolders]);
644
+ }, [activeFolderID, documents, separateItems, sortItems, subfolders, parentFolderContext]);
644
645
  /**
645
646
  * Used to move items to a different folder.
646
647
  *
@@ -724,7 +725,7 @@ export function FolderProvider({
724
725
  docs
725
726
  } = json;
726
727
  const formattedItems = docs.map(doc => formatFolderOrDocumentItem({
727
- folderFieldName: config.folders.fieldName,
728
+ folderFieldName,
728
729
  isUpload: Boolean(collectionConfig.upload),
729
730
  relationTo: collectionSlug_1,
730
731
  useAsTitle: collectionConfig.admin.useAsTitle,
@@ -780,7 +781,7 @@ export function FolderProvider({
780
781
  }
781
782
  }
782
783
  clearSelections();
783
- }, [folderCollectionSlug, activeFolderID, clearSelections, serverURL, routes.api, t, getFolderData, getEntityConfig, sortItems, documents, subfolders, drawerDepth, router]);
784
+ }, [folderCollectionSlug, activeFolderID, clearSelections, serverURL, routes.api, folderFieldName, t, getFolderData, getEntityConfig, sortItems, documents, subfolders, drawerDepth, router]);
784
785
  /**
785
786
  * Used to rename a folder in the current state.
786
787
  *
@@ -839,6 +840,7 @@ export function FolderProvider({
839
840
  focusedRowIndex,
840
841
  folderCollectionConfig,
841
842
  folderCollectionSlug,
843
+ folderCollectionSlugs,
842
844
  folderFieldName,
843
845
  folderID: activeFolderID,
844
846
  getSelectedItems,