refactor(react): allow binding multiple events at once

This commit is contained in:
Elian Doran
2025-08-21 13:17:28 +03:00
parent 51e8a80ca3
commit bea352855a
2 changed files with 16 additions and 11 deletions

View File

@@ -87,11 +87,22 @@ export default function useTriliumEvent<T extends EventNames>(eventName: T, hand
}, [ eventName, parentWidget, handler ]);
}
export function useTriliumEventBeta<T extends EventNames>(eventName: T, handler: TriliumEventHandler<T>) {
export function useTriliumEventBeta<T extends EventNames>(eventName: T | T[], handler: TriliumEventHandler<T>) {
const parentComponent = useContext(ParentComponent) as ReactWrappedWidget;
parentComponent.registerHandler(eventName, handler);
return (() => parentComponent.removeHandler(eventName, handler));
if (Array.isArray(eventName)) {
for (const eventSingleName of eventName) {
parentComponent.registerHandler(eventSingleName, handler);
}
return (() => {
for (const eventSingleName of eventName) {
parentComponent.removeHandler(eventSingleName, handler)
}
});
} else {
parentComponent.registerHandler(eventName, handler);
return (() => parentComponent.removeHandler(eventName, handler));
}
}
export function useSpacedUpdate(callback: () => Promise<void>, interval = 1000) {