Files
custum-hyprpanel/widget/settings/shared/Option.ts
2024-07-27 01:04:07 -07:00

33 lines
955 B
TypeScript

import { Label } from "./Label";
import { Inputter } from "./Inputter";
import icons from "lib/icons";
import { RowProps } from "lib/types/options";
type Option = {
title: string,
subtitle: string,
}
export const Option = <T>(props: RowProps<T>, className: string = '') => {
return Widget.Box({
class_name: "option-item",
hexpand: true,
children: [
Widget.Box({
hpack: "start",
vpack: "center",
hexpand: true,
child: Label(props.title, props.subtitle || ""),
}),
Inputter(props, className),
Widget.Button({
vpack: "center",
class_name: "reset-options",
child: Widget.Icon(icons.ui.refresh),
on_clicked: () => props.opt.reset(),
sensitive: props.opt.bind().as(v => v !== props.opt.initial),
}),
]
})
}