( valueId: MaybeGetter<Id>, storeOrStoreId?: MaybeGetter<Store | Id | undefined>, )
| 541 | ); |
| 542 | |
| 543 | export const getValue = ( |
| 544 | valueId: MaybeGetter<Id>, |
| 545 | storeOrStoreId?: MaybeGetter<Store | Id | undefined>, |
| 546 | ): {get current(): ValueOrUndefined; set current(v: Value)} => { |
| 547 | const getStore = resolveStore(storeOrStoreId); |
| 548 | let subscribe = $state<() => void>(noop); |
| 549 | if (hasWindow()) { |
| 550 | $effect(() => { |
| 551 | const store: any = getStore(); |
| 552 | const valueIdValue = maybeGet(valueId); |
| 553 | subscribe = createSubscriber((update) => { |
| 554 | const listenerId = store?.addValueListener(valueIdValue, update); |
| 555 | return () => store?.delListener?.(listenerId); |
| 556 | }); |
| 557 | }); |
| 558 | } |
| 559 | return new WritableHandle<ValueOrUndefined, Value>( |
| 560 | () => getStore()?.getValue(maybeGet(valueId)), |
| 561 | (nextValue) => getStore()?.setValue(maybeGet(valueId), nextValue), |
| 562 | () => subscribe(), |
| 563 | ); |
| 564 | }; |
| 565 | |
| 566 | export const getStore = (id?: Id): Store | undefined => |
| 567 | getProvidedThing(id, OFFSET_STORE) as Store | undefined; |
no test coverage detected
searching dependent graphs…