feat: align frontend languages with posts api
This commit is contained in:
@@ -8,7 +8,7 @@ function makePost(id: string, isoDate: string): Post {
|
||||
id,
|
||||
categoryId: 1,
|
||||
categorySlug: "x",
|
||||
language: "zh-CN",
|
||||
language: "zh",
|
||||
attachments: [],
|
||||
isRecommended: false,
|
||||
publishedAt: isoDate,
|
||||
@@ -25,7 +25,7 @@ describe("useGroupedByDay", () => {
|
||||
makePost("c", "2026-02-28T01:00:00.000Z"),
|
||||
makePost("d", "2026-05-16T12:00:00.000Z"),
|
||||
];
|
||||
const { result } = renderHook(() => useGroupedByDay(posts, "zh-CN"));
|
||||
const { result } = renderHook(() => useGroupedByDay(posts, "zh"));
|
||||
expect(result.current.length).toBeGreaterThanOrEqual(2);
|
||||
const allIds = result.current.flatMap((g) => g.items.map((p) => p.id));
|
||||
expect(allIds).toEqual(["a", "b", "c", "d"]);
|
||||
@@ -47,7 +47,7 @@ describe("useGroupedByDay", () => {
|
||||
});
|
||||
|
||||
it("returns empty array for empty input", () => {
|
||||
const { result } = renderHook(() => useGroupedByDay([], "zh-CN"));
|
||||
const { result } = renderHook(() => useGroupedByDay([], "zh"));
|
||||
expect(result.current).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -8,9 +8,16 @@ export type DayGroup = {
|
||||
};
|
||||
|
||||
function localeFor(lang: string): string {
|
||||
if (lang === "zh-TW") return "zh-TW";
|
||||
if (lang === "zh-CN") return "zh-CN";
|
||||
return "en-US";
|
||||
const locales: Record<string, string> = {
|
||||
zh: "zh-CN",
|
||||
en: "en-US",
|
||||
ja: "ja-JP",
|
||||
ko: "ko-KR",
|
||||
vi: "vi-VN",
|
||||
id: "id-ID",
|
||||
ms: "ms-MY",
|
||||
};
|
||||
return locales[lang] ?? "en-US";
|
||||
}
|
||||
|
||||
function dayKey(iso: string): string {
|
||||
@@ -28,12 +35,10 @@ function dayLabel(iso: string, lang: string): string {
|
||||
a.getMonth() === b.getMonth() &&
|
||||
a.getDate() === b.getDate();
|
||||
if (isSameDay(d, today)) {
|
||||
if (lang === "en") return "Today";
|
||||
return "今天";
|
||||
return lang === "zh" ? "今天" : "Today";
|
||||
}
|
||||
if (isSameDay(d, yesterday)) {
|
||||
if (lang === "en") return "Yesterday";
|
||||
return "昨天";
|
||||
return lang === "zh" ? "昨天" : "Yesterday";
|
||||
}
|
||||
return new Intl.DateTimeFormat(localeFor(lang), {
|
||||
month: "long",
|
||||
|
||||
@@ -35,6 +35,7 @@ function postMatchesType(post: Post, type: string): boolean {
|
||||
return a.kind === "image" || a.mime.startsWith("image/");
|
||||
if (type === "video")
|
||||
return a.kind === "video" || a.mime.startsWith("video/");
|
||||
if (type === "music") return a.mime.startsWith("audio/") || ext === "mp3";
|
||||
if (type === "pdf") return ext === "pdf" || a.mime === "application/pdf";
|
||||
if (type === "ppt")
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user