aboutsummaryrefslogtreecommitdiff
path: root/src/stores
diff options
context:
space:
mode:
Diffstat (limited to 'src/stores')
-rw-r--r--src/stores/forums.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/stores/forums.js b/src/stores/forums.js
new file mode 100644
index 0000000..e7acb60
--- /dev/null
+++ b/src/stores/forums.js
@@ -0,0 +1,36 @@
+import { readable } from 'svelte/store';
+
+const internals = {
+
+ // Constants
+
+ kChangeFeedEventName: 'changefeed:forums',
+
+ // The exported data structure
+
+ forums: [],
+
+ // Handles messages from the event
+
+ handleChangeFeed(data) {
+
+ // No old value == add
+ if (!data.old_val) {
+ return internals.forums.push(data.new_val);
+ }
+
+ // We have an old value, let's find it.
+ const index = internals.forums.findIndex((element) => element.id === data.old_val.id);
+
+ if (index > -1) {
+ if (data.new_val) {
+ return internals.forums.splice(index, 1, data.new_val || undefined);
+ }
+
+ return internals.forums.splice(index, 1);
+ }
+ }
+};
+
+export const forums = readable(internals.forums, (set) => {
+});