@payloadcms/ui 3.65.0-canary.6 → 3.65.0-canary.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAIvD,OAAO,KAA2C,MAAM,OAAO,CAAA;AAe/D,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,wBAAwB,qBAwP3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAIvD,OAAO,KAA2C,MAAM,OAAO,CAAA;AAe/D,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,wBAAwB,qBA2P3E"}
@@ -84,7 +84,7 @@ export function PublishButton({
84
84
  const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields);
85
85
  setHasLocalizedFields(hasLocalizedField);
86
86
  }, [entityConfig?.fields]);
87
- const canPublishSpecificLocale = localization && hasLocalizedFields && hasPublishPermission;
87
+ const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission;
88
88
  const operation = useOperation();
89
89
  const disabled = operation === 'update' && !modified;
90
90
  const saveDraft = useCallback(async () => {
@@ -157,17 +157,10 @@ export function PublishButton({
157
157
  setHasPublishedDoc(true);
158
158
  }
159
159
  }, [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus]);
160
- const publishAll = !localization || localization && localization.defaultLocalePublishOption !== 'active';
160
+ // Publish to all locales unless there are localized fields AND defaultLocalePublishOption is 'active'
161
+ const isDefaultPublishAll = !isSpecificLocalePublishEnabled || localization && localization?.defaultLocalePublishOption !== 'active';
161
162
  const activeLocale = localization && localization?.locales.find(locale_0 => typeof locale_0 === 'string' ? locale_0 === localeCode : locale_0.code === localeCode);
162
163
  const activeLocaleLabel = activeLocale && (typeof activeLocale.label === 'string' ? activeLocale.label : activeLocale.label?.[localeCode] ?? undefined);
163
- const defaultPublish = publishAll ? publish : () => publishSpecificLocale(activeLocale.code);
164
- const defaultLabel = publishAll ? label : t('version:publishIn', {
165
- locale: activeLocaleLabel
166
- });
167
- const secondaryPublish = publishAll ? () => publishSpecificLocale(activeLocale.code) : publish;
168
- const secondaryLabel = publishAll ? t('version:publishIn', {
169
- locale: activeLocaleLabel
170
- }) : t('version:publishAllLocales');
171
164
  if (!hasPublishPermission) {
172
165
  return null;
173
166
  }
@@ -176,9 +169,9 @@ export function PublishButton({
176
169
  buttonId: "action-save",
177
170
  disabled: !canPublish,
178
171
  enableSubMenu: canSchedulePublish,
179
- onClick: defaultPublish,
172
+ onClick: isDefaultPublishAll ? publish : () => publishSpecificLocale(activeLocale.code),
180
173
  size: "medium",
181
- SubMenuPopupContent: canPublishSpecificLocale || canSchedulePublish ? ({
174
+ SubMenuPopupContent: isSpecificLocalePublishEnabled || canSchedulePublish ? ({
182
175
  close
183
176
  }) => {
184
177
  return /*#__PURE__*/_jsxs(React.Fragment, {
@@ -188,17 +181,21 @@ export function PublishButton({
188
181
  onClick: () => [toggleModal(drawerSlug), close()],
189
182
  children: t('version:schedulePublish')
190
183
  })
191
- }, "schedule-publish"), canPublishSpecificLocale && /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
184
+ }, "schedule-publish"), isSpecificLocalePublishEnabled && /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
192
185
  children: /*#__PURE__*/_jsx(PopupList.Button, {
193
186
  id: "publish-locale",
194
- onClick: secondaryPublish,
195
- children: secondaryLabel
187
+ onClick: isDefaultPublishAll ? () => publishSpecificLocale(activeLocale.code) : publish,
188
+ children: isDefaultPublishAll ? t('version:publishIn', {
189
+ locale: activeLocaleLabel
190
+ }) : t('version:publishAllLocales')
196
191
  })
197
192
  })]
198
193
  });
199
194
  } : undefined,
200
195
  type: "button",
