feat(profile)!: replace sidebar and add avatar navigation

Rename the global Sidebar route, UI, assets, analytics, and payment return context to Profile. Add accessible message-avatar navigation and preserve the source character across auth and logout flows.

BREAKING CHANGE: /sidebar has been removed; use /profile instead.
This commit is contained in:
2026-07-21 18:08:12 +08:00
parent 6cd3a0c2d2
commit 9deb320cf6
67 changed files with 565 additions and 256 deletions
@@ -0,0 +1,45 @@
import { describe, expect, it } from "vitest";
import { shouldKeepPwaInstallEntryVisible } from "../use-pwa-install-entry";
describe("shouldKeepPwaInstallEntryVisible", () => {
it("hides the install entry after accepted installs", () => {
expect(
shouldKeepPwaInstallEntryVisible({
result: "accepted",
isInstalled: true,
canShowInstallEntry: true,
}),
).toBe(false);
});
it("keeps the install entry after dismissed prompts when still available", () => {
expect(
shouldKeepPwaInstallEntryVisible({
result: "dismissed",
isInstalled: false,
canShowInstallEntry: true,
}),
).toBe(true);
});
it("keeps the install entry after unavailable prompts when still available", () => {
expect(
shouldKeepPwaInstallEntryVisible({
result: "unavailable",
isInstalled: false,
canShowInstallEntry: true,
}),
).toBe(true);
});
it("hides the install entry when the platform can no longer show it", () => {
expect(
shouldKeepPwaInstallEntryVisible({
result: "dismissed",
isInstalled: false,
canShowInstallEntry: false,
}),
).toBe(false);
});
});