From bec24ad00b9d43b30305e307a06cb4e84818e50a Mon Sep 17 00:00:00 2001
From: gunshiz
Date: Wed, 7 Oct 2026 18:15:27 +0700
Subject: [PATCH] feat : dd up up
---
AGENTS.md | 4 +-
README.md | 18 +++----
backend/discord.ts | 2 +-
components/public/comparison-context.test.tsx | 10 +---
components/public/comparison-context.tsx | 8 +--
components/public/material-poster.tsx | 4 +-
components/public/structured-guide.tsx | 51 +++++++++++--------
components/public/team-search.tsx | 3 +-
components/public/weapon-chart.tsx | 42 +++++++++------
9 files changed, 73 insertions(+), 69 deletions(-)
diff --git a/AGENTS.md b/AGENTS.md
index 07eb65d..b090747 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -2,9 +2,9 @@
# This is NOT the Next.js you know
-This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` (resolved from this file's directory; in monorepos the `next` package may not be visible from the repo root) before writing any code. Heed deprecation notices.
+This version has breaking changes - APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` (resolved from this file's directory; in monorepos the `next` package may not be visible from the repo root) before writing any code. Heed deprecation notices.
-This block is written and re-added by `next dev` — verify at `node_modules/next/dist/server/lib/generate-agent-files.js`. Removing it from a diff only re-creates the uncommitted change; committing it with your work keeps the tree clean.
+This block is written and re-added by `next dev` - verify at `node_modules/next/dist/server/lib/generate-agent-files.js`. Removing it from a diff only re-creates the uncommitted change; committing it with your work keeps the tree clean.
diff --git a/README.md b/README.md
index 2f47cfc..6868b1e 100644
--- a/README.md
+++ b/README.md
@@ -374,18 +374,18 @@ during a rolling update.
This project would not be possible without the open-source software and
community services it builds on:
-- [Lunaris](https://lunaris.moe/) — character, talent, material, and game data
+- [Lunaris](https://lunaris.moe/) - character, talent, material, and game data
used by catalog synchronization and guide tools. Buzz Guide links back to
Lunaris for material references where appropriate.
-- [Next.js](https://nextjs.org/) — application framework.
-- [React](https://react.dev/) — user interface library.
-- [Bun](https://bun.sh/) — JavaScript runtime and package manager.
-- [PostgreSQL](https://www.postgresql.org/) — primary database.
-- [Redis](https://redis.io/) — cache, event transport, and presence state.
-- [Discord.js](https://discord.js.org/) — Discord catalog update worker.
-- [Drizzle ORM](https://orm.drizzle.team/) — database schema and migrations.
+- [Next.js](https://nextjs.org/) - application framework.
+- [React](https://react.dev/) - user interface library.
+- [Bun](https://bun.sh/) - JavaScript runtime and package manager.
+- [PostgreSQL](https://www.postgresql.org/) - primary database.
+- [Redis](https://redis.io/) - cache, event transport, and presence state.
+- [Discord.js](https://discord.js.org/) - Discord catalog update worker.
+- [Drizzle ORM](https://orm.drizzle.team/) - database schema and migrations.
- [shadcn/ui](https://ui.shadcn.com/), [Tailwind CSS](https://tailwindcss.com/),
- [Lucide](https://lucide.dev/), and [dnd-kit](https://dndkit.com/) — interface
+ [Lucide](https://lucide.dev/), and [dnd-kit](https://dndkit.com/) - interface
components, styling, icons, and drag-and-drop interactions.
Special thanks are also available on the site’s [Special Thanks page](https://guide.sudloh.com/thanks).
diff --git a/backend/discord.ts b/backend/discord.ts
index 6b9df28..2d7c9f5 100644
--- a/backend/discord.ts
+++ b/backend/discord.ts
@@ -73,7 +73,7 @@ async function notify(event: string, details: Record = {}): Pro
log("notification_failed", { event, error: "Discord log channel is not sendable." });
return;
}
- await channel.send(`**Lunaris catalog worker — ${event}**\n\`\`\`json\n${JSON.stringify(details, null, 2)}\n\`\`\`${typeof details.messageUrl === "string" ? `\nTrigger message: ${details.messageUrl}` : ""}`);
+ await channel.send(`**Lunaris catalog worker - ${event}**\n\`\`\`json\n${JSON.stringify(details, null, 2)}\n\`\`\`${typeof details.messageUrl === "string" ? `\nTrigger message: ${details.messageUrl}` : ""}`);
} catch (cause) {
log("notification_failed", {
event,
diff --git a/components/public/comparison-context.test.tsx b/components/public/comparison-context.test.tsx
index fdf78b4..c5f84ba 100644
--- a/components/public/comparison-context.test.tsx
+++ b/components/public/comparison-context.test.tsx
@@ -1,6 +1,6 @@
import { renderToStaticMarkup } from "react-dom/server";
import { describe, expect, it } from "vitest";
-import { ComparisonContext, ComparisonValue } from "./comparison-context";
+import { ComparisonContext } from "./comparison-context";
describe("public comparison explanations", () => {
it("keeps each damage metric's 100% rows separate", () => {
@@ -24,12 +24,4 @@ describe("public comparison explanations", () => {
expect(html).not.toContain("Only choice");
});
- it("renders a loss relative to the baseline but never treats an unavailable value as a loss", () => {
- expect(renderToStaticMarkup()).toContain("-1.5%");
- for (const value of [null, "0", "invalid"]) {
- const html = renderToStaticMarkup();
- expect(html).toContain("ไม่มีข้อมูลเปรียบเทียบ");
- expect(html).not.toContain("-100%");
- }
- });
});
diff --git a/components/public/comparison-context.tsx b/components/public/comparison-context.tsx
index e739955..347b6d9 100644
--- a/components/public/comparison-context.tsx
+++ b/components/public/comparison-context.tsx
@@ -1,4 +1,4 @@
-import { comparisonDelta, comparisonReferenceNames } from "@/lib/guides/comparison";
+import { comparisonReferenceNames } from "@/lib/guides/comparison";
type WeaponRows = Parameters[0];
@@ -8,7 +8,6 @@ export function ComparisonContext({ rows, metric }: {
}) {
const references = rows && metric ? comparisonReferenceNames(rows, metric) : [];
return