authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-15 12:11:52-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-02-15 15:51:05-08:00
log8beba3e16b9bc6066d20f64cf672c05e0576df40
tree5e37660776fe5ba2a8fec56069088bee1f5a65d4
parent38c93a2abdabb59b5a24c402d17397d1fd1493b8

Refactor Sidebar component to streamline keybindings handling


1 files changed, 4 insertions(+), 5 deletions(-)

apps/web/src/components/Sidebar.tsx+4-5
......@@ -1,6 +1,5 @@
11import { MonitorIcon, MoonIcon, SunIcon, TerminalIcon } from "lucide-react";
22import { useCallback, useEffect, useMemo, useState } from "react";
3import type { KeybindingsConfig } from "@t3tools/contracts";
43import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
54import { isElectron } from "../env";
65import { useTheme } from "../hooks/useTheme";
......@@ -20,7 +19,6 @@ import { serverConfigQueryOptions } from "../lib/serverReactQuery";
2019import { formatWorktreePathForDisplay, getOrphanedWorktreePathForThread } from "../worktreeCleanup";
2120
2221const THEME_CYCLE = { system: "light", light: "dark", dark: "system" } as const;
23const EMPTY_KEYBINDINGS: KeybindingsConfig = [];
2422
2523function formatRelativeTime(iso: string): string {
2624 const diff = Date.now() - new Date(iso).getTime();
......@@ -117,13 +115,14 @@ function terminalStatusIndicator(thread: Thread): TerminalStatusIndicator | null
117115export default function Sidebar() {
118116 const { state, dispatch } = useStore();
119117 const api = useNativeApi();
120 const keybindingsQuery = useQuery({
118 const { data: keybindings = [] } = useQuery({
121119 ...serverConfigQueryOptions(api),
122120 select: (config) => config.keybindings,
123121 });
124 const keybindings = keybindingsQuery.data ?? EMPTY_KEYBINDINGS;
125122 const queryClient = useQueryClient();
126 const removeWorktreeMutation = useMutation(gitRemoveWorktreeMutationOptions({ api, queryClient }));
123 const removeWorktreeMutation = useMutation(
124 gitRemoveWorktreeMutationOptions({ api, queryClient }),
125 );
127126 const { theme, setTheme } = useTheme();
128127 const [addingProject, setAddingProject] = useState(false);
129128 const [newCwd, setNewCwd] = useState("");