summaryrefslogtreecommitdiff
path: root/node/src/astalify.ts
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-06-04 23:05:41 +0200
committerAylur <[email protected]>2024-06-04 23:05:41 +0200
commitca74fb7ad016f9ceee3756a973baa2d87a8aa1d6 (patch)
treed935caa5959c1344ce9e99ae3ca9be699426ad2a /node/src/astalify.ts
parentcfe3244e61207d4d761f2522546cb2bfb1c539f3 (diff)
small fixes
* export Gdk * flatten jsx children
Diffstat (limited to 'node/src/astalify.ts')
-rw-r--r--node/src/astalify.ts15
1 files changed, 10 insertions, 5 deletions
diff --git a/node/src/astalify.ts b/node/src/astalify.ts
index bae6cc7..9f83e71 100644
--- a/node/src/astalify.ts
+++ b/node/src/astalify.ts
@@ -167,14 +167,19 @@ type BindableProps<T> = {
[K in keyof T]: Binding<NonNullable<T[K]>> | T[K];
}
+type SigHandler<
+ W extends { new(...args: any): Gtk.Widget },
+ Args extends Array<unknown>,
+> = ((self: Widget<W>, ...args: Args) => unknown) | string | string[]
+
export type ConstructProps<
Self extends { new(...args: any[]): any },
Props = unknown,
- Signals extends Record<string, Array<unknown>> = Record<string, []>
-> = {
- [Key in `on${string}`]: (self: Widget<Self>) => unknown
-} & Partial<{
- [sig in keyof Signals]: (self: Widget<Self>, ...args: Signals[sig]) => unknown
+ Signals extends Record<`on${string}`, Array<unknown>> = Record<`on${string}`, any[]>
+> = Partial<{
+ [S in keyof Signals]: SigHandler<Self, Signals[S]>
+}> & Partial<{
+ [Key in `on${string}`]: SigHandler<Self, any[]>
}> & BindableProps<Props & {
className?: string
css?: string