Skip to content

Commit ef33ba0

Browse files
committed
feat: wide mode layout setting
1 parent 6c14ea1 commit ef33ba0

3 files changed

Lines changed: 19 additions & 1 deletion

File tree

packages/app/src/components/settings-general.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,18 @@ export const SettingsGeneral: Component = () => {
366366
/>
367367
</div>
368368
</SettingsRow>
369+
370+
<SettingsRow
371+
title="Wide Mode"
372+
description="Use full window width for chat instead of centered narrow layout"
373+
>
374+
<div data-action="settings-wide-mode">
375+
<Switch
376+
checked={settings.appearance.wideMode()}
377+
onChange={(checked) => settings.appearance.setWideMode(checked)}
378+
/>
379+
</div>
380+
</SettingsRow>
369381
</SettingsList>
370382
</div>
371383
)

packages/app/src/context/settings.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export interface Settings {
3232
}
3333
appearance: {
3434
fontSize: number
35+
wideMode: boolean
3536
mono: string
3637
sans: string
3738
}
@@ -98,6 +99,7 @@ const defaultSettings: Settings = {
9899
},
99100
appearance: {
100101
fontSize: 14,
102+
wideMode: false,
101103
mono: "",
102104
sans: "",
103105
},
@@ -187,6 +189,10 @@ export const { use: useSettings, provider: SettingsProvider } = createSimpleCont
187189
setFontSize(value: number) {
188190
setStore("appearance", "fontSize", value)
189191
},
192+
wideMode: withFallback(() => store.appearance?.wideMode, defaultSettings.appearance.wideMode),
193+
setWideMode(value: boolean) {
194+
setStore("appearance", "wideMode", value)
195+
},
190196
font: withFallback(() => store.appearance?.mono, defaultSettings.appearance.mono),
191197
setFont(value: string) {
192198
setStore("appearance", "mono", value.trim() ? value : "")

packages/app/src/pages/session.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ export default function Page() {
401401
if (desktopReviewOpen()) return `${layout.session.width()}px`
402402
return `calc(100% - ${layout.fileTree.width()}px)`
403403
})
404-
const centered = createMemo(() => isDesktop() && !desktopReviewOpen())
404+
const centered = createMemo(() => isDesktop() && !desktopReviewOpen() && !settings.appearance.wideMode())
405405

406406
function normalizeTab(tab: string) {
407407
if (!tab.startsWith("file://")) return tab

0 commit comments

Comments
 (0)