Skip to content

Commit 099ee65

Browse files
authored
fix(dashboard): close audit menu on outside click (#244)
1 parent 570c852 commit 099ee65

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

features/dashboard/audit-card.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,20 @@ const DegreeAuditCard: React.FC<DegreeAuditCardProps> = ({
2727
const [menuOpen, setMenuOpen] = React.useState(false);
2828
const [isEditing, setIsEditing] = React.useState(false);
2929
const [draftTitle, setDraftTitle] = React.useState(title ?? "");
30+
const cardRef = React.useRef<HTMLDivElement>(null);
31+
32+
React.useEffect(() => {
33+
if (!menuOpen) return;
34+
35+
const handleClickOutside = (event: MouseEvent) => {
36+
if (cardRef.current && !cardRef.current.contains(event.target as Node)) {
37+
setMenuOpen(false);
38+
}
39+
};
40+
41+
document.addEventListener("mousedown", handleClickOutside);
42+
return () => document.removeEventListener("mousedown", handleClickOutside);
43+
}, [menuOpen]);
3044

3145
React.useEffect(() => {
3246
if (!isSelected) {
@@ -54,6 +68,7 @@ const DegreeAuditCard: React.FC<DegreeAuditCardProps> = ({
5468

5569
return (
5670
<div
71+
ref={cardRef}
5772
className={`relative rounded-[8px] px-4 py-[12px] w-full transition-all duration-200 cursor-pointer ${
5873
isSelected
5974
? "bg-dap-orange border border-dap-orange"

0 commit comments

Comments
 (0)