@payloadcms/ui 3.0.0-beta.77 → 3.0.0-beta.78

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 (33) hide show
  1. package/dist/elements/AppHeader/index.scss +5 -3
  2. package/dist/elements/Card/index.scss +3 -3
  3. package/dist/elements/Collapsible/index.scss +4 -1
  4. package/dist/elements/DeleteDocument/index.scss +1 -0
  5. package/dist/elements/DeleteMany/index.scss +1 -0
  6. package/dist/elements/DocumentControls/index.scss +18 -7
  7. package/dist/elements/DuplicateDocument/index.scss +1 -0
  8. package/dist/elements/EditMany/index.scss +4 -10
  9. package/dist/elements/GenerateConfirmation/index.scss +1 -0
  10. package/dist/elements/ListControls/index.scss +14 -5
  11. package/dist/elements/ListDrawer/index.scss +4 -4
  12. package/dist/elements/Localizer/LocalizerLabel/index.d.ts.map +1 -1
  13. package/dist/elements/Localizer/LocalizerLabel/index.js +5 -4
  14. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  15. package/dist/elements/Localizer/LocalizerLabel/index.scss +6 -0
  16. package/dist/elements/PublishMany/index.scss +1 -0
  17. package/dist/elements/Status/index.scss +1 -0
  18. package/dist/elements/StayLoggedIn/index.scss +1 -0
  19. package/dist/elements/StepNav/index.scss +1 -1
  20. package/dist/elements/Table/DefaultCell/fields/Array/index.js +1 -1
  21. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  22. package/dist/elements/UnpublishMany/index.scss +1 -0
  23. package/dist/exports/client/index.js +7 -7
  24. package/dist/exports/client/index.js.map +3 -3
  25. package/dist/fields/Blocks/SectionTitle/index.scss +12 -2
  26. package/dist/fields/Blocks/index.scss +1 -0
  27. package/dist/providers/DocumentInfo/index.js +15 -15
  28. package/dist/providers/DocumentInfo/index.js.map +1 -1
  29. package/dist/scss/app.scss +4 -4
  30. package/dist/scss/type.scss +1 -0
  31. package/dist/scss/vars.scss +1 -1
  32. package/dist/styles.css +1 -1
  33. package/package.json +5 -5
@@ -2,15 +2,20 @@
2
2
 
3
3
  .section-title {
4
4
  position: relative;
5
- min-width: 0;
5
+ width: 100%;
6
+ max-width: 100%;
6
7
  pointer-events: all;
8
+ display: flex;
9
+ overflow: hidden;
7
10
 
8
11
  &:after {
9
12
  display: block;
10
13
  content: attr(data-value) ' ';
11
14
  visibility: hidden;
12
15
  white-space: nowrap;
13
- min-width: base(2.5);
16
+ overflow: hidden;
17
+ text-overflow: ellipsis;
18
+ max-width: 100%;
14
19
  }
15
20
 
16
21
  &:after,
@@ -19,13 +24,18 @@
19
24
  font-weight: 600;
20
25
  font-size: base(0.625);
21
26
  padding: 0;
27
+ width: 100%;
22
28
  }
23
29
 
24
30
  &__input {
25
31
  color: var(--theme-elevation-800);
26
32
  background-color: transparent;
27
33
  border: none;
34
+ min-width: min-content;
28
35
  width: 100%;
36
+ max-width: 100%;
37
+ overflow: hidden;
38
+ white-space: nowrap;
29
39
  text-overflow: ellipsis;
30
40
  resize: none;
31
41
  appearance: none;
@@ -61,6 +61,7 @@
61
61
  &__block-header {
62
62
  display: inline-flex;
63
63
  max-width: 100%;
64
+ width: 100%;
64
65
  overflow: hidden;
65
66
  gap: base(0.375);
66
67
  }
@@ -210,22 +210,24 @@ const DocumentInfo = ({ children, ...props })=>{
210
210
  const docAccessURL = collectionSlug ? `/${collectionSlug}/access/${idToUse}` : globalSlug ? `/globals/${globalSlug}/access` : null;
211
211
  if (docAccessURL) {
212
212
  const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {
213
+ body: JSON.stringify(data),
213
214
  credentials: 'include',
214
215
  headers: {
215
- 'Accept-Language': i18n.language
216
- }
216
+ 'Accept-Language': i18n.language,
217
+ 'Content-Type': 'application/json'
218
+ },
219
+ method: 'post'
217
220
  });
218
221
  const json = await res.json();
219
222
  const publishedAccessJSON = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {
220
223
  body: JSON.stringify({
221
- data: {
222
- ...data || {},
223
- _status: 'published'
224
- }
224
+ ...data || {},
225
+ _status: 'published'
225
226
  }),
226
227
  credentials: 'include',
227
228
  headers: {
228
- 'Accept-Language': i18n.language
229
+ 'Accept-Language': i18n.language,
230
+ 'Content-Type': 'application/json'
229
231
  },
230
232
  method: 'POST'
231
233
  }).then((res)=>res.json());
