Files
custum-hyprpanel/widget/settings/shared/Option.ts
Jas Singh 6166fdbe0f Settings menu now warns when a setting is unsaved. (#65)
* Settings menu now warns when a setting is unsaved. Additionally, font-weight increments properly now.

* Remove font weight fix - another PR already open for fix.
2024-08-02 20:00:28 -07:00

36 lines
1007 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 = '') => {
const isUnsaved = Variable(false);
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, isUnsaved),
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),
}),
]
})
}