From ed94a0f335c59de526dd812aea7616313fe002fd Mon Sep 17 00:00:00 2001 From: sct Date: Thu, 24 Dec 2020 23:42:12 +0900 Subject: [PATCH] fix(frontend): status badge Unavailable renamed to Requested closes #374 --- src/components/MovieDetails/index.tsx | 19 ++--------- .../RequestModal/TvRequestModal.tsx | 30 ++++++++-------- src/components/StatusBadge/index.tsx | 34 +++++++++++-------- src/components/TvDetails/index.tsx | 24 ++----------- src/i18n/globalMessages.ts | 1 + src/i18n/locale/en.json | 1 + 6 files changed, 39 insertions(+), 70 deletions(-) diff --git a/src/components/MovieDetails/index.tsx b/src/components/MovieDetails/index.tsx index f1810f23..c76c9c8b 100644 --- a/src/components/MovieDetails/index.tsx +++ b/src/components/MovieDetails/index.tsx @@ -23,7 +23,6 @@ import { MediaRequestStatus, } from '../../../server/constants/media'; import RequestModal from '../RequestModal'; -import Badge from '../Common/Badge'; import ButtonWithDropdown from '../Common/ButtonWithDropdown'; import axios from 'axios'; import SlideOver from '../Common/SlideOver'; @@ -36,9 +35,9 @@ import RTAudRotten from '../../assets/rt_aud_rotten.svg'; import type { RTRating } from '../../../server/api/rottentomatoes'; import Error from '../../pages/_error'; import Head from 'next/head'; -import globalMessages from '../../i18n/globalMessages'; import ExternalLinkBlock from '../ExternalLinkBlock'; import { sortCrewPriority } from '../../utils/creditHelpers'; +import StatusBadge from '../StatusBadge'; const messages = defineMessages({ releasedate: 'Release Date', @@ -217,21 +216,7 @@ const MovieDetails: React.FC = ({ movie }) => {
- {data.mediaInfo?.status === MediaStatus.AVAILABLE && ( - - {intl.formatMessage(globalMessages.available)} - - )} - {data.mediaInfo?.status === MediaStatus.PROCESSING && ( - - {intl.formatMessage(globalMessages.unavailable)} - - )} - {data.mediaInfo?.status === MediaStatus.PENDING && ( - - {intl.formatMessage(globalMessages.pending)} - - )} +

