mirror of
https://github.com/strapi/strapi.git
synced 2025-12-28 15:44:59 +00:00
fix(content-releases): CM add Release add content when there are no releases (#19096)
* add the message when there are not releases in the Add to releases modal with a button to the releases list page * fix review comments * apply review comments
This commit is contained in:
parent
b3e0f9335c
commit
1832540151
@ -14,8 +14,10 @@ import {
|
||||
Typography,
|
||||
ModalFooter,
|
||||
} from '@strapi/design-system';
|
||||
import { LinkButton } from '@strapi/design-system/v2';
|
||||
import {
|
||||
CheckPermissions,
|
||||
NoContent,
|
||||
useAPIErrorHandler,
|
||||
useCMEditViewDataManager,
|
||||
useNotification,
|
||||
@ -24,7 +26,7 @@ import { Plus } from '@strapi/icons';
|
||||
import { isAxiosError } from 'axios';
|
||||
import { Formik, Form } from 'formik';
|
||||
import { useIntl } from 'react-intl';
|
||||
import { useParams } from 'react-router-dom';
|
||||
import { useParams, Link as ReactRouterLink } from 'react-router-dom';
|
||||
import * as yup from 'yup';
|
||||
|
||||
import { CreateReleaseAction } from '../../../shared/contracts/release-actions';
|
||||
@ -60,6 +62,34 @@ interface AddActionToReleaseModalProps {
|
||||
entryId: GetContentTypeEntryReleases.Request['query']['entryId'];
|
||||
}
|
||||
|
||||
const NoReleases = () => {
|
||||
const { formatMessage } = useIntl();
|
||||
return (
|
||||
<NoContent
|
||||
content={{
|
||||
id: 'content-releases.content-manager-edit-view.add-to-release.no-releases-message',
|
||||
defaultMessage:
|
||||
'No available releases. Open the list of releases and create a new one from there.',
|
||||
}}
|
||||
action={
|
||||
<LinkButton
|
||||
// @ts-expect-error - types are not inferred correctly through the as prop.
|
||||
to={{
|
||||
pathname: '/plugins/content-releases',
|
||||
}}
|
||||
as={ReactRouterLink}
|
||||
variant="secondary"
|
||||
>
|
||||
{formatMessage({
|
||||
id: 'content-releases.content-manager-edit-view.add-to-release.redirect-button',
|
||||
defaultMessage: 'Open the list of releases',
|
||||
})}
|
||||
</LinkButton>
|
||||
}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
const AddActionToReleaseModal = ({
|
||||
handleClose,
|
||||
contentTypeUid,
|
||||
@ -138,42 +168,46 @@ const AddActionToReleaseModal = ({
|
||||
{({ values, setFieldValue }) => {
|
||||
return (
|
||||
<Form>
|
||||
<ModalBody>
|
||||
<Flex direction="column" alignItems="stretch" gap={2}>
|
||||
<Box paddingBottom={6}>
|
||||
<SingleSelect
|
||||
required
|
||||
label={formatMessage({
|
||||
id: 'content-releases.content-manager-edit-view.add-to-release.select-label',
|
||||
defaultMessage: 'Select a release',
|
||||
{releases?.length === 0 ? (
|
||||
<NoReleases />
|
||||
) : (
|
||||
<ModalBody>
|
||||
<Flex direction="column" alignItems="stretch" gap={2}>
|
||||
<Box paddingBottom={6}>
|
||||
<SingleSelect
|
||||
required
|
||||
label={formatMessage({
|
||||
id: 'content-releases.content-manager-edit-view.add-to-release.select-label',
|
||||
defaultMessage: 'Select a release',
|
||||
})}
|
||||
placeholder={formatMessage({
|
||||
id: 'content-releases.content-manager-edit-view.add-to-release.select-placeholder',
|
||||
defaultMessage: 'Select',
|
||||
})}
|
||||
onChange={(value) => setFieldValue('releaseId', value)}
|
||||
value={values.releaseId}
|
||||
>
|
||||
{releases?.map((release) => (
|
||||
<SingleSelectOption key={release.id} value={release.id}>
|
||||
{release.name}
|
||||
</SingleSelectOption>
|
||||
))}
|
||||
</SingleSelect>
|
||||
</Box>
|
||||
<FieldLabel>
|
||||
{formatMessage({
|
||||
id: 'content-releases.content-manager-edit-view.add-to-release.action-type-label',
|
||||
defaultMessage: 'What do you want to do with this entry?',
|
||||
})}
|
||||
placeholder={formatMessage({
|
||||
id: 'content-releases.content-manager-edit-view.add-to-release.select-placeholder',
|
||||
defaultMessage: 'Select',
|
||||
})}
|
||||
onChange={(value) => setFieldValue('releaseId', value)}
|
||||
value={values.releaseId}
|
||||
>
|
||||
{releases?.map((release) => (
|
||||
<SingleSelectOption key={release.id} value={release.id}>
|
||||
{release.name}
|
||||
</SingleSelectOption>
|
||||
))}
|
||||
</SingleSelect>
|
||||
</Box>
|
||||
<FieldLabel>
|
||||
{formatMessage({
|
||||
id: 'content-releases.content-manager-edit-view.add-to-release.action-type-label',
|
||||
defaultMessage: 'What do you want to do with this entry?',
|
||||
})}
|
||||
</FieldLabel>
|
||||
<ReleaseActionOptions
|
||||
selected={values.type}
|
||||
handleChange={(e) => setFieldValue('type', e.target.value)}
|
||||
name="type"
|
||||
/>
|
||||
</Flex>
|
||||
</ModalBody>
|
||||
</FieldLabel>
|
||||
<ReleaseActionOptions
|
||||
selected={values.type}
|
||||
handleChange={(e) => setFieldValue('type', e.target.value)}
|
||||
name="type"
|
||||
/>
|
||||
</Flex>
|
||||
</ModalBody>
|
||||
)}
|
||||
<ModalFooter
|
||||
startActions={
|
||||
<Button onClick={handleClose} variant="tertiary" name="cancel">
|
||||
|
||||
@ -6,6 +6,8 @@
|
||||
"content-manager-edit-view.add-to-release.continue-button": "Continue",
|
||||
"content-manager-edit-view.add-to-release": "Add to release",
|
||||
"content-manager-edit-view.add-to-release.notification.success": "Entry added to release",
|
||||
"content-manager-edit-view.add-to-release.no-releases-message": "No available releases. Open the list of releases and create a new one from there.",
|
||||
"content-manager-edit-view.add-to-release.redirect-button": "Open the list of releases",
|
||||
"content-manager-edit-view.list-releases.title": "{isPublish, select, true {Will be published in} other {Will be unpublished in}}",
|
||||
"content-manager-edit-view.remove-from-release": "Remove from release",
|
||||
"content-manager-edit-view.remove-from-release.notification.success": "Entry removed from release",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user