No explicit any

This commit is contained in:
2025-12-17 20:10:00 +00:00
parent 18cf0cc140
commit 89001f53da
18 changed files with 257 additions and 205 deletions

View File

@@ -194,7 +194,7 @@ export default function EntriesExplorer({
<button className="btn btn-primary" type="submit" disabled={loading}>Search</button>
</div>
<div className="col-auto">
<select className="form-select" value={genreId as any} onChange={(e) => { setGenreId(e.target.value === "" ? "" : Number(e.target.value)); setPage(1); }}>
<select className="form-select" value={genreId} onChange={(e) => { setGenreId(e.target.value === "" ? "" : Number(e.target.value)); setPage(1); }}>
<option value="">Genre</option>
{genres.map((g) => (
<option key={g.id} value={g.id}>{g.name}</option>
@@ -202,7 +202,7 @@ export default function EntriesExplorer({
</select>
</div>
<div className="col-auto">
<select className="form-select" value={languageId as any} onChange={(e) => { setLanguageId(e.target.value); setPage(1); }}>
<select className="form-select" value={languageId} onChange={(e) => { setLanguageId(e.target.value); setPage(1); }}>
<option value="">Language</option>
{languages.map((l) => (
<option key={l.id} value={l.id}>{l.name}</option>
@@ -210,7 +210,7 @@ export default function EntriesExplorer({
</select>
</div>
<div className="col-auto">
<select className="form-select" value={machinetypeId as any} onChange={(e) => { setMachinetypeId(e.target.value === "" ? "" : Number(e.target.value)); setPage(1); }}>
<select className="form-select" value={machinetypeId} onChange={(e) => { setMachinetypeId(e.target.value === "" ? "" : Number(e.target.value)); setPage(1); }}>
<option value="">Machine</option>
{machines.map((m) => (
<option key={m.id} value={m.id}>{m.name}</option>
@@ -218,7 +218,7 @@ export default function EntriesExplorer({
</select>
</div>
<div className="col-auto">
<select className="form-select" value={sort} onChange={(e) => { setSort(e.target.value as any); setPage(1); }}>
<select className="form-select" value={sort} onChange={(e) => { setSort(e.target.value as "title" | "id_desc"); setPage(1); }}>
<option value="title">Sort: Title</option>
<option value="id_desc">Sort: Newest</option>
</select>

View File

@@ -12,5 +12,5 @@ export default async function Page({ params }: { params: Promise<{ id: string }>
const numericId = Number(id);
const data = await getEntryById(numericId);
// For simplicity, let the client render a Not Found state if null
return <EntryDetailClient data={data as any} />;
return <EntryDetailClient data={data} />;
}

View File

@@ -13,7 +13,7 @@ export default async function Page({ searchParams }: { searchParams: Promise<{ [
const genreId = (Array.isArray(sp.genreId) ? sp.genreId[0] : sp.genreId) ?? "";
const languageId = (Array.isArray(sp.languageId) ? sp.languageId[0] : sp.languageId) ?? "";
const machinetypeId = (Array.isArray(sp.machinetypeId) ? sp.machinetypeId[0] : sp.machinetypeId) ?? "";
const sort = ((Array.isArray(sp.sort) ? sp.sort[0] : sp.sort) as any) ?? "id_desc";
const sort = ((Array.isArray(sp.sort) ? sp.sort[0] : sp.sort) ?? "id_desc") as "title" | "id_desc";
const q = (Array.isArray(sp.q) ? sp.q[0] : sp.q) ?? "";
const [initial, genres, langs, machines] = await Promise.all([
@@ -33,10 +33,10 @@ export default async function Page({ searchParams }: { searchParams: Promise<{ [
return (
<EntriesExplorer
initial={initial as any}
initialGenres={genres as any}
initialLanguages={langs as any}
initialMachines={machines as any}
initial={initial}
initialGenres={genres}
initialLanguages={langs}
initialMachines={machines}
initialUrlState={{ q, page, genreId, languageId, machinetypeId, sort }}
/>
);