优化
This commit is contained in:
truewhile
2026-08-20 20:52:34 +08:00
parent 27c86afff4
commit d4c753b08a
8 changed files with 501 additions and 129 deletions
+6 -2
View File
@@ -20,6 +20,7 @@ export function LibraryPage() {
const location = useLocation()
const role = useAuthStore((s) => s.user?.role)
const [scrapeDialogOpen, setScrapeDialogOpen] = useState(false)
const [manualSeriesScrapeOpen, setManualSeriesScrapeOpen] = useState(false)
const [seriesMetadataEditOpen, setSeriesMetadataEditOpen] = useState(false)
const [manualMovie, setManualMovie] = useState<Media | null>(null)
@@ -81,7 +82,6 @@ export function LibraryPage() {
repairing,
seriesToolBusy,
setScrapeEpisodeArtwork,
handleScrape,
handleRepairRescrape,
handleSeriesSmartScrape,
handleSeriesProbe,
@@ -125,7 +125,7 @@ export function LibraryPage() {
repairing={repairing}
onScrapeEpisodeArtworkChange={setScrapeEpisodeArtwork}
onScan={handleScan}
onScrape={handleScrape}
onScrape={() => setScrapeDialogOpen(true)}
onRepairRescrape={handleRepairRescrape}
/>
@@ -161,6 +161,8 @@ export function LibraryPage() {
/>
<LibraryPageDialogs
scrapeDialogOpen={scrapeDialogOpen}
library={library}
manualSeriesScrapeOpen={manualSeriesScrapeOpen}
seriesMetadataEditOpen={seriesMetadataEditOpen}
manualMovie={manualMovie}
@@ -168,6 +170,8 @@ export function LibraryPage() {
selectedSeriesMediaIDs={selectedSeriesMediaIDs}
libraryType={library?.type}
scrapeEpisodeArtwork={scrapeEpisodeArtwork}
onScrapeEpisodeArtworkChange={setScrapeEpisodeArtwork}
onCloseScrapeDialog={() => setScrapeDialogOpen(false)}
onCloseManualSeriesScrape={() => setManualSeriesScrapeOpen(false)}
onCloseSeriesMetadataEdit={() => setSeriesMetadataEditOpen(false)}
onCloseManualMovie={() => setManualMovie(null)}
+18 -1
View File
@@ -1,9 +1,12 @@
import { ManualScrapeDialog } from '../components/ManualScrapeDialog'
import { MetadataEditDialog } from '../components/MetadataEditDialog'
import type { Media } from '../types'
import { ScrapeMetadataDialog } from '../components/ScrapeMetadataDialog'
import type { Library, Media } from '../types'
import { seriesTitle, type SeriesCard } from '../utils/groupSeries'
type LibraryPageDialogsProps = {
scrapeDialogOpen: boolean
library: Library | null
manualSeriesScrapeOpen: boolean
seriesMetadataEditOpen: boolean
manualMovie: Media | null
@@ -11,6 +14,8 @@ type LibraryPageDialogsProps = {
selectedSeriesMediaIDs: string[]
libraryType?: string
scrapeEpisodeArtwork: boolean
onScrapeEpisodeArtworkChange: (checked: boolean) => void
onCloseScrapeDialog: () => void
onCloseManualSeriesScrape: () => void
onCloseSeriesMetadataEdit: () => void
onCloseManualMovie: () => void
@@ -18,6 +23,8 @@ type LibraryPageDialogsProps = {
}
export function LibraryPageDialogs({
scrapeDialogOpen,
library,
manualSeriesScrapeOpen,
seriesMetadataEditOpen,
manualMovie,
@@ -25,6 +32,8 @@ export function LibraryPageDialogs({
selectedSeriesMediaIDs,
libraryType,
scrapeEpisodeArtwork,
onScrapeEpisodeArtworkChange,
onCloseScrapeDialog,
onCloseManualSeriesScrape,
onCloseSeriesMetadataEdit,
onCloseManualMovie,
@@ -34,6 +43,14 @@ export function LibraryPageDialogs({
return (
<>
<ScrapeMetadataDialog
open={scrapeDialogOpen}
library={library}
scrapeEpisodeArtwork={scrapeEpisodeArtwork}
onScrapeEpisodeArtworkChange={onScrapeEpisodeArtworkChange}
onClose={onCloseScrapeDialog}
onCompleted={onApplied}
/>
<ManualScrapeDialog
open={manualSeriesScrapeOpen}
media={selectedSeries?.rep ?? null}