Spaces:
Configuration error
Configuration error
'use client'; | |
// Chakra Imports | |
import { | |
Box, | |
Button, | |
Center, | |
Flex, | |
Icon, | |
Link, | |
Menu, | |
MenuButton, | |
MenuItem, | |
MenuList, | |
Text, | |
useColorMode, | |
useColorModeValue, | |
} from '@chakra-ui/react'; | |
import { SearchBar } from '@/components/navbar/searchBar/SearchBar'; | |
import { SidebarResponsive } from '@/components/sidebar/Sidebar'; | |
import { IoMdMoon, IoMdSunny } from 'react-icons/io'; | |
import { MdInfoOutline } from 'react-icons/md'; | |
import APIModal from '@/components/apiModal'; | |
import NavLink from '../link/NavLink'; | |
import routes from '@/routes'; | |
export default function HeaderLinks(props: { | |
secondary: boolean; | |
setApiKey: any; | |
}) { | |
const { secondary, setApiKey } = props; | |
const { colorMode, toggleColorMode } = useColorMode(); | |
// Chakra Color Mode | |
const navbarIcon = useColorModeValue('gray.500', 'white'); | |
let menuBg = useColorModeValue('white', 'navy.800'); | |
const textColor = useColorModeValue('navy.700', 'white'); | |
const borderColor = useColorModeValue('#E6ECFA', 'rgba(135, 140, 189, 0.3)'); | |
const shadow = useColorModeValue( | |
'14px 17px 40px 4px rgba(112, 144, 176, 0.18)', | |
'0px 41px 75px #081132', | |
); | |
const buttonBg = useColorModeValue('transparent', 'navy.800'); | |
const hoverButton = useColorModeValue( | |
{ bg: 'gray.100' }, | |
{ bg: 'whiteAlpha.100' }, | |
); | |
const activeButton = useColorModeValue( | |
{ bg: 'gray.200' }, | |
{ bg: 'whiteAlpha.200' }, | |
); | |
return ( | |
<Flex | |
zIndex="100" | |
w={{ sm: '100%', md: 'auto' }} | |
alignItems="center" | |
flexDirection="row" | |
bg={menuBg} | |
flexWrap={secondary ? { base: 'wrap', md: 'nowrap' } : 'unset'} | |
p="10px" | |
borderRadius="30px" | |
boxShadow={shadow} | |
> | |
<SearchBar | |
mb={() => { | |
if (secondary) { | |
return { base: '10px', md: 'unset' }; | |
} | |
return 'unset'; | |
}} | |
me="10px" | |
borderRadius="30px" | |
/> | |
<SidebarResponsive routes={routes} /> | |
<APIModal setApiKey={setApiKey} /> | |
<Menu> | |
<MenuButton p="0px"> | |
<Icon | |
mt="6px" | |
as={MdInfoOutline} | |
color={navbarIcon} | |
w="18px" | |
h="18px" | |
me="10px" | |
/> | |
</MenuButton> | |
<MenuList | |
boxShadow={shadow} | |
p="20px" | |
me={{ base: '30px', md: 'unset' }} | |
borderRadius="20px" | |
bg={menuBg} | |
border="none" | |
mt="22px" | |
minW={{ base: 'unset' }} | |
maxW={{ base: '360px', md: 'unset' }} | |
> | |
{/* <Flex bgImage={navImage} borderRadius="16px" mb="28px" alt="" /> */} | |
<Flex flexDirection="column"> | |
<Link | |
isExternal | |
w="100%" | |
href="https://horizon-ui.com/ai-template/" | |
> | |
<Button | |
variant="primary" | |
py="20px" | |
px="16px" | |
fontSize="sm" | |
borderRadius="45px" | |
mb="10px" | |
w="100%" | |
h="54px" | |
> | |
Buy Horizon AI Template | |
</Button> | |
</Link> | |
<Link | |
isExternal | |
w="100%" | |
href="https://horizon-ui.com/docs-ai-template/" | |
> | |
<Button | |
bg={buttonBg} | |
border="1px solid" | |
color={textColor} | |
mt={{ base: '20px', md: '0px' }} | |
borderColor={useColorModeValue('gray.200', 'whiteAlpha.100')} | |
fontSize="sm" | |
borderRadius="45px" | |
w="100%" | |
minW="44px" | |
h="44px" | |
_placeholder={{ color: 'gray.500' }} | |
_hover={hoverButton} | |
_active={activeButton} | |
_focus={activeButton} | |
> | |
See Documentation | |
</Button> | |
</Link> | |
<Link | |
w="100%" | |
isExternal | |
href="https://github.com/horizon-ui/chatgpt-ai-template" | |
> | |
<Button | |
w="100%" | |
h="44px" | |
variant="no-hover" | |
color={textColor} | |
fontSize="sm" | |
borderRadius="45px" | |
bg="transparent" | |
> | |
Try Free Version | |
</Button> | |
</Link> | |
</Flex> | |
</MenuList> | |
</Menu> | |
<Button | |
variant="no-hover" | |
bg="transparent" | |
p="0px" | |
minW="unset" | |
minH="unset" | |
h="18px" | |
w="max-content" | |
onClick={toggleColorMode} | |
> | |
<Icon | |
me="10px" | |
h="18px" | |
w="18px" | |
color={navbarIcon} | |
as={colorMode === 'light' ? IoMdMoon : IoMdSunny} | |
/> | |
</Button> | |
<Menu> | |
<MenuButton p="0px" style={{ position: 'relative' }}> | |
<Box | |
_hover={{ cursor: 'pointer' }} | |
color="white" | |
bg="#11047A" | |
w="40px" | |
h="40px" | |
borderRadius={'50%'} | |
/> | |
<Center top={0} left={0} position={'absolute'} w={'100%'} h={'100%'}> | |
<Text fontSize={'xs'} fontWeight="bold" color={'white'}> | |
AP | |
</Text> | |
</Center> | |
</MenuButton> | |
<MenuList | |
boxShadow={shadow} | |
p="0px" | |
mt="10px" | |
borderRadius="20px" | |
bg={menuBg} | |
border="none" | |
> | |
<Flex w="100%" mb="0px"> | |
<Text | |
ps="20px" | |
pt="16px" | |
pb="10px" | |
w="100%" | |
borderBottom="1px solid" | |
borderColor={borderColor} | |
fontSize="sm" | |
fontWeight="700" | |
color={textColor} | |
> | |
👋 Hey, Adela | |
</Text> | |
</Flex> | |
<Flex flexDirection="column" p="10px"> | |
<NavLink href="/settings"> | |
<MenuItem | |
_hover={{ bg: 'none' }} | |
_focus={{ bg: 'none' }} | |
color={textColor} | |
borderRadius="8px" | |
px="14px" | |
> | |
<Text fontWeight="500" fontSize="sm"> | |
Profile Settings | |
</Text> | |
</MenuItem> | |
</NavLink> | |
<MenuItem | |
_hover={{ bg: 'none' }} | |
_focus={{ bg: 'none' }} | |
color={textColor} | |
borderRadius="8px" | |
px="14px" | |
> | |
<Text fontWeight="500" fontSize="sm"> | |
Newsletter Settings | |
</Text> | |
</MenuItem> | |
<MenuItem | |
_hover={{ bg: 'none' }} | |
_focus={{ bg: 'none' }} | |
color="red.400" | |
borderRadius="8px" | |
px="14px" | |
> | |
<Text fontWeight="500" fontSize="sm"> | |
Log out | |
</Text> | |
</MenuItem> | |
</Flex> | |
</MenuList> | |
</Menu> | |
</Flex> | |
); | |
} | |