Files
oh-my-pi/packages/coding-agent/src/modes/components/dynamic-border.ts
T
2026-02-10 07:39:39 +01:00

26 lines
789 B
TypeScript

import type { Component } from "@oh-my-pi/pi-tui";
import { theme } from "../../modes/theme/theme";
/**
* Dynamic border component that adjusts to viewport width.
*
* Note: When used from hooks loaded via jiti, the global `theme` may be undefined
* because jiti creates a separate module cache. Always pass an explicit color
* function when using DynamicBorder in components exported for hook use.
*/
export class DynamicBorder implements Component {
#color: (str: string) => string;
constructor(color: (str: string) => string = str => theme.fg("border", str)) {
this.#color = color;
}
invalidate(): void {
// No cached state to invalidate currently
}
render(width: number): string[] {
return [this.#color(theme.boxSharp.horizontal.repeat(Math.max(1, width)))];
}
}