diff --git a/apps/lend/src/layout/Header.tsx b/apps/lend/src/layout/Header.tsx index 70963cec..80bacfba 100644 --- a/apps/lend/src/layout/Header.tsx +++ b/apps/lend/src/layout/Header.tsx @@ -16,7 +16,7 @@ import useStore from '@/store/useStore' import { APPS_LINKS } from '@/ui/AppNav' import { CommunitySection, ResourcesSection } from '@/layout/Footer' import { useTvl } from '@/entities/chain' -import { Header as NewHeader } from '@/common/widgets/Header/Header' +import { Header as NewHeader } from '@/common/widgets/Header' import { ThemeKey } from '@ui-kit/shared/lib' diff --git a/packages/curve-common/src/widgets/Header/HeaderLogoWithMenu.tsx b/packages/curve-common/src/widgets/Header/HeaderLogoWithMenu.tsx new file mode 100644 index 00000000..9f6f417e --- /dev/null +++ b/packages/curve-common/src/widgets/Header/HeaderLogoWithMenu.tsx @@ -0,0 +1,14 @@ +import { AppName } from 'ui/src/AppNav/types' +import IconButton from '@mui/material/IconButton' +import MenuIcon from '@mui/icons-material/Menu' +import { HeaderLogo } from './HeaderLogo' +import React from 'react' + +export const HeaderLogoWithMenu = (props: { onClick: () => void, appName: AppName }) => ( + <> + + + + + +) \ No newline at end of file diff --git a/packages/curve-common/src/widgets/Header/MobileHeader.tsx b/packages/curve-common/src/widgets/Header/MobileHeader.tsx index eca5c9d2..11813402 100644 --- a/packages/curve-common/src/widgets/Header/MobileHeader.tsx +++ b/packages/curve-common/src/widgets/Header/MobileHeader.tsx @@ -1,10 +1,8 @@ import { AppBar, Toolbar } from '@mui/material' -import { HeaderLogo } from './HeaderLogo' import { Theme } from '@mui/system' import { BaseHeaderProps, toolbarColors } from './types' import IconButton from '@mui/material/IconButton' import React, { useCallback, useMemo, useState } from 'react' -import { MenuIcon } from 'curve-ui-kit/src/shared/ui/MenuIcon' import Drawer from '@mui/material/Drawer' import { SidebarSection } from './SidebarSection' import groupBy from 'lodash/groupBy' @@ -16,19 +14,12 @@ import { LanguageSwitcher } from '../../features/switch-language' import { ChainSwitcher } from '../../features/switch-chain' import { ConnectWalletIndicator } from '../../features/connect-wallet' import { APP_LINK } from 'ui' -import { AppName, AppNames } from 'ui/src/AppNav/types' -import { CloseIcon } from 'curve-ui-kit/src/shared/ui/CloseIcon' +import { AppNames } from 'ui/src/AppNav/types' +import CloseIcon from '@mui/icons-material/Close' import { t } from '@lingui/macro' import { HeaderStats } from './HeaderStats' - -const HeaderLogoWithMenu = (props: { onClick: () => void, appName: AppName }) => ( - <> - - - - - -) +import { HeaderLogoWithMenu } from './HeaderLogoWithMenu' +import { SocialSidebarSection } from './SocialSidebarSection' export const MobileHeader = ({ @@ -48,6 +39,12 @@ export const MobileHeader = ({ const openSidebar = useCallback(() => setSidebarOpen(true), []) const closeSidebar = useCallback(() => setSidebarOpen(false), []) + const onConnectWallet = wallet.onConnectWallet + const onConnect = useCallback(() => { + closeSidebar() + onConnectWallet() + }, [onConnectWallet, closeSidebar]) + return ( toolbarColors[t.palette.mode][0] }}> @@ -87,14 +84,14 @@ export const MobileHeader = ({ currentPath={currentPath} /> - {/* TODO: */} + - + diff --git a/packages/curve-common/src/widgets/Header/SocialSidebarSection.tsx b/packages/curve-common/src/widgets/Header/SocialSidebarSection.tsx new file mode 100644 index 00000000..d14a78fe --- /dev/null +++ b/packages/curve-common/src/widgets/Header/SocialSidebarSection.tsx @@ -0,0 +1,39 @@ +import { SidebarSection } from './SidebarSection' +import { t } from '@lingui/macro' +import IconButton from '@mui/material/IconButton' +import { ReactElement } from 'react' +import TelegramIcon from '@mui/icons-material/Telegram' +import TwitterIcon from '@mui/icons-material/Twitter' +import YouTubeIcon from '@mui/icons-material/YouTube' +import Tooltip from '@mui/material/Tooltip' +import Link from '@mui/material/Link' +import { DiscordIcon } from 'curve-ui-kit/src/shared/ui/DiscordIcon' +import { Box } from 'curve-ui-kit/src/shared/ui/Box' +import SvgIcon from '@mui/material/SvgIcon'; + +type SocialButtonProps = { + label: string, + href: string, + icon: typeof SvgIcon +} + +const SocialButton = ({ icon: Icon, href, label }: SocialButtonProps) => ( + + + + + +) + +type SocialSidebarSectionProps = { currentPath: string } + +export const SocialSidebarSection = (props: SocialSidebarSectionProps) => ( + + + + + + + + +) diff --git a/packages/curve-common/src/widgets/Header/index.ts b/packages/curve-common/src/widgets/Header/index.ts new file mode 100644 index 00000000..5e4d6a20 --- /dev/null +++ b/packages/curve-common/src/widgets/Header/index.ts @@ -0,0 +1 @@ +export {Header} from './Header'; diff --git a/packages/curve-ui-kit/package.json b/packages/curve-ui-kit/package.json index 295d2949..725f0a2a 100644 --- a/packages/curve-ui-kit/package.json +++ b/packages/curve-ui-kit/package.json @@ -15,6 +15,7 @@ "dependencies": { "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", + "@mui/icons-material": "^6.1.4", "@mui/material": "^6.1.4", "@mui/utils": "^6.1.4" }, diff --git a/packages/curve-ui-kit/src/shared/ui/CloseIcon.tsx b/packages/curve-ui-kit/src/shared/ui/CloseIcon.tsx deleted file mode 100644 index 3d46efab..00000000 --- a/packages/curve-ui-kit/src/shared/ui/CloseIcon.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { createSvgIcon } from '@mui/material/utils'; - -export const CloseIcon = createSvgIcon( - - - , - 'Close' -); diff --git a/packages/curve-ui-kit/src/shared/ui/DiscordIcon.tsx b/packages/curve-ui-kit/src/shared/ui/DiscordIcon.tsx new file mode 100644 index 00000000..48cddad7 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/DiscordIcon.tsx @@ -0,0 +1,9 @@ +import { createSvgIcon } from '@mui/material/utils' +import React from 'react' + +export const DiscordIcon = createSvgIcon( + + + , 'Discord' +) diff --git a/yarn.lock b/yarn.lock index 7fea1f0d..2b43d229 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2882,6 +2882,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/runtime@npm:7.26.0" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10c0/12c01357e0345f89f4f7e8c0e81921f2a3e3e101f06e8eaa18a382b517376520cd2fa8c237726eb094dab25532855df28a7baaf1c26342b52782f6936b07c287 + languageName: node + linkType: hard + "@babel/template@npm:^7.18.10": version: 7.18.10 resolution: "@babel/template@npm:7.18.10" @@ -6326,6 +6335,22 @@ __metadata: languageName: node linkType: hard +"@mui/icons-material@npm:^6.1.4": + version: 6.1.6 + resolution: "@mui/icons-material@npm:6.1.6" + dependencies: + "@babel/runtime": "npm:^7.26.0" + peerDependencies: + "@mui/material": ^6.1.6 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/a6eb10be3cc356fd404febf29a3b26fa63b6b09d3148736fb05279954905186e9804869ff18220840ae92dbdeddfd407c2d0c72b9e165e01fd6bbc620b6b39d7 + languageName: node + linkType: hard + "@mui/material@npm:^6.1.4": version: 6.1.4 resolution: "@mui/material@npm:6.1.4" @@ -15115,6 +15140,7 @@ __metadata: "@chromatic-com/storybook": "npm:^2.0.2" "@emotion/react": "npm:^11.13.3" "@emotion/styled": "npm:^11.13.0" + "@mui/icons-material": "npm:^6.1.4" "@mui/material": "npm:^6.1.4" "@mui/utils": "npm:^6.1.4" "@storybook/addon-a11y": "npm:^8.3.5"