From 958cf56b2366bd8fae7d5e243c4c093b43e5ec1c Mon Sep 17 00:00:00 2001 From: Bryan1029384756 <23323626+Bryan1029384756@users.noreply.github.com> Date: Sat, 14 Feb 2026 01:57:15 -0600 Subject: [PATCH] feat: Implement core chat application UI, including chat, voice, members, DMs, and shared components. --- .claude/settings.local.json | 3 +- TODO.md | 21 +- apps/electron/package.json | 2 +- apps/web/index.html | 2 +- convex/auth.js | 383 +++++++++++ convex/categories.js | 187 ++++++ convex/channelKeys.js | 138 ++++ convex/channels.js | 390 +++++++++++ convex/convex.config.js | 7 + convex/dms.js | 158 +++++ convex/files.js | 71 ++ convex/gifs.js | 86 +++ convex/invites.js | 131 ++++ convex/members.js | 139 ++++ convex/messages.js | 300 +++++++++ convex/presence.js | 85 +++ convex/reactions.js | 111 ++++ convex/readState.js | 191 ++++++ convex/roles.js | 330 ++++++++++ convex/schema.js | 123 ++++ convex/serverSettings.js | 230 +++++++ convex/storageUrl.js | 72 +++ convex/typing.js | 167 +++++ convex/voice.js | 76 +++ convex/voiceState.js | 456 +++++++++++++ convex/voiceState.ts | 29 + log/log1.txt | 585 ----------------- log/log2.txt | 165 ----- log/log3.txt | 198 ------ log/log4.txt | 610 ------------------ packages/platform-web/src/crypto.js | 18 + packages/shared/package.json | 2 +- packages/shared/src/App.jsx | 15 +- packages/shared/src/components/ChatArea.jsx | 82 ++- packages/shared/src/components/ChatHeader.jsx | 49 +- .../shared/src/components/ColoredIcon.jsx | 31 + packages/shared/src/components/DMList.jsx | 22 +- .../shared/src/components/FriendsView.jsx | 22 +- .../shared/src/components/MembersList.jsx | 7 +- .../shared/src/components/MessageItem.jsx | 21 +- packages/shared/src/components/Sidebar.jsx | 149 +++-- .../shared/src/components/UpdateBanner.jsx | 22 +- packages/shared/src/components/VoiceStage.jsx | 246 +++++-- .../shared/src/contexts/PresenceContext.jsx | 2 +- packages/shared/src/contexts/VoiceContext.jsx | 59 +- packages/shared/src/hooks/useIsMobile.js | 18 + packages/shared/src/hooks/usePresence.js | 123 ++++ packages/shared/src/hooks/useSingleFlight.js | 40 ++ packages/shared/src/index.css | 116 +++- packages/shared/src/pages/Chat.jsx | 111 +++- packages/shared/src/styles/themes.css | 18 +- 51 files changed, 4761 insertions(+), 1858 deletions(-) create mode 100644 convex/auth.js create mode 100644 convex/categories.js create mode 100644 convex/channelKeys.js create mode 100644 convex/channels.js create mode 100644 convex/convex.config.js create mode 100644 convex/dms.js create mode 100644 convex/files.js create mode 100644 convex/gifs.js create mode 100644 convex/invites.js create mode 100644 convex/members.js create mode 100644 convex/messages.js create mode 100644 convex/presence.js create mode 100644 convex/reactions.js create mode 100644 convex/readState.js create mode 100644 convex/roles.js create mode 100644 convex/schema.js create mode 100644 convex/serverSettings.js create mode 100644 convex/storageUrl.js create mode 100644 convex/typing.js create mode 100644 convex/voice.js create mode 100644 convex/voiceState.js delete mode 100644 log/log1.txt delete mode 100644 log/log2.txt delete mode 100644 log/log3.txt delete mode 100644 log/log4.txt create mode 100644 packages/shared/src/components/ColoredIcon.jsx create mode 100644 packages/shared/src/hooks/useIsMobile.js create mode 100644 packages/shared/src/hooks/usePresence.js create mode 100644 packages/shared/src/hooks/useSingleFlight.js diff --git a/.claude/settings.local.json b/.claude/settings.local.json index c040e19..ff3181e 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -33,7 +33,8 @@ "Bash(npm ls:*)", "Bash(git add:*)", "Bash(git commit:*)", - "Bash(git push:*)" + "Bash(git push:*)", + "Bash(npm run build:web:*)" ] } } diff --git a/TODO.md b/TODO.md index 5afcb34..9348ae4 100644 --- a/TODO.md +++ b/TODO.md @@ -32,14 +32,25 @@ - - -Can we make sure Voice and Video work. We have the users input and output devices but if i select any it dosent show it changed. I want to make sure that the users can select their input and output devices and that it works for livekit. - +- On mobile. lets redo the settings page to be more mobile friendly. I want it to look exactly the same on desktop but i need a little more mobile friendly for mobile. -What about the gitea workflow. Does that build the electron app still with the new setup? I dont need the android build right now just the same functionality as before with building for electron. \ No newline at end of file + + +- Lets make a Popup menu on chat input to paste image or anything from clipboard. So its on option called "Paste". Should only popup if you right click the chat input box. + + + + + + + + + +- Can we add a way to tell the user they are connecting to voice. Like show them its connecting so the user knows something is happening instead of them clicking on the voice stage again and again. \ No newline at end of file diff --git a/apps/electron/package.json b/apps/electron/package.json index 03bfd27..64f0fa8 100644 --- a/apps/electron/package.json +++ b/apps/electron/package.json @@ -1,7 +1,7 @@ { "name": "@discord-clone/electron", "private": true, - "version": "1.0.14", + "version": "1.0.16", "description": "Discord Clone - Electron app", "author": "Moyettes", "type": "module", diff --git a/apps/web/index.html b/apps/web/index.html index 11b22e4..c38c18c 100644 --- a/apps/web/index.html +++ b/apps/web/index.html @@ -3,7 +3,7 @@
- +