T #1 Tangym 2026-08-25 17:36 client/ ├── electron/ │ ├── main/ │ │ ├── main.ts │ │ ├── window-manager.ts │ │ ├── tray.ts │ │ ├── auto-updater.ts │ │ └── deep-link.ts │ ├── ipc/ │ │ ├── auth-handler.ts │ │ ├── chat-handler.ts │ │ ├── file-handler.ts │ │ └── system-handler.ts │ ├── services/ │ │ ├── local-storage.ts │ │ ├── notification-service.ts │ │ ├── audio-service.ts │ │ ├── screen-share.ts │ │ └── crash-reporter.ts │ └── preload/ │ └── preload.ts │ ├── renderer/ │ ├── src/ │ │ ├── app/ │ │ │ ├── App.tsx │ │ │ ├── router.tsx │ │ │ └── providers.tsx │ │ │ │ │ ├── pages/ │ │ │ ├── auth/ │ │ │ │ ├── LoginPage/ │ │ │ │ ├── RegisterPage/ │ │ │ │ └── ForgotPasswordPage/ │ │ │ ├── main/ │ │ │ │ ├── HomePage/ │ │ │ │ ├── ChannelPage/ │ │ │ │ ├── DMPage/ │ │ │ │ └── VoicePage/ │ │ │ ├── settings/ │ │ │ │ ├── AccountPage/ │ │ │ │ ├── PrivacyPage/ │ │ │ │ ├── AppearancePage/ │ │ │ │ ├── VoiceSettingsPage/ │ │ │ │ └── KeybindsPage/ │ │ │ ├── profile/ │ │ │ └── discover/ │ │ │ │ │ ├── components/ │ │ │ ├── ui/ │ │ │ │ ├── Button/ │ │ │ │ ├── Input/ │ │ │ │ ├── Dialog/ │ │ │ │ ├── Tooltip/ │ │ │ │ ├── Avatar/ │ │ │ │ ├── Badge/ │ │ │ │ ├── Chip/ │ │ │ │ ├── List/ │ │ │ │ └── Menu/ │ │ │ ├── chat/ │ │ │ │ ├── MessageList/ │ │ │ │ ├── MessageItem/ │ │ │ │ ├── MessageInput/ │ │ │ │ ├── EmojiPicker/ │ │ │ │ ├── StickerPanel/ │ │ │ │ ├── FileUpload/ │ │ │ │ ├── MentionList/ │ │ │ │ └── ReactionPicker/ │ │ │ ├── server/ │ │ │ │ ├── ServerSidebar/ │ │ │ │ ├── ChannelList/ │ │ │ │ ├── MemberList/ │ │ │ │ ├── ServerHeader/ │ │ │ │ └── RoleEditor/ │ │ │ ├── voice/ │ │ │ │ ├── VoicePanel/ │ │ │ │ ├── ParticipantTile/ │ │ │ │ ├── VoiceControls/ │ │ │ │ └── SoundBoard/ │ │ │ ├── user/ │ │ │ │ ├── UserPopover/ │ │ │ │ ├── UserProfileCard/ │ │ │ │ ├── StatusBadge/ │ │ │ │ └── FriendList/ │ │ │ └── common/ │ │ │ ├── ContextMenu/ │ │ │ ├── DragDrop/ │ │ │ ├── VirtualList/ │ │ │ └── ErrorBoundary/ │ │ │ │ │ ├── stores/ │ │ │ ├── auth-store.ts │ │ │ ├── user-store.ts │ │ │ ├── server-store.ts │ │ │ ├── channel-store.ts │ │ │ ├── message-store.ts │ │ │ ├── voice-store.ts │ │ │ ├── notification-store.ts │ │ │ └── settings-store.ts │ │ │ │ │ ├── services/ │ │ │ ├── api/ │ │ │ │ ├── auth.api.ts │ │ │ │ ├── user.api.ts │ │ │ │ ├── server.api.ts │ │ │ │ ├── channel.api.ts │ │ │ │ ├── message.api.ts │ │ │ │ └── file.api.ts │ │ │ ├── websocket/ │ │ │ │ ├── gateway.ts │ │ │ │ ├── events.ts │ │ │ │ └── heartbeat.ts │ │ │ ├── webrtc/ │ │ │ │ ├── peer-connection.ts │ │ │ │ ├── media-manager.ts │ │ │ │ └── screen-capture.ts │ │ │ └── cache/ │ │ │ ├── message-cache.ts │ │ │ └── media-cache.ts │ │ │ │ │ ├── hooks/ │ │ │ ├── useAuth.ts │ │ │ ├── useVoice.ts │ │ │ ├── useWebSocket.ts │ │ │ ├── useMessage.ts │ │ │ ├── usePresence.ts │ │ │ └── useNotification.ts │ │ │ │ │ ├── styles/ │ │ │ ├── theme/ │ │ │ │ ├── colors.ts │ │ │ │ ├── typography.ts │ │ │ │ ├── shadows.ts │ │ │ │ └── tokens.ts │ │ │ ├── global.css │ │ │ └── variables.css │ │ │ │ │ ├── utils/ │ │ │ ├── format.ts │ │ │ ├── permission.ts │ │ │ ├── snowflake.ts │ │ │ ├── markdown.ts │ │ │ └── crypto.ts │ │ │ │ │ └── types/ │ │ └── index.ts │ │ │ ├── public/ │ │ ├── icons/ │ │ ├── images/ │ │ ├── sounds/ │ │ └── fonts/ │ │ │ ├── assets/ │ │ ├── icon.ico │ │ ├── icon.icns │ │ ├── tray-icon.png │ │ └── installer-assets/ │ │ │ └── electron-builder.yml │ ├── package.json ├── vite.config.ts ├── tsconfig.json └── tailwind.config.ts 基本框架
评论
共 1 条client/ ├── electron/
│ ├── main/ │ │ ├── main.ts
│ │ ├── window-manager.ts
│ │ ├── tray.ts
│ │ ├── auto-updater.ts
│ │ └── deep-link.ts
│ ├── ipc/
│ │ ├── auth-handler.ts
│ │ ├── chat-handler.ts
│ │ ├── file-handler.ts
│ │ └── system-handler.ts
│ ├── services/
│ │ ├── local-storage.ts
│ │ ├── notification-service.ts
│ │ ├── audio-service.ts
│ │ ├── screen-share.ts
│ │ └── crash-reporter.ts
│ └── preload/ │ └── preload.ts
│ ├── renderer/
│ ├── src/ │ │ ├── app/
│ │ │ ├── App.tsx │ │ │ ├── router.tsx
│ │ │ └── providers.tsx
│ │ │ │ │ ├── pages/
│ │ │ ├── auth/
│ │ │ │ ├── LoginPage/ │ │ │ │ ├── RegisterPage/ │ │ │ │ └── ForgotPasswordPage/ │ │ │ ├── main/
│ │ │ │ ├── HomePage/
│ │ │ │ ├── ChannelPage/
│ │ │ │ ├── DMPage/
│ │ │ │ └── VoicePage/
│ │ │ ├── settings/
│ │ │ │ ├── AccountPage/ │ │ │ │ ├── PrivacyPage/ │ │ │ │ ├── AppearancePage/
│ │ │ │ ├── VoiceSettingsPage/
│ │ │ │ └── KeybindsPage/
│ │ │ ├── profile/
│ │ │ └── discover/
│ │ │ │ │ ├── components/
│ │ │ ├── ui/
│ │ │ │ ├── Button/ │ │ │ │ ├── Input/ │ │ │ │ ├── Dialog/ │ │ │ │ ├── Tooltip/ │ │ │ │ ├── Avatar/ │ │ │ │ ├── Badge/ │ │ │ │ ├── Chip/ │ │ │ │ ├── List/ │ │ │ │ └── Menu/ │ │ │ ├── chat/
│ │ │ │ ├── MessageList/ │ │ │ │ ├── MessageItem/ │ │ │ │ ├── MessageInput/ │ │ │ │ ├── EmojiPicker/ │ │ │ │ ├── StickerPanel/ │ │ │ │ ├── FileUpload/ │ │ │ │ ├── MentionList/ │ │ │ │ └── ReactionPicker/ │ │ │ ├── server/
│ │ │ │ ├── ServerSidebar/
│ │ │ │ ├── ChannelList/
│ │ │ │ ├── MemberList/
│ │ │ │ ├── ServerHeader/ │ │ │ │ └── RoleEditor/ │ │ │ ├── voice/
│ │ │ │ ├── VoicePanel/ │ │ │ │ ├── ParticipantTile/
│ │ │ │ ├── VoiceControls/
│ │ │ │ └── SoundBoard/
│ │ │ ├── user/
│ │ │ │ ├── UserPopover/
│ │ │ │ ├── UserProfileCard/ │ │ │ │ ├── StatusBadge/
│ │ │ │ └── FriendList/ │ │ │ └── common/
│ │ │ ├── ContextMenu/ │ │ │ ├── DragDrop/ │ │ │ ├── VirtualList/
│ │ │ └── ErrorBoundary/ │ │ │ │ │ ├── stores/
│ │ │ ├── auth-store.ts │ │ │ ├── user-store.ts │ │ │ ├── server-store.ts │ │ │ ├── channel-store.ts │ │ │ ├── message-store.ts │ │ │ ├── voice-store.ts │ │ │ ├── notification-store.ts │ │ │ └── settings-store.ts │ │ │ │ │ ├── services/
│ │ │ ├── api/
│ │ │ │ ├── auth.api.ts │ │ │ │ ├── user.api.ts │ │ │ │ ├── server.api.ts │ │ │ │ ├── channel.api.ts │ │ │ │ ├── message.api.ts │ │ │ │ └── file.api.ts │ │ │ ├── websocket/
│ │ │ │ ├── gateway.ts
│ │ │ │ ├── events.ts
│ │ │ │ └── heartbeat.ts
│ │ │ ├── webrtc/
│ │ │ │ ├── peer-connection.ts │ │ │ │ ├── media-manager.ts │ │ │ │ └── screen-capture.ts │ │ │ └── cache/
│ │ │ ├── message-cache.ts │ │ │ └── media-cache.ts │ │ │ │ │ ├── hooks/
│ │ │ ├── useAuth.ts │ │ │ ├── useVoice.ts │ │ │ ├── useWebSocket.ts │ │ │ ├── useMessage.ts │ │ │ ├── usePresence.ts │ │ │ └── useNotification.ts │ │ │ │ │ ├── styles/
│ │ │ ├── theme/
│ │ │ │ ├── colors.ts
│ │ │ │ ├── typography.ts │ │ │ │ ├── shadows.ts │ │ │ │ └── tokens.ts
│ │ │ ├── global.css │ │ │ └── variables.css │ │ │ │ │ ├── utils/
│ │ │ ├── format.ts
│ │ │ ├── permission.ts
│ │ │ ├── snowflake.ts
│ │ │ ├── markdown.ts
│ │ │ └── crypto.ts
│ │ │ │ │ └── types/
│ │ └── index.ts │ │ │ ├── public/
│ │ ├── icons/
│ │ ├── images/
│ │ ├── sounds/
│ │ └── fonts/
│ │ │ ├── assets/
│ │ ├── icon.ico
│ │ ├── icon.icns
│ │ ├── tray-icon.png
│ │ └── installer-assets/
│ │ │ └── electron-builder.yml
│ ├── package.json ├── vite.config.ts
├── tsconfig.json └── tailwind.config.ts 基本框架