@e280/authlocal
Version:
User-sovereign login system for everybody
39 lines • 1.09 kB
JavaScript
import { signal } from "@benev/slate";
import { validLabel } from "../../../../common/utils/validation.js";
export class IdentityDraft {
#identity;
#label;
constructor(identity) {
this.#identity = signal(identity);
this.#label = signal(identity.label);
}
get identity() {
return this.#identity.value;
}
set identity(fresh) {
this.#identity.value = fresh;
this.#label.value = fresh.label;
}
setEditedLabel(label) {
this.#label.value = label;
}
getEditedLabel() {
return this.#label.value;
}
hasValidChanges() {
const label = this.getEditedLabel();
const changed = label !== this.identity.label;
return changed && validLabel(label);
}
getValidEditedIdentity() {
const label = this.getEditedLabel();
return validLabel(label)
? {
label,
id: this.#identity.value.id,
secret: this.#identity.value.secret,
}
: null;
}
}
//# sourceMappingURL=draft.js.map