feat(admin): land on feed emails page after creation

This commit is contained in:
Julien Herr
2026-05-25 09:14:48 +02:00
parent f44c6c1eda
commit 7019800769
2 changed files with 5 additions and 6 deletions
+4 -2
View File
@@ -151,8 +151,10 @@ describe("Admin Routes", () => {
body: formData, body: formData,
}); });
expect(res.status).toBe(302); // Redirects back to dashboard expect(res.status).toBe(302); // Redirects to new feed's emails page
expect(res.headers.get("Location")).toBe("/admin?view=list#your-feeds"); expect(res.headers.get("Location")).toMatch(
/^\/admin\/feeds\/.+\/emails$/,
);
// Verify feed was created in KV // Verify feed was created in KV
const feedList = (await mockEnv.EMAIL_STORAGE.get( const feedList = (await mockEnv.EMAIL_STORAGE.get(
+1 -4
View File
@@ -70,7 +70,6 @@ feedsRouter.post("/create", async (c) => {
let title: string; let title: string;
let description: string | undefined; let description: string | undefined;
let language: string; let language: string;
let view: string;
let allowedSenders: string[]; let allowedSenders: string[];
let blockedSenders: string[]; let blockedSenders: string[];
let lifetimeHoursRaw: string | undefined; let lifetimeHoursRaw: string | undefined;
@@ -81,7 +80,6 @@ feedsRouter.post("/create", async (c) => {
description = description =
body.description != null ? String(body.description) : undefined; body.description != null ? String(body.description) : undefined;
language = String(body.language ?? "en"); language = String(body.language ?? "en");
view = "list";
allowedSenders = Array.isArray(body.allowedSenders) allowedSenders = Array.isArray(body.allowedSenders)
? normalizeAllowedSenders( ? normalizeAllowedSenders(
(body.allowedSenders as unknown[]).map(String), (body.allowedSenders as unknown[]).map(String),
@@ -99,7 +97,6 @@ feedsRouter.post("/create", async (c) => {
title = formData.get("title")?.toString() || ""; title = formData.get("title")?.toString() || "";
description = formData.get("description")?.toString(); description = formData.get("description")?.toString();
language = formData.get("language")?.toString() || "en"; language = formData.get("language")?.toString() || "en";
view = formData.get("view")?.toString() === "table" ? "table" : "list";
allowedSenders = parseAllowedSenders( allowedSenders = parseAllowedSenders(
formData.get("allowed_senders")?.toString() || "", formData.get("allowed_senders")?.toString() || "",
); );
@@ -138,7 +135,7 @@ feedsRouter.post("/create", async (c) => {
}); });
} }
return c.redirect(`/admin?view=${view}#your-feeds`); return c.redirect(`/admin/feeds/${feedId}/emails`);
} catch (error) { } catch (error) {
logger.error("Error creating feed", { error: String(error) }); logger.error("Error creating feed", { error: String(error) });
if (c.req.header("Content-Type")?.includes("application/json")) { if (c.req.header("Content-Type")?.includes("application/json")) {