diff --git a/components/public/structured-guide.tsx b/components/public/structured-guide.tsx index f40ecd4..6f129e3 100644 --- a/components/public/structured-guide.tsx +++ b/components/public/structured-guide.tsx @@ -9,7 +9,7 @@ import { Kbd } from "@/components/ui/kbd"; import { Separator } from "@/components/ui/separator"; import { SiteHeader } from "@/components/public/site-header"; import { LiveRefresh } from "@/components/live-refresh"; -import { rarityGradientClass } from "@/lib/catalog/rarity"; +import { rarityGradientClass, rarityTextClass } from "@/lib/catalog/rarity"; import type { PublicGuide } from "@/lib/guides/queries"; import { cn } from "@/lib/utils"; @@ -49,15 +49,17 @@ function WeaponSection({ guide }: { guide: PublicGuide }) { return (

อาวุธที่แนะนำ

Weapons

-
+
{guide.weapons.map((row, index) => ( - - -
{row.weapon.name}
-
-

{index + 1}. {row.weapon.name} R{row.refinement}

- {row.overallPercent ?

ดาเมทโดยรวม

{metric(row.overallPercent)}

: null} - {row.personalPercent ?

ดาเมทส่วนตัว

{metric(row.personalPercent)}

: null} + + +
+
{row.weapon.name}
+

{index + 1}. {row.weapon.name} R{row.refinement}

+
+
+ {row.overallPercent ?

{metric(row.overallPercent)}

ดาเมททั้งทีม

: null} + {row.personalPercent ?

{metric(row.personalPercent)}

ดาเมจส่วนตัว

: null}
diff --git a/lib/catalog/rarity.test.ts b/lib/catalog/rarity.test.ts index f186eb1..9351cb4 100644 --- a/lib/catalog/rarity.test.ts +++ b/lib/catalog/rarity.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import { rarityGradient, rarityGradientClass } from "@/lib/catalog/rarity"; +import { rarityGradient, rarityGradientClass, rarityTextClass } from "@/lib/catalog/rarity"; describe("catalog rarity backgrounds", () => { it("maps every weapon and artifact rarity to its Tailwind gradient", () => { @@ -12,10 +12,14 @@ describe("catalog rarity backgrounds", () => { expect(rarityGradient(3)).toBe("linear-gradient(90deg, rgba(77, 118, 145, 1) 0%, rgba(71, 135, 165, 1) 100%)"); expect(rarityGradient(4)).toBe("linear-gradient(90deg, rgba(109, 106, 156, 1) 0%, rgba(150, 122, 179, 1) 100%)"); expect(rarityGradient(5)).toBe("linear-gradient(90deg, rgba(166, 123, 52, 1) 0%, rgba(178, 123, 44, 1) 100%)"); + expect(rarityTextClass(3)).toBe("text-[#4D7691]"); + expect(rarityTextClass(4)).toBe("text-[#6D6A9C]"); + expect(rarityTextClass(5)).toBe("text-[#A67B34]"); }); it("uses the neutral equipment background when rarity is unavailable", () => { expect(rarityGradient(null)).toBe("#17383d"); expect(rarityGradientClass(undefined)).toBeUndefined(); + expect(rarityTextClass(undefined)).toBeUndefined(); }); }); diff --git a/lib/catalog/rarity.ts b/lib/catalog/rarity.ts index 9d42655..24c25de 100644 --- a/lib/catalog/rarity.ts +++ b/lib/catalog/rarity.ts @@ -14,6 +14,12 @@ const rarityGradients: Record = { 5: "linear-gradient(90deg, rgba(166, 123, 52, 1) 0%, rgba(178, 123, 44, 1) 100%)", }; +const rarityTextClasses: Record = { + 3: "text-[#4D7691]", + 4: "text-[#6D6A9C]", + 5: "text-[#A67B34]", +}; + export function rarityGradientClass(rarity: number | null | undefined): string | undefined { return rarity ? rarityGradientClasses[rarity] : undefined; } @@ -21,3 +27,7 @@ export function rarityGradientClass(rarity: number | null | undefined): string | export function rarityGradient(rarity: number | null | undefined): string { return (rarity && rarityGradients[rarity]) || "#17383d"; } + +export function rarityTextClass(rarity: number | null | undefined): string | undefined { + return rarity ? rarityTextClasses[rarity] : undefined; +}