diff --git a/frontend/src/component/common/ResponsiveButton/ResponsiveButton.tsx b/frontend/src/component/common/ResponsiveButton/ResponsiveButton.tsx index 0a5724c4eb..b0e3052d9c 100644 --- a/frontend/src/component/common/ResponsiveButton/ResponsiveButton.tsx +++ b/frontend/src/component/common/ResponsiveButton/ResponsiveButton.tsx @@ -27,6 +27,7 @@ const ResponsiveButton: React.FC = ({ permission, environmentId, projectId, + endIcon, ...rest }) => { const smallScreen = useMediaQuery(`(max-width:${maxWidth})`); @@ -56,6 +57,7 @@ const ResponsiveButton: React.FC = ({ variant="contained" disabled={disabled} environmentId={environmentId} + endIcon={endIcon} data-loading {...rest} > diff --git a/frontend/src/component/demo/Demo.tsx b/frontend/src/component/demo/Demo.tsx index 297253db7e..a16cb6247f 100644 --- a/frontend/src/component/demo/Demo.tsx +++ b/frontend/src/component/demo/Demo.tsx @@ -9,6 +9,9 @@ import { DemoDialogPlans } from './DemoDialog/DemoDialogPlans/DemoDialogPlans'; import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; import { DemoBanner } from './DemoBanner/DemoBanner'; import { usePlausibleTracker } from 'hooks/usePlausibleTracker'; +import { useMediaQuery } from '@mui/material'; +import theme from 'themes/theme'; +import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; const defaultProgress = { welcomeOpen: true, @@ -24,6 +27,7 @@ interface IDemoProps { export const Demo = ({ children }: IDemoProps): JSX.Element => { const { uiConfig } = useUiConfig(); + const isSmallScreen = useMediaQuery(theme.breakpoints.down(768)); const { trackEvent } = usePlausibleTracker(); const { value: storedProgress, setValue: setStoredProgress } = @@ -91,83 +95,90 @@ export const Demo = ({ children }: IDemoProps): JSX.Element => { }} /> {children} - { - setWelcomeOpen(false); - - setExpanded(false); - - trackEvent('demo-close', { - props: { - topic: 'welcome', - step: 'welcome', - }, - }); - }} - onStart={() => { - setWelcomeOpen(false); - - onStart(); - - trackEvent('demo-start'); - }} - /> - { - setFinishOpen(false); - setPlansOpen(true); - }} - onRestart={() => { - setFinishOpen(false); - onStart(); - - trackEvent('demo-restart'); - }} - /> setPlansOpen(false)} /> - { - setTopic(topic); - setStep(0); + + { + setWelcomeOpen(false); - setWelcomeOpen(false); - setPlansOpen(false); + setExpanded(false); - trackEvent('demo-start-topic', { - props: { - topic: TOPICS[topic].title, - }, - }); - }} - topics={TOPICS} - onWelcome={() => { - closeGuide(); - setPlansOpen(false); + trackEvent('demo-close', { + props: { + topic: 'welcome', + step: 'welcome', + }, + }); + }} + onStart={() => { + setWelcomeOpen(false); - setWelcomeOpen(true); + onStart(); - trackEvent('demo-view-demo-link'); - }} - /> - + { + setFinishOpen(false); + setPlansOpen(true); + }} + onRestart={() => { + setFinishOpen(false); + onStart(); + + trackEvent('demo-restart'); + }} + /> + { + setTopic(topic); + setStep(0); + + setWelcomeOpen(false); + setPlansOpen(false); + + trackEvent('demo-start-topic', { + props: { + topic: TOPICS[topic].title, + }, + }); + }} + topics={TOPICS} + onWelcome={() => { + closeGuide(); + setPlansOpen(false); + + setWelcomeOpen(true); + + trackEvent('demo-view-demo-link'); + }} + /> + + + } /> ); diff --git a/frontend/src/component/demo/DemoBanner/DemoBanner.tsx b/frontend/src/component/demo/DemoBanner/DemoBanner.tsx index b4238a2667..246cff0f2f 100644 --- a/frontend/src/component/demo/DemoBanner/DemoBanner.tsx +++ b/frontend/src/component/demo/DemoBanner/DemoBanner.tsx @@ -12,6 +12,14 @@ const StyledBanner = styled('div')(({ theme }) => ({ backgroundColor: theme.palette.web.main, color: theme.palette.web.contrastText, padding: theme.spacing(1), + [theme.breakpoints.down(768)]: { + flexDirection: 'column', + }, +})); + +const StyledButtons = styled('div')(({ theme }) => ({ + display: 'flex', + gap: theme.spacing(1), })); const StyledButton = styled(Button)(({ theme }) => ({ @@ -40,21 +48,27 @@ export const DemoBanner = ({ onPlans }: IDemoBannerProps) => { This is a demo of Unleash. Play around as much as you want. Reach out when you're ready. - { - trackEvent('demo-ask-questions'); - }} - > - Ask questions - - - Get started - + + { + trackEvent('demo-ask-questions'); + }} + > + Ask questions + + + Get started + + ); }; diff --git a/frontend/src/component/demo/DemoDialog/DemoDialog.tsx b/frontend/src/component/demo/DemoDialog/DemoDialog.tsx index c93493e247..9c6fa6b70f 100644 --- a/frontend/src/component/demo/DemoDialog/DemoDialog.tsx +++ b/frontend/src/component/demo/DemoDialog/DemoDialog.tsx @@ -14,6 +14,7 @@ const StyledDialog = styled(Dialog)(({ theme }) => ({ padding: theme.spacing(7.5), textAlign: 'center', }, + zIndex: theme.zIndex.snackbar, })); const StyledCloseButton = styled(IconButton)(({ theme }) => ({ diff --git a/frontend/src/component/demo/DemoDialog/DemoDialogPlans/DemoDialogPlans.tsx b/frontend/src/component/demo/DemoDialog/DemoDialogPlans/DemoDialogPlans.tsx index dcede73e17..6a88bb9053 100644 --- a/frontend/src/component/demo/DemoDialog/DemoDialogPlans/DemoDialogPlans.tsx +++ b/frontend/src/component/demo/DemoDialog/DemoDialogPlans/DemoDialogPlans.tsx @@ -7,6 +7,17 @@ import { usePlausibleTracker } from 'hooks/usePlausibleTracker'; const StyledDemoDialog = styled(DemoDialog)(({ theme }) => ({ '& .MuiDialog-paper': { maxWidth: theme.spacing(120), + [theme.breakpoints.down('md')]: { + padding: theme.spacing(3.75), + margin: theme.spacing(2.5), + }, + [theme.breakpoints.down(768)]: { + padding: theme.spacing(6, 4, 4, 4), + margin: theme.spacing(2.5), + '& > p': { + fontSize: theme.typography.h1.fontSize, + }, + }, }, })); @@ -15,6 +26,14 @@ const StyledPlans = styled('div')(({ theme }) => ({ gridTemplateColumns: 'auto auto auto', gap: theme.spacing(1), marginTop: theme.spacing(6), + justifyContent: 'center', + [theme.breakpoints.down('md')]: { + marginTop: theme.spacing(4.75), + }, + [theme.breakpoints.down(768)]: { + gridTemplateColumns: 'auto', + marginTop: theme.spacing(3.5), + }, })); const StyledPlan = styled('div')(({ theme }) => ({ @@ -26,9 +45,18 @@ const StyledPlan = styled('div')(({ theme }) => ({ padding: theme.spacing(4, 3), '& > a': { whiteSpace: 'nowrap', + [theme.breakpoints.between(768, 'md')]: { + whiteSpace: 'normal', + height: theme.spacing(6.25), + lineHeight: 1.2, + }, }, height: theme.spacing(34), width: theme.spacing(34), + [theme.breakpoints.between(768, 'md')]: { + height: theme.spacing(36), + width: theme.spacing(27.5), + }, })); const StyledCompareLink = styled('a')(({ theme }) => ({ diff --git a/frontend/src/component/menu/Header/DrawerMenu/DrawerMenu.tsx b/frontend/src/component/menu/Header/DrawerMenu/DrawerMenu.tsx index 9b7b2da947..813f3bb5a0 100644 --- a/frontend/src/component/menu/Header/DrawerMenu/DrawerMenu.tsx +++ b/frontend/src/component/menu/Header/DrawerMenu/DrawerMenu.tsx @@ -1,16 +1,31 @@ -import React, { ReactNode, VFC } from 'react'; +import { ReactNode, VFC } from 'react'; import { Link } from 'react-router-dom'; -import { Divider, Drawer, List } from '@mui/material'; +import { Divider, Drawer, List, styled } from '@mui/material'; import GitHubIcon from '@mui/icons-material/GitHub'; import LibraryBooksIcon from '@mui/icons-material/LibraryBooks'; import ExitToApp from '@mui/icons-material/ExitToApp'; -import { ReactComponent as LogoIcon } from 'assets/icons/logoBg.svg'; +import { ReactComponent as UnleashLogo } from 'assets/img/logoDarkWithText.svg'; +import { ReactComponent as UnleashLogoWhite } from 'assets/img/logoWithWhiteText.svg'; import NavigationLink from '../NavigationLink/NavigationLink'; import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; import { basePath } from 'utils/formatPath'; import { IFlags } from 'interfaces/uiConfig'; import { INavigationMenuItem } from 'interfaces/route'; import styles from './DrawerMenu.module.scss'; // FIXME: useStyle - theme +import theme from 'themes/theme'; +import { ThemeMode } from 'component/common/ThemeMode/ThemeMode'; + +const StyledDrawerHeader = styled('div')(({ theme }) => ({ + display: 'flex', + alignItems: 'center', + justifyContent: 'start', + '& svg': { + width: '100%', + height: '100%', + maxHeight: theme.spacing(8), + padding: theme.spacing(0.5), + }, +})); interface IDrawerMenuProps { title?: string; @@ -33,7 +48,6 @@ interface IDrawerMenuProps { export const DrawerMenu: VFC = ({ links = [], - title = 'Unleash', flags = {}, open = false, toggleDrawer, @@ -70,22 +84,26 @@ export const DrawerMenu: VFC = ({ open={open} anchor="left" onClose={toggleDrawer} + style={{ zIndex: theme.zIndex.snackbar + 1 }} >