diff --git a/striker-ui/components/Files/FileInfo.tsx b/striker-ui/components/Files/FileInfo.tsx index 1a6fe840..354ed99a 100644 --- a/striker-ui/components/Files/FileInfo.tsx +++ b/striker-ui/components/Files/FileInfo.tsx @@ -4,10 +4,6 @@ import { FormControl, FormControlLabel, FormGroup, - MenuItem, - menuItemClasses, - Select, - selectClasses, styled, } from '@mui/material'; import { @@ -16,11 +12,13 @@ import { } from '@mui/icons-material'; import { v4 as uuidv4 } from 'uuid'; -import { BLUE, GREY, RED, TEXT } from '../../lib/consts/DEFAULT_THEME'; +import { BLUE, RED, TEXT } from '../../lib/consts/DEFAULT_THEME'; import { UPLOAD_FILE_TYPES_ARRAY } from '../../lib/consts/UPLOAD_FILE_TYPES'; +import MenuItem from '../MenuItem'; import OutlinedInput from '../OutlinedInput'; import OutlinedInputLabel from '../OutlinedInputLabel'; +import Select from '../Select'; type FileInfoProps = Pick & Partial> & { @@ -33,30 +31,6 @@ const FILE_INFO_DEFAULT_PROPS: Partial = { onChange: undefined, }; -const StyledSelect = styled(Select)({ - [`& .${selectClasses.icon}`]: { - color: GREY, - }, -}); - -const StyledMenuItem = styled(MenuItem)({ - backgroundColor: TEXT, - paddingRight: '3em', - - [`&.${menuItemClasses.selected}`]: { - backgroundColor: GREY, - fontWeight: 400, - - '&:hover': { - backgroundColor: GREY, - }, - }, - - '&:hover': { - backgroundColor: GREY, - }, -}); - const FileLocationActiveCheckbox = styled(Checkbox)({ color: RED, @@ -105,7 +79,7 @@ const FileInfo = ( {fileTypeElementLabel} - {UPLOAD_FILE_TYPES_ARRAY.map( ([fileTypeKey, [, fileTypeDisplayString]]) => ( - + {fileTypeDisplayString} - + ), )} - + )} {fileLocations.map( diff --git a/striker-ui/components/MenuItem.tsx b/striker-ui/components/MenuItem.tsx new file mode 100644 index 00000000..73924bbf --- /dev/null +++ b/striker-ui/components/MenuItem.tsx @@ -0,0 +1,44 @@ +import { + MenuItem as MUIMenuItem, + menuItemClasses as muiMenuItemClasses, + MenuItemProps as MUIMenuItemProps, +} from '@mui/material'; + +import { GREY, TEXT } from '../lib/consts/DEFAULT_THEME'; + +const MenuItem = (menuItemProps: MUIMenuItemProps): JSX.Element => { + const { children, sx } = menuItemProps; + const combinedSx = { + backgroundColor: TEXT, + paddingRight: '3em', + + [`&.${muiMenuItemClasses.selected}`]: { + backgroundColor: GREY, + fontWeight: 400, + + '&:hover': { + backgroundColor: GREY, + }, + }, + + '&:hover': { + backgroundColor: GREY, + }, + + ...sx, + }; + + return ( + + {children} + + ); +}; + +export default MenuItem; diff --git a/striker-ui/components/Select.tsx b/striker-ui/components/Select.tsx new file mode 100644 index 00000000..db4b506f --- /dev/null +++ b/striker-ui/components/Select.tsx @@ -0,0 +1,32 @@ +import { + Select as MUISelect, + selectClasses as muiSelectClasses, + SelectProps as MUISelectProps, +} from '@mui/material'; + +import { GREY } from '../lib/consts/DEFAULT_THEME'; + +const Select = (selectProps: MUISelectProps): JSX.Element => { + const { children, sx } = selectProps; + const combinedSx = { + [`& .${muiSelectClasses.icon}`]: { + color: GREY, + }, + + ...sx, + }; + + return ( + + {children} + + ); +}; + +export default Select;