Refactor: Remove original Dart references from comments across multiple files

- Updated comments in various components, schemas, and repositories to remove references to original Dart files.
- Ensured consistency in documentation while maintaining the context of the code.
This commit is contained in:
2026-06-29 11:31:21 +08:00
parent cdaf3cc365
commit 6e51cb7d16
119 changed files with 116 additions and 128 deletions
@@ -1,7 +1,7 @@
/**
* 底部弹层样式
*
* 原始 Dart: showModalBottomSheet(透明背景,底部白卡 + 顶部圆角 radius28)
*
*/
.scrim {
position: fixed;
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* 通用底部弹层(Bottom Sheet
*
* 原始 Dart: 散落在各处的 `showModalBottomSheet`auth_other_options_dialog 等)
*
*
* 设计目标:
* - portal 渲染到 body
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* 通用 Dialog 基础组件(headless + 简单样式)
*
* 原始 Dart: 散落在各处的 `showDialog` + `Dialog` widgetquota_dialog, pwa_install_dialog,
*
* username_dialog, pronouns_dialog, subscription_dialog, environment_dialog, auth_other_options_dialog,
* facebook_login_dialog, external_browser_dialog)。
*
@@ -2,7 +2,7 @@
/**
* 通用加载指示器
*
* 原始 Dart: lib/ui/core/loading_indicator.dart
*
*
* 行为对齐 Flutter `CircularProgressIndicator`
* - `size`:圆圈直径(默认 32
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* 500px 移动端 ShellServer Component
*
* 原始 Dart: 每个屏幕的 `Scaffold → SafeArea → Center → ConstrainedBox(maxWidth: 500)` 模式
*
* `Breakpoints.mobileMaxWidth = 500.0`)。
*
* 集中封装,调用方仅需 `<MobileShell>{...}</MobileShell>` 即可获得统一的移动端宽度约束。
@@ -2,7 +2,7 @@
/**
* 设置项列表 Section
*
* 原始 Dart: lib/ui/core/settings_section.dart
*
*
* 渲染一组 SettingItem:图标 + 标题 + 副标题/值 + 右侧 chevron + 可选 divider。
*/
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* Auth 屏
*
* 原始 Dart: lib/ui/auth/auth_screen.dart
*
*/
import { useEffect, useSyncExternalStore } from "react";
import { useRouter } from "next/navigation";
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* "OR" 分隔符
*
* 原始 Dart: lib/ui/auth/widgets/auth_divider.dart
*
*/
import styles from "./auth-divider.module.css";
@@ -1,4 +1,4 @@
/* 原始 Dart: lib/ui/auth/widgets/auth_email_panel.dart
/*
*
* 视觉规格(与 Dart 对齐):
* - 顶部:login 模式有 logo + 24px spacerregister 模式两个 24px spacer
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* Email 面板(login/register 内部切换)
*
* 原始 Dart: lib/ui/auth/widgets/auth_email_panel.dart
*
*
* 视觉规格(与 Dart 对齐):
* - login 模式:顶部 24px spacer + logo120h + 24px gap
@@ -1,4 +1,4 @@
/* 原始 Dart: lib/ui/auth/widgets/auth_error_message.dart
/*
*
* 视觉规格(与 Dart 对齐):
* - 细小红字,无背景,无圆角,无边框
@@ -2,7 +2,7 @@
/**
* 错误消息展示
*
* 原始 Dart: lib/ui/auth/widgets/auth_error_message.dart
*
*/
import styles from "./auth-error-message.module.css";
@@ -1,4 +1,4 @@
/* 原始 Dart: lib/ui/auth/widgets/auth_facebook_panel.dart
/*
*
* 视觉规格(与 Dart 对齐):
* - Spacer → logo120h)→ Spacer → Facebook 主按钮 → 链接 → Spacer → 法律
@@ -2,7 +2,7 @@
/**
* Facebook 面板(默认登录面板)
*
* 原始 Dart: lib/ui/auth/widgets/auth_facebook_panel.dart
*
*
* 视觉规格(与 Dart 对齐):
* - Spacer → logo120h)→ Spacer → Facebook 主按钮 → 链接 → Spacer → 法律
@@ -1,4 +1,4 @@
/* 原始 Dart: lib/ui/auth/widgets/auth_legal_text.dart
/*
*
* 视觉规格(与 Dart 对齐):
* - 行:16px 白色圆形复选框 + 12px 富文本
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* 法律声明(Terms / Privacy + 复选框)
*
* 原始 Dart: lib/ui/auth/widgets/auth_legal_text.dart
*
*
* 视觉规格(与 Dart 对齐):
* - 行:16px 白色圆形复选框 + 12px 富文本
@@ -1,4 +1,4 @@
/* 原始 Dart: lib/ui/auth/widgets/auth_other_options_dialog.dart
/*
*
* 视觉规格(与 Dart 对齐):
* - drag handle 40×4 灰胶囊
@@ -1,4 +1,4 @@
/* 原始 Dart: lib/ui/auth/widgets/auth_panel.dart
/*
*
* 视觉规格(与 Dart 对齐):
* - panelShell 包裹整个面板(position: relative
@@ -1,4 +1,4 @@
/* 原始 Dart: lib/ui/auth/widgets/auth_primary_button.dart
/*
*
* 视觉规格(与 Dart 对齐):
* - 46px 高
@@ -2,7 +2,7 @@
/**
* 认证主按钮(粉渐变,46px
*
* 原始 Dart: lib/ui/auth/widgets/auth_primary_button.dart
*
*
* 视觉规格(与 Dart 对齐):
* - 46px 高
@@ -1,4 +1,4 @@
/* 原始 Dart: lib/ui/auth/widgets/auth_social_button.dart
/*
*
* 视觉规格(与 Dart 弹层按钮对齐):
* - 40px 高
@@ -2,7 +2,7 @@
/**
* 社交/选项登录按钮(用于底部弹层)
*
* 原始 Dart: lib/ui/auth/widgets/auth_social_button.dart
*
*
* 视觉规格(与 Dart 弹层按钮对齐):
* - 40px 高
@@ -2,7 +2,7 @@
/**
* 社交登录按钮组合
*
* 原始 Dart: lib/ui/auth/widgets/auth_social_buttons.dart
*
*
* 包含 Facebook / Google / Apple 三个按钮的竖排列表。
*/
@@ -1,4 +1,4 @@
/* 原始 Dart: lib/ui/auth/widgets/auth_text_field.dart
/*
*
* 视觉规格(与 Dart 对齐):
* - 46px 高
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* 通用文本输入框
*
* 原始 Dart: lib/ui/auth/widgets/auth_text_field.dart
*
*/
import {
type ChangeEvent,
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* 认证表单校验
*
* 原始 Dart: lib/ui/auth/widgets/auth_validators.dart
*
*
* 业务行为:
* - validateEmail:使用 Zod (项目已有依赖) 校验邮箱格式
@@ -1,6 +1,6 @@
/* 邮箱登录/注册表单样式
*
* 原始 Dart: lib/ui/auth/widgets/email_login_form.dart
*
*
* 视觉规格(与 Dart 对齐):
* - 字段间距 12pxDart AppSpacing.md
@@ -2,7 +2,7 @@
/**
* 邮箱注册表单
*
* 原始 Dart: lib/ui/auth/widgets/email_register_form.dart
*
*
* 视觉规格(与 Dart 对齐):
* - 4 字段:username / email / password / confirmPassword(顺序与 Dart 一致)
-1
View File
@@ -116,7 +116,6 @@ export function ChatScreen() {
return (
<MobileShell>
<div className={styles.shell}>
{/* 背景图(与原 Dart MobileLayout 一致) */}
<div className={styles.background}>
<Image
src="/images/chat/bg-chatpage.png"
@@ -2,7 +2,7 @@
/**
* AiDisclosureBanner AI 声明横幅
*
* 原始 Dart: lib/ui/chat/widgets/ai_disclosure_banner.dart17 行)
*
*
* 视觉:居中灰色小字 "All content is generated by AI"
* 用途:位于聊天区顶部,声明 AI 生成内容(合规 / 法律要求)
@@ -2,7 +2,7 @@
/**
* BrowserHintOverlay 浏览器提示
*
* 原始 Dart: lib/ui/chat/widgets/browser_hint_overlay.dart76 行)
*
*
* 用途:在应用内浏览器(WebView、微信内置浏览器等)中显示提示,
* 引导用户使用外部浏览器访问。
@@ -2,7 +2,7 @@
/**
* ChatInputTextField 输入框
*
* 原始 Dart: lib/ui/chat/widgets/chat_input_text_field.dart75 行)
*
*
* 行为:
* - 多行输入(min 1 行 / max 5 行 ≈ max-height 120px
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* ChatSendButton 发送按钮
*
* 原始 Dart: lib/ui/chat/widgets/chat_send_button.dart37 行)
*
*
* 视觉:
* - 默认:粉色背景 + 渐变边缘
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* DateHeader 日期分隔条
*
* 原始 Dart: lib/ui/chat/widgets/date_header.dart26 行)
*
*
* 视觉:居中灰色 chip"今天 14:32" / "昨天 09:15" / 具体日期)
*/
@@ -2,7 +2,7 @@
/**
* FullscreenImageViewer 全屏图片查看器
*
* 原始 Dart: lib/ui/chat/widgets/fullscreen_image_viewer.dart76 行)
*
*
* 行为:
* - 全屏黑色背景 + 图片居中(contain)
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* LanguageDialog 语言切换弹窗
*
* 原始 Dart: lib/ui/chat/widgets/language_dialog.dart222 行)
*
*
* 简化版:单语种列表选择(保留可扩展性)
* - 支持未来添加更多语言
@@ -2,7 +2,7 @@
/**
* LottieMessageBubble 动画消息气泡
*
* 原始 Dart: lib/ui/chat/widgets/lottie_message_bubble.dart51 行)
*
*
* 原始实现:使用 lottie SDK 渲染"打字指示器"动画
* 本轮实现:使用 CSS keyframes 模拟(无 lottie 依赖)
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* MessageBubble 消息气泡(容器)
*
* 原始 Dart: lib/ui/chat/widgets/message_bubble.dart52 行)
*
*
* 组成(从左到右):
* - AI[Avatar] [Content] [占位 spacer]
@@ -1,5 +1,5 @@
/* PwaInstallDialog PWA 安装弹窗样式
* 原始 Dart: lib/ui/chat/widgets/pwa_install_dialog.dart
*
* 视觉规格白底 + 大圆角 + 渐变按钮 + 86×86 图标
*/
@@ -2,7 +2,7 @@
/**
* PwaInstallDialog PWA
*
* Dart: lib/ui/chat/widgets/pwa_install_dialog.dart145
*
*
* Web App
* PwaInstallOverlay 3.5s
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* TextBubble
*
* Dart: lib/ui/chat/widgets/text_bubble.dart41
*
*
*
* - AI +
+1 -1
View File
@@ -28,7 +28,7 @@ const VIP_SUBSCRIPTION_URL = `${ROUTES.subscription}?type=vip`;
* - member VIP
* - vip VIP
*
* Dart: lib/ui/sidebar/sidebar_screen.dart + profile_view.dart
*
*/
export function SidebarScreen() {
const router = useRouter();
@@ -1,7 +1,7 @@
/**
* Splash
*
* Dart: lib/ui/splash/widgets/splash_background.dart
*
* `SizedBox.expand(child: Assets.images.picBgHome.image(fit: BoxFit.cover))`
* : /public/images/splash/pic-bg-home.png (kebab-case )
* 原名: pic_bg_home.png (snake_case)
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* Splash
*
* Dart: lib/ui/splash/widgets/splash_loading.dart
*
*
* `<LoadingIndicator>`splash auth
*/
@@ -1,7 +1,7 @@
/**
* Splash
*
* Dart: lib/ui/splash/widgets/splash_progress.dart
*
*
* CSS 0 100% 1.5s
*/
+1 -1
View File
@@ -1,7 +1,7 @@
/**
*
*
* Dart: lib/ui/core/responsive.dart
*
*
* `src/design/breakpoints.css` CSS
* - matchMedia `useBreakpoint` hook
+1 -1
View File
@@ -2,7 +2,7 @@
* API
*
*
* Dart: lib/core/net/service_manager.dart
*
*/
import { AppEnvUtil, type AppEnv } from "@/utils";
@@ -2,7 +2,7 @@
*
*
* 401 token
* Dart: lib/core/net/interceptor/auth_interceptor.dart
*
*/
import type { FetchHook } from "ofetch";
import { ApiPath } from "../../../data/services/api/api_path";
@@ -2,7 +2,7 @@
*
*
* //
* Dart: lib/core/net/interceptor/app_interceptor.dart
*
*/
import type { FetchHook } from "ofetch";
@@ -3,7 +3,7 @@
*
* Authorization: Bearer <token>
* token
* Dart: lib/core/net/interceptor/token_interceptor.dart + token_paths.dart
*
*/
import type { FetchHook } from "ofetch";
import { Logger } from "@/utils";
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* /
*
* Dart: lib/ui/auth/model/auth_mode.dart
*
*/
export const AuthMode = {
Login: "login",
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* Facebook / Email
*
* Dart: lib/ui/auth/model/auth_panel_mode.dart
*
*/
export const AuthPanelMode = {
Facebook: "facebook",
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* Facebook DTO
*
* Dart: FacebookUserData (lib/data/services/auth/auth_platform.dart)
*
*/
import {
FacebookUserDataSchema,
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* discriminated union
*
* Dart: lib/ui/chat/models/chat_list_item.dart
*
*
* 4
* - ai-disclosure AI
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* UI
*
* Dart: lib/ui/chat/models/message.dartfreezed + json_serializable
*
*
* contentisFromAIdateimageUrlaudioUrl
*/
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* UI data/dto/user/user + user_storage view-model
*
* Dart: lib/data/models/user/user.dart
*
*/
import { z } from "zod";
+1 -1
View File
@@ -10,7 +10,7 @@
* - `getCurrentUser` User
* - storage `Logger.warn`
*
* Dart: lib/data/repositories/auth_repository_impl.dart
*
*/
import { AuthApi, authApi } from "@/data/services/api";
import {
@@ -10,7 +10,7 @@
* - `Promise<Result<T>>` Dart `Future<Result<T>>`
*
* `_socialLogin` / `_saveLoginData`
* Dart: lib/data/repositories/auth_repository_impl.dart
*
*/
import type { Result } from "@/utils";
@@ -8,7 +8,7 @@
* - / / / /
*
* `_chatToLocal` / `_localToChat` / `_mapLocalStorageResult`
* Dart: lib/data/repositories/chat_repository_impl.dart
*
*/
import type { Result } from "@/utils";
@@ -6,7 +6,7 @@
* Dart `MetricsRepository` lib/data/repositories/metrics_repository.dart
* - fire-and-forget
*
* Dart: lib/data/repositories/metrics_repository_impl.dart
*
*/
import type { Result } from "@/utils";
@@ -6,7 +6,7 @@
* Dart `UserRepository` lib/data/repositories/user_repository.dart
* - storage AuthRepository
*
* Dart: lib/data/repositories/user_repository_impl.dart
*
*/
import type { Result } from "@/utils";
@@ -4,8 +4,6 @@
* MetricsRepository
*
* / fire-and-forget
*
* Dart: lib/data/repositories/metrics_repository_impl.dart
*/
import { MetricsApi, metricsApi } from "@/data/services/api";
import { AppEvent, PwaEvent } from "@/data/dto/metrics";
-9
View File
@@ -1,13 +1,4 @@
"use client";
/**
* UserRepository
*
* storage
* AuthRepository
*
* Dart: lib/data/repositories/user_repository_impl.dart
*/
import { UserApi, userApi } from "@/data/services/api";
import {
CreditsData,
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* Apple
* Dart: AppleLoginRequest (lib/data/models/auth/auth_request.dart)
*
*/
import { z } from "zod";
@@ -1,6 +1,6 @@
/**
* Facebook
* Dart: FacebookLoginRequest (lib/data/models/auth/auth_request.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* Facebook schema
* Dart: FacebookUserData (lib/data/services/auth/auth_platform.dart)
*
*
* Dart `String?` `null`
*/
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* Facebook ID
* Dart: FbIdLoginRequest (lib/data/models/auth/auth_request.dart)
*
*/
import { z } from "zod";
@@ -1,6 +1,6 @@
/**
* Google
* Dart: GoogleLoginRequest (lib/data/models/auth/auth_request.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: GuestLoginRequest (lib/data/models/auth/auth_request.dart)
*
*/
import { z } from "zod";
@@ -1,6 +1,6 @@
/**
*
* Dart: GuestLoginResponse (lib/data/models/auth/auth_response.dart)
*
*/
import { z } from "zod";
import { UserSchema } from "../user/user";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: LoginRequest (lib/data/models/auth/auth_request.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: LoginResponse (lib/data/models/auth/auth_response.dart)
*
*/
import { z } from "zod";
import { UserSchema } from "../user/user";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* 退
* Dart: LogoutResponse (lib/data/models/auth/auth_response.dart)
*
*/
import { z } from "zod";
@@ -1,6 +1,6 @@
/**
* Token
* Dart: RefreshTokenRequest (lib/data/models/auth/auth_request.dart)
*
*/
import { z } from "zod";
@@ -1,6 +1,6 @@
/**
* Token
* Dart: RefreshTokenResponse (lib/data/models/auth/auth_response.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: RegisterRequest (lib/data/models/auth/auth_request.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: SendCodeRequest (lib/data/models/auth/auth_request.dart)
*
*/
import { z } from "zod";
@@ -1,6 +1,6 @@
/**
*
* Dart: ChatHistoryResponse (lib/data/models/chat/chat_response.dart)
*
*/
import { z } from "zod";
import { ChatMessageSchema } from "./chat_message";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: ChatMessage (lib/data/models/chat/chat_response.dart)
*
*/
import { z } from "zod";
import { ChatImageSchema, ChatLockDetailSchema } from "./chat_payloads";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: ChatSendResponse (lib/data/models/chat/chat_response.dart)
*
*/
import { z } from "zod";
import { ChatImageSchema, ChatLockDetailSchema } from "./chat_payloads";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: ChatSyncData (lib/data/models/chat/chat_sync.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: ChatSyncRequest (lib/data/models/chat/chat_sync.dart)
*
*/
import { z } from "zod";
import { SyncMessageSchema } from "./sync_message";
@@ -1,6 +1,6 @@
/**
*
* Dart: ImageUploadResponse (lib/data/models/chat/image_upload_response.dart)
*
*/
import { z } from "zod";
@@ -1,6 +1,6 @@
/**
*
* Dart: SendMessageRequest (lib/data/models/chat/send_message_request.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* STT
* Dart: SttData (lib/data/models/chat/stt_response.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: SyncMessage (lib/data/models/chat/chat_sync.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: AppEvent (lib/data/models/metrics/app_event.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* PWA
* Dart: PwaEvent (lib/data/models/metrics/pwa_event.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: AvatarData (lib/data/models/user/user.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: CreditsData (lib/data/models/user/user.dart)
*
*/
import { z } from "zod";
@@ -1,6 +1,6 @@
/**
*
* Dart: CreditsHistoryData (lib/data/models/user/user.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: PersonalityTraits (lib/data/models/user/user.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: RecentMemory (lib/data/models/user/recent_memory.dart)
*
*/
import { z } from "zod";
@@ -1,6 +1,6 @@
/**
*
* Dart: UpdateProfileRequest (lib/data/models/user/user.dart)
*
*/
import { z } from "zod";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: User (lib/data/models/user/user.dart)
*
*/
import { z } from "zod";
import { PersonalityTraitsSchema, PERSONALITY_TRAITS_DEFAULTS } from "./personality_traits";
+1 -1
View File
@@ -1,6 +1,6 @@
/**
*
* Dart: UserStatsResponse (lib/data/models/user/user_stats_response.dart)
*
*/
import { z } from "zod";
import { PersonalityTraitsSchema, PERSONALITY_TRAITS_DEFAULTS } from "./personality_traits";
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* API
*
* Dart: lib/data/services/api/api_path.dart
*
*/
export class ApiPath {
private constructor() {}
+1 -1
View File
@@ -2,7 +2,7 @@
* Auth API
*
*
* Dart: lib/data/services/api/auth_api_client.dart
*
*/
import { z } from "zod";
+1 -1
View File
@@ -2,7 +2,7 @@
* Chat API
*
*
* Dart: lib/data/services/api/chat_api_client.dart
*
*/
import { httpClient } from "./http_client";
import { ApiPath } from "./api_path";
+1 -1
View File
@@ -2,7 +2,7 @@
* HTTP
*
* ofetch
* Dart: lib/core/net/backend_service.dart
*
*/
import { ofetch, type $Fetch, type FetchHook } from "ofetch";
import { ApiError, ErrorCode } from "./api_result";

Some files were not shown because too many files have changed in this diff Show More