diff --git a/src/components/Common/StatusBadgeMini/index.tsx b/src/components/Common/StatusBadgeMini/index.tsx
new file mode 100644
index 00000000..0653c7d8
--- /dev/null
+++ b/src/components/Common/StatusBadgeMini/index.tsx
@@ -0,0 +1,45 @@
+import {
+ BellIcon,
+ CheckIcon,
+ ClockIcon,
+ MinusSmIcon,
+} from '@heroicons/react/solid';
+import { MediaStatus } from '@server/constants/media';
+
+interface StatusBadgeMiniProps {
+ status: MediaStatus;
+ is4k?: boolean;
+}
+
+const StatusBadgeMini = ({ status, is4k = false }: StatusBadgeMiniProps) => {
+ const badgeStyle = ['w-5 rounded-full p-0.5 text-white ring-1'];
+ let indicatorIcon: React.ReactNode;
+
+ switch (status) {
+ case MediaStatus.PROCESSING:
+ badgeStyle.push('bg-indigo-500 ring-indigo-400');
+ indicatorIcon = ;
+ break;
+ case MediaStatus.AVAILABLE:
+ badgeStyle.push('bg-green-500 ring-green-400');
+ indicatorIcon = ;
+ break;
+ case MediaStatus.PENDING:
+ badgeStyle.push('bg-yellow-500 ring-yellow-400');
+ indicatorIcon = ;
+ break;
+ case MediaStatus.PARTIALLY_AVAILABLE:
+ badgeStyle.push('bg-green-500 ring-green-400');
+ indicatorIcon = ;
+ break;
+ }
+
+ return (
+
+
{indicatorIcon}
+ {is4k &&
4K}
+
+ );
+};
+
+export default StatusBadgeMini;
diff --git a/src/components/TvDetails/index.tsx b/src/components/TvDetails/index.tsx
index 0c95a752..50643aa1 100644
--- a/src/components/TvDetails/index.tsx
+++ b/src/components/TvDetails/index.tsx
@@ -10,6 +10,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner';
import PageTitle from '@app/components/Common/PageTitle';
import type { PlayButtonLink } from '@app/components/Common/PlayButton';
import PlayButton from '@app/components/Common/PlayButton';
+import StatusBadgeMini from '@app/components/Common/StatusBadgeMini';
import Tooltip from '@app/components/Common/Tooltip';
import ExternalLinkBlock from '@app/components/ExternalLinkBlock';
import IssueModal from '@app/components/IssueModal';
@@ -561,75 +562,149 @@ const TvDetails = ({ tv }: TvDetailsProps) => {
{((!mSeason &&
request?.status === MediaRequestStatus.APPROVED) ||
mSeason?.status === MediaStatus.PROCESSING) && (
-
- {intl.formatMessage(globalMessages.requested)}
-
+ <>
+
+
+ {intl.formatMessage(globalMessages.requested)}
+
+
+
+
+
+ >
)}
{((!mSeason &&
request?.status === MediaRequestStatus.PENDING) ||
mSeason?.status === MediaStatus.PENDING) && (
-
- {intl.formatMessage(globalMessages.pending)}
-
+ <>
+
+
+ {intl.formatMessage(globalMessages.pending)}
+
+
+
+
+
+ >
)}
{mSeason?.status ===
MediaStatus.PARTIALLY_AVAILABLE && (
-
- {intl.formatMessage(
- globalMessages.partiallyavailable
- )}
-
+ <>
+
+
+ {intl.formatMessage(
+ globalMessages.partiallyavailable
+ )}
+
+
+
+
+
+ >
)}
{mSeason?.status === MediaStatus.AVAILABLE && (
-
- {intl.formatMessage(globalMessages.available)}
-
+ <>
+
+
+ {intl.formatMessage(globalMessages.available)}
+
+
+
+
+
+ >
)}
{((!mSeason4k &&
request4k?.status ===
MediaRequestStatus.APPROVED) ||
mSeason4k?.status4k === MediaStatus.PROCESSING) &&
show4k && (
-
- {intl.formatMessage(messages.status4k, {
- status: intl.formatMessage(
- globalMessages.requested
- ),
- })}
-
+ <>
+
+
+ {intl.formatMessage(messages.status4k, {
+ status: intl.formatMessage(
+ globalMessages.requested
+ ),
+ })}
+
+
+
+
+
+ >
)}
{((!mSeason4k &&
request4k?.status === MediaRequestStatus.PENDING) ||
mSeason?.status4k === MediaStatus.PENDING) &&
show4k && (
-
- {intl.formatMessage(messages.status4k, {
- status: intl.formatMessage(
- globalMessages.pending
- ),
- })}
-
+ <>
+
+
+ {intl.formatMessage(messages.status4k, {
+ status: intl.formatMessage(
+ globalMessages.pending
+ ),
+ })}
+
+
+
+
+
+ >
)}
{mSeason4k?.status4k ===
MediaStatus.PARTIALLY_AVAILABLE &&
show4k && (
-
- {intl.formatMessage(messages.status4k, {
- status: intl.formatMessage(
- globalMessages.partiallyavailable
- ),
- })}
-
+ <>
+
+
+ {intl.formatMessage(messages.status4k, {
+ status: intl.formatMessage(
+ globalMessages.partiallyavailable
+ ),
+ })}
+
+
+
+
+
+ >
)}
{mSeason4k?.status4k === MediaStatus.AVAILABLE &&
show4k && (
-
- {intl.formatMessage(messages.status4k, {
- status: intl.formatMessage(
- globalMessages.available
- ),
- })}
-
+ <>
+
+
+ {intl.formatMessage(messages.status4k, {
+ status: intl.formatMessage(
+ globalMessages.available
+ ),
+ })}
+
+
+
+
+
+ >
)}