fix: polish mobile menu titles

This commit is contained in:
TerryM
2026-05-30 22:52:46 +08:00
parent 7ed4cbbeba
commit 3f251710d0
3 changed files with 14 additions and 6 deletions

View File

@@ -65,6 +65,10 @@ function navClassName(active: boolean) {
].join(" "); ].join(" ");
} }
function mobileMenuNavClassName(active: boolean) {
return `${navClassName(active)} w-fit justify-self-start`;
}
const dropdownAnimationClass = "ark-header-popover-enter"; const dropdownAnimationClass = "ark-header-popover-enter";
const headerMenuAnimationClass = "ark-header-menu-enter"; const headerMenuAnimationClass = "ark-header-menu-enter";
@@ -633,7 +637,7 @@ export function PublicLayout() {
</div> </div>
<Link <Link
to="/browse" to="/browse"
className={navClassName(na("browseAll"))} className={mobileMenuNavClassName(na("browseAll"))}
aria-current={na("browseAll") ? "page" : undefined} aria-current={na("browseAll") ? "page" : undefined}
onClick={() => setOpen(false)} onClick={() => setOpen(false)}
> >
@@ -641,7 +645,7 @@ export function PublicLayout() {
</Link> </Link>
<Link <Link
to="/categories" to="/categories"
className={navClassName(na("categories"))} className={mobileMenuNavClassName(na("categories"))}
aria-current={na("categories") ? "page" : undefined} aria-current={na("categories") ? "page" : undefined}
onClick={() => setOpen(false)} onClick={() => setOpen(false)}
> >
@@ -649,7 +653,7 @@ export function PublicLayout() {
</Link> </Link>
<Link <Link
to="/official-recommendations" to="/official-recommendations"
className={navClassName(na("browseRecommended"))} className={mobileMenuNavClassName(na("browseRecommended"))}
aria-current={na("browseRecommended") ? "page" : undefined} aria-current={na("browseRecommended") ? "page" : undefined}
onClick={() => setOpen(false)} onClick={() => setOpen(false)}
> >
@@ -657,7 +661,7 @@ export function PublicLayout() {
</Link> </Link>
<Link <Link
to="/browse?sort=latest" to="/browse?sort=latest"
className={navClassName(na("browseLatest"))} className={mobileMenuNavClassName(na("browseLatest"))}
aria-current={na("browseLatest") ? "page" : undefined} aria-current={na("browseLatest") ? "page" : undefined}
onClick={() => setOpen(false)} onClick={() => setOpen(false)}
> >
@@ -665,7 +669,7 @@ export function PublicLayout() {
</Link> </Link>
<Link <Link
to={popularHref} to={popularHref}
className={navClassName(na("browsePopular"))} className={mobileMenuNavClassName(na("browsePopular"))}
aria-current={na("browsePopular") ? "page" : undefined} aria-current={na("browsePopular") ? "page" : undefined}
onClick={() => setOpen(false)} onClick={() => setOpen(false)}
> >
@@ -673,7 +677,7 @@ export function PublicLayout() {
</Link> </Link>
<Link <Link
to="/favorites" to="/favorites"
className={navClassName(na("favorites"))} className={mobileMenuNavClassName(na("favorites"))}
aria-current={na("favorites") ? "page" : undefined} aria-current={na("favorites") ? "page" : undefined}
onClick={() => setOpen(false)} onClick={() => setOpen(false)}
> >

View File

@@ -2,6 +2,7 @@ import { useEffect, useState } from "react";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { getJSON, itemsOrEmpty, readJSONCache, type Category } from "../../api"; import { getJSON, itemsOrEmpty, readJSONCache, type Category } from "../../api";
import { CategoryIcon } from "../../components/CategoryIcon"; import { CategoryIcon } from "../../components/CategoryIcon";
import { useSetPageTitle } from "../../components/PageTitleContext";
import { SectionHeader } from "../../components/SectionHeader"; import { SectionHeader } from "../../components/SectionHeader";
import { Skeleton } from "../../components/Skeleton"; import { Skeleton } from "../../components/Skeleton";
import { langQuery, useI18n } from "../../i18n"; import { langQuery, useI18n } from "../../i18n";
@@ -32,6 +33,7 @@ function figmaCategoryRank(category: Category): number {
export function CategoriesPage() { export function CategoriesPage() {
const { t, lang } = useI18n(); const { t, lang } = useI18n();
useSetPageTitle(t("categories"));
const [cats, setCats] = useState<Category[]>([]); const [cats, setCats] = useState<Category[]>([]);
const [err, setErr] = useState<string | null>(null); const [err, setErr] = useState<string | null>(null);

View File

@@ -1,5 +1,6 @@
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { getJSON, itemsOrEmpty, readJSONCache, type Category } from "../../api"; import { getJSON, itemsOrEmpty, readJSONCache, type Category } from "../../api";
import { useSetPageTitle } from "../../components/PageTitleContext";
import { RecommendedCard } from "../../components/RecommendedCard"; import { RecommendedCard } from "../../components/RecommendedCard";
import { SectionHeader } from "../../components/SectionHeader"; import { SectionHeader } from "../../components/SectionHeader";
import { langQuery, useI18n } from "../../i18n"; import { langQuery, useI18n } from "../../i18n";
@@ -12,6 +13,7 @@ import {
export function OfficialRecommendationsPage() { export function OfficialRecommendationsPage() {
const { t, lang } = useI18n(); const { t, lang } = useI18n();
useSetPageTitle(t("official"));
const [items, setItems] = useState<PostBackedResource[]>([]); const [items, setItems] = useState<PostBackedResource[]>([]);
const [err, setErr] = useState<string | null>(null); const [err, setErr] = useState<string | null>(null);