Add Episodes panel: search a series, browse a season's episode list

New src-tauri/src/episodes.rs exposes browse_episodes, reusing the
existing AnyTvClient::fetch_season machinery Fetch Data already built
(via a build_tv_client helper factored out of metadata.rs) so this
panel needs no credentials of its own - it reads whatever TV source
(TMDB/TVmaze/OMDb) is already configured in Fetch Data Settings.

New EpisodesPanel.tsx/.css: series name + season stepper, an episode
list (number/title/air date), and a Copy list button that copies the
season as plain text. Wired into App.tsx's sidebar routing as the
second stub panel (after Subtitles) to become a real screen.

145/145 Rust tests passing (+1), npm run build clean, 15/15 Playwright
checks against npm run dev (mocked Tauri bridge) covering search,
the empty-season case, a not-found series, the season stepper, Copy
list, and the blank-query guard.
This commit is contained in:
Renamr Scaffold
2026-08-29 15:35:27 +00:00
parent b47d28375b
commit ed26391651
8 changed files with 462 additions and 22 deletions
+3
View File
@@ -2,6 +2,7 @@ import { useState } from "react";
import Sidebar, { PANELS } from "./components/Sidebar";
import Header from "./components/Header";
import RenamePanel from "./components/RenamePanel";
import EpisodesPanel from "./components/EpisodesPanel";
import SubtitlesPanel from "./components/SubtitlesPanel";
import PanelStub from "./components/PanelStub";
@@ -17,6 +18,8 @@ export default function App() {
<div className="main-content">
{selected === "rename" ? (
<RenamePanel />
) : selected === "episodes" ? (
<EpisodesPanel />
) : selected === "subtitles" ? (
<SubtitlesPanel />
) : (