feat: Implement core Discord clone functionality including Convex backend services for authentication, channels, messages, roles, and voice state, alongside new Electron frontend components for chat, voice, server settings, and user interface.
All checks were successful
Build and Release / build-and-release (push) Successful in 14m19s

This commit is contained in:
Bryan1029384756
2026-02-12 04:52:28 -06:00
parent e790db7029
commit 7a5b789ece
30 changed files with 1339 additions and 162 deletions

View File

@@ -6,12 +6,15 @@ import { DataModel, Id, Doc } from "./_generated/dataModel";
const PERMISSION_KEYS = [
"manage_channels",
"manage_roles",
"manage_messages",
"create_invite",
"embed_links",
"attach_files",
"move_members",
"mute_members",
] as const;
async function getRolesForUser(
export async function getRolesForUser(
ctx: GenericQueryCtx<DataModel>,
userId: Id<"userProfiles">
): Promise<Doc<"roles">[]> {
@@ -182,9 +185,12 @@ export const getMyPermissions = query({
returns: v.object({
manage_channels: v.boolean(),
manage_roles: v.boolean(),
manage_messages: v.boolean(),
create_invite: v.boolean(),
embed_links: v.boolean(),
attach_files: v.boolean(),
move_members: v.boolean(),
mute_members: v.boolean(),
}),
handler: async (ctx, args) => {
const roles = await getRolesForUser(ctx, args.userId);
@@ -199,9 +205,12 @@ export const getMyPermissions = query({
return finalPerms as {
manage_channels: boolean;
manage_roles: boolean;
manage_messages: boolean;
create_invite: boolean;
embed_links: boolean;
attach_files: boolean;
move_members: boolean;
mute_members: boolean;
};
},
});