From 8ca50b327ae69e415835936afbb54d39b4246c91 Mon Sep 17 00:00:00 2001 From: Gabriel Garcia Date: Wed, 1 Oct 2025 16:30:44 -0400 Subject: [PATCH] fix: channels not mapped properly, new dev:web and dev:electron scripts --- concord-client/.gitignore | 52 +++++++++++------------ concord-client/package.json | 3 +- concord-client/src/App.tsx | 2 +- concord-client/src/pages/ChatPage.tsx | 5 +-- concord-client/vite.config.ts | 61 +++++++++++++++------------ 5 files changed, 65 insertions(+), 58 deletions(-) diff --git a/concord-client/.gitignore b/concord-client/.gitignore index 1c6a71f..f5b9d7c 100644 --- a/concord-client/.gitignore +++ b/concord-client/.gitignore @@ -1,26 +1,26 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -dist-electron -*.local -release/ - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +dist-electron +*.local +release/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/concord-client/package.json b/concord-client/package.json index d97c2a2..5f2f0bd 100644 --- a/concord-client/package.json +++ b/concord-client/package.json @@ -4,7 +4,8 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "bunx --bun vite --open", + "dev:web": "VITE_APP_MODE=web bunx --bun vite", + "dev:electron": "bunx --bun vite --open", "build": "tsc && bunx --bun vite build && electron-builder", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "bunx --bun vite preview" diff --git a/concord-client/src/App.tsx b/concord-client/src/App.tsx index 9001049..bf875e0 100644 --- a/concord-client/src/App.tsx +++ b/concord-client/src/App.tsx @@ -65,7 +65,7 @@ function App(props: { socket: Socket }) { return ( - +
diff --git a/concord-client/src/pages/ChatPage.tsx b/concord-client/src/pages/ChatPage.tsx index 97f391a..e80fabc 100644 --- a/concord-client/src/pages/ChatPage.tsx +++ b/concord-client/src/pages/ChatPage.tsx @@ -558,9 +558,8 @@ const ChatPage: React.FC = () => {
); } else if (!channelId || !currentChannel) { - const existingChannelId = categories - ?.flatMap((cat) => cat.channels) - ?.find((channel) => channel.position === 0)?.id; + const existingChannelId = categories?.flatMap((cat) => cat.channels)?.[0] + ?.id; // Get the first channel from the flattened list if (existingChannelId) { navigate(`/channels/${instanceId}/${existingChannelId}`); diff --git a/concord-client/vite.config.ts b/concord-client/vite.config.ts index 754f636..0982af6 100644 --- a/concord-client/vite.config.ts +++ b/concord-client/vite.config.ts @@ -5,33 +5,40 @@ import react from "@vitejs/plugin-react"; import tailwindcss from "@tailwindcss/vite"; // https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - react(), - electron({ - main: { - // Shortcut of `build.lib.entry`. - entry: "electron/main.ts", +export default defineConfig(({ mode }) => { + // Check if VITE_APP_MODE is set to 'web' + const isWebApp = process.env.VITE_APP_MODE === "web"; + + return { + plugins: [ + react(), + // Only include the electron plugin if not in 'web' app mode + !isWebApp && + electron({ + main: { + // Shortcut of `build.lib.entry`. + entry: "electron/main.ts", + }, + preload: { + // Shortcut of `build.rollupOptions.input`. + // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`. + input: path.join(__dirname, "electron/preload.ts"), + }, + // Ployfill the Electron and Node.js API for Renderer process. + // If you want use Node.js in Renderer process, the `nodeIntegration` needs to be enabled in the Main process. + // See 👉 https://github.com/electron-vite/vite-plugin-electron-renderer + renderer: + process.env.NODE_ENV === "test" + ? // https://github.com/electron-vite/vite-plugin-electron-renderer/issues/78#issuecomment-2053600808 + undefined + : {}, + }), + tailwindcss(), + ].filter(Boolean), // Filter out 'false' values if electron plugin is not included + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), }, - preload: { - // Shortcut of `build.rollupOptions.input`. - // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`. - input: path.join(__dirname, "electron/preload.ts"), - }, - // Ployfill the Electron and Node.js API for Renderer process. - // If you want use Node.js in Renderer process, the `nodeIntegration` needs to be enabled in the Main process. - // See 👉 https://github.com/electron-vite/vite-plugin-electron-renderer - renderer: - process.env.NODE_ENV === "test" - ? // https://github.com/electron-vite/vite-plugin-electron-renderer/issues/78#issuecomment-2053600808 - undefined - : {}, - }), - tailwindcss(), - ], - resolve: { - alias: { - "@": path.resolve(__dirname, "./src"), }, - }, + }; });