Skip to content

Commit 15a993e

Browse files
authored
[#672] Menu 컴포넌트에 dimmed 영역 추가 (#680)
1 parent 16a251a commit 15a993e

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/components/common/Menu.tsx

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@ const MenuContext = createContext({} as MenuContextValue);
2323

2424
const Menu = ({ children }: { children?: React.ReactNode }) => {
2525
const [isOpen, setOpen] = useState(false);
26+
2627
const toggle = useCallback(() => setOpen(prev => !prev), []);
27-
const value = useMemo(() => ({ isOpen, toggle }), [isOpen, toggle]);
2828

2929
const ref = useOutsideClickRef<HTMLDivElement>(() => setOpen(false));
30+
const value = useMemo(() => ({ isOpen, toggle }), [isOpen, toggle]);
3031

3132
return (
3233
<div className="relative" ref={ref}>
@@ -50,6 +51,7 @@ const Toggle = () => {
5051

5152
const BottomSheetList = ({ children }: { children?: React.ReactNode }) => {
5253
const { isOpen, toggle } = useContext(MenuContext);
54+
5355
return (
5456
<BottomSheet isShow={isOpen} onClose={toggle}>
5557
{children}
@@ -58,13 +60,18 @@ const BottomSheetList = ({ children }: { children?: React.ReactNode }) => {
5860
};
5961

6062
const DropdownList = ({ children }: { children?: React.ReactNode }) => {
61-
const { isOpen } = useContext(MenuContext);
63+
const { isOpen, toggle } = useContext(MenuContext);
64+
6265
return (
6366
<>
6467
{isOpen && (
65-
<ul className="absolute right-0 top-[3rem] z-50 min-w-[10rem] rounded-[0.5rem] bg-white py-[0.5rem] shadow-[0_0_15px_rgba(0,0,0,0.05),0_1px_2px_rgba(0,0,0,0.1)]">
66-
{children}
67-
</ul>
68+
<>
69+
{/** overlay */}
70+
<div className="fixed inset-0 z-50 bg-overlay/60" onClick={toggle} />
71+
<ul className="absolute right-0 top-[3rem] z-50 min-w-[10rem] rounded-[0.5rem] bg-white py-[0.5rem] shadow-[0_0_15px_rgba(0,0,0,0.05),0_1px_2px_rgba(0,0,0,0.1)]">
72+
{children}
73+
</ul>
74+
</>
6875
)}
6976
</>
7077
);

0 commit comments

Comments
 (0)