@payloadcms/ui 3.55.0-internal.d44d1d3 → 3.55.0-internal.df60e35

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 (171) hide show
  1. package/dist/elements/Autosave/index.js +2 -2
  2. package/dist/elements/Autosave/index.js.map +1 -1
  3. package/dist/elements/BulkUpload/EditForm/index.js +4 -18
  4. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  5. package/dist/elements/ClipboardAction/index.js +173 -74
  6. package/dist/elements/ClipboardAction/index.js.map +1 -1
  7. package/dist/elements/CodeEditor/CodeEditor.js +155 -67
  8. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  9. package/dist/elements/Collapsible/index.js +15 -7
  10. package/dist/elements/Collapsible/index.js.map +1 -1
  11. package/dist/elements/ConfirmationModal/index.js +44 -8
  12. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  13. package/dist/elements/CopyLocaleData/index.js +97 -89
  14. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  15. package/dist/elements/CopyToClipboard/index.js +22 -2
  16. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  17. package/dist/elements/DeleteMany/index.js +83 -47
  18. package/dist/elements/DeleteMany/index.js.map +1 -1
  19. package/dist/elements/DocumentControls/index.js +55 -27
  20. package/dist/elements/DocumentControls/index.js.map +1 -1
  21. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +10 -2
  22. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  23. package/dist/elements/DocumentDrawer/index.js +99 -47
  24. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  25. package/dist/elements/DocumentFields/index.scss +1 -1
  26. package/dist/elements/Drawer/index.js +57 -23
  27. package/dist/elements/Drawer/index.js.map +1 -1
  28. package/dist/elements/DrawerActionHeader/index.js +21 -3
  29. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  30. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +225 -149
  31. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  32. package/dist/elements/FolderView/FolderFileCard/index.js +27 -19
  33. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  34. package/dist/elements/FolderView/MoveDocToFolder/index.js +23 -12
  35. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  36. package/dist/elements/FullscreenModal/index.js +20 -10
  37. package/dist/elements/FullscreenModal/index.js.map +1 -1
  38. package/dist/elements/ListDrawer/index.js +24 -18
  39. package/dist/elements/ListDrawer/index.js.map +1 -1
  40. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +32 -19
  41. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  42. package/dist/elements/ListHeaderTabs/DefaultListPill.js +8 -15
  43. package/dist/elements/ListHeaderTabs/DefaultListPill.js.map +1 -1
  44. package/dist/elements/ListSelection/index.js +27 -11
  45. package/dist/elements/ListSelection/index.js.map +1 -1
  46. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
  47. package/dist/elements/LivePreview/Window/index.js +152 -71
  48. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  49. package/dist/elements/Loading/index.js +11 -2
  50. package/dist/elements/Loading/index.js.map +1 -1
  51. package/dist/elements/LoadingOverlay/index.js +102 -46
  52. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  53. package/dist/elements/Localizer/LocalizerLabel/index.js +36 -23
  54. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  55. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  56. package/dist/elements/PublishButton/index.js +22 -11
  57. package/dist/elements/PublishButton/index.js.map +1 -1
  58. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +139 -41
  59. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  60. package/dist/elements/RenderIfInViewport/index.d.ts +2 -2
  61. package/dist/elements/RenderIfInViewport/index.d.ts.map +1 -1
  62. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  63. package/dist/elements/SelectRow/index.js +40 -39
  64. package/dist/elements/SelectRow/index.js.map +1 -1
  65. package/dist/elements/ShimmerEffect/index.js +12 -20
  66. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  67. package/dist/elements/SortColumn/index.js +30 -21
  68. package/dist/elements/SortColumn/index.js.map +1 -1
  69. package/dist/elements/Status/index.d.ts.map +1 -1
  70. package/dist/elements/Status/index.js +19 -9
  71. package/dist/elements/Status/index.js.map +1 -1
  72. package/dist/elements/Table/DefaultCell/fields/Date/index.js +37 -9
  73. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  74. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +37 -35
  75. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  76. package/dist/elements/Table/DefaultCell/fields/Select/index.js +27 -12
  77. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  78. package/dist/elements/Thumbnail/index.js +75 -35
  79. package/dist/elements/Thumbnail/index.js.map +1 -1
  80. package/dist/elements/ThumbnailCard/index.js +26 -17
  81. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  82. package/dist/elements/Tooltip/index.js +127 -51
  83. package/dist/elements/Tooltip/index.js.map +1 -1
  84. package/dist/elements/Upload/index.js +10 -2
  85. package/dist/elements/Upload/index.js.map +1 -1
  86. package/dist/elements/WhereBuilder/Condition/Select/index.js +44 -31
  87. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  88. package/dist/exports/client/{CodeEditor-O6BWJHD2.js → CodeEditor-MIIBUJZ4.js} +2 -2
  89. package/dist/exports/client/{DatePicker-F432AIH3.js → DatePicker-NMDEHPWL.js} +2 -2
  90. package/dist/exports/client/{chunk-AZDI6MW4.js → chunk-7RGKTZG2.js} +1 -1
  91. package/dist/exports/client/{chunk-AZDI6MW4.js.map → chunk-7RGKTZG2.js.map} +1 -1
  92. package/dist/exports/client/{chunk-FXAFULZQ.js → chunk-Z6O2JA43.js} +6 -6
  93. package/dist/exports/client/{chunk-FXAFULZQ.js.map → chunk-Z6O2JA43.js.map} +3 -3
  94. package/dist/exports/client/index.d.ts +2 -3
  95. package/dist/exports/client/index.d.ts.map +1 -1
  96. package/dist/exports/client/index.js +24 -24
  97. package/dist/exports/client/index.js.map +4 -4
  98. package/dist/fields/Array/ArrayRow.d.ts +3 -2
  99. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  100. package/dist/fields/Array/ArrayRow.js +23 -13
  101. package/dist/fields/Array/ArrayRow.js.map +1 -1
  102. package/dist/fields/Array/index.js +477 -273
  103. package/dist/fields/Array/index.js.map +1 -1
  104. package/dist/fields/Checkbox/Input.js +19 -2
  105. package/dist/fields/Checkbox/Input.js.map +1 -1
  106. package/dist/fields/FieldError/index.js +29 -30
  107. package/dist/fields/FieldError/index.js.map +1 -1
  108. package/dist/fields/FieldLabel/index.js +64 -12
  109. package/dist/fields/FieldLabel/index.js.map +1 -1
  110. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +103 -45
  111. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  112. package/dist/fields/Relationship/select-components/SingleValue/index.js +44 -29
  113. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  114. package/dist/fields/Row/index.d.ts +3 -1
  115. package/dist/fields/Row/index.d.ts.map +1 -1
  116. package/dist/fields/Select/Input.js +31 -18
  117. package/dist/fields/Select/Input.js.map +1 -1
  118. package/dist/fields/Tabs/Tab/index.js +11 -2
  119. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  120. package/dist/fields/Tabs/index.d.ts +1 -2
  121. package/dist/fields/Tabs/index.d.ts.map +1 -1
  122. package/dist/fields/Tabs/index.js +225 -185
  123. package/dist/fields/Tabs/index.js.map +1 -1
  124. package/dist/fields/Upload/RelationshipContent/index.js +127 -79
  125. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  126. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  127. package/dist/forms/Form/fieldReducer.js +15 -13
  128. package/dist/forms/Form/fieldReducer.js.map +1 -1
  129. package/dist/forms/RenderFields/RenderField.js +237 -245
  130. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  131. package/dist/forms/RenderFields/types.d.ts +10 -2
  132. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  133. package/dist/forms/RenderFields/types.js.map +1 -1
  134. package/dist/forms/useField/index.d.ts +0 -5
  135. package/dist/forms/useField/index.d.ts.map +1 -1
  136. package/dist/forms/useField/index.js +45 -74
  137. package/dist/forms/useField/index.js.map +1 -1
  138. package/dist/hooks/useIntersect.js +53 -35
  139. package/dist/hooks/useIntersect.js.map +1 -1
  140. package/dist/hooks/usePayloadAPI.js +44 -36
  141. package/dist/hooks/usePayloadAPI.js.map +1 -1
  142. package/dist/providers/LivePreview/context.d.ts +0 -2
  143. package/dist/providers/LivePreview/context.d.ts.map +1 -1
  144. package/dist/providers/LivePreview/context.js +0 -1
  145. package/dist/providers/LivePreview/context.js.map +1 -1
  146. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  147. package/dist/providers/LivePreview/index.js +0 -12
  148. package/dist/providers/LivePreview/index.js.map +1 -1
  149. package/dist/providers/ServerFunctions/index.d.ts +1 -1
  150. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  151. package/dist/providers/ServerFunctions/index.js.map +1 -1
  152. package/dist/styles.css +1 -1
  153. package/dist/utilities/buildFormState.d.ts.map +1 -1
  154. package/dist/utilities/buildFormState.js +5 -0
  155. package/dist/utilities/buildFormState.js.map +1 -1
  156. package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -1
  157. package/dist/utilities/reduceFieldsToOptions.js +16 -1
  158. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  159. package/dist/utilities/traverseForLocalizedFields.d.ts +3 -0
  160. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -0
  161. package/dist/utilities/traverseForLocalizedFields.js +40 -0
  162. package/dist/utilities/traverseForLocalizedFields.js.map +1 -0
  163. package/dist/views/BrowseByFolder/index.js +55 -37
  164. package/dist/views/BrowseByFolder/index.js.map +1 -1
  165. package/dist/views/CollectionFolder/index.js +40 -13
  166. package/dist/views/CollectionFolder/index.js.map +1 -1
  167. package/dist/views/Edit/Auth/index.js +105 -93
  168. package/dist/views/Edit/Auth/index.js.map +1 -1
  169. package/package.json +8 -8
  170. /package/dist/exports/client/{CodeEditor-O6BWJHD2.js.map → CodeEditor-MIIBUJZ4.js.map} +0 -0
  171. /package/dist/exports/client/{DatePicker-F432AIH3.js.map → DatePicker-NMDEHPWL.js.map} +0 -0
