Merge branch 'dev' into test

This commit is contained in:
2026-06-16 16:42:57 +08:00
7 changed files with 23 additions and 9498 deletions
-9461
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -22,6 +22,7 @@
"classnames": "^2.5.1",
"dexie": "^4.4.3",
"lottie-react": "^2.4.1",
"lucide-react": "^1.18.0",
"next": "16.2.7",
"next-auth": "^4.24.14",
"ofetch": "^1.5.1",
+12
View File
@@ -26,6 +26,9 @@ importers:
lottie-react:
specifier: ^2.4.1
version: 2.4.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
lucide-react:
specifier: ^1.18.0
version: 1.18.0(react@19.2.4)
next:
specifier: 16.2.7
version: 16.2.7(@babel/core@7.29.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -2051,6 +2054,11 @@ packages:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
lucide-react@1.18.0:
resolution: {integrity: sha512-LZDb7H/0YfM+RJncD0hDQRCAu+vSGODqpe35TuVI8EuXaRjkczbsx7p8dY4J87F/MUSj6bpYqeI8nw8qXaAdmA==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
@@ -4966,6 +4974,10 @@ snapshots:
dependencies:
yallist: 4.0.0
lucide-react@1.18.0(react@19.2.4):
dependencies:
react: 19.2.4
magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
-10
View File
@@ -1,16 +1,6 @@
"use client";
/**
* switchFacebook / Email+
*
* Dart: lib/ui/auth/widgets/auth_panel.dart
*
*
* - `authPanelMode`"facebook" | "email" XState
* - `AuthPanelModeChanged`
* - 40×40 top:20, left:20
* - facebook `router.back()`
* - email `AuthPanelModeChanged(facebook)`
* - Email Facebook `AuthPanelModeChanged(facebook)`
*/
import { useRouter } from "next/navigation";
+5 -14
View File
@@ -2,15 +2,10 @@
/**
* ChatHeader
*
* Dart: lib/ui/chat/widgets/chat_header.dart112
*
*
* - isGuest=true `GuestBanner` /auth
* - isGuest=false `MenuButton` push /sidebar
*
* push
* Dart `MenuButton(onTap: _goSidebar)`
* lucide-react <Lock /> banner+ <Menu />
* tree-shakablecurrentColor color
*/
import { Lock, Menu } from "lucide-react";
import { useRouter } from "next/navigation";
import { ROUTES } from "@/router/routes";
@@ -33,9 +28,7 @@ export function ChatHeader({ isGuest }: ChatHeaderProps) {
onClick={() => router.push(ROUTES.auth)}
aria-label="Sign up to unlock more features"
>
<span className={styles.guestBannerIcon} aria-hidden="true">
🔒
</span>
<Lock className={styles.guestBannerIcon} size={16} aria-hidden="true" />
<span>Sign up to unlock more features</span>
</button>
</header>
@@ -52,9 +45,7 @@ export function ChatHeader({ isGuest }: ChatHeaderProps) {
onClick={() => router.push(ROUTES.sidebar)}
aria-label="Menu"
>
<span className={styles.menuIcon} aria-hidden="true">
</span>
<Menu className={styles.menuIcon} size={24} aria-hidden="true" />
</button>
</div>
</header>
+5 -3
View File
@@ -7,7 +7,11 @@
*
* - +
* - / primaryGradientaccent
*
* lucide-react <Send />tree-shakablecurrentColor color
*/
import { ArrowUp, Send } from "lucide-react";
import styles from "./chat-send-button.module.css";
export interface ChatSendButtonProps {
@@ -24,9 +28,7 @@ export function ChatSendButton({ disabled, onClick }: ChatSendButtonProps) {
onClick={onClick}
aria-label="Send message"
>
<span className={styles.icon} aria-hidden="true">
</span>
<ArrowUp className={styles.icon} size={24} aria-hidden="true" />
</button>
);
}
@@ -1,16 +1,6 @@
"use client";
/**
* Splash
*
* splash UI
* - `useAuthState` / `useAuthDispatch` isLoading +
* - Skip = `AuthGuestLoginSubmitted`
* - `AuthFacebookLoginSubmitted` NextAuth
*
*
* - `AuthGuestLoginSubmitted` / `AuthFacebookLoginSubmitted`
* - `pendingRedirect: true` onDone auth-machine.ts `onLoginSuccess` helper
* - splash-screen flag=true + loginStatus notLoggedIn /chat
*/
import { useAuthDispatch, useAuthState } from "@/stores/auth/auth-context";
import { LoadingIndicator } from "@/app/_components/core/loading-indicator";