diff --git a/apps/web/src/components/ChatView.tsx b/apps/web/src/components/ChatView.tsx index 3eaa42ff2d628175ae4f99d3b8176bc000d8493a..5114a24468f6291b1180b87ac2239b019a96d841 100644 --- a/apps/web/src/components/ChatView.tsx +++ b/apps/web/src/components/ChatView.tsx @@ -897,23 +897,32 @@ export default function ChatView() { } }; - const onModelSelect = (model: ModelSlug) => { - if (!activeThread) return; - dispatch({ - type: "SET_THREAD_MODEL", - threadId: activeThread.id, - model: resolveModelSlug(model), - }); - scheduleComposerFocus(); - }; - const onEffortSelect = (effort: ReasoningEffort) => { - setSelectedEffort(effort); - scheduleComposerFocus(); - }; - const onEnvModeChange = (mode: "local" | "worktree") => { - setEnvMode(mode); - scheduleComposerFocus(); - }; + const onModelSelect = useCallback( + (model: ModelSlug) => { + if (!activeThread) return; + dispatch({ + type: "SET_THREAD_MODEL", + threadId: activeThread.id, + model: resolveModelSlug(model), + }); + scheduleComposerFocus(); + }, + [activeThread, dispatch, scheduleComposerFocus], + ); + const onEffortSelect = useCallback( + (effort: ReasoningEffort) => { + setSelectedEffort(effort); + scheduleComposerFocus(); + }, + [scheduleComposerFocus], + ); + const onEnvModeChange = useCallback( + (mode: "local" | "worktree") => { + setEnvMode(mode); + scheduleComposerFocus(); + }, + [scheduleComposerFocus], + ); const onKeyDown = (e: KeyboardEvent) => { if (e.key === "Enter" && !e.shiftKey) {