mirror of
https://github.com/anotherhadi/ilovetui.git
synced 2026-10-05 10:58:26 +02:00
55 lines
2.1 KiB
JavaScript
55 lines
2.1 KiB
JavaScript
// @bun
|
|
import {
|
|
theme2
|
|
} from "./chunk-p6jvscj3.js";
|
|
|
|
// src/components/MinSizeGuard.tsx
|
|
import { createComponent as _$createComponent } from "@opentui/solid";
|
|
import { effect as _$effect } from "@opentui/solid";
|
|
import { insertNode as _$insertNode } from "@opentui/solid";
|
|
import { insert as _$insert } from "@opentui/solid";
|
|
import { setProp as _$setProp } from "@opentui/solid";
|
|
import { createElement as _$createElement } from "@opentui/solid";
|
|
import { memo as _$memo } from "@opentui/solid";
|
|
import { useTerminalDimensions } from "@opentui/solid";
|
|
import { Show } from "solid-js";
|
|
function MinSizeGuard2(props) {
|
|
const dimensions = useTerminalDimensions();
|
|
const minWidth = () => props.minWidth ?? 80;
|
|
const minHeight = () => props.minHeight ?? 24;
|
|
const tooSmall = () => dimensions().width < minWidth() || dimensions().height < minHeight();
|
|
return [_$memo(() => props.children), _$createComponent(Show, {
|
|
get when() {
|
|
return tooSmall();
|
|
},
|
|
get children() {
|
|
var _el$ = _$createElement("box"), _el$2 = _$createElement("text");
|
|
_$insertNode(_el$, _el$2);
|
|
_$setProp(_el$, "position", "absolute");
|
|
_$setProp(_el$, "top", 0);
|
|
_$setProp(_el$, "left", 0);
|
|
_$setProp(_el$, "alignItems", "center");
|
|
_$setProp(_el$, "justifyContent", "center");
|
|
_$setProp(_el$, "zIndex", 9999);
|
|
_$insert(_el$2, () => `Terminal too small
|
|
Minimum size: ${minWidth()}x${minHeight()} \u2014 current: ${dimensions().width}x${dimensions().height}`);
|
|
_$effect((_p$) => {
|
|
var _v$ = dimensions().width, _v$2 = dimensions().height, _v$3 = props.backgroundColor ?? theme2.background, _v$4 = props.textColor ?? theme2.muted;
|
|
_v$ !== _p$.e && (_p$.e = _$setProp(_el$, "width", _v$, _p$.e));
|
|
_v$2 !== _p$.t && (_p$.t = _$setProp(_el$, "height", _v$2, _p$.t));
|
|
_v$3 !== _p$.a && (_p$.a = _$setProp(_el$, "backgroundColor", _v$3, _p$.a));
|
|
_v$4 !== _p$.o && (_p$.o = _$setProp(_el$2, "fg", _v$4, _p$.o));
|
|
return _p$;
|
|
}, {
|
|
e: undefined,
|
|
t: undefined,
|
|
a: undefined,
|
|
o: undefined
|
|
});
|
|
return _el$;
|
|
}
|
|
})];
|
|
}
|
|
|
|
export { MinSizeGuard2 };
|