Nav.js 6.7 KB

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