feat(web): series data layer and /series route
This commit is contained in:
+10
-1
@@ -8,7 +8,8 @@ export type Route =
|
||||
| { kind: "queues" }
|
||||
| { kind: "settings" }
|
||||
| { kind: "search"; query: string }
|
||||
| { kind: "releases"; movieId: number };
|
||||
| { kind: "releases"; movieId: number }
|
||||
| { kind: "series"; seriesId: number };
|
||||
|
||||
export function parseRoute(url: URL): Route {
|
||||
const segments = url.pathname.split("/").filter(Boolean);
|
||||
@@ -31,6 +32,12 @@ export function parseRoute(url: URL): Route {
|
||||
return { kind: "releases", movieId };
|
||||
}
|
||||
}
|
||||
if (segments.length === 2 && segments[0] === "series") {
|
||||
const seriesId = Number(segments[1]);
|
||||
if (Number.isInteger(seriesId) && seriesId > 0) {
|
||||
return { kind: "series", seriesId };
|
||||
}
|
||||
}
|
||||
return { kind: "board" };
|
||||
}
|
||||
|
||||
@@ -48,6 +55,8 @@ export function routePath(route: Route): string {
|
||||
return `/search?q=${encodeURIComponent(route.query)}`;
|
||||
case "releases":
|
||||
return `/movies/${route.movieId}/releases`;
|
||||
case "series":
|
||||
return `/series/${route.seriesId}`;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user