import { Circle, Square, SquareRounded } from '@mui/icons-material'; import { Checkbox, Divider, FormControlLabel, Slider, ToggleButton, ToggleButtonGroup } from '@mui/material'; import { Photo, PhotoShape } from '@reactive-resume/schema'; import get from 'lodash/get'; import { useTranslation } from 'next-i18next'; import { useAppDispatch, useAppSelector } from '@/store/hooks'; import { setResumeState } from '@/store/resume/resumeSlice'; const PhotoFilters = () => { const { t } = useTranslation(); const dispatch = useAppDispatch(); const photo: Photo = useAppSelector((state) => get(state.resume, 'basics.photo')); const size: number = get(photo, 'filters.size', 128); const shape: PhotoShape = get(photo, 'filters.shape', 'square'); const grayscale: boolean = get(photo, 'filters.grayscale', false); const border: boolean = get(photo, 'filters.border', false); const handleChangeSize = (size: number | number[]) => dispatch(setResumeState({ path: 'basics.photo.filters.size', value: size })); const handleChangeShape = (shape: PhotoShape) => dispatch(setResumeState({ path: 'basics.photo.filters.shape', value: shape })); const handleSetGrayscale = (value: boolean) => dispatch(setResumeState({ path: 'basics.photo.filters.grayscale', value })); const handleSetBorder = (value: boolean) => dispatch(setResumeState({ path: 'basics.photo.filters.border', value })); return (

{t('builder.leftSidebar.sections.basics.photo-filters.size.heading')}

handleChangeSize(value)} />

{t('builder.leftSidebar.sections.basics.photo-filters.effects.heading')}

('builder.leftSidebar.sections.basics.photo-filters.effects.grayscale.label')} control={ handleSetGrayscale(value)} /> } /> ('builder.leftSidebar.sections.basics.photo-filters.effects.border.label')} control={ handleSetBorder(value)} />} />

{t('builder.leftSidebar.sections.basics.photo-filters.shape.heading')}

handleChangeShape(value)}>
); }; export default PhotoFilters;