@@ -348,7 +350,9 @@ const DocumentInfo = ({ children, ...props })=>{
348
350
  serverURL,
349
351
  signal: abortController.signal
350
352
  });
351
- setData(reduceFieldsToValues(result, true));
353
+ const data = reduceFieldsToValues(result, true);
354
+ setData(data);
355
+ if (localeChanged) void getDocPermissions(data);
352
356
  setInitialState(result);
353
357
  } catch (err) {
354
358
  if (!abortController.signal.aborted) {
@@ -380,7 +384,8 @@ const DocumentInfo = ({ children, ...props })=>{
380
384
  locale,
381
385
  onLoadError,
382
386
  initialDataFromProps,
383
- initialStateFromProps
387
+ initialStateFromProps,
388
+ getDocPermissions
384
389
  ]);
385
390
  useEffect(()=>{
386
391
  void getVersions();
@@ -408,12 +413,8 @@ const DocumentInfo = ({ children, ...props })=>{
408
413
  globalConfig
409
414
  ]);
410
415
  useEffect(()=>{
411
- const localeChanged = locale !== prevLocalePermissions.current;
412
416
  if (data && (collectionSlug || globalSlug)) {
413
- if (localeChanged) {
414
- prevLocalePermissions.current = locale;
415
- void getDocPermissions(data);
416
- } else if (hasInitializedDocPermissions.current === false && (!docPermissions || hasSavePermission === undefined || hasSavePermission === null || hasPublishPermission === undefined || hasPublishPermission === null)) {
417
+ if (hasInitializedDocPermissions.current === false && (!docPermissions || hasSavePermission === undefined || hasSavePermission === null || hasPublishPermission === undefined || hasPublishPermission === null)) {
417
418
  hasInitializedDocPermissions.current = true;
418
419
  void getDocPermissions(data);
419
420
  }
@@ -427,7 +428,6 @@ const DocumentInfo = ({ children, ...props })=>{
427
428
  collectionSlug,
428
429
  globalSlug,
429
430
  data,
430
- locale,
431
431
  docPermissions,
432
432
  hasSavePermission,
433
433
  hasPublishPermission
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/DocumentInfo/index.tsx"],"sourcesContent":["'use client'\nimport type {\n Data,\n DocumentPermissions,\n DocumentPreferences,\n FormState,\n PaginatedDocs,\n TypeWithID,\n TypeWithTimestamps,\n TypeWithVersion,\n Where,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentInfoContext, DocumentInfoProps } from './types.js'\n\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { hasSavePermission as getHasSavePermission } from '../../utilities/hasSavePermission.js'\nimport { isEditing as getIsEditing } from '../../utilities/isEditing.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { UploadEditsProvider, useUploadEdits } from '../UploadEdits/index.js'\n\nconst Context = createContext({} as DocumentInfoContext)\n\nexport type * from './types.js'\n\nexport const useDocumentInfo = (): DocumentInfoContext => useContext(Context)\n\nconst DocumentInfo: React.FC<\n {\n children: React.ReactNode\n } & DocumentInfoProps\n> = ({ children, ...props }) => {\n const {\n id,\n collectionSlug,\n docPermissions: docPermissionsFromProps,\n globalSlug,\n hasPublishPermission: hasPublishPermissionFromProps,\n hasSavePermission: hasSavePermissionFromProps,\n initialData: initialDataFromProps,\n initialState: initialStateFromProps,\n onLoadError,\n onSave: onSaveFromProps,\n } = props\n\n const {\n admin: { dateFormat },\n collections,\n globals,\n routes: { api },\n serverURL,\n } = useConfig()\n\n const collectionConfig = collections.find((c) => c.slug === collectionSlug)\n const globalConfig = globals.find((g) => g.slug === globalSlug)\n const docConfig = collectionConfig || globalConfig\n\n const { i18n } = useTranslation()\n\n const { uploadEdits } = useUploadEdits()\n\n const [documentTitle, setDocumentTitle] = useState(() => {\n if (!initialDataFromProps) return ''\n\n return formatDocTitle({\n collectionConfig,\n data: { ...initialDataFromProps, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n })\n })\n\n const [isLoading, setIsLoading] = useState(false)\n const [isError, setIsError] = useState(false)\n const [data, setData] = useState<Data>(initialDataFromProps)\n const [initialState, setInitialState] = useState<FormState>(initialStateFromProps)\n const [publishedDoc, setPublishedDoc] = useState<TypeWithID & TypeWithTimestamps>(null)\n const [versions, setVersions] = useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n const [docPermissions, setDocPermissions] = useState<DocumentPermissions>(docPermissionsFromProps)\n const [hasSavePermission, setHasSavePermission] = useState<boolean>(hasSavePermissionFromProps)\n const [hasPublishPermission, setHasPublishPermission] = useState<boolean>(\n hasPublishPermissionFromProps,\n )\n const isInitializing = initialState === undefined || data === undefined\n const [unpublishedVersions, setUnpublishedVersions] =\n useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n\n const { getPreference, setPreference } = usePreferences()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const prevLocale = useRef(locale)\n const hasInitializedDocPermissions = useRef(false)\n // Separate locale cache used for handling permissions\n const prevLocalePermissions = useRef(locale)\n\n const versionsConfig = docConfig?.versions\n\n const baseURL = `${serverURL}${api}`\n let slug: string\n let pluralType: 'collections' | 'globals'\n let preferencesKey: string\n\n if (globalSlug) {\n slug = globalSlug\n pluralType = 'globals'\n preferencesKey = `global-${slug}`\n }\n\n if (collectionSlug) {\n slug = collectionSlug\n pluralType = 'collections'\n\n if (id) {\n preferencesKey = `collection-${slug}-${id}`\n }\n }\n\n const isEditing = getIsEditing({ id, collectionSlug, globalSlug })\n const operation = isEditing ? 'update' : 'create'\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions?.permission)\n\n const getVersions = useCallback(async () => {\n let versionFetchURL\n let publishedFetchURL\n let unpublishedVersionJSON = null\n let versionJSON = null\n let shouldFetch = true\n\n const versionParams = {\n depth: 0,\n where: {\n and: [],\n },\n }\n\n const publishedVersionParams: { depth: number; locale: string; where: Where } = {\n depth: 0,\n locale: locale || undefined,\n where: {\n and: [\n {\n or: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n _status: {\n exists: false,\n },\n },\n ],\n },\n ],\n },\n }\n\n if (globalSlug) {\n versionFetchURL = `${baseURL}/globals/${globalSlug}/versions`\n publishedFetchURL = `${baseURL}/globals/${globalSlug}?${qs.stringify(publishedVersionParams)}`\n }\n\n if (collectionSlug) {\n versionFetchURL = `${baseURL}/${collectionSlug}/versions`\n\n publishedVersionParams.where.and.push({\n id: {\n equals: id,\n },\n })\n\n publishedFetchURL = `${baseURL}/${collectionSlug}?${qs.stringify(publishedVersionParams)}`\n\n if (!id) {\n shouldFetch = false\n }\n\n versionParams.where.and.push({\n parent: {\n equals: id,\n },\n })\n }\n\n if (shouldFetch) {\n let publishedJSON\n\n if (versionsConfig?.drafts) {\n publishedJSON = await fetch(publishedFetchURL, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (collectionSlug) {\n publishedJSON = publishedJSON?.docs?.[0]\n }\n }\n\n if (shouldFetchVersions) {\n versionJSON = await fetch(`${versionFetchURL}?${qs.stringify(versionParams)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (publishedJSON?.updatedAt) {\n const newerVersionParams = {\n ...versionParams,\n where: {\n ...versionParams.where,\n and: [\n ...versionParams.where.and,\n {\n updatedAt: {\n greater_than: publishedJSON?.updatedAt,\n },\n },\n ],\n },\n }\n\n // Get any newer versions available\n const newerVersionRes = await fetch(\n `${versionFetchURL}?${qs.stringify(newerVersionParams)}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (newerVersionRes.status === 200) {\n unpublishedVersionJSON = await newerVersionRes.json()\n }\n }\n }\n\n setPublishedDoc(publishedJSON)\n setVersions(versionJSON)\n setUnpublishedVersions(unpublishedVersionJSON)\n }\n }, [i18n, globalSlug, collectionSlug, id, baseURL, locale, versionsConfig, shouldFetchVersions])\n\n const getDocPermissions = React.useCallback(\n async (data: Data) => {\n const params = {\n locale: locale || undefined,\n }\n\n const idToUse = data?.id || id\n const newIsEditing = getIsEditing({ id: idToUse, collectionSlug, globalSlug })\n\n if (newIsEditing) {\n const docAccessURL = collectionSlug\n ? `/${collectionSlug}/access/${idToUse}`\n : globalSlug\n ? `/globals/${globalSlug}/access`\n : null\n\n if (docAccessURL) {\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n const json: DocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n data: {\n ...(data || {}),\n _status: 'published',\n },\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update?.permission)\n }\n } else {\n // when creating new documents, there is no permissions saved for this document yet\n // use the generic entity permissions instead\n const newDocPermissions = collectionSlug\n ? permissions?.collections?.[collectionSlug]\n : permissions?.globals?.[globalSlug]\n\n setDocPermissions(newDocPermissions)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: newDocPermissions,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n }\n },\n [serverURL, api, id, permissions, i18n.language, locale, collectionSlug, globalSlug],\n )\n\n const getDocPreferences = useCallback(() => {\n return getPreference<DocumentPreferences>(preferencesKey)\n }, [getPreference, preferencesKey])\n\n const setDocFieldPreferences = useCallback<DocumentInfoContext['setDocFieldPreferences']>(\n async (path, fieldPreferences) => {\n const allPreferences = await getDocPreferences()\n\n if (preferencesKey) {\n try {\n await setPreference(preferencesKey, {\n ...allPreferences,\n fields: {\n ...(allPreferences?.fields || {}),\n [path]: {\n ...allPreferences?.fields?.[path],\n ...fieldPreferences,\n },\n },\n })\n } catch (e) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n },\n [setPreference, preferencesKey, getDocPreferences],\n )\n\n const onSave = React.useCallback<DocumentInfoContext['onSave']>(\n async (json) => {\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps(json)\n }\n\n const docPreferences = await getDocPreferences()\n\n const newData = collectionSlug ? json.doc : json.result\n\n const newState = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n data: newData,\n docPreferences,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n serverURL,\n })\n\n setInitialState(newState)\n setData(newData)\n await getDocPermissions(newData)\n },\n [\n api,\n collectionSlug,\n getDocPreferences,\n globalSlug,\n id,\n operation,\n locale,\n onSaveFromProps,\n serverURL,\n getDocPermissions,\n ],\n )\n\n useEffect(() => {\n const abortController = new AbortController()\n const localeChanged = locale !== prevLocale.current\n\n if (\n initialStateFromProps === undefined ||\n initialDataFromProps === undefined ||\n localeChanged\n ) {\n if (localeChanged) prevLocale.current = locale\n\n const getInitialState = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const result = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n onError: onLoadError,\n serverURL,\n signal: abortController.signal,\n })\n\n setData(reduceFieldsToValues(result, true))\n setInitialState(result)\n } catch (err) {\n if (!abortController.signal.aborted) {\n if (typeof onLoadError === 'function') {\n void onLoadError()\n }\n setIsError(true)\n setIsLoading(false)\n }\n }\n setIsLoading(false)\n }\n\n void getInitialState()\n }\n\n return () => {\n try {\n abortController.abort()\n } catch (error) {\n // swallow error\n }\n }\n }, [\n api,\n operation,\n collectionSlug,\n serverURL,\n id,\n globalSlug,\n locale,\n onLoadError,\n initialDataFromProps,\n initialStateFromProps,\n ])\n\n useEffect(() => {\n void getVersions()\n }, [getVersions])\n\n useEffect(() => {\n setDocumentTitle(\n formatDocTitle({\n collectionConfig,\n data: { ...data, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n }, [collectionConfig, data, dateFormat, i18n, id, globalConfig])\n\n useEffect(() => {\n const localeChanged = locale !== prevLocalePermissions.current\n\n if (data && (collectionSlug || globalSlug)) {\n if (localeChanged) {\n prevLocalePermissions.current = locale\n void getDocPermissions(data)\n } else if (\n hasInitializedDocPermissions.current === false &&\n (!docPermissions ||\n hasSavePermission === undefined ||\n hasSavePermission === null ||\n hasPublishPermission === undefined ||\n hasPublishPermission === null)\n ) {\n hasInitializedDocPermissions.current = true\n void getDocPermissions(data)\n }\n }\n }, [\n getDocPermissions,\n docPermissionsFromProps,\n hasSavePermissionFromProps,\n hasPublishPermissionFromProps,\n setDocPermissions,\n collectionSlug,\n globalSlug,\n data,\n locale,\n docPermissions,\n hasSavePermission,\n hasPublishPermission,\n ])\n\n const action: string = React.useMemo(() => {\n const docURL = `${baseURL}${pluralType === 'globals' ? `/globals` : ''}/${slug}${id ? `/${id}` : ''}`\n const params = {\n depth: 0,\n 'fallback-locale': 'null',\n locale,\n uploadEdits: uploadEdits || undefined,\n }\n\n return `${docURL}${qs.stringify(params, {\n addQueryPrefix: true,\n })}`\n }, [baseURL, locale, pluralType, id, slug, uploadEdits])\n\n if (isError) notFound()\n\n const value: DocumentInfoContext = {\n ...props,\n action,\n docConfig,\n docPermissions,\n getDocPermissions,\n getDocPreferences,\n getVersions,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isInitializing,\n isLoading,\n onSave,\n publishedDoc,\n setDocFieldPreferences,\n setDocumentTitle,\n title: documentTitle,\n unpublishedVersions,\n versions,\n }\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n}\n\nexport const DocumentInfoProvider: React.FC<\n {\n children: React.ReactNode\n } & DocumentInfoProps\n> = (props) => {\n return (\n <UploadEditsProvider>\n <DocumentInfo {...props} />\n </UploadEditsProvider>\n )\n}\n"],"names":["notFound","reduceFieldsToValues","qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","formatDocTitle","getFormState","hasSavePermission","getHasSavePermission","isEditing","getIsEditing","useAuth","useConfig","useLocale","usePreferences","useTranslation","UploadEditsProvider","useUploadEdits","Context","useDocumentInfo","DocumentInfo","children","props","id","collectionSlug","docPermissions","docPermissionsFromProps","globalSlug","hasPublishPermission","hasPublishPermissionFromProps","hasSavePermissionFromProps","initialData","initialDataFromProps","initialState","initialStateFromProps","onLoadError","onSave","onSaveFromProps","admin","dateFormat","collections","globals","routes","api","serverURL","collectionConfig","find","c","slug","globalConfig","g","docConfig","i18n","uploadEdits","documentTitle","setDocumentTitle","data","fallback","toString","isLoading","setIsLoading","isError","setIsError","setData","setInitialState","publishedDoc","setPublishedDoc","versions","setVersions","setDocPermissions","setHasSavePermission","setHasPublishPermission","isInitializing","undefined","unpublishedVersions","setUnpublishedVersions","getPreference","setPreference","permissions","code","locale","prevLocale","hasInitializedDocPermissions","prevLocalePermissions","versionsConfig","baseURL","pluralType","preferencesKey","operation","shouldFetchVersions","Boolean","readVersions","permission","getVersions","versionFetchURL","publishedFetchURL","unpublishedVersionJSON","versionJSON","shouldFetch","versionParams","depth","where","and","publishedVersionParams","or","_status","equals","exists","stringify","push","parent","publishedJSON","drafts","fetch","credentials","headers","language","then","res","json","docs","updatedAt","newerVersionParams","greater_than","newerVersionRes","status","getDocPermissions","params","idToUse","newIsEditing","docAccessURL","publishedAccessJSON","body","JSON","method","update","newDocPermissions","getDocPreferences","setDocFieldPreferences","path","fieldPreferences","allPreferences","fields","e","console","error","docPreferences","newData","doc","result","newState","apiRoute","schemaPath","abortController","AbortController","localeChanged","current","getInitialState","onError","signal","err","aborted","abort","action","useMemo","docURL","addQueryPrefix","value","title","Provider","DocumentInfoProvider"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/providers/DocumentInfo/index.tsx"],"sourcesContent":["'use client'\nimport type {\n Data,\n DocumentPermissions,\n DocumentPreferences,\n FormState,\n PaginatedDocs,\n TypeWithID,\n TypeWithTimestamps,\n TypeWithVersion,\n Where,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentInfoContext, DocumentInfoProps } from './types.js'\n\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { hasSavePermission as getHasSavePermission } from '../../utilities/hasSavePermission.js'\nimport { isEditing as getIsEditing } from '../../utilities/isEditing.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { UploadEditsProvider, useUploadEdits } from '../UploadEdits/index.js'\n\nconst Context = createContext({} as DocumentInfoContext)\n\nexport type * from './types.js'\n\nexport const useDocumentInfo = (): DocumentInfoContext => useContext(Context)\n\nconst DocumentInfo: React.FC<\n {\n children: React.ReactNode\n } & DocumentInfoProps\n> = ({ children, ...props }) => {\n const {\n id,\n collectionSlug,\n docPermissions: docPermissionsFromProps,\n globalSlug,\n hasPublishPermission: hasPublishPermissionFromProps,\n hasSavePermission: hasSavePermissionFromProps,\n initialData: initialDataFromProps,\n initialState: initialStateFromProps,\n onLoadError,\n onSave: onSaveFromProps,\n } = props\n\n const {\n admin: { dateFormat },\n collections,\n globals,\n routes: { api },\n serverURL,\n } = useConfig()\n\n const collectionConfig = collections.find((c) => c.slug === collectionSlug)\n const globalConfig = globals.find((g) => g.slug === globalSlug)\n const docConfig = collectionConfig || globalConfig\n\n const { i18n } = useTranslation()\n\n const { uploadEdits } = useUploadEdits()\n\n const [documentTitle, setDocumentTitle] = useState(() => {\n if (!initialDataFromProps) return ''\n\n return formatDocTitle({\n collectionConfig,\n data: { ...initialDataFromProps, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n })\n })\n\n const [isLoading, setIsLoading] = useState(false)\n const [isError, setIsError] = useState(false)\n const [data, setData] = useState<Data>(initialDataFromProps)\n const [initialState, setInitialState] = useState<FormState>(initialStateFromProps)\n const [publishedDoc, setPublishedDoc] = useState<TypeWithID & TypeWithTimestamps>(null)\n const [versions, setVersions] = useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n const [docPermissions, setDocPermissions] = useState<DocumentPermissions>(docPermissionsFromProps)\n const [hasSavePermission, setHasSavePermission] = useState<boolean>(hasSavePermissionFromProps)\n const [hasPublishPermission, setHasPublishPermission] = useState<boolean>(\n hasPublishPermissionFromProps,\n )\n const isInitializing = initialState === undefined || data === undefined\n const [unpublishedVersions, setUnpublishedVersions] =\n useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n\n const { getPreference, setPreference } = usePreferences()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const prevLocale = useRef(locale)\n const hasInitializedDocPermissions = useRef(false)\n // Separate locale cache used for handling permissions\n const prevLocalePermissions = useRef(locale)\n\n const versionsConfig = docConfig?.versions\n\n const baseURL = `${serverURL}${api}`\n let slug: string\n let pluralType: 'collections' | 'globals'\n let preferencesKey: string\n\n if (globalSlug) {\n slug = globalSlug\n pluralType = 'globals'\n preferencesKey = `global-${slug}`\n }\n\n if (collectionSlug) {\n slug = collectionSlug\n pluralType = 'collections'\n\n if (id) {\n preferencesKey = `collection-${slug}-${id}`\n }\n }\n\n const isEditing = getIsEditing({ id, collectionSlug, globalSlug })\n const operation = isEditing ? 'update' : 'create'\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions?.permission)\n\n const getVersions = useCallback(async () => {\n let versionFetchURL\n let publishedFetchURL\n let unpublishedVersionJSON = null\n let versionJSON = null\n let shouldFetch = true\n\n const versionParams = {\n depth: 0,\n where: {\n and: [],\n },\n }\n\n const publishedVersionParams: { depth: number; locale: string; where: Where } = {\n depth: 0,\n locale: locale || undefined,\n where: {\n and: [\n {\n or: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n _status: {\n exists: false,\n },\n },\n ],\n },\n ],\n },\n }\n\n if (globalSlug) {\n versionFetchURL = `${baseURL}/globals/${globalSlug}/versions`\n publishedFetchURL = `${baseURL}/globals/${globalSlug}?${qs.stringify(publishedVersionParams)}`\n }\n\n if (collectionSlug) {\n versionFetchURL = `${baseURL}/${collectionSlug}/versions`\n\n publishedVersionParams.where.and.push({\n id: {\n equals: id,\n },\n })\n\n publishedFetchURL = `${baseURL}/${collectionSlug}?${qs.stringify(publishedVersionParams)}`\n\n if (!id) {\n shouldFetch = false\n }\n\n versionParams.where.and.push({\n parent: {\n equals: id,\n },\n })\n }\n\n if (shouldFetch) {\n let publishedJSON\n\n if (versionsConfig?.drafts) {\n publishedJSON = await fetch(publishedFetchURL, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (collectionSlug) {\n publishedJSON = publishedJSON?.docs?.[0]\n }\n }\n\n if (shouldFetchVersions) {\n versionJSON = await fetch(`${versionFetchURL}?${qs.stringify(versionParams)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (publishedJSON?.updatedAt) {\n const newerVersionParams = {\n ...versionParams,\n where: {\n ...versionParams.where,\n and: [\n ...versionParams.where.and,\n {\n updatedAt: {\n greater_than: publishedJSON?.updatedAt,\n },\n },\n ],\n },\n }\n\n // Get any newer versions available\n const newerVersionRes = await fetch(\n `${versionFetchURL}?${qs.stringify(newerVersionParams)}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (newerVersionRes.status === 200) {\n unpublishedVersionJSON = await newerVersionRes.json()\n }\n }\n }\n\n setPublishedDoc(publishedJSON)\n setVersions(versionJSON)\n setUnpublishedVersions(unpublishedVersionJSON)\n }\n }, [i18n, globalSlug, collectionSlug, id, baseURL, locale, versionsConfig, shouldFetchVersions])\n\n const getDocPermissions = React.useCallback(\n async (data: Data) => {\n const params = {\n locale: locale || undefined,\n }\n\n const idToUse = data?.id || id\n const newIsEditing = getIsEditing({ id: idToUse, collectionSlug, globalSlug })\n\n if (newIsEditing) {\n const docAccessURL = collectionSlug\n ? `/${collectionSlug}/access/${idToUse}`\n : globalSlug\n ? `/globals/${globalSlug}/access`\n : null\n\n if (docAccessURL) {\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n body: JSON.stringify(data),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: DocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n ...(data || {}),\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update?.permission)\n }\n } else {\n // when creating new documents, there is no permissions saved for this document yet\n // use the generic entity permissions instead\n const newDocPermissions = collectionSlug\n ? permissions?.collections?.[collectionSlug]\n : permissions?.globals?.[globalSlug]\n\n setDocPermissions(newDocPermissions)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: newDocPermissions,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n }\n },\n [serverURL, api, id, permissions, i18n.language, locale, collectionSlug, globalSlug],\n )\n\n const getDocPreferences = useCallback(() => {\n return getPreference<DocumentPreferences>(preferencesKey)\n }, [getPreference, preferencesKey])\n\n const setDocFieldPreferences = useCallback<DocumentInfoContext['setDocFieldPreferences']>(\n async (path, fieldPreferences) => {\n const allPreferences = await getDocPreferences()\n\n if (preferencesKey) {\n try {\n await setPreference(preferencesKey, {\n ...allPreferences,\n fields: {\n ...(allPreferences?.fields || {}),\n [path]: {\n ...allPreferences?.fields?.[path],\n ...fieldPreferences,\n },\n },\n })\n } catch (e) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n },\n [setPreference, preferencesKey, getDocPreferences],\n )\n\n const onSave = React.useCallback<DocumentInfoContext['onSave']>(\n async (json) => {\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps(json)\n }\n\n const docPreferences = await getDocPreferences()\n\n const newData = collectionSlug ? json.doc : json.result\n\n const newState = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n data: newData,\n docPreferences,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n serverURL,\n })\n\n setInitialState(newState)\n setData(newData)\n await getDocPermissions(newData)\n },\n [\n api,\n collectionSlug,\n getDocPreferences,\n globalSlug,\n id,\n operation,\n locale,\n onSaveFromProps,\n serverURL,\n getDocPermissions,\n ],\n )\n\n useEffect(() => {\n const abortController = new AbortController()\n const localeChanged = locale !== prevLocale.current\n\n if (\n initialStateFromProps === undefined ||\n initialDataFromProps === undefined ||\n localeChanged\n ) {\n if (localeChanged) prevLocale.current = locale\n\n const getInitialState = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const result = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n onError: onLoadError,\n serverURL,\n signal: abortController.signal,\n })\n const data = reduceFieldsToValues(result, true)\n setData(data)\n\n if (localeChanged) void getDocPermissions(data)\n\n setInitialState(result)\n } catch (err) {\n if (!abortController.signal.aborted) {\n if (typeof onLoadError === 'function') {\n void onLoadError()\n }\n setIsError(true)\n setIsLoading(false)\n }\n }\n setIsLoading(false)\n }\n\n void getInitialState()\n }\n\n return () => {\n try {\n abortController.abort()\n } catch (error) {\n // swallow error\n }\n }\n }, [\n api,\n operation,\n collectionSlug,\n serverURL,\n id,\n globalSlug,\n locale,\n onLoadError,\n initialDataFromProps,\n initialStateFromProps,\n getDocPermissions,\n ])\n\n useEffect(() => {\n void getVersions()\n }, [getVersions])\n\n useEffect(() => {\n setDocumentTitle(\n formatDocTitle({\n collectionConfig,\n data: { ...data, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n }, [collectionConfig, data, dateFormat, i18n, id, globalConfig])\n\n useEffect(() => {\n if (data && (collectionSlug || globalSlug)) {\n if (\n hasInitializedDocPermissions.current === false &&\n (!docPermissions ||\n hasSavePermission === undefined ||\n hasSavePermission === null ||\n hasPublishPermission === undefined ||\n hasPublishPermission === null)\n ) {\n hasInitializedDocPermissions.current = true\n void getDocPermissions(data)\n }\n }\n }, [\n getDocPermissions,\n docPermissionsFromProps,\n hasSavePermissionFromProps,\n hasPublishPermissionFromProps,\n setDocPermissions,\n collectionSlug,\n globalSlug,\n data,\n docPermissions,\n hasSavePermission,\n hasPublishPermission,\n ])\n\n const action: string = React.useMemo(() => {\n const docURL = `${baseURL}${pluralType === 'globals' ? `/globals` : ''}/${slug}${id ? `/${id}` : ''}`\n const params = {\n depth: 0,\n 'fallback-locale': 'null',\n locale,\n uploadEdits: uploadEdits || undefined,\n }\n\n return `${docURL}${qs.stringify(params, {\n addQueryPrefix: true,\n })}`\n }, [baseURL, locale, pluralType, id, slug, uploadEdits])\n\n if (isError) notFound()\n\n const value: DocumentInfoContext = {\n ...props,\n action,\n docConfig,\n docPermissions,\n getDocPermissions,\n getDocPreferences,\n getVersions,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isInitializing,\n isLoading,\n onSave,\n publishedDoc,\n setDocFieldPreferences,\n setDocumentTitle,\n title: documentTitle,\n unpublishedVersions,\n versions,\n }\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n}\n\nexport const DocumentInfoProvider: React.FC<\n {\n children: React.ReactNode\n } & DocumentInfoProps\n> = (props) => {\n return (\n <UploadEditsProvider>\n <DocumentInfo {...props} />\n </UploadEditsProvider>\n )\n}\n"],"names":["notFound","reduceFieldsToValues","qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","formatDocTitle","getFormState","hasSavePermission","getHasSavePermission","isEditing","getIsEditing","useAuth","useConfig","useLocale","usePreferences","useTranslation","UploadEditsProvider","useUploadEdits","Context","useDocumentInfo","DocumentInfo","children","props","id","collectionSlug","docPermissions","docPermissionsFromProps","globalSlug","hasPublishPermission","hasPublishPermissionFromProps","hasSavePermissionFromProps","initialData","initialDataFromProps","initialState","initialStateFromProps","onLoadError","onSave","onSaveFromProps","admin","dateFormat","collections","globals","routes","api","serverURL","collectionConfig","find","c","slug","globalConfig","g","docConfig","i18n","uploadEdits","documentTitle","setDocumentTitle","data","fallback","toString","isLoading","setIsLoading","isError","setIsError","setData","setInitialState","publishedDoc","setPublishedDoc","versions","setVersions","setDocPermissions","setHasSavePermission","setHasPublishPermission","isInitializing","undefined","unpublishedVersions","setUnpublishedVersions","getPreference","setPreference","permissions","code","locale","prevLocale","hasInitializedDocPermissions","prevLocalePermissions","versionsConfig","baseURL","pluralType","preferencesKey","operation","shouldFetchVersions","Boolean","readVersions","permission","getVersions","versionFetchURL","publishedFetchURL","unpublishedVersionJSON","versionJSON","shouldFetch","versionParams","depth","where","and","publishedVersionParams","or","_status","equals","exists","stringify","push","parent","publishedJSON","drafts","fetch","credentials","headers","language","then","res","json","docs","updatedAt","newerVersionParams","greater_than","newerVersionRes","status","getDocPermissions","params","idToUse","newIsEditing","docAccessURL","body","JSON","method","publishedAccessJSON","update","newDocPermissions","getDocPreferences","setDocFieldPreferences","path","fieldPreferences","allPreferences","fields","e","console","error","docPreferences","newData","doc","result","newState","apiRoute","schemaPath","abortController","AbortController","localeChanged","current","getInitialState","onError","signal","err","aborted","abort","action","useMemo","docURL","addQueryPrefix","value","title","Provider","DocumentInfoProvider"],"mappings":"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"}
@@ -38,19 +38,19 @@
38
38
 
39
39
  --gutter-h: #{base(3)};
40
40
  --spacing-view-bottom: var(--gutter-h);
41
- --app-header-height: calc(var(--base) * 3);
42
- --doc-controls-height: calc(var(--base) * 3);
41
+ --doc-controls-height: calc(var(--base) * 2.8);
42
+ --app-header-height: calc(var(--base) * 2.8);
43
43
  --nav-width: 275px;
44
44
  --nav-trans-time: 150ms;
45
45
 
46
46
  @include mid-break {
47
47
  --gutter-h: #{base(2)};
48
- --app-header-height: calc(var(--base) * 2);
48
+ --app-header-height: calc(var(--base) * 2.8);
49
49
  --doc-controls-height: calc(var(--base) * 2.5);
50
50
  }
51
51
 
52
52
  @include small-break {
53
- --gutter-h: #{base(0.5)};
53
+ --gutter-h: #{base(0.8)};
54
54
  --spacing-view-bottom: calc(var(--base) * 2);
55
55
  --nav-width: 100vw;
56
56
  }
@@ -96,6 +96,7 @@
96
96
  font-size: $baseline-body-size;
97
97
  line-height: $baseline-px;
98
98
  font-weight: normal;
99
+ font-family: var(--font-body);
99
100
  }
100
101
 
101
102
  %code {
@@ -18,7 +18,7 @@ $baseline-body-size: 13px !default;
18
18
  $baseline: math.div($baseline-px, $baseline-body-size) + rem;
19
19
 
20
20
  @function base($multiplier) {
21
- @return (math.div($baseline-px, $baseline-body-size) * $multiplier) + rem;
21
+ @return ($baseline-px * $multiplier);
22
22
  }
23
23
 
24
24
  //////////////////////////////