19 lines
629 B
TypeScript
19 lines
629 B
TypeScript
export type ScreenMouseWheelCallback = (deltaY: number, deltaX: number) => void;
|
|
|
|
export const useScreenMouseWheel = (callback: ScreenMouseWheelCallback) => {
|
|
const registerScreenMouseWheelCallback = inject<
|
|
(callback: ScreenMouseWheelCallback) => () => void
|
|
>("registerScreenMouseWheelCallback");
|
|
|
|
onMounted(() => {
|
|
if (!registerScreenMouseWheelCallback) {
|
|
throw new Error(
|
|
"Missing registerScreenMouseWheelCallback - useScreenMouseWheel must be used within a Screen component",
|
|
);
|
|
}
|
|
|
|
const unregister = registerScreenMouseWheelCallback(callback);
|
|
onUnmounted(unregister);
|
|
});
|
|
};
|