({
pointerEvents: 'none',
},
},
+
coloredHover: {
'&:hover': {
transform: 'none',
@@ -50,6 +51,20 @@ const styles = theme => ({
border: `1px solid ${theme.palette.gray[1000]}`,
color: '#fff',
},
+ grey: {
+ backgroundColor: theme.palette.gray[200],
+ border: `1px solid ${theme.palette.gray[200]}`,
+ color: theme.palette.gray[700],
+ pointerEvents: 'none',
+ transform: 'none',
+ '&:hover': {
+ transform: 'none',
+ },
+ '&:disabled': {
+ opacity: 1,
+ pointerEvents: 'none',
+ },
+ },
light: {
backgroundColor: theme.palette.blue[500],
border: `1px solid ${theme.palette.blue[500]}`,
diff --git a/src/common/components/ButtonGetApp/index.jsx b/src/common/components/ButtonGetApp/index.jsx
index 28fbd775..df5d3e37 100644
--- a/src/common/components/ButtonGetApp/index.jsx
+++ b/src/common/components/ButtonGetApp/index.jsx
@@ -4,6 +4,7 @@ import PropTypes from 'prop-types';
import { FormattedHTMLMessage } from 'react-intl';
import Button from '../Button';
import Icon from 'src/common/components/Icon';
+import { fileUrl } from 'src/common/utils/url';
import injectSheet from 'react-jss';
import cn from 'classnames';
@@ -22,33 +23,50 @@ const styles = theme => ({
button: {
padding: [0, theme.spacing.unit * 5, 0, theme.spacing.unit * 3],
},
- },
+ }
});
-const APP_STORE_HREF =
- 'https://itunes.apple.com/us/app/waves-wallet/id1233158971?mt=8';
-const GOOGLE_PLAY_HREF =
- 'https://play.google.com/store/apps/details?id=com.wavesplatform.wallet';
+const APP_STORE_HREF = {
+ store: 'https://itunes.apple.com/us/app/waves-wallet/id1233158971?mt=8',
+ link: null
+};
+const GOOGLE_PLAY_HREF = {
+ store: 'https://play.google.com/store/apps/details?id=com.wavesplatform.wallet',
+ link: fileUrl('WavesWallet_release_2.2.1.apk'),
+};
-const ButtonGetApp = ({ classes, className, type, ...rest }) => (
+
+const AppIcon = ({ type, fromFile}) => (
+ type === 'google-play' ? (
+
+ ) : (
+
+ )
+);
+
+const getButtonProps = ({fromFile, type, onClick}) => ({
+ href: (type === 'google-play' ? GOOGLE_PLAY_HREF : APP_STORE_HREF)[fromFile ? 'link' : 'store'],
+ target: "_blank",
+ grey: type === 'app-store' && fromFile,
+ disabled: type === 'app-store' && fromFile,
+ icon:
,
+ onClick: () => onClick(fromFile ? 'mobile_client_download' : 'mobile_client')
+});
+
+const ButtonGetApp = ({ classes, className, type, fromFile, onClick, ...rest }) => (
- ) : (
-
- )
- }
- className={cn(classes.button, className)}
- href={type === 'google-play' ? GOOGLE_PLAY_HREF : APP_STORE_HREF}
- target="_blank"
- {...rest}
+ className={cn(classes.button, className)}
+ {...{...rest, ...getButtonProps({ type, fromFile, onClick })}}
>
{type === 'google-play' ? (
-
+
) : (
-
+
)}
diff --git a/src/common/components/Icon/lib/custom/AppleLogo.jsx b/src/common/components/Icon/lib/custom/AppleLogo.jsx
new file mode 100644
index 00000000..b0b26fb3
--- /dev/null
+++ b/src/common/components/Icon/lib/custom/AppleLogo.jsx
@@ -0,0 +1,23 @@
+import React from 'react';
+
+const AppleLogo = ({size, style}) => (
+
+);
+
+export default AppleLogo;
diff --git a/src/common/components/Icon/lib/custom/GoogleAndroid.jsx b/src/common/components/Icon/lib/custom/GoogleAndroid.jsx
new file mode 100644
index 00000000..bcfd1b4e
--- /dev/null
+++ b/src/common/components/Icon/lib/custom/GoogleAndroid.jsx
@@ -0,0 +1,20 @@
+import React from 'react';
+
+const GoogleAndroid = ({size, style}) => (
+
+);
+
+export default GoogleAndroid;
diff --git a/src/common/components/Icon/lib/custom/map.js b/src/common/components/Icon/lib/custom/map.js
index 2841a080..a4e1e6c6 100644
--- a/src/common/components/Icon/lib/custom/map.js
+++ b/src/common/components/Icon/lib/custom/map.js
@@ -1,6 +1,8 @@
import Hamburger from './Hamburger';
import Cross from './Cross';
import GooglePlay from './GooglePlay';
+import GoogleAndroid from './GoogleAndroid';
+import AppleLogo from './AppleLogo';
import MapMarker from './MapMarker';
import DiscordIcon from '!svg-react-loader!./Discord.svg';
@@ -8,6 +10,8 @@ export default {
hamburger: Hamburger,
cross: Cross,
googlePlay: GooglePlay,
+ googleAndroid: GoogleAndroid,
+ appleLogo: AppleLogo,
mapMarker: MapMarker,
discord: DiscordIcon,
};
diff --git a/src/common/components/Typography/index.jsx b/src/common/components/Typography/index.jsx
index 579fd4cd..e179476b 100644
--- a/src/common/components/Typography/index.jsx
+++ b/src/common/components/Typography/index.jsx
@@ -46,6 +46,7 @@ Typography.defaultProps = {
type: 'body',
tagName: '',
tagMap: {
+ display6: 'h1',
display5: 'h1',
display4: 'h1',
display3: 'h2',
@@ -65,6 +66,7 @@ Typography.defaultProps = {
};
const types = [
+ 'display6',
'display5',
'display4',
'display3',
diff --git a/src/common/components/Typography/styles.js b/src/common/components/Typography/styles.js
index 216ebc7a..dd116fe5 100644
--- a/src/common/components/Typography/styles.js
+++ b/src/common/components/Typography/styles.js
@@ -30,6 +30,10 @@ const styles = theme => ({
extend: [theme.typography.body2, theme.spacing.body],
fontWeight: ({ weight }) => weight || theme.typography.body2.fontWeight,
},
+ display6: {
+ extend: [theme.typography.display6, theme.spacing.display6],
+ fontWeight: ({ weight }) => weight || theme.typography.display6.fontWeight,
+ },
display5: {
extend: [theme.typography.display5, theme.spacing.display5],
fontWeight: ({ weight }) => weight || theme.typography.display5.fontWeight,
diff --git a/src/common/components/Vacancies/index.jsx b/src/common/components/Vacancies/index.jsx
deleted file mode 100644
index 79a0a445..00000000
--- a/src/common/components/Vacancies/index.jsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import React, { Component } from 'react';
-
-import Vacancy from './lib/Vacancy';
-import Margin from 'src/common/components/Margin';
-
-class Vacancies extends Component {
- state = {
- expandedIndex: null,
- };
-
- handleToggle = index => {
- this.setState(oldState => ({
- expandedIndex: index === oldState.expandedIndex ? null : index,
- }));
- };
-
- render() {
- const { vacancies } = this.props;
- return (
-
- {vacancies.map((v, i) => (
-
- this.handleToggle(i)}
- {...v}
- />
-
- ))}
-
- );
- }
-}
-
-export default Vacancies;
diff --git a/src/common/components/Vacancies/lib/Vacancy/img/arrow.svg b/src/common/components/Vacancies/lib/Vacancy/img/arrow.svg
deleted file mode 100644
index a44fb8db..00000000
--- a/src/common/components/Vacancies/lib/Vacancy/img/arrow.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/src/common/components/Vacancies/lib/Vacancy/index.jsx b/src/common/components/Vacancies/lib/Vacancy/index.jsx
deleted file mode 100644
index ab39f3ca..00000000
--- a/src/common/components/Vacancies/lib/Vacancy/index.jsx
+++ /dev/null
@@ -1,68 +0,0 @@
-import React from 'react';
-
-import Panel from 'src/common/components/Panel';
-import Typography from 'src/common/components/Typography';
-import List from 'src/common/components/List';
-import Divider from 'src/common/components/Divider';
-import Margin from 'src/common/components/Margin';
-import Button from 'src/common/components/Button';
-import Icon from 'src/common/components/Icon';
-
-import injectSheet from 'react-jss';
-import styles from './styles';
-import cn from 'classnames';
-
-import { FormattedMessage } from 'react-intl';
-
-const Vacancy = ({
- title,
- location,
- blocks,
- classes,
- onSubmitResumeClick,
- expanded,
- onToggle,
-}) => (
-
-
-
-
-
-
- {title}
-
-
-
- {location}
-
-
-
-
-
-
-
- {blocks.map((block, index) => (
-
-
-
- {block.title}
-
-
-
-
-
- ))}
-
-
-
-
-
-
-);
-
-export default injectSheet(styles)(Vacancy);
diff --git a/src/common/components/Vacancies/lib/Vacancy/styles.js b/src/common/components/Vacancies/lib/Vacancy/styles.js
deleted file mode 100644
index 5d03ae48..00000000
--- a/src/common/components/Vacancies/lib/Vacancy/styles.js
+++ /dev/null
@@ -1,117 +0,0 @@
-import arrow from './img/arrow.svg';
-
-export default theme => ({
- clickable: {
- margin: [-theme.spacing.unit * 3, -theme.spacing.unit * 2.5, 0],
- cursor: 'pointer',
- },
- titleWrapper: {
- padding: [
- theme.spacing.unit * 3,
- theme.spacing.unit * 6,
- theme.spacing.unit * 3,
- theme.spacing.unit * 2.5,
- ],
- position: 'relative',
- },
- title: {
- marginBottom: theme.spacing.unit / 2,
- },
- subtitle: {
- fontWeight: 500,
- marginBottom: theme.spacing.unit,
- },
- locationText: {
- verticalAlign: '-5%',
- marginLeft: '.3em',
- color: theme.palette.gray[800],
- },
- wrapper: {
- position: 'relative',
- },
-
- collapsed: {
- // shadow hover
- '&:before': {
- content: '""',
- display: 'block',
- position: 'absolute',
- top: 0,
- bottom: 0,
- left: 0,
- right: 0,
- boxShadow: '0 3px 20px 1px rgba(39, 47, 89, .08)',
- borderRadius: theme.spacing.radius,
- opacity: 0,
- willChange: 'opacity',
- transition: theme.transitions.create('opacity'),
- },
- '& $clickable': {
- marginBottom: -theme.spacing.unit * 3,
- },
- '& $content': {
- opacity: 0,
- transition: 'none',
- height: 0,
- overflow: 'hidden',
- },
- '& $arrow': {
- transform: 'none',
- },
- },
-
- arrow: {
- position: 'absolute',
- top: 'calc(50% - 11px)',
- width: 22,
- height: 22,
- borderRadius: '50%',
- background: `${
- theme.palette.primary[500]
- } url(${arrow}) no-repeat center 9px`,
- right: theme.spacing.unit * 2.5,
- transition: theme.transitions.create(
- 'transform',
- theme.transitions.durationMedium
- ),
- transform: 'rotate(-180deg)',
- },
-
- content: {
- // opacity: 0,
- transition: theme.transitions.create(
- 'opacity',
- theme.transitions.durationMedium
- ),
- },
- [theme.breakpoints.up('md')]: {
- clickable: {
- margin: [-theme.spacing.unit * 5, -theme.spacing.unit * 5, 0],
- },
- titleWrapper: {
- padding: [
- theme.spacing.unit * 5,
- theme.spacing.unit * 10,
- theme.spacing.unit * 5.5,
- theme.spacing.unit * 5,
- ],
- },
- collapsed: {
- '&:hover:before': {
- opacity: 1,
- },
- '& $clickable': {
- marginBottom: -theme.spacing.unit * 5.5,
- },
- },
- subtitle: {
- marginBottom: theme.spacing.unit * 1.5,
- },
- title: {
- fontSize: 24,
- },
- arrow: {
- right: theme.spacing.unit * 5,
- },
- },
-});
diff --git a/src/common/containers/Company/index.jsx b/src/common/containers/Company/index.jsx
index e3efa19f..4d6bb53b 100644
--- a/src/common/containers/Company/index.jsx
+++ b/src/common/containers/Company/index.jsx
@@ -24,72 +24,74 @@ import Branding from './lib/Branding';
import injectSheet from 'react-jss';
import styles from './styles';
-import { FormattedMessage } from 'react-intl';
+import {FormattedMessage} from 'react-intl';
// url
-import { fileUrl } from 'src/common/utils/url';
+import {fileUrl} from 'src/common/utils/url';
-const PageLayout = ({ classes }) => (
-
-
- } />
-
+const PageLayout = ({classes}) => (
+
+
+ }/>
+
- {/* */}
-
+ {/* */}
+
+
+
-
+
+ {/* */}
-
- {/* */}
+
-
+
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
);
const App = injectSheet(styles)(PageLayout);
diff --git a/src/common/containers/Company/lib/Vacancies/View.jsx b/src/common/containers/Company/lib/Vacancies/View.jsx
index b1601388..9e66ff7f 100644
--- a/src/common/containers/Company/lib/Vacancies/View.jsx
+++ b/src/common/containers/Company/lib/Vacancies/View.jsx
@@ -2,37 +2,31 @@ import React from 'react';
import Typography from 'src/common/components/Typography';
import Margin from 'src/common/components/Margin';
-import { Row, Col } from 'src/common/components/Grid';
+import {Row, Col} from 'src/common/components/Grid';
-import Vacancies from 'src/common/containers/Vacancies';
-
-import { FormattedMessage } from 'react-intl';
+import {FormattedMessage} from 'react-intl';
import injectSheet from 'react-jss';
import styles from './styles';
+import Button from 'src/common/components/Button';
-const VacanciesContainer = ({ classes }) => (
-
-
-
-
-
-
-
-
-
-
-
+const VacanciesContainer = ({classes, onVacanciesClick}) => (
+
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
);
export default injectSheet(styles)(VacanciesContainer);
diff --git a/src/common/containers/Company/lib/Vacancies/index.js b/src/common/containers/Company/lib/Vacancies/index.js
index 7cd93cdb..ed430144 100644
--- a/src/common/containers/Company/lib/Vacancies/index.js
+++ b/src/common/containers/Company/lib/Vacancies/index.js
@@ -1,10 +1,12 @@
import { connect } from 'react-redux';
-import { submitResumeClick } from 'src/public/actions';
+import { submitResumeClick, vacanciesClick } from 'src/public/actions';
import View from './View';
export default connect(undefined, {
+ onVacanciesClick: () =>
+ vacanciesClick({ page: 'company', source: 'careers' }),
onSubmitResumeClick: () =>
submitResumeClick({ page: 'company', source: 'careers' }),
})(View);
diff --git a/src/common/containers/Company/lib/Whitepaper/View.jsx b/src/common/containers/Company/lib/Whitepaper/View.jsx
index 32a30a7b..fcac58ef 100644
--- a/src/common/containers/Company/lib/Whitepaper/View.jsx
+++ b/src/common/containers/Company/lib/Whitepaper/View.jsx
@@ -28,7 +28,7 @@ const Whitepaper = ({ classes, onWhitepaperClick }) => (