Files
freeCodeCamp/client/src/components/SolutionViewer/ProjectModal.js
renovate[bot] 21dd80c47a chore(deps): update dependency prettier to v2.3.0 (#42074)
* chore(deps): update dependency prettier to v2.3.0

* chore: apply formating per prettier

* fix: correctly disable import/no-unresolved

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Mrugesh Mohapatra <hi@mrugesh.dev>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-05-10 08:48:49 -07:00

55 lines
1.5 KiB
JavaScript

import React from 'react';
import PropTypes from 'prop-types';
import SolutionViewer from './SolutionViewer';
import { Button, Modal } from '@freecodecamp/react-bootstrap';
import { useTranslation } from 'react-i18next';
const propTypes = {
files: PropTypes.arrayOf(
PropTypes.shape({
contents: PropTypes.string,
ext: PropTypes.string,
key: PropTypes.string,
name: PropTypes.string,
path: PropTypes.string
})
),
handleSolutionModalHide: PropTypes.func,
isOpen: PropTypes.bool,
projectTitle: PropTypes.string,
solution: PropTypes.string
};
const ProjectModal = props => {
const { isOpen, projectTitle, files, solution, handleSolutionModalHide } =
props;
const { t } = useTranslation();
return (
<Modal
aria-labelledby='solution-viewer-modal-title'
bsSize='large'
onHide={handleSolutionModalHide}
show={isOpen}
>
<Modal.Header className='this-one?' closeButton={true}>
<Modal.Title id='solution-viewer-modal-title'>
{t('settings.labels.solution-for', {
projectTitle: projectTitle
})}
</Modal.Title>
</Modal.Header>
<Modal.Body>
<SolutionViewer files={files} solution={solution} />
</Modal.Body>
<Modal.Footer>
<Button onClick={handleSolutionModalHide}>{t('buttons.close')}</Button>
</Modal.Footer>
</Modal>
);
};
ProjectModal.propTypes = propTypes;
ProjectModal.displayName = 'ProjectModal';
export default ProjectModal;