|
1
|
|
|
import React from 'react' |
|
2
|
|
|
import PropTypes from 'prop-types' |
|
3
|
|
|
import { connect } from 'react-redux' |
|
4
|
|
|
import Markdown from 'react-markdown' |
|
5
|
|
|
import settings from 'Settings' |
|
6
|
|
|
import Page from '../Page' |
|
7
|
|
|
import WebVersionLink from './WebVersionLink' |
|
8
|
|
|
import TopSection from './TopSection' |
|
9
|
|
|
import CareerSection from './Section/CareerSection' |
|
10
|
|
|
import EduSection from './Section/EduSection' |
|
11
|
|
|
import LanguageSection from './Section/LanguageSection' |
|
12
|
|
|
import Section from './Section' |
|
13
|
|
|
import Block from './Block' |
|
14
|
|
|
import Footer from './Footer' |
|
15
|
|
|
import CVStyle from './index.scss' |
|
16
|
|
|
|
|
17
|
|
|
const CV = ({ educationFirst, customSections, url }) => ( |
|
18
|
|
|
<Page className={CVStyle.cv}> |
|
19
|
|
|
<> |
|
20
|
|
|
{settings.print_show_web_version_link && url && <WebVersionLink />} |
|
21
|
|
|
<TopSection /> |
|
22
|
|
|
{educationFirst ? ( |
|
23
|
|
|
<> |
|
24
|
|
|
<EduSection /> |
|
25
|
|
|
<CareerSection /> |
|
26
|
|
|
</> |
|
27
|
|
|
) : ( |
|
28
|
|
|
<> |
|
29
|
|
|
<CareerSection /> |
|
30
|
|
|
<EduSection /> |
|
31
|
|
|
</> |
|
32
|
|
|
)} |
|
33
|
|
|
<LanguageSection /> |
|
34
|
|
|
{customSections && |
|
35
|
|
|
customSections.map((item, index) => ( |
|
36
|
|
|
<Section |
|
37
|
|
|
key={item.section_name} |
|
38
|
|
|
title={item.section_name} |
|
39
|
|
|
isBottom={index === customSections.length - 1 && true} |
|
40
|
|
|
> |
|
41
|
|
|
<Block> |
|
42
|
|
|
<Markdown source={item.section_content} /> |
|
43
|
|
|
</Block> |
|
44
|
|
|
</Section> |
|
45
|
|
|
))} |
|
46
|
|
|
<Footer /> |
|
47
|
|
|
</> |
|
48
|
|
|
</Page> |
|
49
|
|
|
) |
|
50
|
|
|
|
|
51
|
|
|
CV.propTypes = { |
|
52
|
|
|
educationFirst: PropTypes.bool, |
|
53
|
|
|
customSections: PropTypes.arrayOf(PropTypes.object), |
|
54
|
|
|
url: PropTypes.string, |
|
55
|
|
|
} |
|
56
|
|
|
|
|
57
|
|
|
const mapStateToProps = (state) => ({ |
|
58
|
|
|
educationFirst: state.userData.education_first, |
|
59
|
|
|
customSections: state.userData.custom_sections, |
|
60
|
|
|
url: state.userData.web_version_url, |
|
61
|
|
|
}) |
|
62
|
|
|
|
|
63
|
|
|
export default connect(mapStateToProps)(CV) |
|
64
|
|
|
|