refactor(private-zone): use canonical product name
Docker Image / Build and Push Docker Image (push) Successful in 2m7s

This commit is contained in:
Codex
2026-07-23 10:53:41 +08:00
parent 30122a44db
commit 0357fbcaff
105 changed files with 578 additions and 578 deletions
@@ -85,8 +85,8 @@ describe("shared Tailwind components", () => {
<CharacterAvatar
src="/images/avatar/elio.png"
alt="Elio Silvestri"
actionLabel="Open Elio's private zoom"
analyticsKey="chat.open_private_zoom_from_avatar"
actionLabel="Open Elio's private zone"
analyticsKey="chat.open_private_zone_from_avatar"
onClick={() => undefined}
/>,
);
@@ -100,10 +100,10 @@ describe("shared Tailwind components", () => {
expect(characterHtml).toContain('<button type="button"');
expect(characterHtml).toContain(
'aria-label="Open Elio&#x27;s private zoom"',
'aria-label="Open Elio&#x27;s private zone"',
);
expect(characterHtml).toContain(
'data-analytics-key="chat.open_private_zoom_from_avatar"',
'data-analytics-key="chat.open_private_zone_from_avatar"',
);
expect(userHtml).toContain('<button type="button"');
expect(userHtml).toContain('aria-label="Open profile"');
@@ -79,19 +79,19 @@ describe("core Tailwind components", () => {
<AppBottomNav
activeItem="chat"
variant="dark"
privateZoomLabel="Maya Private Zoom"
privateZoneLabel="Maya Private Zone"
onChatClick={() => undefined}
onPrivateZoomClick={() => undefined}
onPrivateZoneClick={() => undefined}
onMenuClick={() => undefined}
/>,
);
const privateZoomHtml = renderToStaticMarkup(
const privateZoneHtml = renderToStaticMarkup(
<AppBottomNav
activeItem="privateZoom"
activeItem="privateZone"
variant="warm"
privateZoomLabel="Maya Private Zoom"
privateZoneLabel="Maya Private Zone"
onChatClick={() => undefined}
onPrivateZoomClick={() => undefined}
onPrivateZoneClick={() => undefined}
onMenuClick={() => undefined}
/>,
);
@@ -101,13 +101,13 @@ describe("core Tailwind components", () => {
expect(chatHtml).toMatch(
/<button[^>]*aria-current="page"[^>]*>.*?<span>Chat<\/span>/,
);
expect(privateZoomHtml).toMatch(/class="[^"]*warm[^"]*"/);
expect(privateZoomHtml).toMatch(
/<button[^>]*aria-current="page"[^>]*>.*?<span>Maya Private Zoom<\/span>/,
expect(privateZoneHtml).toMatch(/class="[^"]*warm[^"]*"/);
expect(privateZoneHtml).toMatch(
/<button[^>]*aria-current="page"[^>]*>.*?<span>Maya Private Zone<\/span>/,
);
expect(chatHtml).toContain('data-analytics-key="navigation.chat"');
expect(privateZoomHtml).toContain(
'data-analytics-key="navigation.private_zoom"',
expect(privateZoneHtml).toContain(
'data-analytics-key="navigation.private_zone"',
);
expect(chatHtml).toContain('data-analytics-key="navigation.menu"');
expect(chatHtml).toContain("<span>Menu</span>");
+11 -11
View File
@@ -4,24 +4,24 @@ import { Camera, Menu as MenuIcon, MessageCircle } from "lucide-react";
import styles from "./app-bottom-nav.module.css";
export type AppBottomNavItem = "chat" | "privateZoom" | "menu";
export type AppBottomNavItem = "chat" | "privateZone" | "menu";
export type AppBottomNavVariant = "warm" | "dark";
export interface AppBottomNavProps {
activeItem?: AppBottomNavItem | null;
variant?: AppBottomNavVariant;
privateZoomLabel: string;
privateZoneLabel: string;
onChatClick: () => void;
onPrivateZoomClick: () => void;
onPrivateZoneClick: () => void;
onMenuClick: () => void;
}
export function AppBottomNav({
activeItem = null,
variant = "warm",
privateZoomLabel,
privateZoneLabel,
onChatClick,
onPrivateZoomClick,
onPrivateZoneClick,
onMenuClick,
}: AppBottomNavProps) {
return (
@@ -39,14 +39,14 @@ export function AppBottomNav({
</button>
<button
type="button"
data-analytics-key="navigation.private_zoom"
data-analytics-label="Private Zoom navigation"
className={getButtonClass(activeItem === "privateZoom")}
aria-current={activeItem === "privateZoom" ? "page" : undefined}
onClick={onPrivateZoomClick}
data-analytics-key="navigation.private_zone"
data-analytics-label="Private Zone navigation"
className={getButtonClass(activeItem === "privateZone")}
aria-current={activeItem === "privateZone" ? "page" : undefined}
onClick={onPrivateZoneClick}
>
<Camera size={20} aria-hidden="true" />
<span>{privateZoomLabel}</span>
<span>{privateZoneLabel}</span>
</button>
<button
type="button"