11import { useRef } from 'react'
2- import { useSubmit , Link , Form } from 'react-router'
2+ import { Link , Form } from 'react-router'
33import { getUserImgSrc } from '#app/utils/misc.tsx'
44import { useUser } from '#app/utils/user.ts'
55import { Button } from './ui/button'
@@ -14,10 +14,9 @@ import { Icon } from './ui/icon'
1414
1515export function UserDropdown ( ) {
1616 const user = useUser ( )
17- const submit = useSubmit ( )
1817 const formRef = useRef < HTMLFormElement > ( null )
1918 return (
20- < DropdownMenu modal = { false } >
19+ < DropdownMenu >
2120 < DropdownMenuTrigger asChild >
2221 < Button asChild variant = "secondary" >
2322 < Link
@@ -53,20 +52,15 @@ export function UserDropdown() {
5352 </ Icon >
5453 </ Link >
5554 </ DropdownMenuItem >
56- < DropdownMenuItem
57- asChild
58- // this prevents the menu from closing before the form submission is completed
59- onSelect = { async ( event ) => {
60- event . preventDefault ( )
61- await submit ( formRef . current )
62- } }
63- >
64- < Form action = "/logout" method = "POST" ref = { formRef } >
65- < Icon className = "text-body-md" name = "exit" >
66- < button type = "submit" > Logout</ button >
67- </ Icon >
68- </ Form >
69- </ DropdownMenuItem >
55+ < Form action = "/logout" method = "POST" ref = { formRef } >
56+ < DropdownMenuItem asChild >
57+ < button type = "submit" className = "w-full" >
58+ < Icon className = "text-body-md" name = "exit" >
59+ Logout
60+ </ Icon >
61+ </ button >
62+ </ DropdownMenuItem >
63+ </ Form >
7064 </ DropdownMenuContent >
7165 </ DropdownMenuPortal >
7266 </ DropdownMenu >
0 commit comments