diff --git a/packages/next-feedback/src/components/FeedbackOverlay.tsx b/packages/next-feedback/src/components/FeedbackOverlay.tsx index 179fd6a..3100cda 100644 --- a/packages/next-feedback/src/components/FeedbackOverlay.tsx +++ b/packages/next-feedback/src/components/FeedbackOverlay.tsx @@ -31,12 +31,20 @@ interface Feedback { comments: FeedbackComment[]; } -export function FeedbackOverlay({ onActiveChange }: { onActiveChange?: (active: boolean) => void }) { - const [isActive, setIsActive] = useState(false); +export function FeedbackOverlay({ + isActive: externalIsActive, + onActiveChange +}: { + isActive?: boolean; + onActiveChange?: (active: boolean) => void +}) { + const [internalIsActive, setInternalIsActive] = useState(false); - useEffect(() => { - onActiveChange?.(isActive); - }, [isActive, onActiveChange]); + const isActive = externalIsActive !== undefined ? externalIsActive : internalIsActive; + const setIsActive = (val: boolean) => { + if (externalIsActive === undefined) setInternalIsActive(val); + onActiveChange?.(val); + }; const [hoveredElement, setHoveredElement] = useState( null, );