summaryrefslogtreecommitdiff
path: root/ui/lib/state/remote/users.svelte.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/lib/state/remote/users.svelte.js')
-rw-r--r--ui/lib/state/remote/users.svelte.js19
1 files changed, 17 insertions, 2 deletions
diff --git a/ui/lib/state/remote/users.svelte.js b/ui/lib/state/remote/users.svelte.js
index 617084f..a15d1da 100644
--- a/ui/lib/state/remote/users.svelte.js
+++ b/ui/lib/state/remote/users.svelte.js
@@ -1,10 +1,25 @@
import { SvelteMap } from 'svelte/reactivity';
+export class User {
+ static equal(a, b) {
+ return a.id === b.id && a.name === b.name;
+ }
+
+ static boot({ id, name }) {
+ return new User(id, name);
+ }
+
+ constructor(id, name) {
+ this.id = id;
+ this.name = name;
+ }
+}
+
export class Users {
all = $state();
static boot(users) {
- const all = new SvelteMap(users.map((user) => [user.id, user]));
+ const all = new SvelteMap(users.map((user) => [user.id, User.boot(user)]));
return new Users({ all });
}
@@ -13,6 +28,6 @@ export class Users {
}
add({ id, name }) {
- this.all.set(id, { id, name });
+ this.all.set(id, new User(id, name));
}
}