6e7d2db58f
In this PR, I'm: - fixing the root cause (we should not try to render a RecordChip if the record is not defined in RelationFromMany Display) - fixing related typing issues - we won't be able to catch the issue from TS perspective as ObjectRecord is a Record of string, any
30 lines
791 B
TypeScript
30 lines
791 B
TypeScript
import { useEffect, useState } from 'react';
|
|
|
|
import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown';
|
|
|
|
export const DropdownOnToggleEffect = ({
|
|
onDropdownClose,
|
|
onDropdownOpen,
|
|
}: {
|
|
onDropdownClose?: () => void;
|
|
onDropdownOpen?: () => void;
|
|
}) => {
|
|
const { isDropdownOpen } = useDropdown();
|
|
const [currentIsDropdownOpen, setCurrentIsDropdownOpen] =
|
|
useState(isDropdownOpen);
|
|
|
|
useEffect(() => {
|
|
if (isDropdownOpen && !currentIsDropdownOpen) {
|
|
setCurrentIsDropdownOpen(isDropdownOpen);
|
|
onDropdownOpen?.();
|
|
}
|
|
|
|
if (!isDropdownOpen && currentIsDropdownOpen) {
|
|
setCurrentIsDropdownOpen(isDropdownOpen);
|
|
onDropdownClose?.();
|
|
}
|
|
}, [currentIsDropdownOpen, isDropdownOpen, onDropdownClose, onDropdownOpen]);
|
|
|
|
return null;
|
|
};
|