import {Container, useMediaQuery} from '@material-ui/core'; import useEagerConnect from '../../hooks/useEagerConnect'; import Menu, {MenuProps} from '@mui/material/Menu'; import Tooltip from '@mui/material/Tooltip'; import Footer from '../Footer'; import React, {useMemo} from 'react'; import {styled, alpha, useTheme, Theme, CSSObject} from '@mui/material/styles'; import Box from '@mui/material/Box'; import MuiDrawer from '@mui/material/Drawer'; import MuiAppBar, {AppBarProps as MuiAppBarProps} from '@mui/material/AppBar'; import Toolbar from '@mui/material/Toolbar'; import List from '@mui/material/List'; import CssBaseline from '@mui/material/CssBaseline'; import {Link} from 'react-router-dom'; import AccountButton from '../Nav/AccountButton'; import useCashPriceInEstimatedTWAP from '../../hooks/useCashPriceInEstimatedTWAP'; import unicornLogo from '../../assets/img/logo1.png'; import unicornImg from '../../assets/img/unicorn.png'; import unicornWcroImg from '../../assets/img/twap.png'; import nodesImg from '../../assets/img/gnode.png'; import bondImg from '../../assets/img/magicbond.png'; import wingsImg from '../../assets/img/gshare.png'; import magikImg from '../../assets/img/magik.png'; import creamImg from '../../assets/img/cream.png'; import beefyImg from '../../assets/img/beefy.png'; import yieldwolfImg from '../../assets/img/yieldwolf.png'; import debankImg from '../../assets/img/debank.png'; import rebatesImg from '../../assets/img/rebates.png'; import lcImg from '../../assets/img/lc.png'; import dashboardImg from '../../assets/img/dash2.png'; import Divider from '@mui/material/Divider'; import IconButton from '@mui/material/IconButton'; import ListItem from '@mui/material/ListItem'; import ListItemButton from '@mui/material/ListItemButton'; import ListItemIcon from '@mui/material/ListItemIcon'; import ListItemText from '@mui/material/ListItemText'; import Collapse from '@mui/material/Collapse'; import StarBorder from '@mui/icons-material/StarBorder'; import useUnicornStats from '../../hooks/useUnicornStats'; import useWingsStats from '../../hooks/useWingsStats'; import MenuIcon from '@mui/icons-material/Menu'; import ExpandLess from '@mui/icons-material/ExpandLess'; import ExpandMore from '@mui/icons-material/ExpandMore'; import ChevronLeftIcon from '@mui/icons-material/ChevronLeft'; import ChevronRightIcon from '@mui/icons-material/ChevronRight'; import SportsEsportsIcon from '@mui/icons-material/SportsEsports'; import CasinoIcon from '@mui/icons-material/Casino'; import RocketLaunchIcon from '@mui/icons-material/RocketLaunch'; import StadiumIcon from '@mui/icons-material/Stadium'; import SavingsIcon from '@mui/icons-material/Savings'; import AccountBalanceWalletIcon from '@mui/icons-material/AccountBalanceWallet'; import LinkIcon from '@mui/icons-material/Link'; import MenuBookIcon from '@mui/icons-material/MenuBook'; import QueryStatsIcon from '@mui/icons-material/QueryStats'; import MapIcon from '@mui/icons-material/Map'; import StorefrontIcon from '@mui/icons-material/Storefront'; import YouTubeIcon from '@mui/icons-material/YouTube'; import ShoppingCartIcon from '@mui/icons-material/ShoppingCart'; import LeaderboardIcon from '@mui/icons-material/Leaderboard'; import Button from '@mui/material/Button'; import MenuItem from '@mui/material/MenuItem'; import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; const drawerWidth = 280; const openedMixin = (theme: Theme): CSSObject => ({ width: drawerWidth, overflow: 'hidden', overflowY: 'auto', transition: theme.transitions.create('width', { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.enteringScreen, }), }); const closedMixin = (theme: Theme): CSSObject => ({ transition: theme.transitions.create('width', { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.leavingScreen, }), overflowX: 'hidden', width: 0, [theme.breakpoints.up('sm')]: { width: `calc(${theme.spacing(8)} + 1px)`, }, }); const DrawerHeader = styled('div')(({theme}) => ({ display: 'flex', marginTop: '25px', alignItems: 'center', justifyContent: 'flex-end', padding: theme.spacing(0, 1), // necessary for content to be below app bar ...theme.mixins.toolbar, })); interface AppBarProps extends MuiAppBarProps { open?: boolean; } const AppBar = styled(MuiAppBar, { shouldForwardProp: (prop) => prop !== 'open', })(({theme, open}) => ({ color: '#322f32 !important', // background: 'linear-gradient(90deg, rgba(144,17,105,1) 0%, rgba(95,17,144,1) 100%);', boxShadow: '50px 4px 26px -18px rgba(0,0,0,0.99) !important', borderRadius: '0 !important', zIndex: theme.zIndex.drawer + 1, transition: theme.transitions.create(['width', 'margin'], { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.leavingScreen, }), ...(open && { marginLeft: drawerWidth, width: `calc(100% - ${drawerWidth}px)`, transition: theme.transitions.create(['width', 'margin'], { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.enteringScreen, }), }), })); const Drawer = styled(MuiDrawer, {shouldForwardProp: (prop) => prop !== 'open'})(({theme, open}) => ({ width: drawerWidth, overflow: 'hidden', height: '100%', flexShrink: 0, whiteSpace: 'nowrap', boxSizing: 'border-box', ...(open && { ...openedMixin(theme), '& .MuiDrawer-paper': openedMixin(theme), }), ...(!open && { ...closedMixin(theme), '& .MuiDrawer-paper': closedMixin(theme), }), })); const StyledMenu = styled((props: MenuProps) => ( ))(({theme}) => ({ '& .MuiPaper-root': { [theme.breakpoints.down('sm')]: { display: 'none', }, borderRadius: 6, backgroundColor: 'rgba(147, 9, 147, 0.9) !important', marginTop: theme.spacing(1), minWidth: 190, color: 'rgb(55, 65, 81)', boxShadow: 'rgb(255, 255, 255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px, rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.05) 0px 4px 6px -2px', '& .MuiMenu-list': { padding: '4px 0', }, '& .MuiMenuItem-root': { '& .MuiSvgIcon-root': { fontSize: 18, color: theme.palette.text.secondary, marginRight: theme.spacing(1.5), }, '&:active': { backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity), }, }, }, })); const Page: React.FC = ({children}) => { useEagerConnect(); const unicornStats = useUnicornStats(); const bShareStats = useWingsStats(); const unicornPrice = useMemo(() => (unicornStats ? Number(unicornStats.tokenInFtm).toFixed(3) : null), [unicornStats]); const wingsPrice = useMemo(() => (bShareStats ? Number(bShareStats.priceInDollars).toFixed(2) : null), [bShareStats]); const cashStat = useCashPriceInEstimatedTWAP(); const twap = useMemo(() => (cashStat ? Number(cashStat.priceInDollars).toFixed(4) : null), [cashStat]); const theme = useTheme(); const [open, setOpen] = React.useState(false); const handleDrawerOpen = () => { setOpen(true); }; const handleDrawerClose = () => { setOpen(false); }; const [gamesOpen, setGamesOpen] = React.useState(false); const handleGamesClick = () => { if (!open) { handleDrawerOpen(); } setGamesOpen(!gamesOpen); }; const [vaultsOpen, setVaultsOpen] = React.useState(false); const handleVaultsClick = () => { if (!open) { handleDrawerOpen(); } setVaultsOpen(!vaultsOpen); }; const [walletsOpen, setWalletsOpen] = React.useState(false); const handleWalletsClick = () => { if (!open) { handleDrawerOpen(); } setWalletsOpen(!walletsOpen); }; const [usefullLinksOpen, setUsefulllinksOpen] = React.useState(false); const handleUsefullLinksClick = () => { if (!open) { handleDrawerOpen(); } setUsefulllinksOpen(!usefullLinksOpen); }; const [anchorEl, setAnchorEl] = React.useState(null); const buyOpen = Boolean(anchorEl); const handleBuyClick = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget); }; const handleBuyClose = () => { setAnchorEl(null); }; const screenSM = useMediaQuery('(min-width:600px)'); return (
{screenSM && ( )} {theme.direction === 'rtl' ? : } Unicorn Finance {/* LC */} LC Unicorn Wings Nodes {/* Rebates */} Wings{' '} {/* {open ? gamesOpen ? : : null} {open && ( )} */} {/* {open ? vaultsOpen ? : : null} {open && ( Magik{' '} Froyo IceCream{' '} Beefy{' '} YieldWolf{' '} )} */} {/* {open ? walletsOpen ? : : null} {open && ( Debank{' '} Debank{' '} Debank{' '} )} */} {open ? usefullLinksOpen ? : : null} {open && ( {/* */} {/* */} {/* */} )} {children}
); }; export default Page;