Skip to content

Commit

Permalink
Replace restaurants with food options and update components styles
Browse files Browse the repository at this point in the history
  • Loading branch information
ameliedefrance committed Apr 16, 2024
1 parent 4a75272 commit cd9f874
Show file tree
Hide file tree
Showing 17 changed files with 308 additions and 208 deletions.
11 changes: 4 additions & 7 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
import '@assets/app.scss'
import AppLayout from '@app/layouts/AppLayout.tsx';
import AppLayout from '@app/layouts/app-layout.tsx';
import { ThemeProvider } from '@mui/material/styles';
import { CssBaseline } from '@mui/material';
import { customTheme } from '@app/theme.ts';
import RestaurantsOptions from '@app/pages/RestaurantsOptions.tsx';

function App() {
import OptionsList from '@app/pages/options-list.tsx';

export default function App() {
return (
<ThemeProvider theme={customTheme}>
<CssBaseline />
<AppLayout>
<RestaurantsOptions />
<OptionsList />
</AppLayout>
</ThemeProvider>
)
}

export default App
14 changes: 0 additions & 14 deletions src/components/Footer/Footer.tsx

This file was deleted.

42 changes: 0 additions & 42 deletions src/components/Header/Header.tsx

This file was deleted.

27 changes: 27 additions & 0 deletions src/components/UI/Button.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { PropsWithChildren } from 'react'
import { styled } from '@mui/material'

export default function Button({ children }: PropsWithChildren) {
return (
<Wrapper>
{children}
</Wrapper>
)
}

const Wrapper = styled('button')(({ theme }) => ({
height: '60px',
padding: `0 ${theme.spacing(2.5)}`,
fontSize: '18px',
color: theme.palette.text.primary,
fontWeight: 'bold',
background: theme.palette.primary.main,
border: 'none',
borderRadius: theme.shape.borderRadius,
cursor: 'pointer',
transition: 'all .2s',

'&:hover, &:focus': {
background: theme.palette.primary.dark,
},
}));
18 changes: 0 additions & 18 deletions src/components/UI/Button/ValidateButton.tsx

This file was deleted.

63 changes: 63 additions & 0 deletions src/components/UI/food-option.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import React from 'react'
import { styled } from '@mui/material'

type Props = {
id: string
label: string
icon: string
pickedOptions: string[]
setPickedOptions: (options: string[]) => void
}

export default function FoodOption({ id, label, icon, pickedOptions, setPickedOptions }: Props) {
const checked = pickedOptions.includes(id);

function handleChange(e: React.ChangeEvent<HTMLInputElement>) {
if (e.target.checked) {
setPickedOptions([...pickedOptions, id]);
} else {
setPickedOptions(pickedOptions.filter(option => id !== option));
}
}

return <>
<Input type="checkbox" id={label} onChange={handleChange} className={checked ? 'checked' : ''} />
<Label htmlFor={label} >
<Icon>{icon}</Icon>
{label}
</Label>
</>;
}

const Label = styled('label')(({ theme }) => ({
padding: theme.spacing(1.5),
height: '75px',
display: 'flex',
alignItems: 'center',
gap: '1rem',
fontSize: '1.1rem',
color: theme.palette.text.primary,
background: theme.palette.secondary.main,
border: 'solid 2px',
borderColor: theme.palette.secondary.light,
borderRadius: theme.shape.borderRadius,
cursor: 'pointer',
transition: 'all .2s',

'&:hover, &:focus': {
borderColor: theme.palette.primary.main,
},

'input:checked, .checked + &': {
background: theme.palette.primary.dark,
borderColor: theme.palette.primary.main,
},
}));

const Icon = styled('span')(() => ({
fontSize: '2rem',
}));

const Input = styled('input')(() => ({
display: 'none',
}));
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,7 @@ export default function ToggleSwitch({
}

return (
<FormGroup
style={{
marginBottom: '20px',
}}
>
<FormGroup>
<LabelStyled
control={
<Switch checked={checked} onChange={handleSwitch} />
Expand All @@ -35,8 +31,9 @@ export default function ToggleSwitch({


const LabelStyled = styled(FormControlLabel)(({ theme }) => ({
color: theme.palette.secondary.contrastText,
color: theme.palette.text.primary,

'& .MuiSwitch-track': {
backgroundColor: theme.palette.secondary.contrastText,
backgroundColor: theme.palette.text.primary,
},
}));
15 changes: 15 additions & 0 deletions src/components/footer/footer.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { styled } from '@mui/material'

export default function Footer() {
return <Wrapper role="contentinfo">
Made with 🌮 at elao - © 2024
</Wrapper>;
}

const Wrapper = styled('footer')(({ theme }) => ({
marginTop: theme.spacing(2),
padding: `${theme.spacing(1)} 0`,
color: theme.palette.text.primary,
textAlign: 'center',
borderTop: 'solid 1px rgba(146, 148, 175, .2)',
}));
45 changes: 45 additions & 0 deletions src/components/header/header.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { styled } from '@mui/material'

export default function Header() {
return <Wrapper>
<Title>
<span>Ça mâche</span>
<span>quoi ?</span>
</Title>
</Wrapper>;
}

const Wrapper = styled('header')(() => ({
padding: '100px 0 80px',
width: '60%',
}));

const Title = styled('h1')(({ theme }) => ({
margin: `0 0 0 ${theme.spacing(1)}`,
display: 'flex',
flexDirection: 'column',
alignItems: 'flex-start',
fontSize: '3.25rem',
lineHeight: '1.1',
color: theme.palette.text.primary,

'span': {
position: 'relative',
zIndex: '1',

'&::before': {
height: '2rem',
width: '100%',
position: 'absolute',
bottom: '.2rem',
left: '.5rem',
content: '""',
zIndex: '-1',
background: theme.palette.background.paper,
},

'&:last-of-type': {
marginLeft: '13rem',
},
},
}));
36 changes: 36 additions & 0 deletions src/data/food-options.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
const data = {
"foodOptions": [
{
"id": "1",
"label": "Sushi",
"icon": "🍣",
},
{
"id": "2",
"label": "Salade",
"icon": "🥬",
},
{
"id": "3",
"label": "Pizza",
"icon": "🍕",
},
{
"id": "4",
"label": "Burger",
"icon": "🍔",
},
{
"id": "5",
"label": "Kebab",
"icon": "🥙",
},
{
"id": "6",
"label": "Formule boulangerie",
"icon": "🥖",
},
],
};

export default data;
24 changes: 0 additions & 24 deletions src/data/restaurants.ts

This file was deleted.

31 changes: 0 additions & 31 deletions src/layouts/AppLayout.tsx

This file was deleted.

Loading

0 comments on commit cd9f874

Please sign in to comment.