import * as _ from 'lodash';
import * as React from 'react';
import { Circle } from 'ts/components/ui/circle';
import { Container } from 'ts/components/ui/container';
import { Image } from 'ts/components/ui/image';
import { Text } from 'ts/components/ui/text';
import { colors } from 'ts/style/colors';
import { styled } from 'ts/style/theme';
import { ScreenWidths } from 'ts/types';
import { constants } from 'ts/utils/constants';
const BENEFITS = [
'Comprehensive insurance (medical, dental, and vision)',
'Unlimited vacation (three weeks per year minimum)',
'Meals and snacks provided in-office daily',
'Flexible hours and liberal work-from-home-policy',
'Supportive remote working environment',
'Transportation, phone, and wellness expense',
'Relocation assistance',
'Optional team excursions (fully paid, often international)',
'Competitive salary and cryptocurrency-based compensation',
];
interface Value {
iconSrc: string;
text: string;
}
const VALUES: Value[] = [
{
iconSrc: 'images/jobs/heart-icon.svg',
text: 'Do the right thing',
},
{
iconSrc: 'images/jobs/ship-icon.svg',
text: 'Consistently ship',
},
{
iconSrc: 'images/jobs/calendar-icon.svg',
text: 'Focus on long term impact',
},
];
export interface BenefitsProps {
screenWidth: ScreenWidths;
}
export const Benefits = (props: BenefitsProps) => {
const isSmallScreen = props.screenWidth === ScreenWidths.Sm;
return (
{!isSmallScreen ? (
) : (
)}
);
};
const Header: React.StatelessComponent = ({ children }) => (
{children}
);
interface BenefitsListProps {
className?: string;
}
const PlainBenefitsList: React.StatelessComponent = ({ className }) => {
return (
{_.map(BENEFITS, benefit => )}
);
};
const BenefitsList = styled(PlainBenefitsList)`
transform: translateY(30px);
`;
interface BenefitItemProps {
description: string;
}
const BenefitItem: React.StatelessComponent = ({ description }) => (
);
interface ValuesListProps {
className?: string;
}
const PlainValuesList: React.StatelessComponent = ({ className }) => {
return (
{_.map(VALUES, value => )}
We care deeply about our culture and values, and encourage you to{' '}
read more on our blog
.
);
};
const ValuesList = styled(PlainValuesList)`
border-color: ${colors.beigeWhite};
border-radius: 7px;
border-width: 1px;
border-style: solid;
padding-left: 38px;
padding-right: 38px;
padding-top: 28px;
padding-bottom: 28px;
`;
type ValueItemProps = Value;
const ValueItem: React.StatelessComponent = ({ iconSrc, text }) => {
return (
);
};