diff --git a/app/frontend/src/components/LibraryEntryEditor.tsx b/app/frontend/src/components/LibraryEntryEditor.tsx index e91ac04..96b1c27 100644 --- a/app/frontend/src/components/LibraryEntryEditor.tsx +++ b/app/frontend/src/components/LibraryEntryEditor.tsx @@ -88,16 +88,16 @@ function ProgressFields({ return ( <> {units.includes('season') && ( - + )} {units.includes('episode') && ( - + )} {units.includes('chapter') && ( - + )} {units.includes('volume') && ( - + )} {units.includes('hours') && ( @@ -151,6 +151,9 @@ export function LibraryEntryEditor({ const [error, setError] = useState(''); const [removing, setRemoving] = useState(false); const unavailableSources = entry.item.sources.filter((source) => !source.active); + const unavailablePreferredSource = unavailableSources.find( + (source) => source.key === entry.preferredSource, + ); const finished = entry.state === 'completed' || entry.state === 'dropped'; const needsPlatform = entry.item.category === 'game' && entry.progress.platforms.length === 0; @@ -273,6 +276,12 @@ export function LibraryEntryEditor({

) )} + {entry.notificationsEnabled && unavailablePreferredSource && ( +

+ Paused while {unavailablePreferredSource.name} is unavailable. Choose another preferred + source or Automatic to get notifications from it instead. +

+ )} {entry.notificationsEnabled && emailsOff && (

Emails for {categoryLabels[entry.item.category].toLowerCase()} are off in{' '} diff --git a/app/frontend/src/components/ReviewEditor.tsx b/app/frontend/src/components/ReviewEditor.tsx index 6265242..e4e9a00 100644 --- a/app/frontend/src/components/ReviewEditor.tsx +++ b/app/frontend/src/components/ReviewEditor.tsx @@ -4,15 +4,14 @@ import { useAuth } from '../auth'; import { reviewBodyLimit, type OwnReview } from '../reviews'; import { ConfirmDialog } from './ConfirmDialog'; import { ReviewCard } from './ReviewCard'; +import { Toggle } from './Toggle'; export function ReviewEditor({ - defaultVisibility, itemId, onClose, onSaved, review, }: { - defaultVisibility: OwnReview['visibility']; itemId: string; onClose: () => void; onSaved: (review: OwnReview | null) => void; @@ -23,7 +22,7 @@ export function ReviewEditor({ const [title, setTitle] = useState(review?.title ?? ''); const [body, setBody] = useState(review?.body ?? ''); const [containsSpoilers, setContainsSpoilers] = useState(review?.containsSpoilers ?? false); - const [visibility, setVisibility] = useState(review?.visibility ?? defaultVisibility); + const [visibility, setVisibility] = useState(review?.visibility ?? 'public'); const [preview, setPreview] = useState(false); const [busy, setBusy] = useState(false); const [error, setError] = useState(''); @@ -98,18 +97,13 @@ export function ReviewEditor({ )} -

- -