summaryrefslogtreecommitdiff
path: root/app/routes/band-by-slug.tsx
diff options
context:
space:
mode:
authoryyamashita <yyamashita@mosquit.one>2026-05-09 00:27:19 +0900
committeryyamashita <yyamashita@mosquit.one>2026-05-09 00:27:19 +0900
commitb8d24d292d99c8da285092ce923b5e2b546d8f45 (patch)
treec8cde36d7a109dd8eb75b62a6aefd81e80d1f5ee /app/routes/band-by-slug.tsx
parent859e6d8ed530daac1180c7b03182d9389be084dc (diff)
Implement band/artist management with version history
Full CRUD for bands and artists: UUID + slug URLs, dynamic link editor, band-artist associations with roles, per-edit revision snapshots (message + IP). Add README and CLAUDE.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'app/routes/band-by-slug.tsx')
-rw-r--r--app/routes/band-by-slug.tsx13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/routes/band-by-slug.tsx b/app/routes/band-by-slug.tsx
new file mode 100644
index 0000000..9b432bf
--- /dev/null
+++ b/app/routes/band-by-slug.tsx
@@ -0,0 +1,13 @@
+import { data, redirect } from "react-router";
+import type { LoaderFunctionArgs } from "react-router";
+import { getBandBySlug } from "~/lib/db.server";
+
+export async function loader({ params }: LoaderFunctionArgs) {
+ const band = getBandBySlug(params.slug!);
+ if (!band) throw data("Not found", { status: 404 });
+ return redirect(`/bands/of/${band.id}`);
+}
+
+export default function BandBySlug() {
+ return null;
+}