summaryrefslogtreecommitdiff
path: root/lang/gjs/src/binding.ts
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-12-25 02:38:27 +0100
committerGitHub <[email protected]>2024-12-25 02:38:27 +0100
commit37f0d24178a1516eb45eb639640e07c5dc3b8e81 (patch)
tree28ff8d1030be1919c00152e99b4ab9c229b0f01b /lang/gjs/src/binding.ts
parent553b2186db47fb34602d4e949c1e40a018238d7a (diff)
parent0f2fefd2053203e1bfe4d66eb4e37dea07369890 (diff)
Merge pull request #196 from Aylur/feat/jsx-gtk4
Add jsx support for gtk4
Diffstat (limited to 'lang/gjs/src/binding.ts')
-rw-r--r--lang/gjs/src/binding.ts8
1 files changed, 4 insertions, 4 deletions
diff --git a/lang/gjs/src/binding.ts b/lang/gjs/src/binding.ts
index 95d905f..19a55cf 100644
--- a/lang/gjs/src/binding.ts
+++ b/lang/gjs/src/binding.ts
@@ -20,7 +20,7 @@ export interface Connectable {
[key: string]: any
}
-export default class Binding<Value> {
+export class Binding<Value> {
private transformFn = (v: any) => v
#emitter: Subscribable<Value> | Connectable
@@ -46,7 +46,7 @@ export default class Binding<Value> {
return `Binding<${this.#emitter}${this.#prop ? `, "${this.#prop}"` : ""}>`
}
- as<T>(fn: (v: Value) => T): Binding<T> {
+ as<T>(fn: (v: Value) => T | Binding<T>): Binding<T> {
const bind = new Binding(this.#emitter, this.#prop)
bind.transformFn = (v: Value) => fn(this.transformFn(v))
return bind as unknown as Binding<T>
@@ -72,8 +72,7 @@ export default class Binding<Value> {
return this.#emitter.subscribe(() => {
callback(this.get())
})
- }
- else if (typeof this.#emitter.connect === "function") {
+ } else if (typeof this.#emitter.connect === "function") {
const signal = `notify::${this.#prop}`
const id = this.#emitter.connect(signal, () => {
callback(this.get())
@@ -87,3 +86,4 @@ export default class Binding<Value> {
}
export const { bind } = Binding
+export default Binding