Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> Co-authored-by: usrnk1 <7547651+usrnk1@users.noreply.github.com> Co-authored-by: James Long <longster@gmail.com> Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Jack <jack@anoma.ly> Co-authored-by: opencode <opencode@sst.dev> Co-authored-by: Frank <frank@anoma.ly> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Julian Coy <julian@ex-machina.co> Co-authored-by: Brendan Allan <git@brendonovich.dev> Co-authored-by: Vladimir Glafirov <vglafirov@gitlab.com> Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Dustin Deus <deusdustin@gmail.com> Co-authored-by: Kit Langton <kit.langton@gmail.com> Co-authored-by: Simon Klee <hello@simonklee.dk> Co-authored-by: Jay <air@live.ca> Co-authored-by: David Hill <1879069+iamdavidhill@users.noreply.github.com> Co-authored-by: Aiden Cline <aidenpcline@gmail.com> Co-authored-by: James Long <jlongster@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: Aiden Cline <rekram1-node@users.noreply.github.com>
19 lines
1.1 KiB
TypeScript
19 lines
1.1 KiB
TypeScript
// The review pane has no width of its own: it takes whatever the chat panel
|
|
// leaves behind. Instead of capping the chat panel at a fraction of the window
|
|
// (which forces the review pane to grow with the monitor), reserve a fixed
|
|
// minimum for the review pane and let the chat panel take everything else.
|
|
export const SESSION_PANEL_WIDTH_MIN = 450
|
|
export const REVIEW_PANE_WIDTH_MIN = 480
|
|
export const REVIEW_PANE_WIDTH_MIN_SPLIT = 800
|
|
|
|
export function sessionPanelWidthMax(input: { available: number; split: boolean }) {
|
|
const pane = input.split ? REVIEW_PANE_WIDTH_MIN_SPLIT : REVIEW_PANE_WIDTH_MIN
|
|
return Math.max(SESSION_PANEL_WIDTH_MIN, input.available - pane)
|
|
}
|
|
|
|
// `available` is undefined until the layout row is first measured; render the
|
|
// stored width untouched until then to avoid a first-frame snap.
|
|
export function clampSessionPanelWidth(input: { width: number; available: number | undefined; split: boolean }) {
|
|
if (input.available === undefined) return input.width
|
|
return Math.min(input.width, sessionPanelWidthMax({ available: input.available, split: input.split }))
|
|
}
|