201
- children: localization ? defaultLabel : label
196
+ children: !isDefaultPublishAll ? t('version:publishIn', {
197
+ locale: activeLocaleLabel
198
+ }) : label
202
199
  }), canSchedulePublish && isModalOpen(drawerSlug) && /*#__PURE__*/_jsx(ScheduleDrawer, {
203
200
  defaultType: !hasNewerVersions ? 'unpublish' : 'publish',
204
201
  schedulePublishConfig: typeof schedulePublish === 'object' && schedulePublish,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","qs","React","useCallback","useEffect","useState","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","traverseForLocalizedFields","PopupList","ScheduleDrawer","PublishButton","label","labelProp","id","collectionSlug","docConfig","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","serverURL","t","entityConfig","useMemo","hasNewerVersions","schedulePublish","versions","drafts","canPublish","scheduledPublishEnabled","Boolean","hasAutosave","autosave","canSchedulePublish","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","canPublishSpecificLocale","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","publish","result","publishSpecificLocale","locale","params","stringify","depth","publishAll","defaultLocalePublishOption","activeLocale","locales","find","activeLocaleLabel","undefined","defaultPublish","defaultLabel","secondaryPublish","secondaryLabel","_jsxs","Fragment","_jsx","buttonId","enableSubMenu","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","type","defaultType","schedulePublishConfig","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport function PublishButton({ label: labelProp }: PublishButtonClientProps) {\n const {\n id,\n collectionSlug,\n docConfig,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const schedulePublish =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled = Boolean(schedulePublish)\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = Boolean(\n typeof entityConfig?.versions?.drafts === 'object' && entityConfig?.versions?.drafts.autosave,\n )\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)) &&\n (hasAutosave || !modified),\n )\n\n const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\n\n useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const canPublishSpecificLocale = localization && hasLocalizedFields && hasPublishPermission\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const result = await submit({\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishSpecificLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n depth: 0,\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`\n }${params ? '?' + params : ''}`\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setHasPublishedDoc(true)\n }\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n const publishAll =\n !localization || (localization && localization.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel =\n activeLocale &&\n (typeof activeLocale.label === 'string'\n ? activeLocale.label\n : (activeLocale.label?.[localeCode] ?? undefined))\n\n const defaultPublish = publishAll ? publish : () => publishSpecificLocale(activeLocale.code)\n const defaultLabel = publishAll ? label : t('version:publishIn', { locale: activeLocaleLabel })\n\n const secondaryPublish = publishAll ? () => publishSpecificLocale(activeLocale.code) : publish\n const secondaryLabel = publishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n enableSubMenu={canSchedulePublish}\n onClick={defaultPublish}\n size=\"medium\"\n SubMenuPopupContent={\n canPublishSpecificLocale || canSchedulePublish\n ? ({ close }) => {\n return (\n <React.Fragment>\n {canSchedulePublish && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button\n id=\"schedule-publish\"\n onClick={() => [toggleModal(drawerSlug), close()]}\n >\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {canPublishSpecificLocale && (\n <PopupList.ButtonGroup>\n <PopupList.Button id=\"publish-locale\" onClick={secondaryPublish}>\n {secondaryLabel}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {localization ? defaultLabel : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && (\n <ScheduleDrawer\n defaultType={!hasNewerVersions ? 'unpublish' : 'publish'}\n schedulePublishConfig={typeof schedulePublish === 'object' && schedulePublish}\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","qs","React","useCallback","useEffect","useState","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","traverseForLocalizedFields","PopupList","ScheduleDrawer","PublishButton","label","labelProp","id","collectionSlug","docConfig","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","serverURL","t","entityConfig","useMemo","hasNewerVersions","schedulePublish","versions","drafts","canPublish","scheduledPublishEnabled","Boolean","hasAutosave","autosave","canSchedulePublish","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","isSpecificLocalePublishEnabled","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","publish","result","publishSpecificLocale","locale","params","stringify","depth","isDefaultPublishAll","defaultLocalePublishOption","activeLocale","locales","find","activeLocaleLabel","undefined","_jsxs","Fragment","_jsx","buttonId","enableSubMenu","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","type","defaultType","schedulePublishConfig","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport function PublishButton({ label: labelProp }: PublishButtonClientProps) {\n const {\n id,\n collectionSlug,\n docConfig,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const schedulePublish =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled = Boolean(schedulePublish)\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = Boolean(\n typeof entityConfig?.versions?.drafts === 'object' && entityConfig?.versions?.drafts.autosave,\n )\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)) &&\n (hasAutosave || !modified),\n )\n\n const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\n\n useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const result = await submit({\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishSpecificLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n depth: 0,\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`\n }${params ? '?' + params : ''}`\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setHasPublishedDoc(true)\n }\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n // Publish to all locales unless there are localized fields AND defaultLocalePublishOption is 'active'\n const isDefaultPublishAll =\n !isSpecificLocalePublishEnabled ||\n (localization && localization?.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel =\n activeLocale &&\n (typeof activeLocale.label === 'string'\n ? activeLocale.label\n : (activeLocale.label?.[localeCode] ?? undefined))\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n enableSubMenu={canSchedulePublish}\n onClick={isDefaultPublishAll ? publish : () => publishSpecificLocale(activeLocale.code)}\n size=\"medium\"\n SubMenuPopupContent={\n isSpecificLocalePublishEnabled || canSchedulePublish\n ? ({ close }) => {\n return (\n <React.Fragment>\n {canSchedulePublish && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button\n id=\"schedule-publish\"\n onClick={() => [toggleModal(drawerSlug), close()]}\n >\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {isSpecificLocalePublishEnabled && (\n <PopupList.ButtonGroup>\n <PopupList.Button\n id=\"publish-locale\"\n onClick={\n isDefaultPublishAll\n ? () => publishSpecificLocale(activeLocale.code)\n : publish\n }\n >\n {isDefaultPublishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {!isDefaultPublishAll ? t('version:publishIn', { locale: activeLocaleLabel }) : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && (\n <ScheduleDrawer\n defaultType={!hasNewerVersions ? 'unpublish' : 'publish'}\n schedulePublishConfig={typeof schedulePublish === 'object' && schedulePublish}\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}