37 lines
673 B
TypeScript
37 lines
673 B
TypeScript
import type { ScopeTarget } from "#lib/api/types.js";
|
|
|
|
function createPolicyUi() {
|
|
let open = $state(false);
|
|
let target = $state<ScopeTarget | null>(null);
|
|
let title = $state("");
|
|
let revision = $state(0);
|
|
|
|
return {
|
|
edit(next: ScopeTarget, name: string) {
|
|
target = next;
|
|
title = name;
|
|
open = true;
|
|
},
|
|
get open() {
|
|
return open;
|
|
},
|
|
set open(value: boolean) {
|
|
open = value;
|
|
},
|
|
get revision() {
|
|
return revision;
|
|
},
|
|
get target() {
|
|
return target;
|
|
},
|
|
get title() {
|
|
return title;
|
|
},
|
|
touch() {
|
|
revision += 1;
|
|
},
|
|
};
|
|
}
|
|
|
|
export const policyUi = createPolicyUi();
|