From 49bc491e08aab550a859ee76cfecbae706e9111b Mon Sep 17 00:00:00 2001 From: Bryan1029384756 <23323626+Bryan1029384756@users.noreply.github.com> Date: Wed, 11 Feb 2026 06:42:31 -0600 Subject: [PATCH] feat: Add `MembersList` component, configure Electron frontend with Vite, and establish Gitea release workflow. --- .gitea/workflows/release.yml | 3 ++- Frontend/Electron/package.json | 2 ++ Frontend/Electron/src/assets/icons/index.js | 7 +++++-- .../Electron/src/components/MembersList.jsx | 17 +++++++++++++---- Frontend/Electron/vite.config.js | 1 + TODO.md | 4 ++-- 6 files changed, 25 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 4b6a0b2..064d7e4 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -44,7 +44,8 @@ jobs: run: | cd Frontend/Electron npm run build - xvfb-run npx electron-builder --linux --win + npx electron-builder --linux + xvfb-run npx electron-builder --win env: GH_TOKEN: ${{ secrets.CI_TOKEN }} WINEDEBUG: "-all" diff --git a/Frontend/Electron/package.json b/Frontend/Electron/package.json index a642c65..0012718 100644 --- a/Frontend/Electron/package.json +++ b/Frontend/Electron/package.json @@ -2,6 +2,8 @@ "name": "discord", "private": true, "version": "1.0.3", + "description": "A Discord clone built with Convex, React, and Electron", + "author": "Moyettes", "type": "module", "main": "main.cjs", "homepage": "./", diff --git a/Frontend/Electron/src/assets/icons/index.js b/Frontend/Electron/src/assets/icons/index.js index 8640ae3..4a0c10e 100644 --- a/Frontend/Electron/src/assets/icons/index.js +++ b/Frontend/Electron/src/assets/icons/index.js @@ -23,6 +23,7 @@ import EmojiesGreyscale from './emojies_greyscale.png'; import TypingIcon from './typing.svg'; import DMIcon from './dm.svg'; import SpoilerIcon from './spoiler.svg'; +import CrownIcon from './crown.svg'; export { AddIcon, @@ -49,7 +50,8 @@ export { PinIcon, TypingIcon, DMIcon, - SpoilerIcon + SpoilerIcon, + CrownIcon }; export const Icons = { @@ -77,5 +79,6 @@ export const Icons = { Pin: PinIcon, Typing: TypingIcon, DM: DMIcon, - Spoiler: SpoilerIcon + Spoiler: SpoilerIcon, + Crown: CrownIcon }; diff --git a/Frontend/Electron/src/components/MembersList.jsx b/Frontend/Electron/src/components/MembersList.jsx index cc6da7c..153440f 100644 --- a/Frontend/Electron/src/components/MembersList.jsx +++ b/Frontend/Electron/src/components/MembersList.jsx @@ -2,6 +2,7 @@ import React from 'react'; import { useQuery } from 'convex/react'; import { api } from '../../../../convex/_generated/api'; import { useOnlineUsers } from '../contexts/PresenceContext'; +import { CrownIcon } from '../assets/icons'; const USER_COLORS = ['#5865F2', '#EBA7CD', '#57F287', '#FEE75C', '#EB459E', '#ED4245']; @@ -13,6 +14,12 @@ function getUserColor(name) { return USER_COLORS[Math.abs(hash) % USER_COLORS.length]; } +const ColoredIcon = ({ src, color, size = '24px', style = {} }) => ( +