feat(client): add project links to certificate (#40071)

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
This commit is contained in:
Shaun Hamilton
2021-02-01 13:25:14 +00:00
committed by GitHub
parent 5503b54f85
commit 5539dbf086
7 changed files with 345 additions and 33 deletions

View File

@@ -0,0 +1,59 @@
import React from 'react';
import PropTypes from 'prop-types';
import SolutionViewer from './SolutionViewer';
import { Button, Modal } from '@freecodecamp/react-bootstrap';
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,
t: PropTypes.func.isRequired
};
const ProjectModal = props => {
const {
isOpen,
projectTitle,
files,
solution,
t,
handleSolutionModalHide
} = props;
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;