40 lines
955 B
TypeScript
40 lines
955 B
TypeScript
import { SvgIconComponent } from '@mui/icons-material';
|
|
import { ButtonBase } from '@mui/material';
|
|
|
|
import { useAppDispatch } from '@/store/hooks';
|
|
import { ModalName, setModalState } from '@/store/modal/modalSlice';
|
|
|
|
import styles from './ResumeCard.module.scss';
|
|
|
|
type Props = {
|
|
modal: ModalName;
|
|
icon: SvgIconComponent;
|
|
title: string;
|
|
subtitle: string;
|
|
};
|
|
|
|
const ResumeCard: React.FC<Props> = ({ modal, icon: Icon, title, subtitle }) => {
|
|
const dispatch = useAppDispatch();
|
|
|
|
const handleClick = () => {
|
|
dispatch(setModalState({ modal, state: { open: true } }));
|
|
};
|
|
|
|
return (
|
|
<section className={styles.resume}>
|
|
<ButtonBase className={styles.preview} onClick={handleClick}>
|
|
<Icon sx={{ fontSize: 64 }} />
|
|
</ButtonBase>
|
|
|
|
<footer>
|
|
<div className={styles.meta}>
|
|
<p>{title}</p>
|
|
<p>{subtitle}</p>
|
|
</div>
|
|
</footer>
|
|
</section>
|
|
);
|
|
};
|
|
|
|
export default ResumeCard;
|