feat: Initialize the Electron frontend with core UI components and integrate Convex backend services.
This commit is contained in:
17
CLAUDE.md
17
CLAUDE.md
@@ -14,9 +14,10 @@ See also: [CONVEX_RULES.md](./CONVEX_RULES.md) | [CONVEX_EXAMPLES.md](./CONVEX_E
|
||||
|
||||
## Key Convex Files (convex/)
|
||||
|
||||
- `schema.ts` - Full schema: userProfiles, channels, messages, messageReactions, channelKeys, roles, userRoles, invites, dmParticipants, typingIndicators, voiceStates
|
||||
- `auth.ts` - getSalt, verifyUser, createUserWithProfile, getPublicKeys
|
||||
- `channels.ts` - list, get, create, rename, remove (with cascade delete)
|
||||
- `schema.ts` - Full schema: userProfiles (with avatarStorageId, aboutMe, customStatus), channels (with category, topic, position), messages, messageReactions, channelKeys, roles, userRoles, invites, dmParticipants, typingIndicators, voiceStates
|
||||
- `auth.ts` - getSalt, verifyUser, createUserWithProfile, getPublicKeys (includes avatarUrl, aboutMe, customStatus), updateProfile, updateStatus
|
||||
- `channels.ts` - list, get, create (with category/topic/position), rename, remove (cascade), updateTopic
|
||||
- `members.ts` - getChannelMembers (includes isHoist on roles, avatarUrl, aboutMe, customStatus)
|
||||
- `channelKeys.ts` - uploadKeys, getKeysForUser
|
||||
- `messages.ts` - list (with reactions + username), send, remove
|
||||
- `reactions.ts` - add, remove
|
||||
@@ -40,6 +41,7 @@ See also: [CONVEX_RULES.md](./CONVEX_RULES.md) | [CONVEX_EXAMPLES.md](./CONVEX_E
|
||||
- `contexts/VoiceContext.jsx` - Voice state via Convex + LiveKit room management
|
||||
- `components/ChannelSettingsModal.jsx` - Channel rename/delete via Convex mutations
|
||||
- `components/ServerSettingsModal.jsx` - Role management via Convex queries/mutations
|
||||
- `components/Avatar.jsx` - Reusable avatar component (image or colored-initial fallback)
|
||||
- `components/FriendsView.jsx` - User list via Convex query
|
||||
- `components/DMList.jsx` - DM user picker via Convex query
|
||||
- `components/GifPicker.jsx` - GIF search via Convex action
|
||||
@@ -56,6 +58,15 @@ See also: [CONVEX_RULES.md](./CONVEX_RULES.md) | [CONVEX_EXAMPLES.md](./CONVEX_E
|
||||
- Convex queries are reactive - no need for manual refresh or socket listeners
|
||||
- File uploads use Convex storage: `generateUploadUrl` -> POST blob -> `getFileUrl`
|
||||
- Typing indicators use scheduled functions for TTL cleanup
|
||||
- CSS uses Discord dark theme colors via `:root` variables (`--bg-primary: #313338`, `--bg-secondary: #2b2d31`, `--bg-tertiary: #1e1f22`)
|
||||
- Sidebar width is 312px (72px server strip + 240px channel panel)
|
||||
- Channels are grouped by `category` field with collapsible headers
|
||||
- Members list groups by hoisted roles (isHoist) then Online/Offline
|
||||
- Avatar component supports both image URLs and colored-initial fallback
|
||||
- Title bar has back/forward navigation arrows
|
||||
- Chat header includes thread, pin, members, notification icons + channel topic
|
||||
- Voice connected panel includes elapsed time timer
|
||||
- Keyboard shortcuts: Ctrl+K (quick switcher), Ctrl+Shift+M (mute toggle)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
|
||||
Reference in New Issue
Block a user