| author | |
| committer | |
| log | daf8e5f53b80dd51913a058cf7012153e5e9cd09 |
| tree | 938675500b2674c7bb215e50a6d1be4451d8291d |
| parent | c89798ecb12d0cbda6c69edb3b8675636c93f271 |
| signature | Commit is signed but in an unrecognized format. |
15 files changed, 24 insertions(+), 10 deletions(-)
apps/desktop/package.json+1-1| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | "name": "@t3tools/desktop", |
| 3 | 3 | "version": "0.0.0", |
| 4 | 4 | "private": true, |
| 5 | "productName": "T3 Code", | |
| 5 | "productName": "T3 Code (Alpha)", | |
| 6 | 6 | "main": "dist-electron/main.js", |
| 7 | 7 | "scripts": { |
| 8 | 8 | "dev": "bun run --parallel dev:bundle dev:electron", |
apps/desktop/resources/icon.icns| Binary files a/apps/desktop/resources/icon.icns and b/apps/desktop/resources/icon.icns differ |
apps/desktop/resources/icon.ico| Binary files a/apps/desktop/resources/icon.ico and b/apps/desktop/resources/icon.ico differ |
apps/desktop/resources/icon.png| Binary files a/apps/desktop/resources/icon.png and b/apps/desktop/resources/icon.png differ |
apps/desktop/scripts/electron-launcher.mjs+3-2| ... | ... | @@ -1,4 +1,4 @@ |
| 1 | // This file mostly exists because we want dev mode to say "T3 Code" instead of "electron" | |
| 1 | // This file mostly exists because we want dev mode to say "T3 Code (Dev)" instead of "electron" | |
| 2 | 2 | |
| 3 | 3 | import { spawnSync } from "node:child_process"; |
| 4 | 4 | import { |
| ... | ... | @@ -16,7 +16,8 @@ import { createRequire } from "node:module"; |
| 16 | 16 | import { dirname, join, resolve } from "node:path"; |
| 17 | 17 | import { fileURLToPath } from "node:url"; |
| 18 | 18 | |
| 19 | const APP_DISPLAY_NAME = "T3 Code"; | |
| 19 | const isDevelopment = Boolean(process.env.VITE_DEV_SERVER_URL); | |
| 20 | const APP_DISPLAY_NAME = isDevelopment ? "T3 Code (Dev)" : "T3 Code (Alpha)"; | |
| 20 | 21 | const APP_BUNDLE_ID = "com.t3tools.t3code"; |
| 21 | 22 | const LAUNCHER_VERSION = 1; |
| 22 | 23 |
apps/desktop/src/main.ts+1-1| ... | ... | @@ -21,7 +21,7 @@ const BACKEND_ENTRY = path.join(ROOT_DIR, "apps/server/dist/index.mjs"); |
| 21 | 21 | const WEB_ENTRY = path.join(ROOT_DIR, "apps/web/dist/index.html"); |
| 22 | 22 | const STATE_DIR = path.join(os.homedir(), ".t3", "userdata"); |
| 23 | 23 | const isDevelopment = Boolean(process.env.VITE_DEV_SERVER_URL); |
| 24 | const APP_DISPLAY_NAME = "T3 Code"; | |
| 24 | const APP_DISPLAY_NAME = isDevelopment ? "T3 Code (Dev)" : "T3 Code (Alpha)"; | |
| 25 | 25 | const APP_USER_MODEL_ID = "com.t3tools.t3code"; |
| 26 | 26 | |
| 27 | 27 | let mainWindow: BrowserWindow | null = null; |
apps/web/index.html+1-2| ... | ... | @@ -4,7 +4,6 @@ |
| 4 | 4 | <meta charset="UTF-8" /> |
| 5 | 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| 6 | 6 | <link rel="icon" href="/favicon.ico" sizes="48x48" /> |
| 7 | <link rel="icon" href="/favicon.svg" type="image/svg+xml" /> | |
| 8 | 7 | <link rel="apple-touch-icon" href="/apple-touch-icon.png" /> |
| 9 | 8 | <link rel="preconnect" href="https://fonts.googleapis.com" /> |
| 10 | 9 | <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> |
| ... | ... | @@ -12,7 +11,7 @@ |
| 12 | 11 | href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300..800;1,9..40,300..800&display=swap" |
| 13 | 12 | rel="stylesheet" |
| 14 | 13 | /> |
| 15 | <title>T3 Code</title> | |
| 14 | <title>T3 Code (Alpha)</title> | |
| 16 | 15 | </head> |
| 17 | 16 | <body> |
| 18 | 17 | <div id="root"></div> |
apps/web/public/apple-touch-icon.png| Binary files a/apps/web/public/apple-touch-icon.png and b/apps/web/public/apple-touch-icon.png differ |
apps/web/public/favicon-16x16.png| Binary files a/apps/web/public/favicon-16x16.png and b/apps/web/public/favicon-16x16.png differ |
apps/web/public/favicon-32x32.png| Binary files a/apps/web/public/favicon-32x32.png and b/apps/web/public/favicon-32x32.png differ |
apps/web/public/favicon.ico| Binary files a/apps/web/public/favicon.ico and b/apps/web/public/favicon.ico differ |
apps/web/src/branding.ts created+3| ... | ... | @@ -0,0 +1,3 @@ |
| 1 | export const APP_BASE_NAME = "T3 Code"; | |
| 2 | export const APP_STAGE_LABEL = import.meta.env.DEV ? "Dev" : "Alpha"; | |
| 3 | export const APP_DISPLAY_NAME = `${APP_BASE_NAME} (${APP_STAGE_LABEL})`; |
apps/web/src/components/Sidebar.tsx+9-3| ... | ... | @@ -4,6 +4,7 @@ import type { ResolvedKeybindingsConfig } from "@t3tools/contracts"; |
| 4 | 4 | import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; |
| 5 | 5 | import { useNavigate, useParams } from "@tanstack/react-router"; |
| 6 | 6 | import { isElectron } from "../env"; |
| 7 | import { APP_STAGE_LABEL } from "../branding"; | |
| 7 | 8 | import { useTheme } from "../hooks/useTheme"; |
| 8 | 9 | import { DEFAULT_MODEL } from "../model-logic"; |
| 9 | 10 | import { derivePendingApprovals } from "../session-logic"; |
| ... | ... | @@ -431,9 +432,14 @@ export default function Sidebar() { |
| 431 | 432 | <div |
| 432 | 433 | className={`flex items-center gap-2.5 px-4 ${isElectron ? "drag-region h-[52px] pl-[76px]" : "py-4"}`} |
| 433 | 434 | > |
| 434 | <span className="flex-1 text-sm font-semibold tracking-tight text-foreground"> | |
| 435 | T3 <span className="font-normal text-muted-foreground">Code</span> | |
| 436 | </span> | |
| 435 | <div className="flex min-w-0 flex-1 items-center gap-2"> | |
| 436 | <span className="truncate text-sm font-semibold tracking-tight text-foreground"> | |
| 437 | T3 <span className="font-normal text-muted-foreground">Code</span> | |
| 438 | </span> | |
| 439 | <span className="rounded border border-border bg-secondary px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground"> | |
| 440 | {APP_STAGE_LABEL} | |
| 441 | </span> | |
| 442 | </div> | |
| 437 | 443 | <button |
| 438 | 444 | type="button" |
| 439 | 445 | className="rounded-md p-1.5 text-muted-foreground/80 transition-colors duration-150 hover:bg-accent hover:text-muted-foreground" |
apps/web/src/main.tsx+2| ... | ... | @@ -9,12 +9,14 @@ import "@xterm/xterm/css/xterm.css"; |
| 9 | 9 | import "highlight.js/styles/github-dark.css"; |
| 10 | 10 | import "./index.css"; |
| 11 | 11 | |
| 12 | import { APP_DISPLAY_NAME } from "./branding"; | |
| 12 | 13 | import { isElectron } from "./env"; |
| 13 | 14 | import { routeTree } from "./routeTree.gen"; |
| 14 | 15 | |
| 15 | 16 | const history = isElectron ? createHashHistory() : createBrowserHistory(); |
| 16 | 17 | |
| 17 | 18 | const queryClient = new QueryClient(); |
| 19 | document.title = APP_DISPLAY_NAME; | |
| 18 | 20 | |
| 19 | 21 | const router = createRouter({ |
| 20 | 22 | routeTree, |
apps/web/src/routes/__root.tsx+4-1| ... | ... | @@ -9,6 +9,7 @@ import { invalidateGitQueries } from "../lib/gitReactQuery"; |
| 9 | 9 | import { DEFAULT_MODEL } from "../model-logic"; |
| 10 | 10 | import { useStore } from "../store"; |
| 11 | 11 | import { onServerWelcome } from "../wsNativeApi"; |
| 12 | import { APP_DISPLAY_NAME } from "../branding"; | |
| 12 | 13 | |
| 13 | 14 | export const Route = createRootRouteWithContext<{ |
| 14 | 15 | queryClient: QueryClient; |
| ... | ... | @@ -23,7 +24,9 @@ function RootRouteView() { |
| 23 | 24 | return ( |
| 24 | 25 | <div className="flex h-screen flex-col bg-background text-foreground"> |
| 25 | 26 | <div className="flex flex-1 items-center justify-center"> |
| 26 | <p className="text-sm text-muted-foreground">Connecting to T3 Code server...</p> | |
| 27 | <p className="text-sm text-muted-foreground"> | |
| 28 | Connecting to {APP_DISPLAY_NAME} server... | |
| 29 | </p> | |
| 27 | 30 | </div> |
| 28 | 31 | </div> |
| 29 | 32 | ); |