diff options
Diffstat (limited to 'src/stores')
| -rw-r--r-- | src/stores/forums.js | 36 |
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) => { +}); |