From 08d6d93661131f2219937bcc0bbce439201a0a5e Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Wed, 15 May 2024 14:41:44 -0700 Subject: [PATCH] Fix custom store --- packages/lib/Store.ts | 16 ++++++++++------ packages/util/Repository.ts | 2 -- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/lib/Store.ts b/packages/lib/Store.ts index da1d471..0fcbc9d 100644 --- a/packages/lib/Store.ts +++ b/packages/lib/Store.ts @@ -350,6 +350,10 @@ export const customStore = ({get, start}: ICustomStore) => { const set = (newValue: T) => { value = newValue + + for (const sub of subs) { + sub(value) + } } let stop: () => void @@ -357,16 +361,16 @@ export const customStore = ({get, start}: ICustomStore) => { return asReadable({ get: () => subs.length === 0 ? get() : value, - subscribe: (subscriber: Subscriber) => { - if (subs.length === 0) { + subscribe: (sub: Subscriber) => { + subs.push(sub) + + if (subs.length === 1) { stop = start(set) - value = get() + set(get()) } - subs.push(subscriber) - return () => { - subs.splice(subs.findIndex(sub => sub === subscriber), 1) + subs.splice(subs.findIndex(s => s === sub), 1) if (subs.length === 0) { stop() diff --git a/packages/util/Repository.ts b/packages/util/Repository.ts index 5e6f3c8..dae92e7 100644 --- a/packages/util/Repository.ts +++ b/packages/util/Repository.ts @@ -81,8 +81,6 @@ export class Repository extends Emitter implements IReadable { setValue(getValue()) } - onRefresh() - this.on('event', onEvent) this.on('delete', onRefresh)