Nav.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. import * as React from 'react';
  2. import AppBar from '@mui/material/AppBar';
  3. import Box from '@mui/material/Box';
  4. import Toolbar from '@mui/material/Toolbar';
  5. import IconButton from '@mui/material/IconButton';
  6. import Typography from '@mui/material/Typography';
  7. import Menu from '@mui/material/Menu';
  8. import MenuIcon from '@mui/icons-material/Menu';
  9. import Container from '@mui/material/Container';
  10. import Avatar from '@mui/material/Avatar';
  11. import Button from '@mui/material/Button';
  12. import Tooltip from '@mui/material/Tooltip';
  13. import MenuItem from '@mui/material/MenuItem';
  14. import AdbIcon from '@mui/icons-material/Adb';
  15. import Link from'next/link';
  16. import navigation from '../data/navigation.json';
  17. // export const getStaticProps = async ({ params }) =>{
  18. // const hrefs = linking.filter((p) => p.id.toString() === params.id)
  19. // console.log(hrefs)
  20. // return{
  21. // props:{
  22. // url:hrefs,
  23. // },
  24. // };
  25. // };
  26. // export const getStaticPaths = async() =>{
  27. // const paths = linking.map((url =>({
  28. // params:{id:url.id.toString()},
  29. // // params:{main:url.main.toString()},
  30. // // params:{link:url.main.link.toString()},
  31. // })));
  32. // return{ paths,fallback:false}
  33. // }
  34. const settings = [ 'setting'];
  35. const ResponsiveAppBar = () => {
  36. console.log("navigation", navigation)
  37. const hrefs = [];//url.hrefs;
  38. const [anchorElNav, setAnchorElNav] = React.useState(null);
  39. const [anchorElUser, setAnchorElUser] = React.useState(null);
  40. const handleOpenNavMenu = (event) => {
  41. setAnchorElNav(event.currentTarget);
  42. };
  43. const handleOpenUserMenu = (event) => {
  44. setAnchorElUser(event.currentTarget);
  45. };
  46. const handleCloseNavMenu = () => {
  47. setAnchorElNav(null);
  48. };
  49. const handleCloseUserMenu = () => {
  50. setAnchorElUser(null);
  51. };
  52. return (
  53. <AppBar position="static">
  54. <Container maxWidth="xl">
  55. <Toolbar disableGutters>
  56. <AdbIcon sx={{ display: { xs: 'none', md: 'flex' }, mr: 1 }} />
  57. <Typography
  58. variant="h6"
  59. noWrap
  60. component="a"
  61. href="/"
  62. sx={{
  63. mr: 2,
  64. display: { xs: 'none', md: 'flex' },
  65. fontFamily: 'monospace',
  66. fontWeight: 700,
  67. letterSpacing: '.3rem',
  68. color: 'inherit',
  69. textDecoration: 'none',
  70. }}
  71. >
  72. Home
  73. </Typography>
  74. <Box sx={{ flexGrow: 1, display: { xs: 'flex', md: 'none' } }}>
  75. <IconButton
  76. size="large"
  77. aria-label="account of current user"
  78. aria-controls="menu-appbar"
  79. aria-haspopup="true"
  80. onClick={handleOpenNavMenu}
  81. color="inherit"
  82. >
  83. <MenuIcon />
  84. </IconButton>
  85. <Menu
  86. id="menu-appbar"
  87. anchorEl={anchorElNav}
  88. anchorOrigin={{
  89. vertical: 'bottom',
  90. horizontal: 'left',
  91. }}
  92. keepMounted
  93. transformOrigin={{
  94. vertical: 'top',
  95. horizontal: 'left',
  96. }}
  97. open={Boolean(anchorElNav)}
  98. onClose={handleCloseNavMenu}
  99. sx={{
  100. display: { xs: 'block', md: 'none' },
  101. }}
  102. >
  103. {navigation.map(({name:n, typography:t, ...v},i) => {
  104. console.log('-> navigation',n,t,v,i)
  105. return (
  106. <MenuItem key={`menuitem-${i}`} {...v} onClick={handleCloseNavMenu}>
  107. <Link {...v}>
  108. <Typography {...t}>
  109. {n}
  110. </Typography>
  111. </Link>
  112. </MenuItem>
  113. )
  114. })}
  115. {/* hrefs?.map((rout) => (
  116. <MenuItem prop={rout.link} onClick={handleCloseNavMenu}>
  117. <Link href = {`${rout.link}`}>
  118. <Typography
  119. textAlign="center"
  120. sx={{
  121. color: 'inherit',
  122. textDecoration: 'none',
  123. }}>
  124. {hrefs.name}
  125. </Typography>
  126. </Link>
  127. </MenuItem>
  128. )) */}
  129. </Menu>
  130. </Box>
  131. <AdbIcon sx={{ display: { xs: 'flex', md: 'none' }, mr: 1 }} />
  132. <Typography
  133. variant="h5"
  134. noWrap
  135. component="a"
  136. href="/"
  137. sx={{
  138. mr: 2,
  139. display: { xs: 'flex', md: 'none' },
  140. flexGrow: 1,
  141. fontFamily: 'monospace',
  142. fontWeight: 700,
  143. letterSpacing: '.3rem',
  144. color: 'inherit',
  145. textDecoration: 'none',
  146. }}
  147. //codenced page
  148. >
  149. Home
  150. </Typography>
  151. {navigation.map(({name:n, typography:t, ...v},i) => {
  152. console.log('-> navigation',n,t,v,i)
  153. return(
  154. <Box sx={{ flexGrow: 1, display: { xs: 'none', md: 'flex' } }}>
  155. <Link {...v}>
  156. <Button key={`menuitem-${i}`} {...v}
  157. onClick={handleCloseNavMenu}
  158. sx={{ my: 2, color: 'white', display: 'block',textDecoration: 'none'}}>
  159. {n}
  160. </Button>
  161. </Link>
  162. </Box>
  163. )
  164. })}
  165. <Box sx={{ flexGrow: 0 }}>
  166. <Tooltip title="Open settings">
  167. <IconButton onClick={handleOpenUserMenu} sx={{ p: 0 }}>
  168. <Avatar alt="Remy Sharp" src="/static/images/avatar/2.jpg" />
  169. </IconButton>
  170. </Tooltip>
  171. <Menu
  172. sx={{ mt: '45px' }}
  173. id="menu-appbar"
  174. anchorEl={anchorElUser}
  175. anchorOrigin={{
  176. vertical: 'top',
  177. horizontal: 'right',
  178. }}
  179. keepMounted
  180. transformOrigin={{
  181. vertical: 'top',
  182. horizontal: 'right',
  183. }}
  184. open={Boolean(anchorElUser)}
  185. onClose={handleCloseUserMenu}
  186. >
  187. {settings.map((setting) => (
  188. <MenuItem key={setting} onClick={handleCloseUserMenu}>
  189. <Link href = {`/${setting}`}>
  190. <Typography textAlign="center">
  191. {setting}
  192. </Typography>
  193. </Link>
  194. </MenuItem>
  195. ))}
  196. </Menu>
  197. </Box>
  198. </Toolbar>
  199. </Container>
  200. </AppBar>
  201. );
  202. };
  203. export default ResponsiveAppBar;
  204. /*export default ResponsiveAppBar;
  205. return (
  206. <Box sx={{ width: '100%' }}>
  207. <Tabs value={value} onChange={handleChange} aria-label="nav tabs example">
  208. <LinkTab label="Home" href="/" />
  209. <LinkTab label="Donations" href="/Donation"/>
  210. <LinkTab label="temp-page1" href="/temp-page1" />
  211. <LinkTab label="temp-page2" href="/temp-page2" />
  212. <LinkTab label="temp-page3" href="/temp-page3" />
  213. <LinkTab label="temp-page4" href="/temp-page4" />
  214. </Tabs>
  215. </Box>
  216. );
  217. */
  218. /*<Link href="/">Home</Link> */
  219. /* <Link style={{textDecoration:"none",color:"white"}}
  220. to = {`/${page}`}>
  221. {page}
  222. </Link>*/