@strapi/content-releases 0.0.0-next.388e513cc3cf096b0b3c845534d48a07e45be994 → 0.0.0-next.38fdaeb928a90913efe2531294caf9dbb0101b9d
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.
- package/dist/admin/assets/purchase-page-illustration-dark.jpg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-dark.jpg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-dark.jpg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-dark.jpg.mjs.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.jpg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-light.jpg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.jpg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-light.jpg.mjs.map +1 -0
- package/dist/admin/components/EntryValidationPopover.js +62 -96
- package/dist/admin/components/EntryValidationPopover.js.map +1 -1
- package/dist/admin/components/EntryValidationPopover.mjs +64 -98
- package/dist/admin/components/EntryValidationPopover.mjs.map +1 -1
- package/dist/admin/components/RelativeTime.js.map +1 -1
- package/dist/admin/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/components/ReleaseActionMenu.js.map +1 -1
- package/dist/admin/components/ReleaseActionMenu.mjs.map +1 -1
- package/dist/admin/components/ReleaseActionOptions.js.map +1 -1
- package/dist/admin/components/ReleaseActionOptions.mjs.map +1 -1
- package/dist/admin/components/ReleaseListCell.js.map +1 -1
- package/dist/admin/components/ReleaseListCell.mjs.map +1 -1
- package/dist/admin/components/ReleaseModal.js +8 -0
- package/dist/admin/components/ReleaseModal.js.map +1 -1
- package/dist/admin/components/ReleaseModal.mjs +8 -0
- package/dist/admin/components/ReleaseModal.mjs.map +1 -1
- package/dist/admin/components/ReleasesPanel.js.map +1 -1
- package/dist/admin/components/ReleasesPanel.mjs.map +1 -1
- package/dist/admin/components/Widgets.js +122 -0
- package/dist/admin/components/Widgets.js.map +1 -0
- package/dist/admin/components/Widgets.mjs +120 -0
- package/dist/admin/components/Widgets.mjs.map +1 -0
- package/dist/admin/constants.js +2 -0
- package/dist/admin/constants.js.map +1 -1
- package/dist/admin/constants.mjs +2 -1
- package/dist/admin/constants.mjs.map +1 -1
- package/dist/admin/index.js +24 -2
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +25 -3
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/PurchaseContentReleases.js +6 -6
- package/dist/admin/pages/PurchaseContentReleases.js.map +1 -1
- package/dist/admin/pages/PurchaseContentReleases.mjs +7 -7
- package/dist/admin/pages/PurchaseContentReleases.mjs.map +1 -1
- package/dist/admin/pages/ReleaseDetailsPage.js +117 -115
- package/dist/admin/pages/ReleaseDetailsPage.js.map +1 -1
- package/dist/admin/pages/ReleaseDetailsPage.mjs +117 -115
- package/dist/admin/pages/ReleaseDetailsPage.mjs.map +1 -1
- package/dist/admin/pages/ReleasesPage.js +130 -128
- package/dist/admin/pages/ReleasesPage.js.map +1 -1
- package/dist/admin/pages/ReleasesPage.mjs +130 -128
- package/dist/admin/pages/ReleasesPage.mjs.map +1 -1
- package/dist/admin/pages/ReleasesSettingsPage.js +2 -2
- package/dist/admin/pages/ReleasesSettingsPage.js.map +1 -1
- package/dist/admin/pages/ReleasesSettingsPage.mjs +3 -3
- package/dist/admin/pages/ReleasesSettingsPage.mjs.map +1 -1
- package/dist/admin/services/homepage.js +24 -0
- package/dist/admin/services/homepage.js.map +1 -0
- package/dist/admin/services/homepage.mjs +22 -0
- package/dist/admin/services/homepage.mjs.map +1 -0
- package/dist/admin/services/release.js +21 -12
- package/dist/admin/services/release.js.map +1 -1
- package/dist/admin/services/release.mjs +21 -12
- package/dist/admin/services/release.mjs.map +1 -1
- package/dist/admin/src/components/Widgets.d.ts +2 -0
- package/dist/admin/src/constants.d.ts +1 -0
- package/dist/admin/src/services/homepage.d.ts +9 -0
- package/dist/admin/src/services/release.d.ts +28 -28
- package/dist/admin/translations/en.json.js +4 -1
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +4 -1
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
- package/dist/admin/utils/time.js.map +1 -1
- package/dist/admin/utils/time.mjs.map +1 -1
- package/dist/admin/validation/schemas.js.map +1 -1
- package/dist/admin/validation/schemas.mjs.map +1 -1
- package/dist/server/controllers/homepage.js +15 -0
- package/dist/server/controllers/homepage.js.map +1 -0
- package/dist/server/controllers/homepage.mjs +13 -0
- package/dist/server/controllers/homepage.mjs.map +1 -0
- package/dist/server/controllers/index.js +2 -0
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs +2 -0
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/release.js.map +1 -1
- package/dist/server/controllers/release.mjs.map +1 -1
- package/dist/server/destroy.js +2 -2
- package/dist/server/destroy.js.map +1 -1
- package/dist/server/destroy.mjs +2 -2
- package/dist/server/destroy.mjs.map +1 -1
- package/dist/server/routes/homepage.js +25 -0
- package/dist/server/routes/homepage.js.map +1 -0
- package/dist/server/routes/homepage.mjs +23 -0
- package/dist/server/routes/homepage.mjs.map +1 -0
- package/dist/server/routes/index.js +2 -0
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs +2 -0
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/services/homepage.js +26 -0
- package/dist/server/services/homepage.js.map +1 -0
- package/dist/server/services/homepage.mjs +24 -0
- package/dist/server/services/homepage.mjs.map +1 -0
- package/dist/server/services/index.js +2 -0
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs +2 -0
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/release-action.js.map +1 -1
- package/dist/server/services/release-action.mjs.map +1 -1
- package/dist/server/services/release.js.map +1 -1
- package/dist/server/services/release.mjs.map +1 -1
- package/dist/server/services/scheduling.js +16 -12
- package/dist/server/services/scheduling.js.map +1 -1
- package/dist/server/services/scheduling.mjs +16 -12
- package/dist/server/services/scheduling.mjs.map +1 -1
- package/dist/server/services/validation.js.map +1 -1
- package/dist/server/services/validation.mjs.map +1 -1
- package/dist/server/src/controllers/homepage.d.ts +6 -0
- package/dist/server/src/controllers/homepage.d.ts.map +1 -0
- package/dist/server/src/controllers/index.d.ts +3 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/destroy.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +13 -4
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/homepage.d.ts +4 -0
- package/dist/server/src/routes/homepage.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts +1 -0
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/homepage.d.ts +9 -0
- package/dist/server/src/services/homepage.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +9 -4
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/scheduling.d.ts +4 -5
- package/dist/server/src/services/scheduling.d.ts.map +1 -1
- package/dist/shared/contracts/homepage.d.ts +11 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -0
- package/dist/shared/types.d.ts +1 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +13 -14
- package/dist/admin/assets/purchase-page-illustration-dark.svg.js +0 -6
- package/dist/admin/assets/purchase-page-illustration-dark.svg.js.map +0 -1
- package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs +0 -4
- package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs.map +0 -1
- package/dist/admin/assets/purchase-page-illustration-light.svg.js +0 -6
- package/dist/admin/assets/purchase-page-illustration-light.svg.js.map +0 -1
- package/dist/admin/assets/purchase-page-illustration-light.svg.mjs +0 -4
- package/dist/admin/assets/purchase-page-illustration-light.svg.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseModal.mjs","sources":["../../../admin/src/components/ReleaseModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Modal,\n TextInput,\n Typography,\n Checkbox,\n Flex,\n Box,\n DatePicker,\n TimePicker,\n Combobox,\n ComboboxOption,\n Field,\n} from '@strapi/design-system';\nimport { formatISO } from 'date-fns';\nimport { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';\nimport { Formik, Form, useFormikContext } from 'formik';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { pluginId } from '../pluginId';\nimport { getTimezones } from '../utils/time';\nimport { RELEASE_SCHEMA } from '../validation/schemas';\n\nexport interface FormValues {\n name: string;\n date?: string;\n time: string;\n timezone: string | null;\n isScheduled?: boolean;\n scheduledAt: Date | null;\n}\n\ninterface ReleaseModalProps {\n handleClose: () => void;\n handleSubmit: (values: FormValues) => void;\n isLoading?: boolean;\n initialValues: FormValues;\n open?: boolean;\n}\n\nexport const ReleaseModal = ({\n handleClose,\n open,\n handleSubmit,\n initialValues,\n isLoading = false,\n}: ReleaseModalProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const isCreatingRelease = pathname === `/plugins/${pluginId}`;\n // Set default first timezone from the list if no system timezone detected\n const { timezoneList, systemTimezone = { value: 'UTC+00:00-Africa/Abidjan ' } } = getTimezones(\n initialValues.scheduledAt ? new Date(initialValues.scheduledAt) : new Date()\n );\n\n /**\n * Generate scheduled time using selected date, time and timezone\n */\n const getScheduledTimestamp = (values: FormValues) => {\n const { date, time, timezone } = values;\n if (!date || !time || !timezone) return null;\n const timezoneWithoutOffset = timezone.split('&')[1];\n return zonedTimeToUtc(`${date} ${time}`, timezoneWithoutOffset);\n };\n\n /**\n * Get timezone with offset to show the selected value in the dropdown\n */\n const getTimezoneWithOffset = () => {\n const currentTimezone = timezoneList.find(\n (timezone) => timezone.value.split('&')[1] === initialValues.timezone\n );\n return currentTimezone?.value || systemTimezone.value;\n };\n\n return (\n <Modal.Root open={open} onOpenChange={handleClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: 'content-releases.modal.title',\n defaultMessage:\n '{isCreatingRelease, select, true {New release} other {Edit release}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Modal.Title>\n </Modal.Header>\n <Formik\n onSubmit={(values) => {\n handleSubmit({\n ...values,\n timezone: values.timezone ? values.timezone.split('&')[1] : null,\n scheduledAt: values.isScheduled ? getScheduledTimestamp(values) : null,\n });\n }}\n initialValues={{\n ...initialValues,\n timezone: initialValues.timezone ? getTimezoneWithOffset() : systemTimezone.value,\n }}\n validationSchema={RELEASE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleChange, setFieldValue }) => {\n return (\n <Form>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root\n name=\"name\"\n error={\n errors.name &&\n formatMessage({ id: errors.name, defaultMessage: errors.name })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.release-name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n <Box width=\"max-content\">\n <Checkbox\n name=\"isScheduled\"\n checked={values.isScheduled}\n onCheckedChange={(checked) => {\n setFieldValue('isScheduled', checked);\n if (!checked) {\n // Clear scheduling info from a release on unchecking schedule release, which reset scheduling info in DB\n setFieldValue('date', null);\n setFieldValue('time', '');\n setFieldValue('timezone', null);\n } else {\n // On ticking back schedule release date, time and timezone should be restored to the initial state\n setFieldValue('date', initialValues.date);\n setFieldValue('time', initialValues.time);\n setFieldValue(\n 'timezone',\n initialValues.timezone ?? systemTimezone?.value\n );\n }\n }}\n >\n <Typography\n textColor={values.isScheduled ? 'primary600' : 'neutral800'}\n fontWeight={values.isScheduled ? 'semiBold' : 'regular'}\n >\n {formatMessage({\n id: 'modal.form.input.label.schedule-release',\n defaultMessage: 'Schedule release',\n })}\n </Typography>\n </Checkbox>\n </Box>\n {values.isScheduled && (\n <>\n <Flex gap={4} alignItems=\"start\">\n <Box width=\"100%\">\n <Field.Root\n name=\"date\"\n error={\n errors.date &&\n formatMessage({ id: errors.date, defaultMessage: errors.date })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.date',\n defaultMessage: 'Date',\n })}\n </Field.Label>\n <DatePicker\n onChange={(date) => {\n const isoFormatDate = date\n ? formatISO(date, { representation: 'date' })\n : null;\n setFieldValue('date', isoFormatDate);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('date', null);\n }}\n value={values.date ? new Date(values.date) : new Date()}\n minDate={utcToZonedTime(new Date(), values.timezone.split('&')[1])}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n <Box width=\"100%\">\n <Field.Root\n name=\"time\"\n error={\n errors.time &&\n formatMessage({ id: errors.time, defaultMessage: errors.time })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.time',\n defaultMessage: 'Time',\n })}\n </Field.Label>\n <TimePicker\n onChange={(time) => {\n setFieldValue('time', time);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('time', '');\n }}\n value={values.time || undefined}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n </Flex>\n <TimezoneComponent timezoneOptions={timezoneList} />\n </>\n )}\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button name=\"submit\" loading={isLoading} type=\"submit\">\n {formatMessage(\n {\n id: 'content-releases.modal.form.button.submit',\n defaultMessage: '{isCreatingRelease, select, true {Continue} other {Save}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Button>\n </Modal.Footer>\n </Form>\n );\n }}\n </Formik>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\n/**\n * Generates the list of timezones and user's current timezone(system timezone)\n */\ninterface ITimezoneOption {\n offset: string;\n value: string;\n}\n\nconst TimezoneComponent = ({ timezoneOptions }: { timezoneOptions: ITimezoneOption[] }) => {\n const { values, errors, setFieldValue } = useFormikContext<FormValues>();\n const { formatMessage } = useIntl();\n const [timezoneList, setTimezoneList] = React.useState<ITimezoneOption[]>(timezoneOptions);\n\n React.useEffect(() => {\n if (values.date) {\n // Update the timezone offset which varies with DST based on the date selected\n const { timezoneList } = getTimezones(new Date(values.date));\n setTimezoneList(timezoneList);\n\n const updatedTimezone =\n values.timezone &&\n timezoneList.find((tz) => tz.value.split('&')[1] === values.timezone!.split('&')[1]);\n if (updatedTimezone) {\n setFieldValue('timezone', updatedTimezone!.value);\n }\n }\n }, [setFieldValue, values.date, values.timezone]);\n\n return (\n <Field.Root\n name=\"timezone\"\n error={\n errors.timezone && formatMessage({ id: errors.timezone, defaultMessage: errors.timezone })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.timezone',\n defaultMessage: 'Timezone',\n })}\n </Field.Label>\n <Combobox\n autocomplete={{ type: 'list', filter: 'contains' }}\n value={values.timezone || undefined}\n textValue={values.timezone ? values.timezone.replace(/&/, ' ') : undefined} // textValue is required to show the updated DST timezone\n onChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onTextValueChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onClear={() => {\n setFieldValue('timezone', '');\n }}\n >\n {timezoneList.map((timezone) => (\n <ComboboxOption key={timezone.value} value={timezone.value}>\n {timezone.value.replace(/&/, ' ')}\n </ComboboxOption>\n ))}\n </Combobox>\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["ReleaseModal","handleClose","open","handleSubmit","initialValues","isLoading","formatMessage","useIntl","pathname","useLocation","isCreatingRelease","pluginId","timezoneList","systemTimezone","value","getTimezones","scheduledAt","Date","getScheduledTimestamp","values","date","time","timezone","timezoneWithoutOffset","split","zonedTimeToUtc","getTimezoneWithOffset","currentTimezone","find","_jsx","Modal","Root","onOpenChange","_jsxs","Content","Header","Title","id","defaultMessage","Formik","onSubmit","isScheduled","validationSchema","RELEASE_SCHEMA","validateOnChange","errors","handleChange","setFieldValue","Form","Body","Flex","direction","alignItems","gap","Field","name","error","required","Label","TextInput","onChange","Error","Box","width","Checkbox","checked","onCheckedChange","Typography","textColor","fontWeight","_Fragment","DatePicker","isoFormatDate","formatISO","representation","clearLabel","onClear","minDate","utcToZonedTime","TimePicker","undefined","TimezoneComponent","timezoneOptions","Footer","Close","Button","variant","loading","type","useFormikContext","setTimezoneList","React","useState","useEffect","updatedTimezone","tz","Combobox","autocomplete","filter","textValue","replace","onTextValueChange","map","ComboboxOption"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReleaseModal.mjs","sources":["../../../admin/src/components/ReleaseModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Modal,\n TextInput,\n Typography,\n Checkbox,\n Flex,\n Box,\n DatePicker,\n TimePicker,\n Combobox,\n ComboboxOption,\n Field,\n} from '@strapi/design-system';\nimport { formatISO } from 'date-fns';\nimport { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';\nimport { Formik, Form, useFormikContext } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { pluginId } from '../pluginId';\nimport { getTimezones } from '../utils/time';\nimport { RELEASE_SCHEMA } from '../validation/schemas';\n\nexport interface FormValues {\n name: string;\n date?: string;\n time: string;\n timezone: string | null;\n isScheduled?: boolean;\n scheduledAt: Date | null;\n}\n\ninterface ReleaseModalProps {\n handleClose: () => void;\n handleSubmit: (values: FormValues) => void;\n isLoading?: boolean;\n initialValues: FormValues;\n open?: boolean;\n}\n\nexport const ReleaseModal = ({\n handleClose,\n open,\n handleSubmit,\n initialValues,\n isLoading = false,\n}: ReleaseModalProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const isCreatingRelease = pathname === `/plugins/${pluginId}`;\n // Set default first timezone from the list if no system timezone detected\n const { timezoneList, systemTimezone = { value: 'UTC+00:00-Africa/Abidjan ' } } = getTimezones(\n initialValues.scheduledAt ? new Date(initialValues.scheduledAt) : new Date()\n );\n\n /**\n * Generate scheduled time using selected date, time and timezone\n */\n const getScheduledTimestamp = (values: FormValues) => {\n const { date, time, timezone } = values;\n if (!date || !time || !timezone) return null;\n const timezoneWithoutOffset = timezone.split('&')[1];\n return zonedTimeToUtc(`${date} ${time}`, timezoneWithoutOffset);\n };\n\n /**\n * Get timezone with offset to show the selected value in the dropdown\n */\n const getTimezoneWithOffset = () => {\n const currentTimezone = timezoneList.find(\n (timezone) => timezone.value.split('&')[1] === initialValues.timezone\n );\n return currentTimezone?.value || systemTimezone.value;\n };\n\n return (\n <Modal.Root open={open} onOpenChange={handleClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: 'content-releases.modal.title',\n defaultMessage:\n '{isCreatingRelease, select, true {New release} other {Edit release}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Modal.Title>\n </Modal.Header>\n <Formik\n onSubmit={(values) => {\n handleSubmit({\n ...values,\n timezone: values.timezone ? values.timezone.split('&')[1] : null,\n scheduledAt: values.isScheduled ? getScheduledTimestamp(values) : null,\n });\n }}\n initialValues={{\n ...initialValues,\n timezone: initialValues.timezone ? getTimezoneWithOffset() : systemTimezone.value,\n }}\n validationSchema={RELEASE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleChange, setFieldValue }) => {\n return (\n <Form>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root\n name=\"name\"\n error={\n errors.name &&\n formatMessage({ id: errors.name, defaultMessage: errors.name })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.release-name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput type=\"text\" value={values.name} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n <Box width=\"max-content\">\n <Checkbox\n name=\"isScheduled\"\n checked={values.isScheduled}\n onCheckedChange={(checked) => {\n setFieldValue('isScheduled', checked);\n if (!checked) {\n // Clear scheduling info from a release on unchecking schedule release, which reset scheduling info in DB\n setFieldValue('date', null);\n setFieldValue('time', '');\n setFieldValue('timezone', null);\n } else {\n // On ticking back schedule release date, time and timezone should be restored to the initial state\n setFieldValue('date', initialValues.date);\n setFieldValue('time', initialValues.time);\n setFieldValue(\n 'timezone',\n initialValues.timezone ?? systemTimezone?.value\n );\n }\n }}\n >\n <Typography\n textColor={values.isScheduled ? 'primary600' : 'neutral800'}\n fontWeight={values.isScheduled ? 'semiBold' : 'regular'}\n >\n {formatMessage({\n id: 'modal.form.input.label.schedule-release',\n defaultMessage: 'Schedule release',\n })}\n </Typography>\n </Checkbox>\n </Box>\n {values.isScheduled && (\n <>\n <Flex\n gap={4}\n alignItems=\"start\"\n direction={{ initial: 'column', medium: 'row' }}\n wrap=\"wrap\"\n >\n <Box width=\"100%\" flex={1}>\n <Field.Root\n name=\"date\"\n error={\n errors.date &&\n formatMessage({ id: errors.date, defaultMessage: errors.date })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.date',\n defaultMessage: 'Date',\n })}\n </Field.Label>\n <DatePicker\n onChange={(date) => {\n const isoFormatDate = date\n ? formatISO(date, { representation: 'date' })\n : null;\n setFieldValue('date', isoFormatDate);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('date', null);\n }}\n value={values.date ? new Date(values.date) : new Date()}\n minDate={utcToZonedTime(new Date(), values.timezone.split('&')[1])}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n <Box width=\"100%\" flex={1}>\n <Field.Root\n name=\"time\"\n error={\n errors.time &&\n formatMessage({ id: errors.time, defaultMessage: errors.time })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.time',\n defaultMessage: 'Time',\n })}\n </Field.Label>\n <TimePicker\n onChange={(time) => {\n setFieldValue('time', time);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('time', '');\n }}\n value={values.time || undefined}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n </Flex>\n <TimezoneComponent timezoneOptions={timezoneList} />\n </>\n )}\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button name=\"submit\" loading={isLoading} type=\"submit\">\n {formatMessage(\n {\n id: 'content-releases.modal.form.button.submit',\n defaultMessage: '{isCreatingRelease, select, true {Continue} other {Save}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Button>\n </Modal.Footer>\n </Form>\n );\n }}\n </Formik>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\n/**\n * Generates the list of timezones and user's current timezone(system timezone)\n */\ninterface ITimezoneOption {\n offset: string;\n value: string;\n}\n\nconst TimezoneComponent = ({ timezoneOptions }: { timezoneOptions: ITimezoneOption[] }) => {\n const { values, errors, setFieldValue } = useFormikContext<FormValues>();\n const { formatMessage } = useIntl();\n const [timezoneList, setTimezoneList] = React.useState<ITimezoneOption[]>(timezoneOptions);\n\n React.useEffect(() => {\n if (values.date) {\n // Update the timezone offset which varies with DST based on the date selected\n const { timezoneList } = getTimezones(new Date(values.date));\n setTimezoneList(timezoneList);\n\n const updatedTimezone =\n values.timezone &&\n timezoneList.find((tz) => tz.value.split('&')[1] === values.timezone!.split('&')[1]);\n if (updatedTimezone) {\n setFieldValue('timezone', updatedTimezone!.value);\n }\n }\n }, [setFieldValue, values.date, values.timezone]);\n\n return (\n <Field.Root\n name=\"timezone\"\n error={\n errors.timezone && formatMessage({ id: errors.timezone, defaultMessage: errors.timezone })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.timezone',\n defaultMessage: 'Timezone',\n })}\n </Field.Label>\n <Combobox\n autocomplete={{ type: 'list', filter: 'contains' }}\n value={values.timezone || undefined}\n textValue={values.timezone ? values.timezone.replace(/&/, ' ') : undefined} // textValue is required to show the updated DST timezone\n onChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onTextValueChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onClear={() => {\n setFieldValue('timezone', '');\n }}\n >\n {timezoneList.map((timezone) => (\n <ComboboxOption key={timezone.value} value={timezone.value}>\n {timezone.value.replace(/&/, ' ')}\n </ComboboxOption>\n ))}\n </Combobox>\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["ReleaseModal","handleClose","open","handleSubmit","initialValues","isLoading","formatMessage","useIntl","pathname","useLocation","isCreatingRelease","pluginId","timezoneList","systemTimezone","value","getTimezones","scheduledAt","Date","getScheduledTimestamp","values","date","time","timezone","timezoneWithoutOffset","split","zonedTimeToUtc","getTimezoneWithOffset","currentTimezone","find","_jsx","Modal","Root","onOpenChange","_jsxs","Content","Header","Title","id","defaultMessage","Formik","onSubmit","isScheduled","validationSchema","RELEASE_SCHEMA","validateOnChange","errors","handleChange","setFieldValue","Form","Body","Flex","direction","alignItems","gap","Field","name","error","required","Label","TextInput","type","onChange","Error","Box","width","Checkbox","checked","onCheckedChange","Typography","textColor","fontWeight","_Fragment","initial","medium","wrap","flex","DatePicker","isoFormatDate","formatISO","representation","clearLabel","onClear","minDate","utcToZonedTime","TimePicker","undefined","TimezoneComponent","timezoneOptions","Footer","Close","Button","variant","loading","useFormikContext","setTimezoneList","React","useState","useEffect","updatedTimezone","tz","Combobox","autocomplete","filter","textValue","replace","onTextValueChange","map","ComboboxOption"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleasesPanel.js","sources":["../../../admin/src/components/ReleasesPanel.tsx"],"sourcesContent":["import { useRBAC, useQueryParams } from '@strapi/admin/strapi-admin';\nimport { unstable_useDocumentLayout as useDocumentLayout } from '@strapi/content-manager/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { PERMISSIONS } from '../constants';\nimport { useGetReleasesForEntryQuery } from '../services/release';\nimport { getTimezoneOffset } from '../utils/time';\n\nimport { ReleaseActionMenu } from './ReleaseActionMenu';\n\nimport type { PanelComponent, PanelComponentProps } from '@strapi/content-manager/strapi-admin';\n\nconst Panel: PanelComponent = ({\n model,\n document,\n documentId,\n collectionType,\n}: PanelComponentProps) => {\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query.plugins?.i18n?.locale;\n\n const {\n edit: { options },\n } = useDocumentLayout(model);\n const { formatMessage, formatDate, formatTime } = useIntl();\n\n const { allowedActions } = useRBAC(PERMISSIONS);\n const { canRead, canDeleteAction } = allowedActions;\n\n const response = useGetReleasesForEntryQuery(\n {\n contentType: model,\n entryDocumentId: documentId,\n locale,\n hasEntryAttached: true,\n },\n {\n skip: !document,\n }\n );\n const releases = response.data?.data;\n\n const getReleaseColorVariant = (\n actionType: 'publish' | 'unpublish',\n shade: '100' | '200' | '600'\n ) => {\n if (actionType === 'unpublish') {\n return `secondary${shade}`;\n }\n\n return `success${shade}`;\n };\n\n // Project is not EE or contentType does not have draftAndPublish enabled\n if (!window.strapi.isEE || !options?.draftAndPublish || !canRead) {\n return null;\n }\n\n if (collectionType === 'collection-types' && (!documentId || documentId === 'create')) {\n return null;\n }\n\n if (!releases || releases.length === 0) {\n return null;\n }\n\n return {\n title: formatMessage({\n id: 'content-releases.plugin.name',\n defaultMessage: 'Releases',\n }),\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={3} width=\"100%\">\n {releases?.map((release) => (\n <Flex\n key={release.id}\n direction=\"column\"\n alignItems=\"start\"\n borderWidth=\"1px\"\n borderStyle=\"solid\"\n borderColor={getReleaseColorVariant(release.actions[0].type, '200')}\n overflow=\"hidden\"\n hasRadius\n >\n <Box\n paddingTop={3}\n paddingBottom={3}\n paddingLeft={4}\n paddingRight={4}\n background={getReleaseColorVariant(release.actions[0].type, '100')}\n width=\"100%\"\n >\n <Typography\n fontSize={1}\n variant=\"pi\"\n textColor={getReleaseColorVariant(release.actions[0].type, '600')}\n >\n {formatMessage(\n {\n id: 'content-releases.content-manager-edit-view.list-releases.title',\n defaultMessage:\n '{isPublish, select, true {Will be published in} other {Will be unpublished in}}',\n },\n { isPublish: release.actions[0].type === 'publish' }\n )}\n </Typography>\n </Box>\n <Flex padding={4} direction=\"column\" gap={2} width=\"100%\" alignItems=\"flex-start\">\n <Typography fontSize={2} fontWeight=\"bold\" variant=\"omega\" textColor=\"neutral700\">\n {release.name}\n </Typography>\n {release.scheduledAt && release.timezone && (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'content-releases.content-manager-edit-view.scheduled.date',\n defaultMessage: '{date} at {time} ({offset})',\n },\n {\n date: formatDate(new Date(release.scheduledAt), {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n timeZone: release.timezone,\n }),\n time: formatTime(new Date(release.scheduledAt), {\n hourCycle: 'h23',\n timeZone: release.timezone,\n }),\n offset: getTimezoneOffset(release.timezone, new Date(release.scheduledAt)),\n }\n )}\n </Typography>\n )}\n {canDeleteAction ? (\n <ReleaseActionMenu.Root hasTriggerBorder>\n <ReleaseActionMenu.EditReleaseItem releaseId={release.id} />\n <ReleaseActionMenu.DeleteReleaseActionItem\n releaseId={release.id}\n actionId={release.actions[0].id}\n />\n </ReleaseActionMenu.Root>\n ) : null}\n </Flex>\n </Flex>\n ))}\n </Flex>\n ),\n };\n};\n\nexport { Panel };\n"],"names":["Panel","model","document","documentId","collectionType","query","useQueryParams","locale","plugins","i18n","edit","options","useDocumentLayout","formatMessage","formatDate","formatTime","useIntl","allowedActions","useRBAC","PERMISSIONS","canRead","canDeleteAction","response","useGetReleasesForEntryQuery","contentType","entryDocumentId","hasEntryAttached","skip","releases","data","getReleaseColorVariant","actionType","shade","window","strapi","isEE","draftAndPublish","length","title","id","defaultMessage","content","_jsx","Flex","direction","alignItems","gap","width","map","release","_jsxs","borderWidth","borderStyle","borderColor","actions","type","overflow","hasRadius","Box","paddingTop","paddingBottom","paddingLeft","paddingRight","background","Typography","fontSize","variant","textColor","isPublish","padding","fontWeight","name","scheduledAt","timezone","date","Date","day","month","year","timeZone","time","hourCycle","offset","getTimezoneOffset","ReleaseActionMenu","Root","hasTriggerBorder","EditReleaseItem","releaseId","DeleteReleaseActionItem","actionId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReleasesPanel.js","sources":["../../../admin/src/components/ReleasesPanel.tsx"],"sourcesContent":["import { useRBAC, useQueryParams } from '@strapi/admin/strapi-admin';\nimport { unstable_useDocumentLayout as useDocumentLayout } from '@strapi/content-manager/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { PERMISSIONS } from '../constants';\nimport { useGetReleasesForEntryQuery } from '../services/release';\nimport { getTimezoneOffset } from '../utils/time';\n\nimport { ReleaseActionMenu } from './ReleaseActionMenu';\n\nimport type { PanelComponent, PanelComponentProps } from '@strapi/content-manager/strapi-admin';\n\nconst Panel: PanelComponent = ({\n model,\n document,\n documentId,\n collectionType,\n}: PanelComponentProps) => {\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query.plugins?.i18n?.locale;\n\n const {\n edit: { options },\n } = useDocumentLayout(model);\n const { formatMessage, formatDate, formatTime } = useIntl();\n\n const { allowedActions } = useRBAC(PERMISSIONS);\n const { canRead, canDeleteAction } = allowedActions;\n\n const response = useGetReleasesForEntryQuery(\n {\n contentType: model,\n entryDocumentId: documentId,\n locale,\n hasEntryAttached: true,\n },\n {\n skip: !document,\n }\n );\n const releases = response.data?.data;\n\n const getReleaseColorVariant = (\n actionType: 'publish' | 'unpublish',\n shade: '100' | '200' | '600'\n ) => {\n if (actionType === 'unpublish') {\n return `secondary${shade}`;\n }\n\n return `success${shade}`;\n };\n\n // Project is not EE or contentType does not have draftAndPublish enabled\n if (!window.strapi.isEE || !options?.draftAndPublish || !canRead) {\n return null;\n }\n\n if (collectionType === 'collection-types' && (!documentId || documentId === 'create')) {\n return null;\n }\n\n if (!releases || releases.length === 0) {\n return null;\n }\n\n return {\n title: formatMessage({\n id: 'content-releases.plugin.name',\n defaultMessage: 'Releases',\n }),\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={3} width=\"100%\">\n {releases?.map((release) => (\n <Flex\n key={release.id}\n direction=\"column\"\n alignItems=\"start\"\n borderWidth=\"1px\"\n borderStyle=\"solid\"\n borderColor={getReleaseColorVariant(release.actions[0].type, '200')}\n overflow=\"hidden\"\n hasRadius\n >\n <Box\n paddingTop={3}\n paddingBottom={3}\n paddingLeft={4}\n paddingRight={4}\n background={getReleaseColorVariant(release.actions[0].type, '100')}\n width=\"100%\"\n >\n <Typography\n fontSize={1}\n variant=\"pi\"\n textColor={getReleaseColorVariant(release.actions[0].type, '600')}\n >\n {formatMessage(\n {\n id: 'content-releases.content-manager-edit-view.list-releases.title',\n defaultMessage:\n '{isPublish, select, true {Will be published in} other {Will be unpublished in}}',\n },\n { isPublish: release.actions[0].type === 'publish' }\n )}\n </Typography>\n </Box>\n <Flex padding={4} direction=\"column\" gap={2} width=\"100%\" alignItems=\"flex-start\">\n <Typography fontSize={2} fontWeight=\"bold\" variant=\"omega\" textColor=\"neutral700\">\n {release.name}\n </Typography>\n {release.scheduledAt && release.timezone && (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'content-releases.content-manager-edit-view.scheduled.date',\n defaultMessage: '{date} at {time} ({offset})',\n },\n {\n date: formatDate(new Date(release.scheduledAt), {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n timeZone: release.timezone,\n }),\n time: formatTime(new Date(release.scheduledAt), {\n hourCycle: 'h23',\n timeZone: release.timezone,\n }),\n offset: getTimezoneOffset(release.timezone, new Date(release.scheduledAt)),\n }\n )}\n </Typography>\n )}\n {canDeleteAction ? (\n <ReleaseActionMenu.Root hasTriggerBorder>\n <ReleaseActionMenu.EditReleaseItem releaseId={release.id} />\n <ReleaseActionMenu.DeleteReleaseActionItem\n releaseId={release.id}\n actionId={release.actions[0].id}\n />\n </ReleaseActionMenu.Root>\n ) : null}\n </Flex>\n </Flex>\n ))}\n </Flex>\n ),\n };\n};\n\nexport { Panel };\n"],"names":["Panel","model","document","documentId","collectionType","query","useQueryParams","locale","plugins","i18n","edit","options","useDocumentLayout","formatMessage","formatDate","formatTime","useIntl","allowedActions","useRBAC","PERMISSIONS","canRead","canDeleteAction","response","useGetReleasesForEntryQuery","contentType","entryDocumentId","hasEntryAttached","skip","releases","data","getReleaseColorVariant","actionType","shade","window","strapi","isEE","draftAndPublish","length","title","id","defaultMessage","content","_jsx","Flex","direction","alignItems","gap","width","map","release","_jsxs","borderWidth","borderStyle","borderColor","actions","type","overflow","hasRadius","Box","paddingTop","paddingBottom","paddingLeft","paddingRight","background","Typography","fontSize","variant","textColor","isPublish","padding","fontWeight","name","scheduledAt","timezone","date","Date","day","month","year","timeZone","time","hourCycle","offset","getTimezoneOffset","ReleaseActionMenu","Root","hasTriggerBorder","EditReleaseItem","releaseId","DeleteReleaseActionItem","actionId"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleasesPanel.mjs","sources":["../../../admin/src/components/ReleasesPanel.tsx"],"sourcesContent":["import { useRBAC, useQueryParams } from '@strapi/admin/strapi-admin';\nimport { unstable_useDocumentLayout as useDocumentLayout } from '@strapi/content-manager/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { PERMISSIONS } from '../constants';\nimport { useGetReleasesForEntryQuery } from '../services/release';\nimport { getTimezoneOffset } from '../utils/time';\n\nimport { ReleaseActionMenu } from './ReleaseActionMenu';\n\nimport type { PanelComponent, PanelComponentProps } from '@strapi/content-manager/strapi-admin';\n\nconst Panel: PanelComponent = ({\n model,\n document,\n documentId,\n collectionType,\n}: PanelComponentProps) => {\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query.plugins?.i18n?.locale;\n\n const {\n edit: { options },\n } = useDocumentLayout(model);\n const { formatMessage, formatDate, formatTime } = useIntl();\n\n const { allowedActions } = useRBAC(PERMISSIONS);\n const { canRead, canDeleteAction } = allowedActions;\n\n const response = useGetReleasesForEntryQuery(\n {\n contentType: model,\n entryDocumentId: documentId,\n locale,\n hasEntryAttached: true,\n },\n {\n skip: !document,\n }\n );\n const releases = response.data?.data;\n\n const getReleaseColorVariant = (\n actionType: 'publish' | 'unpublish',\n shade: '100' | '200' | '600'\n ) => {\n if (actionType === 'unpublish') {\n return `secondary${shade}`;\n }\n\n return `success${shade}`;\n };\n\n // Project is not EE or contentType does not have draftAndPublish enabled\n if (!window.strapi.isEE || !options?.draftAndPublish || !canRead) {\n return null;\n }\n\n if (collectionType === 'collection-types' && (!documentId || documentId === 'create')) {\n return null;\n }\n\n if (!releases || releases.length === 0) {\n return null;\n }\n\n return {\n title: formatMessage({\n id: 'content-releases.plugin.name',\n defaultMessage: 'Releases',\n }),\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={3} width=\"100%\">\n {releases?.map((release) => (\n <Flex\n key={release.id}\n direction=\"column\"\n alignItems=\"start\"\n borderWidth=\"1px\"\n borderStyle=\"solid\"\n borderColor={getReleaseColorVariant(release.actions[0].type, '200')}\n overflow=\"hidden\"\n hasRadius\n >\n <Box\n paddingTop={3}\n paddingBottom={3}\n paddingLeft={4}\n paddingRight={4}\n background={getReleaseColorVariant(release.actions[0].type, '100')}\n width=\"100%\"\n >\n <Typography\n fontSize={1}\n variant=\"pi\"\n textColor={getReleaseColorVariant(release.actions[0].type, '600')}\n >\n {formatMessage(\n {\n id: 'content-releases.content-manager-edit-view.list-releases.title',\n defaultMessage:\n '{isPublish, select, true {Will be published in} other {Will be unpublished in}}',\n },\n { isPublish: release.actions[0].type === 'publish' }\n )}\n </Typography>\n </Box>\n <Flex padding={4} direction=\"column\" gap={2} width=\"100%\" alignItems=\"flex-start\">\n <Typography fontSize={2} fontWeight=\"bold\" variant=\"omega\" textColor=\"neutral700\">\n {release.name}\n </Typography>\n {release.scheduledAt && release.timezone && (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'content-releases.content-manager-edit-view.scheduled.date',\n defaultMessage: '{date} at {time} ({offset})',\n },\n {\n date: formatDate(new Date(release.scheduledAt), {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n timeZone: release.timezone,\n }),\n time: formatTime(new Date(release.scheduledAt), {\n hourCycle: 'h23',\n timeZone: release.timezone,\n }),\n offset: getTimezoneOffset(release.timezone, new Date(release.scheduledAt)),\n }\n )}\n </Typography>\n )}\n {canDeleteAction ? (\n <ReleaseActionMenu.Root hasTriggerBorder>\n <ReleaseActionMenu.EditReleaseItem releaseId={release.id} />\n <ReleaseActionMenu.DeleteReleaseActionItem\n releaseId={release.id}\n actionId={release.actions[0].id}\n />\n </ReleaseActionMenu.Root>\n ) : null}\n </Flex>\n </Flex>\n ))}\n </Flex>\n ),\n };\n};\n\nexport { Panel };\n"],"names":["Panel","model","document","documentId","collectionType","query","useQueryParams","locale","plugins","i18n","edit","options","useDocumentLayout","formatMessage","formatDate","formatTime","useIntl","allowedActions","useRBAC","PERMISSIONS","canRead","canDeleteAction","response","useGetReleasesForEntryQuery","contentType","entryDocumentId","hasEntryAttached","skip","releases","data","getReleaseColorVariant","actionType","shade","window","strapi","isEE","draftAndPublish","length","title","id","defaultMessage","content","_jsx","Flex","direction","alignItems","gap","width","map","release","_jsxs","borderWidth","borderStyle","borderColor","actions","type","overflow","hasRadius","Box","paddingTop","paddingBottom","paddingLeft","paddingRight","background","Typography","fontSize","variant","textColor","isPublish","padding","fontWeight","name","scheduledAt","timezone","date","Date","day","month","year","timeZone","time","hourCycle","offset","getTimezoneOffset","ReleaseActionMenu","Root","hasTriggerBorder","EditReleaseItem","releaseId","DeleteReleaseActionItem","actionId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReleasesPanel.mjs","sources":["../../../admin/src/components/ReleasesPanel.tsx"],"sourcesContent":["import { useRBAC, useQueryParams } from '@strapi/admin/strapi-admin';\nimport { unstable_useDocumentLayout as useDocumentLayout } from '@strapi/content-manager/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { PERMISSIONS } from '../constants';\nimport { useGetReleasesForEntryQuery } from '../services/release';\nimport { getTimezoneOffset } from '../utils/time';\n\nimport { ReleaseActionMenu } from './ReleaseActionMenu';\n\nimport type { PanelComponent, PanelComponentProps } from '@strapi/content-manager/strapi-admin';\n\nconst Panel: PanelComponent = ({\n model,\n document,\n documentId,\n collectionType,\n}: PanelComponentProps) => {\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query.plugins?.i18n?.locale;\n\n const {\n edit: { options },\n } = useDocumentLayout(model);\n const { formatMessage, formatDate, formatTime } = useIntl();\n\n const { allowedActions } = useRBAC(PERMISSIONS);\n const { canRead, canDeleteAction } = allowedActions;\n\n const response = useGetReleasesForEntryQuery(\n {\n contentType: model,\n entryDocumentId: documentId,\n locale,\n hasEntryAttached: true,\n },\n {\n skip: !document,\n }\n );\n const releases = response.data?.data;\n\n const getReleaseColorVariant = (\n actionType: 'publish' | 'unpublish',\n shade: '100' | '200' | '600'\n ) => {\n if (actionType === 'unpublish') {\n return `secondary${shade}`;\n }\n\n return `success${shade}`;\n };\n\n // Project is not EE or contentType does not have draftAndPublish enabled\n if (!window.strapi.isEE || !options?.draftAndPublish || !canRead) {\n return null;\n }\n\n if (collectionType === 'collection-types' && (!documentId || documentId === 'create')) {\n return null;\n }\n\n if (!releases || releases.length === 0) {\n return null;\n }\n\n return {\n title: formatMessage({\n id: 'content-releases.plugin.name',\n defaultMessage: 'Releases',\n }),\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={3} width=\"100%\">\n {releases?.map((release) => (\n <Flex\n key={release.id}\n direction=\"column\"\n alignItems=\"start\"\n borderWidth=\"1px\"\n borderStyle=\"solid\"\n borderColor={getReleaseColorVariant(release.actions[0].type, '200')}\n overflow=\"hidden\"\n hasRadius\n >\n <Box\n paddingTop={3}\n paddingBottom={3}\n paddingLeft={4}\n paddingRight={4}\n background={getReleaseColorVariant(release.actions[0].type, '100')}\n width=\"100%\"\n >\n <Typography\n fontSize={1}\n variant=\"pi\"\n textColor={getReleaseColorVariant(release.actions[0].type, '600')}\n >\n {formatMessage(\n {\n id: 'content-releases.content-manager-edit-view.list-releases.title',\n defaultMessage:\n '{isPublish, select, true {Will be published in} other {Will be unpublished in}}',\n },\n { isPublish: release.actions[0].type === 'publish' }\n )}\n </Typography>\n </Box>\n <Flex padding={4} direction=\"column\" gap={2} width=\"100%\" alignItems=\"flex-start\">\n <Typography fontSize={2} fontWeight=\"bold\" variant=\"omega\" textColor=\"neutral700\">\n {release.name}\n </Typography>\n {release.scheduledAt && release.timezone && (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'content-releases.content-manager-edit-view.scheduled.date',\n defaultMessage: '{date} at {time} ({offset})',\n },\n {\n date: formatDate(new Date(release.scheduledAt), {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n timeZone: release.timezone,\n }),\n time: formatTime(new Date(release.scheduledAt), {\n hourCycle: 'h23',\n timeZone: release.timezone,\n }),\n offset: getTimezoneOffset(release.timezone, new Date(release.scheduledAt)),\n }\n )}\n </Typography>\n )}\n {canDeleteAction ? (\n <ReleaseActionMenu.Root hasTriggerBorder>\n <ReleaseActionMenu.EditReleaseItem releaseId={release.id} />\n <ReleaseActionMenu.DeleteReleaseActionItem\n releaseId={release.id}\n actionId={release.actions[0].id}\n />\n </ReleaseActionMenu.Root>\n ) : null}\n </Flex>\n </Flex>\n ))}\n </Flex>\n ),\n };\n};\n\nexport { Panel };\n"],"names":["Panel","model","document","documentId","collectionType","query","useQueryParams","locale","plugins","i18n","edit","options","useDocumentLayout","formatMessage","formatDate","formatTime","useIntl","allowedActions","useRBAC","PERMISSIONS","canRead","canDeleteAction","response","useGetReleasesForEntryQuery","contentType","entryDocumentId","hasEntryAttached","skip","releases","data","getReleaseColorVariant","actionType","shade","window","strapi","isEE","draftAndPublish","length","title","id","defaultMessage","content","_jsx","Flex","direction","alignItems","gap","width","map","release","_jsxs","borderWidth","borderStyle","borderColor","actions","type","overflow","hasRadius","Box","paddingTop","paddingBottom","paddingLeft","paddingRight","background","Typography","fontSize","variant","textColor","isPublish","padding","fontWeight","name","scheduledAt","timezone","date","Date","day","month","year","timeZone","time","hourCycle","offset","getTimezoneOffset","ReleaseActionMenu","Root","hasTriggerBorder","EditReleaseItem","releaseId","DeleteReleaseActionItem","actionId"],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
5
|
+
var designSystem = require('@strapi/design-system');
|
|
6
|
+
var icons = require('@strapi/icons');
|
|
7
|
+
var reactIntl = require('react-intl');
|
|
8
|
+
var reactRouterDom = require('react-router-dom');
|
|
9
|
+
var styledComponents = require('styled-components');
|
|
10
|
+
var ReleasesPage = require('../pages/ReleasesPage.js');
|
|
11
|
+
var homepage = require('../services/homepage.js');
|
|
12
|
+
var RelativeTime = require('./RelativeTime.js');
|
|
13
|
+
|
|
14
|
+
const CellTypography = styledComponents.styled(designSystem.Typography)`
|
|
15
|
+
display: block;
|
|
16
|
+
max-width: 14.4rem;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
text-overflow: ellipsis;
|
|
19
|
+
white-space: nowrap;
|
|
20
|
+
`;
|
|
21
|
+
const ReleasesTable = ({ items })=>{
|
|
22
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
23
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
|
24
|
+
const navigate = reactRouterDom.useNavigate();
|
|
25
|
+
const getEditViewLink = (item)=>{
|
|
26
|
+
return `/plugins/content-releases/${item.id}`;
|
|
27
|
+
};
|
|
28
|
+
const handleRowClick = (item)=>()=>{
|
|
29
|
+
trackUsage('willEditReleaseFromHome');
|
|
30
|
+
const link = getEditViewLink(item);
|
|
31
|
+
navigate(link);
|
|
32
|
+
};
|
|
33
|
+
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Table, {
|
|
34
|
+
colCount: 4,
|
|
35
|
+
rowCount: items?.length ?? 0,
|
|
36
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tbody, {
|
|
37
|
+
children: items?.map((item)=>/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tr, {
|
|
38
|
+
onClick: handleRowClick(item),
|
|
39
|
+
cursor: "pointer",
|
|
40
|
+
children: [
|
|
41
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
42
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(CellTypography, {
|
|
43
|
+
title: item.name,
|
|
44
|
+
variant: "omega",
|
|
45
|
+
textColor: "neutral800",
|
|
46
|
+
children: item.name
|
|
47
|
+
})
|
|
48
|
+
}),
|
|
49
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
50
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
51
|
+
display: "inline-block",
|
|
52
|
+
children: item.status ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Badge, {
|
|
53
|
+
...ReleasesPage.getBadgeProps(item.status),
|
|
54
|
+
children: item.status
|
|
55
|
+
}) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
56
|
+
textColor: "neutral600",
|
|
57
|
+
"aria-hidden": true,
|
|
58
|
+
children: "-"
|
|
59
|
+
})
|
|
60
|
+
})
|
|
61
|
+
}),
|
|
62
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
63
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
64
|
+
variant: "omega",
|
|
65
|
+
textTransform: "capitalize",
|
|
66
|
+
textColor: "neutral600",
|
|
67
|
+
children: item.scheduledAt ? /*#__PURE__*/ jsxRuntime.jsx(RelativeTime.RelativeTime, {
|
|
68
|
+
timestamp: new Date(item.scheduledAt)
|
|
69
|
+
}) : formatMessage({
|
|
70
|
+
id: 'content-releases.pages.Releases.not-scheduled',
|
|
71
|
+
defaultMessage: 'Not scheduled'
|
|
72
|
+
})
|
|
73
|
+
})
|
|
74
|
+
}),
|
|
75
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
76
|
+
onClick: (e)=>e.stopPropagation(),
|
|
77
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
78
|
+
display: "inline-block",
|
|
79
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
|
80
|
+
tag: reactRouterDom.Link,
|
|
81
|
+
to: getEditViewLink(item),
|
|
82
|
+
onClick: ()=>trackUsage('willEditReleaseFromHome'),
|
|
83
|
+
label: formatMessage({
|
|
84
|
+
id: 'content-manager.actions.edit.label',
|
|
85
|
+
defaultMessage: 'Edit'
|
|
86
|
+
}),
|
|
87
|
+
variant: "ghost",
|
|
88
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(icons.Pencil, {})
|
|
89
|
+
})
|
|
90
|
+
})
|
|
91
|
+
})
|
|
92
|
+
]
|
|
93
|
+
}, item.documentId))
|
|
94
|
+
})
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
/* -------------------------------------------------------------------------------------------------
|
|
98
|
+
* Upcoming Releases
|
|
99
|
+
* -----------------------------------------------------------------------------------------------*/ const UpcomingReleasesWidget = ()=>{
|
|
100
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
101
|
+
const { data, isLoading, error } = homepage.useGetUpcomingReleasesQuery();
|
|
102
|
+
if (isLoading) {
|
|
103
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Loading, {});
|
|
104
|
+
}
|
|
105
|
+
if (error || !data) {
|
|
106
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Error, {});
|
|
107
|
+
}
|
|
108
|
+
if (data.length === 0) {
|
|
109
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.NoData, {
|
|
110
|
+
children: formatMessage({
|
|
111
|
+
id: 'content-releases.widget.upcoming-releases.no-data',
|
|
112
|
+
defaultMessage: 'No releases'
|
|
113
|
+
})
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return /*#__PURE__*/ jsxRuntime.jsx(ReleasesTable, {
|
|
117
|
+
items: data
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
exports.UpcomingReleasesWidget = UpcomingReleasesWidget;
|
|
122
|
+
//# sourceMappingURL=Widgets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Widgets.js","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Badge, Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { Release } from '../../../shared/contracts/releases';\nimport { getBadgeProps } from '../pages/ReleasesPage';\nimport { useGetUpcomingReleasesQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nconst CellTypography = styled(Typography)`\n display: block;\n max-width: 14.4rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst ReleasesTable = ({ items }: { items: Release[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (item: Release): string => {\n return `/plugins/content-releases/${item.id}`;\n };\n\n const handleRowClick = (item: Release) => () => {\n trackUsage('willEditReleaseFromHome');\n const link = getEditViewLink(item);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => (\n <Tr onClick={handleRowClick(item)} cursor=\"pointer\" key={item.documentId}>\n <Td>\n <CellTypography title={item.name} variant=\"omega\" textColor=\"neutral800\">\n {item.name}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {item.status ? (\n <Badge {...getBadgeProps(item.status)}>{item.status}</Badge>\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography variant=\"omega\" textTransform=\"capitalize\" textColor=\"neutral600\">\n {item.scheduledAt ? (\n <RelativeTime timestamp={new Date(item.scheduledAt)} />\n ) : (\n formatMessage({\n id: 'content-releases.pages.Releases.not-scheduled',\n defaultMessage: 'Not scheduled',\n })\n )}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(item)}\n onClick={() => trackUsage('willEditReleaseFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Upcoming Releases\n * -----------------------------------------------------------------------------------------------*/\n\nconst UpcomingReleasesWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetUpcomingReleasesQuery();\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-releases.widget.upcoming-releases.no-data',\n defaultMessage: 'No releases',\n })}\n </Widget.NoData>\n );\n }\n\n return <ReleasesTable items={data} />;\n};\n\nexport { UpcomingReleasesWidget };\n"],"names":["CellTypography","styled","Typography","ReleasesTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","item","id","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","name","variant","textColor","Box","display","status","Badge","getBadgeProps","aria-hidden","textTransform","scheduledAt","RelativeTime","timestamp","Date","defaultMessage","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","documentId","UpcomingReleasesWidget","data","isLoading","error","useGetUpcomingReleasesQuery","Widget","Loading","Error","NoData"],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { Widget, useTracking } from '@strapi/admin/strapi-admin';
|
|
3
|
+
import { Typography, Table, Tbody, Tr, Td, Box, Badge, IconButton } from '@strapi/design-system';
|
|
4
|
+
import { Pencil } from '@strapi/icons';
|
|
5
|
+
import { useIntl } from 'react-intl';
|
|
6
|
+
import { useNavigate, Link } from 'react-router-dom';
|
|
7
|
+
import { styled } from 'styled-components';
|
|
8
|
+
import { getBadgeProps } from '../pages/ReleasesPage.mjs';
|
|
9
|
+
import { useGetUpcomingReleasesQuery } from '../services/homepage.mjs';
|
|
10
|
+
import { RelativeTime } from './RelativeTime.mjs';
|
|
11
|
+
|
|
12
|
+
const CellTypography = styled(Typography)`
|
|
13
|
+
display: block;
|
|
14
|
+
max-width: 14.4rem;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
text-overflow: ellipsis;
|
|
17
|
+
white-space: nowrap;
|
|
18
|
+
`;
|
|
19
|
+
const ReleasesTable = ({ items })=>{
|
|
20
|
+
const { formatMessage } = useIntl();
|
|
21
|
+
const { trackUsage } = useTracking();
|
|
22
|
+
const navigate = useNavigate();
|
|
23
|
+
const getEditViewLink = (item)=>{
|
|
24
|
+
return `/plugins/content-releases/${item.id}`;
|
|
25
|
+
};
|
|
26
|
+
const handleRowClick = (item)=>()=>{
|
|
27
|
+
trackUsage('willEditReleaseFromHome');
|
|
28
|
+
const link = getEditViewLink(item);
|
|
29
|
+
navigate(link);
|
|
30
|
+
};
|
|
31
|
+
return /*#__PURE__*/ jsx(Table, {
|
|
32
|
+
colCount: 4,
|
|
33
|
+
rowCount: items?.length ?? 0,
|
|
34
|
+
children: /*#__PURE__*/ jsx(Tbody, {
|
|
35
|
+
children: items?.map((item)=>/*#__PURE__*/ jsxs(Tr, {
|
|
36
|
+
onClick: handleRowClick(item),
|
|
37
|
+
cursor: "pointer",
|
|
38
|
+
children: [
|
|
39
|
+
/*#__PURE__*/ jsx(Td, {
|
|
40
|
+
children: /*#__PURE__*/ jsx(CellTypography, {
|
|
41
|
+
title: item.name,
|
|
42
|
+
variant: "omega",
|
|
43
|
+
textColor: "neutral800",
|
|
44
|
+
children: item.name
|
|
45
|
+
})
|
|
46
|
+
}),
|
|
47
|
+
/*#__PURE__*/ jsx(Td, {
|
|
48
|
+
children: /*#__PURE__*/ jsx(Box, {
|
|
49
|
+
display: "inline-block",
|
|
50
|
+
children: item.status ? /*#__PURE__*/ jsx(Badge, {
|
|
51
|
+
...getBadgeProps(item.status),
|
|
52
|
+
children: item.status
|
|
53
|
+
}) : /*#__PURE__*/ jsx(Typography, {
|
|
54
|
+
textColor: "neutral600",
|
|
55
|
+
"aria-hidden": true,
|
|
56
|
+
children: "-"
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
}),
|
|
60
|
+
/*#__PURE__*/ jsx(Td, {
|
|
61
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
62
|
+
variant: "omega",
|
|
63
|
+
textTransform: "capitalize",
|
|
64
|
+
textColor: "neutral600",
|
|
65
|
+
children: item.scheduledAt ? /*#__PURE__*/ jsx(RelativeTime, {
|
|
66
|
+
timestamp: new Date(item.scheduledAt)
|
|
67
|
+
}) : formatMessage({
|
|
68
|
+
id: 'content-releases.pages.Releases.not-scheduled',
|
|
69
|
+
defaultMessage: 'Not scheduled'
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
}),
|
|
73
|
+
/*#__PURE__*/ jsx(Td, {
|
|
74
|
+
onClick: (e)=>e.stopPropagation(),
|
|
75
|
+
children: /*#__PURE__*/ jsx(Box, {
|
|
76
|
+
display: "inline-block",
|
|
77
|
+
children: /*#__PURE__*/ jsx(IconButton, {
|
|
78
|
+
tag: Link,
|
|
79
|
+
to: getEditViewLink(item),
|
|
80
|
+
onClick: ()=>trackUsage('willEditReleaseFromHome'),
|
|
81
|
+
label: formatMessage({
|
|
82
|
+
id: 'content-manager.actions.edit.label',
|
|
83
|
+
defaultMessage: 'Edit'
|
|
84
|
+
}),
|
|
85
|
+
variant: "ghost",
|
|
86
|
+
children: /*#__PURE__*/ jsx(Pencil, {})
|
|
87
|
+
})
|
|
88
|
+
})
|
|
89
|
+
})
|
|
90
|
+
]
|
|
91
|
+
}, item.documentId))
|
|
92
|
+
})
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
/* -------------------------------------------------------------------------------------------------
|
|
96
|
+
* Upcoming Releases
|
|
97
|
+
* -----------------------------------------------------------------------------------------------*/ const UpcomingReleasesWidget = ()=>{
|
|
98
|
+
const { formatMessage } = useIntl();
|
|
99
|
+
const { data, isLoading, error } = useGetUpcomingReleasesQuery();
|
|
100
|
+
if (isLoading) {
|
|
101
|
+
return /*#__PURE__*/ jsx(Widget.Loading, {});
|
|
102
|
+
}
|
|
103
|
+
if (error || !data) {
|
|
104
|
+
return /*#__PURE__*/ jsx(Widget.Error, {});
|
|
105
|
+
}
|
|
106
|
+
if (data.length === 0) {
|
|
107
|
+
return /*#__PURE__*/ jsx(Widget.NoData, {
|
|
108
|
+
children: formatMessage({
|
|
109
|
+
id: 'content-releases.widget.upcoming-releases.no-data',
|
|
110
|
+
defaultMessage: 'No releases'
|
|
111
|
+
})
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return /*#__PURE__*/ jsx(ReleasesTable, {
|
|
115
|
+
items: data
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export { UpcomingReleasesWidget };
|
|
120
|
+
//# sourceMappingURL=Widgets.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Widgets.mjs","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Badge, Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { Release } from '../../../shared/contracts/releases';\nimport { getBadgeProps } from '../pages/ReleasesPage';\nimport { useGetUpcomingReleasesQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nconst CellTypography = styled(Typography)`\n display: block;\n max-width: 14.4rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst ReleasesTable = ({ items }: { items: Release[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (item: Release): string => {\n return `/plugins/content-releases/${item.id}`;\n };\n\n const handleRowClick = (item: Release) => () => {\n trackUsage('willEditReleaseFromHome');\n const link = getEditViewLink(item);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => (\n <Tr onClick={handleRowClick(item)} cursor=\"pointer\" key={item.documentId}>\n <Td>\n <CellTypography title={item.name} variant=\"omega\" textColor=\"neutral800\">\n {item.name}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {item.status ? (\n <Badge {...getBadgeProps(item.status)}>{item.status}</Badge>\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography variant=\"omega\" textTransform=\"capitalize\" textColor=\"neutral600\">\n {item.scheduledAt ? (\n <RelativeTime timestamp={new Date(item.scheduledAt)} />\n ) : (\n formatMessage({\n id: 'content-releases.pages.Releases.not-scheduled',\n defaultMessage: 'Not scheduled',\n })\n )}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(item)}\n onClick={() => trackUsage('willEditReleaseFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Upcoming Releases\n * -----------------------------------------------------------------------------------------------*/\n\nconst UpcomingReleasesWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetUpcomingReleasesQuery();\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-releases.widget.upcoming-releases.no-data',\n defaultMessage: 'No releases',\n })}\n </Widget.NoData>\n );\n }\n\n return <ReleasesTable items={data} />;\n};\n\nexport { UpcomingReleasesWidget };\n"],"names":["CellTypography","styled","Typography","ReleasesTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","item","id","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","name","variant","textColor","Box","display","status","Badge","getBadgeProps","aria-hidden","textTransform","scheduledAt","RelativeTime","timestamp","Date","defaultMessage","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","documentId","UpcomingReleasesWidget","data","isLoading","error","useGetUpcomingReleasesQuery","Widget","Loading","Error","NoData"],"mappings":"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"}
|
package/dist/admin/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../admin/src/constants.ts"],"sourcesContent":["import type { Permission as StrapiPermission } from '@strapi/admin/strapi-admin';\n\nexport const PERMISSIONS = {\n main: [\n {\n action: 'plugin::content-releases.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n create: [\n {\n action: 'plugin::content-releases.create',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n delete: [\n {\n action: 'plugin::content-releases.delete',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n createAction: [\n {\n action: 'plugin::content-releases.create-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n deleteAction: [\n {\n action: 'plugin::content-releases.delete-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n publish: [\n {\n action: 'plugin::content-releases.publish',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n\nexport const PERMISSIONS_SETTINGS = {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n"],"names":["PERMISSIONS","main","action","subject","id","actionParameters","properties","conditions","create","update","delete","createAction","deleteAction","publish"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../admin/src/constants.ts"],"sourcesContent":["import type { Permission as StrapiPermission } from '@strapi/admin/strapi-admin';\n\nexport const PLUGIN_ID = 'content-releases';\n\nexport const PERMISSIONS = {\n main: [\n {\n action: 'plugin::content-releases.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n create: [\n {\n action: 'plugin::content-releases.create',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n delete: [\n {\n action: 'plugin::content-releases.delete',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n createAction: [\n {\n action: 'plugin::content-releases.create-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n deleteAction: [\n {\n action: 'plugin::content-releases.delete-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n publish: [\n {\n action: 'plugin::content-releases.publish',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n\nexport const PERMISSIONS_SETTINGS = {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n"],"names":["PLUGIN_ID","PERMISSIONS","main","action","subject","id","actionParameters","properties","conditions","create","update","delete","createAction","deleteAction","publish"],"mappings":";;AAEO,MAAMA,YAAY;MAEZC,WAAc,GAAA;IACzBC,IAAM,EAAA;AACJ,QAAA;YACEC,MAAQ,EAAA,+BAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDC,MAAQ,EAAA;AACN,QAAA;YACEN,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDE,MAAQ,EAAA;AACN,QAAA;YACEP,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDG,MAAQ,EAAA;AACN,QAAA;YACER,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDI,YAAc,EAAA;AACZ,QAAA;YACET,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDK,YAAc,EAAA;AACZ,QAAA;YACEV,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDM,OAAS,EAAA;AACP,QAAA;YACEX,MAAQ,EAAA,kCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD;AACH;;;;;"}
|
package/dist/admin/constants.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","sources":["../../admin/src/constants.ts"],"sourcesContent":["import type { Permission as StrapiPermission } from '@strapi/admin/strapi-admin';\n\nexport const PERMISSIONS = {\n main: [\n {\n action: 'plugin::content-releases.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n create: [\n {\n action: 'plugin::content-releases.create',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n delete: [\n {\n action: 'plugin::content-releases.delete',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n createAction: [\n {\n action: 'plugin::content-releases.create-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n deleteAction: [\n {\n action: 'plugin::content-releases.delete-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n publish: [\n {\n action: 'plugin::content-releases.publish',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n\nexport const PERMISSIONS_SETTINGS = {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n"],"names":["PERMISSIONS","main","action","subject","id","actionParameters","properties","conditions","create","update","delete","createAction","deleteAction","publish"],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../admin/src/constants.ts"],"sourcesContent":["import type { Permission as StrapiPermission } from '@strapi/admin/strapi-admin';\n\nexport const PLUGIN_ID = 'content-releases';\n\nexport const PERMISSIONS = {\n main: [\n {\n action: 'plugin::content-releases.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n create: [\n {\n action: 'plugin::content-releases.create',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n delete: [\n {\n action: 'plugin::content-releases.delete',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n createAction: [\n {\n action: 'plugin::content-releases.create-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n deleteAction: [\n {\n action: 'plugin::content-releases.delete-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n publish: [\n {\n action: 'plugin::content-releases.publish',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n\nexport const PERMISSIONS_SETTINGS = {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n"],"names":["PLUGIN_ID","PERMISSIONS","main","action","subject","id","actionParameters","properties","conditions","create","update","delete","createAction","deleteAction","publish"],"mappings":"AAEO,MAAMA,YAAY;MAEZC,WAAc,GAAA;IACzBC,IAAM,EAAA;AACJ,QAAA;YACEC,MAAQ,EAAA,+BAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDC,MAAQ,EAAA;AACN,QAAA;YACEN,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDE,MAAQ,EAAA;AACN,QAAA;YACEP,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDG,MAAQ,EAAA;AACN,QAAA;YACER,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDI,YAAc,EAAA;AACZ,QAAA;YACET,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDK,YAAc,EAAA;AACZ,QAAA;YACEV,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDM,OAAS,EAAA;AACP,QAAA;YACEX,MAAQ,EAAA,kCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD;AACH;;;;"}
|