Skip to content

Commit 7726bbe

Browse files
committed
add SSR support
1 parent 9be5af3 commit 7726bbe

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

src/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ type OmitFirstParam<T extends (...args: any[]) => any> = T extends (
1111
? (...args: R) => Ret
1212
: never;
1313

14+
const DOCUMENT = typeof document !== "undefined" ? document : undefined;
15+
1416
/**
1517
* Creates a custom event with an associated React hook for listening.
1618
*
@@ -25,7 +27,7 @@ export function createCustomEvent<Payload>(eventName: string) {
2527
* @param {EventInit} [eventInitDict] - Additional options for the event.
2628
*/
2729
function dispatch(payload: Payload, eventInitDict?: EventInit) {
28-
document.dispatchEvent(
30+
DOCUMENT?.dispatchEvent(
2931
new CustomEvent<Payload>(eventName, {
3032
...eventInitDict,
3133
detail: payload,
@@ -105,11 +107,11 @@ export function useCustomEventListener<Payload>(
105107
}
106108

107109
onStartListening?.();
108-
document.addEventListener(eventName, handleCallback);
110+
DOCUMENT?.addEventListener(eventName, handleCallback);
109111

110112
return () => {
111113
onStopListening?.();
112-
document.removeEventListener(eventName, handleCallback);
114+
DOCUMENT?.removeEventListener(eventName, handleCallback);
113115
};
114116
}, getDepList());
115117
}

0 commit comments

Comments
 (0)