From 373cedd4ca69b68e47b9d0a6ba7060d9cc3de236 Mon Sep 17 00:00:00 2001 From: Gordon Brander Date: Fri, 7 Jun 2024 20:34:15 -0700 Subject: [PATCH] Add counter example for watch directive --- typescript/packages/common-frp-lit/index.html | 11 ++++++++++ .../packages/common-frp-lit/package.json | 3 ++- .../src/example/counter-example.ts | 22 +++++++++++++++++++ .../packages/common-frp-lit/src/index.ts | 11 +++------- 4 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 typescript/packages/common-frp-lit/index.html create mode 100644 typescript/packages/common-frp-lit/src/example/counter-example.ts diff --git a/typescript/packages/common-frp-lit/index.html b/typescript/packages/common-frp-lit/index.html new file mode 100644 index 000000000..2d720da30 --- /dev/null +++ b/typescript/packages/common-frp-lit/index.html @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/typescript/packages/common-frp-lit/package.json b/typescript/packages/common-frp-lit/package.json index 69122cd11..e61f57062 100644 --- a/typescript/packages/common-frp-lit/package.json +++ b/typescript/packages/common-frp-lit/package.json @@ -8,7 +8,8 @@ "type": "module", "scripts": { "build": "wireit", - "clean": "wireit" + "clean": "wireit", + "dev": "vite" }, "repository": { "type": "git", diff --git a/typescript/packages/common-frp-lit/src/example/counter-example.ts b/typescript/packages/common-frp-lit/src/example/counter-example.ts new file mode 100644 index 000000000..096c30d85 --- /dev/null +++ b/typescript/packages/common-frp-lit/src/example/counter-example.ts @@ -0,0 +1,22 @@ +import { LitElement } from "lit"; +import { html } from "lit-html"; +import { signal, config } from "@commontools/common-frp"; +import { watch } from "../index.js"; +import { customElement } from "lit/decorators.js"; + +config.debug = true; + +const {state} = signal; + +const count = state(0); + +@customElement('counter-example') +export class BasicExample extends LitElement { + override render() { + return html` + + `; + } +} \ No newline at end of file diff --git a/typescript/packages/common-frp-lit/src/index.ts b/typescript/packages/common-frp-lit/src/index.ts index 37e1de386..ddc9ac6fd 100644 --- a/typescript/packages/common-frp-lit/src/index.ts +++ b/typescript/packages/common-frp-lit/src/index.ts @@ -1,17 +1,12 @@ import { signal } from "@commontools/common-frp"; -import {directive} from 'lit/directive.js'; -import {AsyncDirective} from 'lit/async-directive.js'; +import { directive } from "lit/directive.js"; +import { AsyncDirective } from "lit/async-directive.js"; const {state, effect} = signal; class WatchDirective extends AsyncDirective { #cancel: (() => void) | undefined = undefined; - #isWatching; - - constructor(part: any) { - super(part); - this.#isWatching = state(true); - } + #isWatching = state(true); override render(signal: any) { this.#cancel?.();