@@ -23,6 +23,7 @@ export const Status = () => {
23
23
  hasPublishedDoc,
24
24
  incrementVersionCount,
25
25
  isTrashed,
26
+ savedDocumentData: doc,
26
27
  setHasPublishedDoc,
27
28
  setMostRecentVersionIsAutosaved,
28
29
  setUnpublishedVersionCount,
@@ -37,7 +38,8 @@ export const Status = () => {
37
38
  api
38
39
  },
39
40
  serverURL
40
- }
41
+ },
42
+ getEntityConfig
41
43
  } = useConfig();
42
44
  const {
43
45
  reset: resetForm
@@ -51,13 +53,21 @@ export const Status = () => {
51
53
  } = useTranslation();
52
54
  const unPublishModalSlug = `confirm-un-publish-${id}`;
53
55
  const revertModalSlug = `confirm-revert-${id}`;
54
- let statusToRender;
55
- if (unpublishedVersionCount > 0 && hasPublishedDoc) {
56
- statusToRender = 'changed';
57
- } else if (!hasPublishedDoc) {
58
- statusToRender = 'draft';
59
- } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {
60
- statusToRender = 'published';
56
+ let statusToRender = 'draft';
57
+ const collectionConfig = getEntityConfig({
58
+ collectionSlug
59
+ });
60
+ const globalConfig = getEntityConfig({
61
+ globalSlug
62
+ });
63
+ const docConfig = collectionConfig || globalConfig;
64
+ const autosaveEnabled = typeof docConfig?.versions?.drafts === 'object' ? docConfig.versions.drafts.autosave : false;
65
+ if (autosaveEnabled) {
66
+ if (hasPublishedDoc) {
67
+ statusToRender = unpublishedVersionCount > 0 ? 'changed' : 'published';
68
+ }
69
+ } else {
70
+ statusToRender = doc._status || 'draft';
61
71
  }
62
72
  const displayStatusKey = isTrashed ? hasPublishedDoc ? 'previouslyPublished' : 'previouslyDraft' : statusToRender;
63
73
  const performAction = useCallback(async action => {
@@ -154,7 +164,7 @@ export const Status = () => {
154
164
  modalSlug: unPublishModalSlug,
155
165
  onConfirm: () => performAction('unpublish')
156
166
  })]
157
- }), !isTrashed && canUpdate && statusToRender === 'changed' && /*#__PURE__*/_jsxs(React.Fragment, {
167
+ }), !isTrashed && canUpdate && statusToRender === 'changed' || statusToRender === 'draft' && /*#__PURE__*/_jsxs(React.Fragment, {
158
168
  children: [" — ", /*#__PURE__*/_jsx(Button, {
159
169
  buttonStyle: "none",
160
170
  className: `${baseClass}__action`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","isTrashed","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","serverURL","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","displayStatusKey","performAction","action","url","method","body","_status","publishedDoc","get","headers","language","then","res","json","JSON","stringify","status","data","result","doc","success","message","errors","error","err","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n isTrashed,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { toggleModal } = useModal()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const displayStatusKey = isTrashed\n ? hasPublishedDoc\n ? 'previouslyPublished'\n : 'previouslyDraft'\n : statusToRender\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n if (action === 'unpublish') {\n setHasPublishedDoc(false)\n } else if (action === 'revert') {\n setUnpublishedVersionCount(0)\n }\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (err) {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n serverURL,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n setHasPublishedDoc,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${displayStatusKey}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}:&nbsp;</span>\n <span className={`${baseClass}__value`}>{t(`version:${displayStatusKey}`)}</span>\n {!isTrashed && canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id={`action-unpublish`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToUnpublish')}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => performAction('unpublish')}\n />\n </React.Fragment>\n )}\n {!isTrashed && canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction('revert')}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","isTrashed","savedDocumentData","doc","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","serverURL","getEntityConfig","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","collectionConfig","globalConfig","docConfig","autosaveEnabled","versions","drafts","autosave","_status","displayStatusKey","performAction","action","url","method","body","publishedDoc","get","headers","language","then","res","json","JSON","stringify","status","data","result","success","message","errors","error","err","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n isTrashed,\n savedDocumentData: doc,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { toggleModal } = useModal()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published' = 'draft'\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const docConfig = collectionConfig || globalConfig\n const autosaveEnabled =\n typeof docConfig?.versions?.drafts === 'object' ? docConfig.versions.drafts.autosave : false\n\n if (autosaveEnabled) {\n if (hasPublishedDoc) {\n statusToRender = unpublishedVersionCount > 0 ? 'changed' : 'published'\n }\n } else {\n statusToRender = doc._status || 'draft'\n }\n const displayStatusKey = isTrashed\n ? hasPublishedDoc\n ? 'previouslyPublished'\n : 'previouslyDraft'\n : statusToRender\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n if (action === 'unpublish') {\n setHasPublishedDoc(false)\n } else if (action === 'revert') {\n setUnpublishedVersionCount(0)\n }\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (err) {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n serverURL,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n setHasPublishedDoc,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${displayStatusKey}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}:&nbsp;</span>\n <span className={`${baseClass}__value`}>{t(`version:${displayStatusKey}`)}</span>\n {!isTrashed && canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id={`action-unpublish`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToUnpublish')}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => performAction('unpublish')}\n />\n </React.Fragment>\n )}\n {!isTrashed && canUpdate && statusToRender === 'changed' || statusToRender === 'draft' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction('revert')}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,13 @@
1
1
  'use client';
2
2
 
3
+ import { c as _c } from "react/compiler-runtime";
3
4
  import { jsx as _jsx } from "react/jsx-runtime";
4
5
  import React from 'react';
5
6
  import { useConfig } from '../../../../../providers/Config/index.js';
6
7
  import { useTranslation } from '../../../../../providers/Translation/index.js';
7
8
  import { formatDate } from '../../../../../utilities/formatDocTitle/formatDateTitle.js';
8
9
  export const DateCell = t0 => {
10
+ const $ = _c(8);
9
11
  const {
10
12
  cellData,
11
13
  field: t1
@@ -13,28 +15,54 @@ export const DateCell = t0 => {
13
15
  const {
14
16
  admin: t2
15
17
  } = t1;
18
+ let t3;
19
+ if ($[0] !== t2) {
20
+ t3 = t2 === undefined ? {} : t2;
21
+ $[0] = t2;
22
+ $[1] = t3;
23
+ } else {
24
+ t3 = $[1];
25
+ }
16
26
  const {
17
27
  date
18
- } = t2 === undefined ? {} : t2;
28
+ } = t3;
19
29
  const {
20
- config: t3
30
+ config: t4
21
31
  } = useConfig();
22
32
  const {
23
- admin: t4
24
- } = t3;
33
+ admin: t5
34
+ } = t4;
25
35
  const {
26
36
  dateFormat: dateFormatFromRoot
27
- } = t4;
37
+ } = t5;
28
38
  const dateFormat = date?.displayFormat || dateFormatFromRoot;
29
39
  const {
30
40
  i18n
31
41
  } = useTranslation();
32
- return _jsx("span", {
33
- children: cellData && formatDate({
42
+ let t6;
43
+ if ($[2] !== cellData || $[3] !== dateFormat || $[4] !== i18n) {
44
+ t6 = cellData && formatDate({
34
45
  date: cellData,
35
46
  i18n,
36
47
  pattern: dateFormat
37
- })
38
- });
48
+ });
49
+ $[2] = cellData;
50
+ $[3] = dateFormat;
51
+ $[4] = i18n;
52
+ $[5] = t6;
53
+ } else {
54
+ t6 = $[5];
55
+ }
56
+ let t7;
57
+ if ($[6] !== t6) {
58
+ t7 = _jsx("span", {
59
+ children: t6
60
+ });
61
+ $[6] = t6;
62
+ $[7] = t7;
63
+ } else {
64
+ t7 = $[7];
65
+ }
66
+ return t7;
39
67
  };
40
68
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useConfig","useTranslation","formatDate","DateCell","t0","cellData","field","t1","admin","t2","date","undefined","config","t3","t4","dateFormat","dateFormatFromRoot","displayFormat","i18n","_jsx","children","pattern"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Date/index.tsx"],"sourcesContent":["'use client'\nimport type { DateFieldClient, DefaultCellComponentProps } from 'payload'\n\nimport React from 'react'\n\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { formatDate } from '../../../../../utilities/formatDocTitle/formatDateTitle.js'\n\nexport const DateCell: React.FC<DefaultCellComponentProps<DateFieldClient>> = ({\n cellData,\n field: { admin: { date } = {} },\n}) => {\n const {\n config: {\n admin: { dateFormat: dateFormatFromRoot },\n },\n } = useConfig()\n\n const dateFormat = date?.displayFormat || dateFormatFromRoot\n\n const { i18n } = useTranslation()\n\n return <span>{cellData && formatDate({ date: cellData, i18n, pattern: dateFormat })}</span>\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAE3B,OAAO,MAAMC,QAAA,GAAiEC,EAAA;EAAC;IAAAC,QAAA;IAAAC,KAAA,EAAAC;EAAA,IAAAH,EAG9E;EADQ;IAAAI,KAAA,EAAAC;EAAA,IAAAF,EAAwB;EAAf;IAAAG;EAAA,IAAAD,EAAa,KAAAE,SAAA,QAAbF,EAAa;EAE7B;IAAAG,MAAA,EAAAC;EAAA,IAIIb,SAAA;EAHM;IAAAQ,KAAA,EAAAM;EAAA,IAAAD,EAEP;EADQ;IAAAE,UAAA,EAAAC;EAAA,IAAAF,EAAkC;EAI7C,MAAAC,UAAA,GAAmBL,IAAA,EAAAO,aAAA,IAAuBD,kBAAA;EAE1C;IAAAE;EAAA,IAAiBjB,cAAA;EAAA,OAEVkB,IAAA,CAAC;IAAAC,QAAA,EAAMf,QAAA,IAAYH,UAAA;MAAAQ,IAAA,EAAmBL,QAAA;MAAAa,IAAA;MAAAG,OAAA,EAAyBN;IAAA,CAAW;EAAA,C;CACnF","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useConfig","useTranslation","formatDate","DateCell","t0","$","cellData","field","t1","admin","t2","t3","undefined","date","config","t4","t5","dateFormat","dateFormatFromRoot","displayFormat","i18n","t6","pattern","t7","_jsx","children"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Date/index.tsx"],"sourcesContent":["'use client'\nimport type { DateFieldClient, DefaultCellComponentProps } from 'payload'\n\nimport React from 'react'\n\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { formatDate } from '../../../../../utilities/formatDocTitle/formatDateTitle.js'\n\nexport const DateCell: React.FC<DefaultCellComponentProps<DateFieldClient>> = ({\n cellData,\n field: { admin: { date } = {} },\n}) => {\n const {\n config: {\n admin: { dateFormat: dateFormatFromRoot },\n },\n } = useConfig()\n\n const dateFormat = date?.displayFormat || dateFormatFromRoot\n\n const { i18n } = useTranslation()\n\n return <span>{cellData && formatDate({ date: cellData, i18n, pattern: dateFormat })}</span>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAE3B,OAAO,MAAMC,QAAA,GAAiEC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,QAAA;IAAAC,KAAA,EAAAC;EAAA,IAAAJ,EAG9E;EADQ;IAAAK,KAAA,EAAAC;EAAA,IAAAF,EAAwB;EAAA,IAAAG,EAAA;EAAA,IAAAN,CAAA,QAAAK,EAAA;IAAfC,EAAA,GAAAD,EAAa,KAAAE,SAAA,QAAbF,EAAa;IAAAL,CAAA,MAAAK,EAAA;IAAAL,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAAb;IAAAQ;EAAA,IAAAF,EAAa;EAE7B;IAAAG,MAAA,EAAAC;EAAA,IAIIf,SAAA;EAHM;IAAAS,KAAA,EAAAO;EAAA,IAAAD,EAEP;EADQ;IAAAE,UAAA,EAAAC;EAAA,IAAAF,EAAkC;EAI7C,MAAAC,UAAA,GAAmBJ,IAAA,EAAAM,aAAA,IAAuBD,kBAAA;EAE1C;IAAAE;EAAA,IAAiBnB,cAAA;EAAA,IAAAoB,EAAA;EAAA,IAAAhB,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAY,UAAA,IAAAZ,CAAA,QAAAe,IAAA;IAEHC,EAAA,GAAAf,QAAA,IAAYJ,UAAA;MAAAW,IAAA,EAAmBP,QAAA;MAAAc,IAAA;MAAAE,OAAA,EAAyBL;IAAA,CAAW;IAAAZ,CAAA,MAAAC,QAAA;IAAAD,CAAA,MAAAY,UAAA;IAAAZ,CAAA,MAAAe,IAAA;IAAAf,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,IAAAkB,EAAA;EAAA,IAAAlB,CAAA,QAAAgB,EAAA;IAA1EE,EAAA,GAAAC,IAAA,CAAC;MAAAC,QAAA,EAAMJ;IAAmE,C;;;;;;SAA1EE,E;CACT","ignoreList":[]}
@@ -26,7 +26,9 @@ export const RelationshipCell = t0 => {
26
26
  label
27
27
  } = t1;
28
28
  const relationTo = "relationTo" in field && field.relationTo || "collection" in field && field.collection;
29
- const cellData = "collection" in field ? cellDataFromProps?.docs : cellDataFromProps;
29
+ let t2;
30
+ t2 = "collection" in field ? cellDataFromProps?.docs : cellDataFromProps;
31
+ const cellData = t2;
30
32
  const {
31
33
  config,
32
34
  getEntityConfig
@@ -36,14 +38,14 @@ export const RelationshipCell = t0 => {
36
38
  routes
37
39
  } = config;
38
40
  const [intersectionRef, entry] = useIntersect();
39
- let t2;
41
+ let t3;
40
42
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
41
- t2 = [];
42
- $[0] = t2;
43
+ t3 = [];
44
+ $[0] = t3;
43
45
  } else {
44
- t2 = $[0];
46
+ t3 = $[0];
45
47
  }
46
- const [values, setValues] = useState(t2);
48
+ const [values, setValues] = useState(t3);
47
49
  const {
48
50
  documents,
49
51
  getRelationships
@@ -54,9 +56,9 @@ export const RelationshipCell = t0 => {
54
56
  t
55
57
  } = useTranslation();
56
58
  const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false;
57
- let t3;
59
+ let t4;
58
60
  if ($[1] !== cellData || $[2] !== getRelationships || $[3] !== hasRequested || $[4] !== isAboveViewport || $[5] !== relationTo) {
59
- t3 = () => {
61
+ t4 = () => {
60
62
  if ((cellData || typeof cellData === "number") && isAboveViewport && !hasRequested) {
61
63
  const formattedValues = [];
62
64
  const arrayCellData = Array.isArray(cellData) ? cellData : [cellData];
@@ -81,13 +83,13 @@ export const RelationshipCell = t0 => {
81
83
  $[3] = hasRequested;
82
84
  $[4] = isAboveViewport;
83
85
  $[5] = relationTo;
84
- $[6] = t3;
86
+ $[6] = t4;
85
87
  } else {
86
- t3 = $[6];
88
+ t4 = $[6];
87
89
  }
88
- let t4;
90
+ let t5;
89
91
  if ($[7] !== cellData || $[8] !== collections || $[9] !== getRelationships || $[10] !== hasRequested || $[11] !== isAboveViewport || $[12] !== relationTo || $[13] !== routes.api) {
90
- t4 = [cellData, relationTo, collections, isAboveViewport, routes.api, hasRequested, getRelationships];
92
+ t5 = [cellData, relationTo, collections, isAboveViewport, routes.api, hasRequested, getRelationships];
91
93
  $[7] = cellData;
92
94
  $[8] = collections;
93
95
  $[9] = getRelationships;
@@ -95,41 +97,41 @@ export const RelationshipCell = t0 => {
95
97
  $[11] = isAboveViewport;
96
98
  $[12] = relationTo;
97
99
  $[13] = routes.api;
98
- $[14] = t4;
100
+ $[14] = t5;
99
101
  } else {
100
- t4 = $[14];
102
+ t5 = $[14];
101
103
  }
102
- useEffect(t3, t4);
103
- let t5;
104
+ useEffect(t4, t5);
105
+ let t6;
104
106
  if ($[15] !== hasRequested) {
105
- t5 = () => {
107
+ t6 = () => {
106
108
  if (hasRequested) {
107
109
  setHasRequested(false);
108
110
  }
109
111
  };
110
112
  $[15] = hasRequested;
111
- $[16] = t5;
113
+ $[16] = t6;
112
114
  } else {
113
- t5 = $[16];
115
+ t6 = $[16];
114
116
  }
115
- let t6;
117
+ let t7;
116
118
  if ($[17] !== cellData) {
117
- t6 = [cellData];
119
+ t7 = [cellData];
118
120
  $[17] = cellData;
119
- $[18] = t6;
121
+ $[18] = t7;
120
122
  } else {
121
- t6 = $[18];
123
+ t7 = $[18];
122
124
  }
123
- useEffect(t5, t6);
124
- let t7;
125
+ useEffect(t6, t7);
126
+ let t8;
125
127
  if ($[19] !== cellData || $[20] !== config.admin || $[21] !== customCellContext || $[22] !== documents || $[23] !== field || $[24] !== getEntityConfig || $[25] !== i18n || $[26] !== intersectionRef || $[27] !== label || $[28] !== t || $[29] !== values) {
126
- let t8;
128
+ let t9;
127
129
  if ($[31] !== config.admin || $[32] !== customCellContext || $[33] !== documents || $[34] !== field || $[35] !== getEntityConfig || $[36] !== i18n || $[37] !== t || $[38] !== values.length) {
128
- t8 = (t9, i) => {
130
+ t9 = (t10, i) => {
129
131
  const {
130
132
  relationTo: relationTo_0,
131
133
  value
132
- } = t9;
134
+ } = t10;
133
135
  const document = documents[relationTo_0][value];
134
136
  const relatedCollection = getEntityConfig({
135
137
  collectionSlug: relationTo_0
@@ -168,14 +170,14 @@ export const RelationshipCell = t0 => {
168
170
  $[36] = i18n;
169
171
  $[37] = t;
170
172
  $[38] = values.length;
171
- $[39] = t8;
173
+ $[39] = t9;
172
174
  } else {
173
- t8 = $[39];
175
+ t9 = $[39];
174
176
  }
175
- t7 = _jsxs("div", {
177
+ t8 = _jsxs("div", {
176
178
  className: baseClass,
177
179
  ref: intersectionRef,
178
- children: [values.map(t8), Array.isArray(cellData) && cellData.length > totalToShow && t("fields:itemsAndMore", {
180
+ children: [values.map(t9), Array.isArray(cellData) && cellData.length > totalToShow && t("fields:itemsAndMore", {
179
181
  count: cellData.length - totalToShow,
180
182
  items: ""
181
183
  }), values.length === 0 && t("general:noLabel", {
@@ -193,10 +195,10 @@ export const RelationshipCell = t0 => {
193
195
  $[27] = label;
194
196
  $[28] = t;
195
197
  $[29] = values;
196
- $[30] = t7;
198
+ $[30] = t8;
197
199
  } else {
198
- t7 = $[30];
200
+ t8 = $[30];
199
201
  }
200
- return t7;
202
+ return t8;
201
203
  };
202
204
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useEffect","useMemo","useState","useIntersect","useConfig","useTranslation","canUseDOM","formatDocTitle","useListRelationships","FileCell","baseClass","totalToShow","RelationshipCell","t0","$","cellData","cellDataFromProps","customCellProps","customCellContext","field","t1","label","relationTo","collection","docs","config","getEntityConfig","collections","routes","intersectionRef","entry","t2","Symbol","for","values","setValues","documents","getRelationships","hasRequested","setHasRequested","i18n","t","isAboveViewport","boundingClientRect","top","window","innerHeight","t3","formattedValues","arrayCellData","Array","isArray","slice","length","forEach","cell","push","value","t4","api","t5","t6","t7","admin","t8","t9","i","relationTo_0","document","relatedCollection","collectionSlug","label_0","collectionConfig","data","dateFormat","fallback","fileField","type","fieldPreviewAllowed","displayPreview","undefined","previewAllowed","upload","slug","rowData","_jsxs","Fragment","children","className","ref","map","count","items"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type {\n DefaultCellComponentProps,\n JoinFieldClient,\n RelationshipFieldClient,\n UploadFieldClient,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { useIntersect } from '../../../../../hooks/useIntersect.js'\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { canUseDOM } from '../../../../../utilities/canUseDOM.js'\nimport { formatDocTitle } from '../../../../../utilities/formatDocTitle/index.js'\nimport { useListRelationships } from '../../../RelationshipProvider/index.js'\nimport { FileCell } from '../File/index.js'\nimport './index.scss'\n\ntype Value = { relationTo: string; value: number | string }\nconst baseClass = 'relationship-cell'\nconst totalToShow = 3\n\nexport type RelationshipCellProps = DefaultCellComponentProps<\n JoinFieldClient | RelationshipFieldClient | UploadFieldClient\n>\n\nexport const RelationshipCell: React.FC<RelationshipCellProps> = ({\n cellData: cellDataFromProps,\n customCellProps: customCellContext,\n field,\n field: { label },\n}) => {\n // conditionally extract relationTo both both relationship and join fields\n const relationTo =\n ('relationTo' in field && field.relationTo) || ('collection' in field && field.collection)\n\n // conditionally extract docs from join fields\n const cellData = useMemo(() => {\n return 'collection' in field ? cellDataFromProps?.docs : cellDataFromProps\n }, [cellDataFromProps, field])\n\n const { config, getEntityConfig } = useConfig()\n const { collections, routes } = config\n const [intersectionRef, entry] = useIntersect()\n const [values, setValues] = useState<Value[]>([])\n const { documents, getRelationships } = useListRelationships()\n const [hasRequested, setHasRequested] = useState(false)\n const { i18n, t } = useTranslation()\n\n const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false\n\n useEffect(() => {\n if ((cellData || typeof cellData === 'number') && isAboveViewport && !hasRequested) {\n const formattedValues: Value[] = []\n const arrayCellData = Array.isArray(cellData) ? cellData : [cellData]\n arrayCellData\n .slice(0, arrayCellData.length < totalToShow ? arrayCellData.length : totalToShow)\n .forEach((cell) => {\n if (typeof cell === 'object' && 'relationTo' in cell && 'value' in cell) {\n formattedValues.push(cell)\n }\n if (\n (typeof cell === 'number' || typeof cell === 'string') &&\n typeof relationTo === 'string'\n ) {\n formattedValues.push({\n relationTo,\n value: cell,\n })\n }\n })\n getRelationships(formattedValues)\n setHasRequested(true)\n setValues(formattedValues)\n }\n }, [\n cellData,\n relationTo,\n collections,\n isAboveViewport,\n routes.api,\n hasRequested,\n getRelationships,\n ])\n\n useEffect(() => {\n if (hasRequested) {\n setHasRequested(false)\n }\n }, [cellData])\n\n return (\n <div className={baseClass} ref={intersectionRef}>\n {values.map(({ relationTo, value }, i) => {\n const document = documents[relationTo][value]\n const relatedCollection = getEntityConfig({\n collectionSlug: relationTo,\n })\n\n const label = formatDocTitle({\n collectionConfig: relatedCollection,\n data: document || null,\n dateFormat: config.admin.dateFormat,\n fallback: `${t('general:untitled')} - ID: ${value}`,\n i18n,\n })\n\n let fileField = null\n\n if (field.type === 'upload') {\n const fieldPreviewAllowed = 'displayPreview' in field ? field.displayPreview : undefined\n const previewAllowed =\n fieldPreviewAllowed ?? relatedCollection.upload?.displayPreview ?? true\n\n if (previewAllowed && document) {\n fileField = (\n <FileCell\n cellData={label}\n collectionConfig={relatedCollection}\n collectionSlug={relatedCollection.slug}\n customCellProps={customCellContext}\n field={field}\n rowData={document}\n />\n )\n }\n }\n\n return (\n <React.Fragment key={i}>\n {document === false && `${t('general:untitled')} - ID: ${value}`}\n {document === null && `${t('general:loading')}...`}\n {document ? fileField || label : null}\n {values.length > i + 1 && ', '}\n </React.Fragment>\n )\n })}\n {Array.isArray(cellData) &&\n cellData.length > totalToShow &&\n t('fields:itemsAndMore', { count: cellData.length - totalToShow, items: '' })}\n {values.length === 0 && t('general:noLabel', { label: getTranslation(label || '', i18n) })}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useEffect","useMemo","useState","useIntersect","useConfig","useTranslation","canUseDOM","formatDocTitle","useListRelationships","FileCell","baseClass","totalToShow","RelationshipCell","t0","$","cellData","cellDataFromProps","customCellProps","customCellContext","field","t1","label","relationTo","collection","t2","docs","config","getEntityConfig","collections","routes","intersectionRef","entry","t3","Symbol","for","values","setValues","documents","getRelationships","hasRequested","setHasRequested","i18n","t","isAboveViewport","boundingClientRect","top","window","innerHeight","t4","formattedValues","arrayCellData","Array","isArray","slice","length","forEach","cell","push","value","t5","api","t6","t7","t8","admin","t9","t10","i","relationTo_0","document","relatedCollection","collectionSlug","label_0","collectionConfig","data","dateFormat","fallback","fileField","type","fieldPreviewAllowed","displayPreview","undefined","previewAllowed","upload","slug","rowData","_jsxs","Fragment","children","className","ref","map","count","items"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type {\n DefaultCellComponentProps,\n JoinFieldClient,\n RelationshipFieldClient,\n UploadFieldClient,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { useIntersect } from '../../../../../hooks/useIntersect.js'\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { canUseDOM } from '../../../../../utilities/canUseDOM.js'\nimport { formatDocTitle } from '../../../../../utilities/formatDocTitle/index.js'\nimport { useListRelationships } from '../../../RelationshipProvider/index.js'\nimport { FileCell } from '../File/index.js'\nimport './index.scss'\n\ntype Value = { relationTo: string; value: number | string }\nconst baseClass = 'relationship-cell'\nconst totalToShow = 3\n\nexport type RelationshipCellProps = DefaultCellComponentProps<\n JoinFieldClient | RelationshipFieldClient | UploadFieldClient\n>\n\nexport const RelationshipCell: React.FC<RelationshipCellProps> = ({\n cellData: cellDataFromProps,\n customCellProps: customCellContext,\n field,\n field: { label },\n}) => {\n // conditionally extract relationTo both both relationship and join fields\n const relationTo =\n ('relationTo' in field && field.relationTo) || ('collection' in field && field.collection)\n\n // conditionally extract docs from join fields\n const cellData = useMemo(() => {\n return 'collection' in field ? cellDataFromProps?.docs : cellDataFromProps\n }, [cellDataFromProps, field])\n\n const { config, getEntityConfig } = useConfig()\n const { collections, routes } = config\n const [intersectionRef, entry] = useIntersect()\n const [values, setValues] = useState<Value[]>([])\n const { documents, getRelationships } = useListRelationships()\n const [hasRequested, setHasRequested] = useState(false)\n const { i18n, t } = useTranslation()\n\n const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false\n\n useEffect(() => {\n if ((cellData || typeof cellData === 'number') && isAboveViewport && !hasRequested) {\n const formattedValues: Value[] = []\n const arrayCellData = Array.isArray(cellData) ? cellData : [cellData]\n arrayCellData\n .slice(0, arrayCellData.length < totalToShow ? arrayCellData.length : totalToShow)\n .forEach((cell) => {\n if (typeof cell === 'object' && 'relationTo' in cell && 'value' in cell) {\n formattedValues.push(cell)\n }\n if (\n (typeof cell === 'number' || typeof cell === 'string') &&\n typeof relationTo === 'string'\n ) {\n formattedValues.push({\n relationTo,\n value: cell,\n })\n }\n })\n getRelationships(formattedValues)\n setHasRequested(true)\n setValues(formattedValues)\n }\n }, [\n cellData,\n relationTo,\n collections,\n isAboveViewport,\n routes.api,\n hasRequested,\n getRelationships,\n ])\n\n useEffect(() => {\n if (hasRequested) {\n setHasRequested(false)\n }\n }, [cellData])\n\n return (\n <div className={baseClass} ref={intersectionRef}>\n {values.map(({ relationTo, value }, i) => {\n const document = documents[relationTo][value]\n const relatedCollection = getEntityConfig({\n collectionSlug: relationTo,\n })\n\n const label = formatDocTitle({\n collectionConfig: relatedCollection,\n data: document || null,\n dateFormat: config.admin.dateFormat,\n fallback: `${t('general:untitled')} - ID: ${value}`,\n i18n,\n })\n\n let fileField = null\n\n if (field.type === 'upload') {\n const fieldPreviewAllowed = 'displayPreview' in field ? field.displayPreview : undefined\n const previewAllowed =\n fieldPreviewAllowed ?? relatedCollection.upload?.displayPreview ?? true\n\n if (previewAllowed && document) {\n fileField = (\n <FileCell\n cellData={label}\n collectionConfig={relatedCollection}\n collectionSlug={relatedCollection.slug}\n customCellProps={customCellContext}\n field={field}\n rowData={document}\n />\n )\n }\n }\n\n return (\n <React.Fragment key={i}>\n {document === false && `${t('general:untitled')} - ID: ${value}`}\n {document === null && `${t('general:loading')}...`}\n {document ? fileField || label : null}\n {values.length > i + 1 && ', '}\n </React.Fragment>\n )\n })}\n {Array.isArray(cellData) &&\n cellData.length > totalToShow &&\n t('fields:itemsAndMore', { count: cellData.length - totalToShow, items: '' })}\n {values.length === 0 && t('general:noLabel', { label: getTranslation(label || '', i18n) })}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ import { optionsAreObjects } from 'payload/shared';
7
7
  import React from 'react';
8
8
  import { useTranslation } from '../../../../../providers/Translation/index.js';
9
9
  export const SelectCell = t0 => {
10
- const $ = _c(7);
10
+ const $ = _c(10);
11
11
  const {
12
12
  cellData,
13
13
  field: t1
@@ -31,23 +31,38 @@ export const SelectCell = t0 => {
31
31
  t2 = $[2];
32
32
  }
33
33
  const findLabel = t2;
34
- let t3;
35
- if ($[3] !== cellData || $[4] !== findLabel || $[5] !== options) {
36
- let content;
37
- if (optionsAreObjects(options)) {
38
- content = Array.isArray(cellData) ? findLabel(cellData) : findLabel([cellData]);
34
+ let content;
35
+ if (optionsAreObjects(options)) {
36
+ let t3;
37
+ if ($[3] !== cellData || $[4] !== findLabel) {
38
+ t3 = Array.isArray(cellData) ? findLabel(cellData) : findLabel([cellData]);
39
+ $[3] = cellData;
40
+ $[4] = findLabel;
41
+ $[5] = t3;
42
+ } else {
43
+ t3 = $[5];
44
+ }
45
+ content = t3;
46
+ } else {
47
+ let t3;
48
+ if ($[6] !== cellData) {
49
+ t3 = Array.isArray(cellData) ? cellData.join(", ") : cellData;
50
+ $[6] = cellData;
51
+ $[7] = t3;
39
52
  } else {
40
- content = Array.isArray(cellData) ? cellData.join(", ") : cellData;
53
+ t3 = $[7];
41
54
  }
55
+ content = t3;
56
+ }
57
+ let t3;
58
+ if ($[8] !== content) {
42
59
  t3 = _jsx("span", {
43
60
  children: content
44
61
  });
45
- $[3] = cellData;
46
- $[4] = findLabel;
47
- $[5] = options;
48
- $[6] = t3;
62
+ $[8] = content;
63
+ $[9] = t3;
49
64
  } else {
50
- t3 = $[6];
65
+ t3 = $[9];
51
66
  }
52
67
  return t3;
53
68
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","optionsAreObjects","React","useTranslation","SelectCell","t0","$","cellData","field","t1","options","i18n","t2","items","map","i","found","filter","f","value","label","join","findLabel","t3","content","_jsx","children"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Select/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, OptionObject, SelectFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { optionsAreObjects } from 'payload/shared'\nimport React from 'react'\n\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\n\nexport interface SelectCellProps extends DefaultCellComponentProps<SelectFieldClient> {}\n\nexport const SelectCell: React.FC<SelectCellProps> = ({ cellData, field: { options } }) => {\n const { i18n } = useTranslation()\n\n const findLabel = (items: string[]) =>\n items\n .map((i) => {\n const found = (options as OptionObject[]).filter((f: OptionObject) => f.value === i)?.[0]\n ?.label\n return getTranslation(found, i18n)\n })\n .join(', ')\n\n let content = ''\n if (optionsAreObjects(options)) {\n content = Array.isArray(cellData)\n ? findLabel(cellData) // hasMany\n : findLabel([cellData])\n } else {\n content = Array.isArray(cellData)\n ? cellData.join(', ') // hasMany\n : cellData\n }\n\n return <span>{content}</span>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,OAAOC,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAI/B,OAAO,MAAMC,UAAA,GAAwCC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,QAAA;IAAAC,KAAA,EAAAC;EAAA,IAAAJ,EAAgC;EAAb;IAAAK;EAAA,IAAAD,EAAW;EAClF;IAAAE;EAAA,IAAiBR,cAAA;EAAA,IAAAS,EAAA;EAAA,IAAAN,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAI,OAAA;IAECE,EAAA,GAAAC,KAAA,IAChBA,KAAA,CAAAC,GAAA,CAAAC,CAAA;MAEI,MAAAC,KAAA,GAAcN,OAAC,CAAAO,MAAA,CAAAC,CAAA,IAAuDA,CAAA,CAAAC,KAAA,KAAYJ,CAAA,QAAAK,KAAA;MAC9E,OACGpB,cAAA,CAAegB,KAAA,EAAOL,IAAA;IAAA,CAC/B,EAAAU,IAAA,CACM;IAAAf,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAAI,OAAA;IAAAJ,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAPV,MAAAgB,SAAA,GAAkBV,EAOR;EAAA,IAAAW,EAAA;EAAA,IAAAjB,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAgB,SAAA,IAAAhB,CAAA,QAAAI,OAAA;IAEV,IAAAc,OAAA;IAAc,IACVvB,iBAAA,CAAkBS,OAAA;MACpBc,OAAA,CAAAA,CAAA,CAAUA,cAAcjB,QAAA,IACpBe,SAAA,CAAUf,QAAA,IACVe,SAAA,EAAWf,QAAA,CAAS;IAFxB;MAIAiB,OAAA,CAAAA,CAAA,CAAUA,cAAcjB,QAAA,IACpBA,QAAA,CAAAc,IAAA,CAAc,QACdd,QAAA;IAFJ;IAKKgB,EAAA,GAAAE,IAAA,CAAC;MAAAC,QAAA,EAAMF;IAAA,C;;;;;;;;SAAPD,E;CACT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","optionsAreObjects","React","useTranslation","SelectCell","t0","$","cellData","field","t1","options","i18n","t2","items","map","i","found","filter","f","value","label","join","findLabel","content","t3","Array","isArray","_jsx","children"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Select/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, OptionObject, SelectFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { optionsAreObjects } from 'payload/shared'\nimport React from 'react'\n\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\n\nexport interface SelectCellProps extends DefaultCellComponentProps<SelectFieldClient> {}\n\nexport const SelectCell: React.FC<SelectCellProps> = ({ cellData, field: { options } }) => {\n const { i18n } = useTranslation()\n\n const findLabel = (items: string[]) =>\n items\n .map((i) => {\n const found = (options as OptionObject[]).filter((f: OptionObject) => f.value === i)?.[0]\n ?.label\n return getTranslation(found, i18n)\n })\n .join(', ')\n\n let content = ''\n if (optionsAreObjects(options)) {\n content = Array.isArray(cellData)\n ? findLabel(cellData) // hasMany\n : findLabel([cellData])\n } else {\n content = Array.isArray(cellData)\n ? cellData.join(', ') // hasMany\n : cellData\n }\n\n return <span>{content}</span>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,OAAOC,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAI/B,OAAO,MAAMC,UAAA,GAAwCC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,QAAA;IAAAC,KAAA,EAAAC;EAAA,IAAAJ,EAAgC;EAAb;IAAAK;EAAA,IAAAD,EAAW;EAClF;IAAAE;EAAA,IAAiBR,cAAA;EAAA,IAAAS,EAAA;EAAA,IAAAN,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAI,OAAA;IAECE,EAAA,GAAAC,KAAA,IAChBA,KAAA,CAAAC,GAAA,CAAAC,CAAA;MAEI,MAAAC,KAAA,GAAcN,OAAC,CAAAO,MAAA,CAAAC,CAAA,IAAuDA,CAAA,CAAAC,KAAA,KAAYJ,CAAA,QAAAK,KAAA;MAC9E,OACGpB,cAAA,CAAegB,KAAA,EAAOL,IAAA;IAAA,CAC/B,EAAAU,IAAA,CACM;IAAAf,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAAI,OAAA;IAAAJ,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAPV,MAAAgB,SAAA,GAAkBV,EAOR;EAEV,IAAAW,OAAA;EAAc,IACVtB,iBAAA,CAAkBS,OAAA;IAAA,IAAAc,EAAA;IAAA,IAAAlB,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAgB,SAAA;MACVE,EAAA,GAAAC,KAAA,CAAAC,OAAA,CAAcnB,QAAA,IACpBe,SAAA,CAAUf,QAAA,IACVe,SAAA,EAAWf,QAAA,CAAS;MAAAD,CAAA,MAAAC,QAAA;MAAAD,CAAA,MAAAgB,SAAA;MAAAhB,CAAA,MAAAkB,EAAA;IAAA;MAAAA,EAAA,GAAAlB,CAAA;IAAA;IAFxBiB,OAAA,CAAAA,CAAA,CAAUA,EAEc;EAFxB;IAAA,IAAAC,EAAA;IAAA,IAAAlB,CAAA,QAAAC,QAAA;MAIUiB,EAAA,GAAAC,KAAA,CAAAC,OAAA,CAAcnB,QAAA,IACpBA,QAAA,CAAAc,IAAA,CAAc,QACdd,QAAA;MAAAD,CAAA,MAAAC,QAAA;MAAAD,CAAA,MAAAkB,EAAA;IAAA;MAAAA,EAAA,GAAAlB,CAAA;IAAA;IAFJiB,OAAA,CAAAA,CAAA,CAAUA,EAEN;EAFJ;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAiB,OAAA;IAKKC,EAAA,GAAAG,IAAA,CAAC;MAAAC,QAAA,EAAML;IAAA,C;;;;;;SAAPC,E;CACT","ignoreList":[]}