exome
Version:
State manager for deeply nested states
36 lines (35 loc) • 942 B
TypeScript
/**
* @module exome/lit
*/
import { type Exome } from "exome";
import type { ReactiveController, ReactiveControllerHost } from "lit";
/**
* Subscribes to store instance update events and trigger updates to component accordingly.
*
* @example:
* ```ts
* import { StoreController } from "exome/lit"
* import { counterStore } from "./counter.store.ts"
*
* @customElement("counter")
* class CounterComponent extends LitElement {
* private counter = new StoreController(this, counterStore)
*
* render() {
* const { count, increment } = this.counter.store
*
* return html`
* <button @click=${increment}>${count}</button>
* `
* }
* }
* ```
*/
export declare class StoreController<T extends Exome> implements ReactiveController {
private host;
store: T;
private unsubscribe;
constructor(host: ReactiveControllerHost, store: T);
hostConnected(): void;
hostDisconnected(): void;
}