Skip to content

Commit db184b8

Browse files
committed
feat: close language selector when clicking outside
1 parent 35c3c8b commit db184b8

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

src/components/LanguageSelector.tsx

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState, useRef } from "react";
1+
import React, { useState, useRef, useEffect } from "react";
22
import { useAppContext } from "../contexts/AppContext";
33
import { useLanguages } from "../hooks/useLanguages";
44
import { LanguageType } from "../types";
@@ -37,6 +37,22 @@ const LanguageSelector = () => {
3737
}
3838
};
3939

40+
useEffect(() => {
41+
const handleClickOutside = (event: MouseEvent) => {
42+
if (
43+
dropdownRef.current &&
44+
!dropdownRef.current.contains(event.target as Node)
45+
) {
46+
setIsDropdownOpen(false);
47+
}
48+
};
49+
50+
document.addEventListener("mousedown", handleClickOutside);
51+
return () => {
52+
document.removeEventListener("mousedown", handleClickOutside);
53+
};
54+
}, []);
55+
4056
if (loading) {
4157
return <p>Loading languages...</p>;
4258
}

0 commit comments

Comments
 (0)