Files
dbx/apps/desktop/src/lib/common/optionHelpPanelOffset.ts
T

14 lines
583 B
TypeScript

export interface OptionHelpPanelOffsetInput {
activeItemTop: number;
listCardHeight: number;
panelHeight: number;
}
/** Aligns a help card to its active row without allowing it past the list card. */
export function optionHelpPanelOffsetTop({ activeItemTop, listCardHeight, panelHeight }: OptionHelpPanelOffsetInput): number {
if (![activeItemTop, listCardHeight, panelHeight].every(Number.isFinite)) return 0;
const desiredTop = Math.max(0, activeItemTop);
const maxTop = Math.max(0, listCardHeight - Math.max(0, panelHeight));
return Math.min(desiredTop, maxTop);
}