{data.title}{' '} diff --git a/src/components/RequestModal/TvRequestModal.tsx b/src/components/RequestModal/TvRequestModal.tsx index 9df7b9b2..04a942a0 100644 --- a/src/components/RequestModal/TvRequestModal.tsx +++ b/src/components/RequestModal/TvRequestModal.tsx @@ -223,13 +223,13 @@ const TvRequestModal: React.FC = ({ } >
-
-
-
+
+
+
- - - - @@ -279,7 +279,7 @@ const TvRequestModal: React.FC = ({ ); return ( - - - -
+ = ({ toggleAllSeasons(); } }} - className="group relative inline-flex items-center justify-center flex-shrink-0 h-5 w-10 cursor-pointer focus:outline-none" + className="relative inline-flex items-center justify-center flex-shrink-0 w-10 h-5 cursor-pointer group focus:outline-none" > + {intl.formatMessage(messages.season)} + {intl.formatMessage(messages.numberofepisodes)} + {intl.formatMessage(messages.status)}
+ = ({ > + {season.seasonNumber === 0 ? intl.formatMessage(messages.extras) : intl.formatMessage(messages.seasonnumber, { number: season.seasonNumber, })} + {season.episodeCount} + {!seasonRequest && !mediaSeason && ( {intl.formatMessage(messages.notrequested)} @@ -346,10 +346,8 @@ const TvRequestModal: React.FC = ({ {!mediaSeason && seasonRequest?.status === MediaRequestStatus.APPROVED && ( - - {intl.formatMessage( - globalMessages.unavailable - )} + + {intl.formatMessage(globalMessages.requested)} )} {!mediaSeason && diff --git a/src/components/StatusBadge/index.tsx b/src/components/StatusBadge/index.tsx index f56e8ae3..66037d7f 100644 --- a/src/components/StatusBadge/index.tsx +++ b/src/components/StatusBadge/index.tsx @@ -5,36 +5,40 @@ import { useIntl } from 'react-intl'; import globalMessages from '../../i18n/globalMessages'; interface StatusBadgeProps { - status: MediaStatus; + status?: MediaStatus; } const StatusBadge: React.FC = ({ status }) => { const intl = useIntl(); - return ( - <> - {status === MediaStatus.AVAILABLE && ( + switch (status) { + case MediaStatus.AVAILABLE: + return ( {intl.formatMessage(globalMessages.available)} - )} - {status === MediaStatus.PARTIALLY_AVAILABLE && ( + ); + case MediaStatus.PARTIALLY_AVAILABLE: + return ( {intl.formatMessage(globalMessages.partiallyavailable)} - )} - {status === MediaStatus.PROCESSING && ( - - {intl.formatMessage(globalMessages.unavailable)} + ); + case MediaStatus.PROCESSING: + return ( + + {intl.formatMessage(globalMessages.requested)} - )} - {status === MediaStatus.PENDING && ( + ); + case MediaStatus.PENDING: + return ( {intl.formatMessage(globalMessages.pending)} - )} - - ); + ); + default: + return null; + } }; export default StatusBadge; diff --git a/src/components/TvDetails/index.tsx b/src/components/TvDetails/index.tsx index 4578a519..07ec3ddc 100644 --- a/src/components/TvDetails/index.tsx +++ b/src/components/TvDetails/index.tsx @@ -19,7 +19,6 @@ import { useUser, Permission } from '../../hooks/useUser'; import { TvDetails as TvDetailsType } from '../../../server/models/Tv'; import { MediaStatus } from '../../../server/constants/media'; import RequestModal from '../RequestModal'; -import Badge from '../Common/Badge'; import ButtonWithDropdown from '../Common/ButtonWithDropdown'; import axios from 'axios'; import SlideOver from '../Common/SlideOver'; @@ -32,11 +31,11 @@ import RTAudFresh from '../../assets/rt_aud_fresh.svg'; import RTAudRotten from '../../assets/rt_aud_rotten.svg'; import type { RTRating } from '../../../server/api/rottentomatoes'; import Head from 'next/head'; -import globalMessages from '../../i18n/globalMessages'; import { ANIME_KEYWORD_ID } from '../../../server/api/themoviedb'; import ExternalLinkBlock from '../ExternalLinkBlock'; import { sortCrewPriority } from '../../utils/creditHelpers'; import { Crew } from '../../../server/models/common'; +import StatusBadge from '../StatusBadge'; const messages = defineMessages({ firstAirDate: 'First Air Date', @@ -237,26 +236,7 @@ const TvDetails: React.FC = ({ tv }) => {
- {data.mediaInfo?.status === MediaStatus.AVAILABLE && ( - - {intl.formatMessage(globalMessages.available)} - - )} - {data.mediaInfo?.status === MediaStatus.PARTIALLY_AVAILABLE && ( - - {intl.formatMessage(globalMessages.partiallyavailable)} - - )} - {data.mediaInfo?.status === MediaStatus.PROCESSING && ( - - {intl.formatMessage(globalMessages.unavailable)} - - )} - {data.mediaInfo?.status === MediaStatus.PENDING && ( - - {intl.formatMessage(globalMessages.pending)} - - )} +

{data.name} diff --git a/src/i18n/globalMessages.ts b/src/i18n/globalMessages.ts index 447131e9..08103955 100644 --- a/src/i18n/globalMessages.ts +++ b/src/i18n/globalMessages.ts @@ -5,6 +5,7 @@ const globalMessages = defineMessages({ partiallyavailable: 'Partially Available', processing: 'Processing', unavailable: 'Unavailable', + requested: 'Requested', pending: 'Pending', declined: 'Declined', approved: 'Approved', diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index dde0d6fd..b65e82cf 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -380,6 +380,7 @@ "i18n.partiallyavailable": "Partially Available", "i18n.pending": "Pending", "i18n.processing": "Processing…", + "i18n.requested": "Requested", "i18n.tvshows": "Series", "i18n.unavailable": "Unavailable", "pages.internalServerError": "{statusCode} - Internal Server Error",