Merge pull request #7 from nightbug-xx/codex/상단-메뉴에-친구-메뉴-추가

Add friend menu with submenus
This commit is contained in:
nightbug-xx 2025-06-09 18:51:32 +09:00 committed by GitHub
commit e1fb81bf4e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 39 additions and 0 deletions

View File

@ -16,6 +16,8 @@ import Dashboard from './pages/Dashboard'
import MePage from './pages/MePage' import MePage from './pages/MePage'
import CharacterEditPage from './pages/CharacterEditPage' import CharacterEditPage from './pages/CharacterEditPage'
import GuidePage from './pages/Guide' import GuidePage from './pages/Guide'
import FriendList from './pages/FriendList'
import FriendRequests from './pages/FriendRequests'
const darkTheme = createTheme({ const darkTheme = createTheme({
palette: { palette: {
@ -44,6 +46,8 @@ function App() {
<Route path="/me" element={<MePage />} /> <Route path="/me" element={<MePage />} />
<Route path="/characters/:id/edit" element={<CharacterEditPage />} /> <Route path="/characters/:id/edit" element={<CharacterEditPage />} />
<Route path="/homeworks/:id/edit" element={<HomeworkEditPage />} /> <Route path="/homeworks/:id/edit" element={<HomeworkEditPage />} />
<Route path="/friends" element={<FriendList />} />
<Route path="/friends/requests" element={<FriendRequests />} />
<Route path="/guide" element={<GuidePage />} /> <Route path="/guide" element={<GuidePage />} />
</Routes> </Routes>
</Layout> </Layout>

View File

@ -19,6 +19,7 @@ export default function Layout({ children }: { children: React.ReactNode }) {
const [anchorElCharacter, setAnchorElCharacter] = useState<null | HTMLElement>(null) const [anchorElCharacter, setAnchorElCharacter] = useState<null | HTMLElement>(null)
const [anchorElHomework, setAnchorElHomework] = useState<null | HTMLElement>(null) const [anchorElHomework, setAnchorElHomework] = useState<null | HTMLElement>(null)
const [anchorElFriend, setAnchorElFriend] = useState<null | HTMLElement>(null)
const [anchorElUser, setAnchorElUser] = useState<null | HTMLElement>(null) const [anchorElUser, setAnchorElUser] = useState<null | HTMLElement>(null)
const handleMenuOpen = ( const handleMenuOpen = (
@ -71,6 +72,16 @@ export default function Layout({ children }: { children: React.ReactNode }) {
<MenuItem component={Link} to="/homeworks" onClick={handleMenuClose(setAnchorElHomework)}> </MenuItem> <MenuItem component={Link} to="/homeworks" onClick={handleMenuClose(setAnchorElHomework)}> </MenuItem>
</Menu> </Menu>
<Button color="inherit" onClick={handleMenuOpen(setAnchorElFriend)}></Button>
<Menu
anchorEl={anchorElFriend}
open={Boolean(anchorElFriend)}
onClose={handleMenuClose(setAnchorElFriend)}
>
<MenuItem component={Link} to="/friends" onClick={handleMenuClose(setAnchorElFriend)}></MenuItem>
<MenuItem component={Link} to="/friends/requests" onClick={handleMenuClose(setAnchorElFriend)}></MenuItem>
</Menu>
<IconButton color="inherit" onClick={handleUserMenuOpen} size="large"> <IconButton color="inherit" onClick={handleUserMenuOpen} size="large">
<AccountCircle /> <AccountCircle />
</IconButton> </IconButton>

12
src/pages/FriendList.tsx Normal file
View File

@ -0,0 +1,12 @@
import { Box, Typography } from '@mui/material'
export default function FriendList() {
return (
<Box sx={{ p: 4 }}>
<Typography variant="h5" gutterBottom>
</Typography>
<Typography> ...</Typography>
</Box>
)
}

View File

@ -0,0 +1,12 @@
import { Box, Typography } from '@mui/material'
export default function FriendRequests() {
return (
<Box sx={{ p: 4 }}>
<Typography variant="h5" gutterBottom>
</Typography>
<Typography> ...</Typography>
</Box>
)
}