fix: disable live data fetching when a dialog is open

This commit is contained in:
Aarnav Tale 2025-03-29 14:27:56 -04:00
parent bf02015dc7
commit 3771890f98
No known key found for this signature in database

View File

@ -1,4 +1,4 @@
import React, { cloneElement, useRef } from 'react';
import React, { cloneElement, useEffect, useRef } from 'react';
import {
type AriaDialogProps,
type AriaModalOverlayProps,
@ -19,6 +19,7 @@ import IconButton, { IconButtonProps } from '~/components/IconButton';
import Text from '~/components/Text';
import Title from '~/components/Title';
import cn from '~/utils/cn';
import { useLiveData } from '~/utils/live-data';
export interface DialogProps extends OverlayTriggerProps {
children:
@ -30,6 +31,7 @@ export interface DialogProps extends OverlayTriggerProps {
}
function Dialog(props: DialogProps) {
const { pause, resume } = useLiveData();
const state = useOverlayTriggerState(props);
const { triggerProps, overlayProps } = useOverlayTrigger(
{
@ -38,6 +40,14 @@ function Dialog(props: DialogProps) {
state,
);
useEffect(() => {
if (state.isOpen) {
pause();
} else {
resume();
}
}, [state.isOpen]);
if (Array.isArray(props.children)) {
const [button, panel] = props.children;
return (