exome
Version:
State manager for deeply nested states
32 lines (31 loc) • 780 B
TypeScript
/**
* @module exome/angular
*/
import { type Signal } from "@angular/core";
import { type Exome } from "exome";
/**
* Creates Angular signal and subscribes to store instance update events and trigger updates to component accordingly.
*
* @example:
* ```ts
* import { useStore } from "exome/angular"
* import { counterStore } from "./counter.store.ts"
*
* @Component({
* selector: 'my-app',
* template: `
* <button (click)="increment()">
* {{count}}
* </button>
* `,
* })
* export class App {
* public count = useStore(counterStore, (s) => s.count)
*
* public increment() {
* counterStore.increment()
* }
* }
* ```
*/
export declare function useStore<T extends Exome, R = T>(store: T, selector?: (state: T) => R): Signal<R>;