diff options
Diffstat (limited to 'node/src')
-rw-r--r-- | node/src/astalify.ts | 6 | ||||
-rw-r--r-- | node/src/widgets.ts | 6 |
2 files changed, 7 insertions, 5 deletions
diff --git a/node/src/astalify.ts b/node/src/astalify.ts index 3bd00eb..bae6cc7 100644 --- a/node/src/astalify.ts +++ b/node/src/astalify.ts @@ -170,10 +170,12 @@ type BindableProps<T> = { export type ConstructProps< Self extends { new(...args: any[]): any }, Props = unknown, - Signals = unknown + Signals extends Record<string, Array<unknown>> = Record<string, []> > = { [Key in `on${string}`]: (self: Widget<Self>) => unknown -} & Partial<Signals> & BindableProps<Props & { +} & Partial<{ + [sig in keyof Signals]: (self: Widget<Self>, ...args: Signals[sig]) => unknown +}> & BindableProps<Props & { className?: string css?: string cursor?: string diff --git a/node/src/widgets.ts b/node/src/widgets.ts index 300cfab..2ce256a 100644 --- a/node/src/widgets.ts +++ b/node/src/widgets.ts @@ -1,10 +1,10 @@ /* eslint-disable max-len */ import { Astal, Gtk } from "./imports.js" -import astalify, { type ConstructProps, type Widget } from "./astalify.js" +import astalify, { type ConstructProps } from "./astalify.js" import type GtkT from "@girs/node-gtk-3.0/node-gtk-3.0" import type AstalT from "@girs/node-astal-0.1/node-astal-0.1" -export { astalify } +export { astalify, ConstructProps } // Label export const Label = astalify<typeof Gtk.Label, LabelProps, "Label">(Gtk.Label) @@ -17,7 +17,7 @@ export type IconProps = ConstructProps<typeof Astal.Icon, AstalT.Icon.Constructo // Button export const Button = astalify<typeof Astal.Button, ButtonProps, "Button">(Astal.Button) export type ButtonProps = ConstructProps<typeof Astal.Button, AstalT.Button.ConstructorProperties, { - onClicked: (self: Widget<typeof Astal.Button>) => void + onClicked: [] }> // Window |