Skip to content

Commit b317f9a

Browse files
fix: preferences routing and dropdown positioning (#930)
* fix: preferences routing * fix: Fix popover miss correct position
1 parent cbd1c3e commit b317f9a

File tree

3 files changed

+18
-21
lines changed

3 files changed

+18
-21
lines changed

site/src/AppRouter.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from "react"
2-
import { Navigate, Route, Routes } from "react-router-dom"
2+
import { Route, Routes } from "react-router-dom"
33
import { AuthAndNav, RequireAuth } from "./components"
44
import { PreferencesLayout } from "./components/Preferences/Layout"
55
import { IndexPage } from "./pages"
@@ -73,7 +73,6 @@ export const AppRouter: React.FC = () => (
7373
</Route>
7474

7575
<Route path="preferences" element={<PreferencesLayout />}>
76-
<Route index element={<Navigate to="account" />} />
7776
<Route path="account" element={<PreferencesAccountPage />} />
7877
<Route path="security" element={<PreferencesSecurityPage />} />
7978
<Route path="ssh-keys" element={<PreferencesSSHKeysPage />} />

site/src/components/Navbar/UserDropdown.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,6 @@ describe("UserDropdown", () => {
5050
throw new Error("Anchor tag not found for the account menu item")
5151
}
5252

53-
expect(link.getAttribute("href")).toBe("/preferences")
53+
expect(link.getAttribute("href")).toBe("/preferences/account")
5454
})
5555
})

site/src/components/Navbar/UserDropdown.tsx

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ export interface UserDropdownProps {
2828

2929
export const UserDropdown: React.FC<UserDropdownProps> = ({ user, onSignOut }: UserDropdownProps) => {
3030
const styles = useStyles()
31-
3231
const [anchorEl, setAnchorEl] = useState<HTMLElement | undefined>()
32+
3333
const handleDropdownClick = (ev: React.MouseEvent<HTMLLIElement>): void => {
3434
setAnchorEl(ev.currentTarget)
3535
}
@@ -39,20 +39,18 @@ export const UserDropdown: React.FC<UserDropdownProps> = ({ user, onSignOut }: U
3939

4040
return (
4141
<>
42-
<div>
43-
<MenuItem onClick={handleDropdownClick} data-testid="user-dropdown-trigger">
44-
<div className={styles.inner}>
45-
<Badge overlap="circle">
46-
<UserAvatar username={user.username} />
47-
</Badge>
48-
{anchorEl ? (
49-
<KeyboardArrowUp className={`${styles.arrowIcon} ${styles.arrowIconUp}`} />
50-
) : (
51-
<KeyboardArrowDown className={styles.arrowIcon} />
52-
)}
53-
</div>
54-
</MenuItem>
55-
</div>
42+
<MenuItem onClick={handleDropdownClick} data-testid="user-dropdown-trigger">
43+
<div className={styles.inner}>
44+
<Badge overlap="circle">
45+
<UserAvatar username={user.username} />
46+
</Badge>
47+
{anchorEl ? (
48+
<KeyboardArrowUp className={`${styles.arrowIcon} ${styles.arrowIconUp}`} />
49+
) : (
50+
<KeyboardArrowDown className={styles.arrowIcon} />
51+
)}
52+
</div>
53+
</MenuItem>
5654

5755
<BorderedMenu
5856
anchorEl={anchorEl}
@@ -75,8 +73,8 @@ export const UserDropdown: React.FC<UserDropdownProps> = ({ user, onSignOut }: U
7573

7674
<Divider />
7775

78-
<Link to="/preferences" className={styles.link}>
79-
<MenuItem className={styles.menuItem} onClick={handleDropdownClick}>
76+
<Link to="/preferences/account" className={styles.link}>
77+
<MenuItem className={styles.menuItem} onClick={onPopoverClose}>
8078
<ListItemIcon className={styles.icon}>
8179
<AccountIcon />
8280
</ListItemIcon>
@@ -85,7 +83,7 @@ export const UserDropdown: React.FC<UserDropdownProps> = ({ user, onSignOut }: U
8583
</Link>
8684

8785
<a href="https://coder.com/docs" target="_blank" rel="noreferrer" className={styles.link}>
88-
<MenuItem className={styles.menuItem} onClick={handleDropdownClick}>
86+
<MenuItem className={styles.menuItem} onClick={onPopoverClose}>
8987
<ListItemIcon className={styles.icon}>
9088
<DocsIcon />
9189
</ListItemIcon>

0 commit comments

Comments
 (0)