import { Switch, Gravity, hlayout, HLayout, layoutConfig, switchView, Text, text, ViewComponent, vlayout } from "doric"; @ViewComponent export class PreferenceView extends HLayout { title: Text subTitle: Text switch: Switch constructor() { super() hlayout( [ vlayout( [ this.title = text({ textSize: 20, }), this.subTitle = text({ textSize: 12, }), ], { layoutConfig: layoutConfig().fit().configWeight(1), space: 2, }), this.switch = switchView({ state: true, }), ], { layoutConfig: layoutConfig().mostWidth().fitHeight(), gravity: Gravity.Center, padding: { left: 10, right: 10, top: 10, bottom: 10, } }).in(this) this.layoutConfig = layoutConfig().mostWidth().fitHeight() } applyChild(config: { title?: Partial, subTitle?: Partial, switch?: Partial, }) { this.title.hidden = !!!config.title?.text this.subTitle.hidden = !!!config.subTitle?.text if (config.title) { this.title.apply(config.title) } if (config.subTitle) { this.subTitle.apply(config.subTitle) } if (config.switch) { this.switch.apply(config.switch) } return this } } export function preferenceView(config?: Partial) { const ret = new PreferenceView if (config) { ret.apply(config) } return ret }