From f3e43d7d946ad7dd30736b2407debf361f2e5f75 Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Tue, 17 Jul 2018 17:23:10 -0700 Subject: Benefits and values sections --- packages/website/ts/pages/jobs/benefits.tsx | 184 ++++++++++++--------- packages/website/ts/pages/jobs/jobs.tsx | 2 - .../website/ts/pages/jobs/list/header_item.tsx | 26 --- packages/website/ts/pages/jobs/list/list_item.tsx | 15 -- packages/website/ts/pages/jobs/mission.tsx | 4 +- packages/website/ts/pages/jobs/open_positions.tsx | 18 +- packages/website/ts/pages/jobs/teams.tsx | 90 ---------- packages/website/ts/pages/jobs/values.tsx | 60 ------- 8 files changed, 115 insertions(+), 284 deletions(-) delete mode 100644 packages/website/ts/pages/jobs/list/header_item.tsx delete mode 100644 packages/website/ts/pages/jobs/list/list_item.tsx delete mode 100644 packages/website/ts/pages/jobs/teams.tsx delete mode 100644 packages/website/ts/pages/jobs/values.tsx (limited to 'packages/website/ts/pages/jobs') diff --git a/packages/website/ts/pages/jobs/benefits.tsx b/packages/website/ts/pages/jobs/benefits.tsx index 006facc83..c8024068f 100644 --- a/packages/website/ts/pages/jobs/benefits.tsx +++ b/packages/website/ts/pages/jobs/benefits.tsx @@ -1,109 +1,139 @@ import * as _ from 'lodash'; import * as React from 'react'; +import { Circle } from 'ts/components/ui/circle'; +import { Container } from 'ts/components/ui/container'; import { FilledImage } from 'ts/components/ui/filled_image'; -import { HeaderItem } from 'ts/pages/jobs/list/header_item'; -import { ListItem } from 'ts/pages/jobs/list/list_item'; +import { Image } from 'ts/components/ui/image'; +import { Text } from 'ts/components/ui/Text'; import { colors } from 'ts/style/colors'; import { ScreenWidths } from 'ts/types'; +import { constants } from 'ts/utils/constants'; +import { utils } from 'ts/utils/utils'; -const IMAGE_PATHS = ['/images/jobs/location1.png', '/images/jobs/location2.png', '/images/jobs/location3.png']; -const BENEFIT_ITEM_PROPS_LIST: BenefitItemProps[] = [ - { - bulletColor: '#6FCF97', - description: - 'Donec eget auctor mauris, a imperdiet ante. Ut a tellus ullamcorper, pharetra nibh sed, dignissim mauris. Quisque vel magna vitae nisi scelerisque commodo sed eget dolor. Maecenas vehicula orci', - }, - { - bulletColor: '#56CCF2', - description: - 'Donec eget auctor mauris, a imperdiet ante. Ut a tellus ullamcorper, pharetra nibh sed, dignissim mauris. Quisque vel magna vitae nisi scelerisque commodo sed eget dolor. Maecenas vehicula orci', - }, +const BENEFITS = [ + 'Comprehensive insurance. Medical, dental, and vision coverage for you and your family.', + 'Unlimited vacation. Three weeks per year minimum.', + 'Flexible hours and libteral work-from-home-policy.', + 'Relocation Assistance.', + 'Whole team offsites and community / hackathon events (often international).', + 'Monthly transportation and phone reimbursement.', + 'Meals and snacks prvided in-office daily', +]; + +interface Value { + iconSrc: string; + text: string; +} +const VALUES: Value[] = [ { - bulletColor: '#EB5757', - description: - 'Donec eget auctor mauris, a imperdiet ante. Ut a tellus ullamcorper, pharetra nibh sed, dignissim mauris. Quisque vel magna vitae nisi scelerisque commodo sed eget dolor. Maecenas vehicula orci', + iconSrc: 'images/jobs/heart-icon.svg', + text: 'Do the right thing', }, { - bulletColor: '#6FCF97', - description: - 'Donec eget auctor mauris, a imperdiet ante. Ut a tellus ullamcorper, pharetra nibh sed, dignissim mauris. Quisque vel magna vitae nisi scelerisque commodo sed eget dolor. Maecenas vehicula orci', + iconSrc: 'images/jobs/ship-icon.svg', + text: 'Consistently ship', }, { - bulletColor: '#56CCF2', - description: - 'Donec eget auctor mauris, a imperdiet ante. Ut a tellus ullamcorper, pharetra nibh sed, dignissim mauris. Quisque vel magna vitae nisi scelerisque commodo sed eget dolor. Maecenas vehicula orci', + iconSrc: 'images/jobs/calendar-icon.svg', + text: 'Focus on long term impact', }, ]; -const LARGE_LAYOUT_HEIGHT = 937; -const LARGE_LAYOUT_BENEFITS_LIST_PADDING_LEFT = 205; -const HEADER_TEXT = 'Benefits'; -const BENEFIT_ITEM_MIN_HEIGHT = 150; export interface BenefitsProps { screenWidth: ScreenWidths; } -export const Benefits = (props: BenefitsProps) => ( -
- {props.screenWidth === ScreenWidths.Sm ? : } -
-); - -const LargeLayout = () => ( -
-
- -
-
- -
-
-); +export const Benefits = (props: BenefitsProps) => { + const isSmallScreen = props.screenWidth === ScreenWidths.Sm; + return ( + + {!isSmallScreen ? ( + + + + + + + ) : ( + + + + + + + )} + + ); +}; -const SmallLayout = () => ( -
- - -
+const Header: React.StatelessComponent = ({ children }) => ( + + + {children} + + ); -export const BenefitsList = () => { +const BenefitsList = () => { return ( -
- - {_.map(BENEFIT_ITEM_PROPS_LIST, valueItemProps => )} -
+ +
Benefits
+ {_.map(BENEFITS, benefit => )} +
); }; interface BenefitItemProps { - bulletColor: string; description: string; } -const BenefitItem: React.StatelessComponent = ({ bulletColor, description }) => ( -
- -
{description}
-
-
-); - -const ImageGrid = () => ( -
-
- -
-
-
- -
-
- +const BenefitItem: React.StatelessComponent = ({ description }) => ( + +
+ +
+ + {description} +
-
+ ); + +const openMissionAndValuesBlogPost = () => { + utils.openUrl(constants.URL_MISSION_AND_VALUES_BLOG_POST); +}; +const ValuesList = () => { + return ( + +
Our Values
+ {_.map(VALUES, value => )} + + We care deeply about our mission and encourage you to{' '} + + read more here + . + +
+ ); +}; + +type ValueItemProps = Value; +const ValueItem: React.StatelessComponent = ({ iconSrc, text }) => { + return ( + +
+ +
+ + {text} + +
+
+
+ ); +}; diff --git a/packages/website/ts/pages/jobs/jobs.tsx b/packages/website/ts/pages/jobs/jobs.tsx index 9cd7a08eb..49d6422f5 100644 --- a/packages/website/ts/pages/jobs/jobs.tsx +++ b/packages/website/ts/pages/jobs/jobs.tsx @@ -11,8 +11,6 @@ import { Join0x } from 'ts/pages/jobs/join_0x'; import { Mission } from 'ts/pages/jobs/mission'; import { OpenPositions } from 'ts/pages/jobs/open_positions'; import { PhotoRail } from 'ts/pages/jobs/photo_rail'; -import { Teams } from 'ts/pages/jobs/teams'; -import { Values } from 'ts/pages/jobs/values'; import { Dispatcher } from 'ts/redux/dispatcher'; import { ScreenWidths } from 'ts/types'; import { Translate } from 'ts/utils/translate'; diff --git a/packages/website/ts/pages/jobs/list/header_item.tsx b/packages/website/ts/pages/jobs/list/header_item.tsx deleted file mode 100644 index ac214904c..000000000 --- a/packages/website/ts/pages/jobs/list/header_item.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import * as React from 'react'; - -import { Text } from 'ts/components/ui/text'; -import { ListItem } from 'ts/pages/jobs/list/list_item'; -import { colors } from 'ts/style/colors'; - -export interface HeaderItemProps { - headerText?: string; -} -export const HeaderItem: React.StatelessComponent = ({ headerText }) => { - return ( -
- - - {headerText} - - -
- ); -}; diff --git a/packages/website/ts/pages/jobs/list/list_item.tsx b/packages/website/ts/pages/jobs/list/list_item.tsx deleted file mode 100644 index 192433d39..000000000 --- a/packages/website/ts/pages/jobs/list/list_item.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import * as React from 'react'; - -import { Circle } from 'ts/components/ui/circle'; - -export interface ListItemProps { - bulletColor?: string; -} -export const ListItem: React.StatelessComponent = ({ bulletColor, children }) => { - return ( -
- -
{children}
-
- ); -}; diff --git a/packages/website/ts/pages/jobs/mission.tsx b/packages/website/ts/pages/jobs/mission.tsx index a1e6881c9..68e095436 100644 --- a/packages/website/ts/pages/jobs/mission.tsx +++ b/packages/website/ts/pages/jobs/mission.tsx @@ -10,7 +10,7 @@ export interface MissionProps { } export const Mission = (props: MissionProps) => { const isSmallScreen = props.screenWidth === ScreenWidths.Sm; - const image = ; + const image = ; const missionStatementClassName = isSmallScreen ? 'center' : undefined; const missionStatement = ( @@ -38,7 +38,7 @@ export const Mission = (props: MissionProps) => { {missionStatement} ) : ( - + {missionStatement} {image} diff --git a/packages/website/ts/pages/jobs/open_positions.tsx b/packages/website/ts/pages/jobs/open_positions.tsx index e789795c1..c9fe987e4 100644 --- a/packages/website/ts/pages/jobs/open_positions.tsx +++ b/packages/website/ts/pages/jobs/open_positions.tsx @@ -5,8 +5,6 @@ import * as React from 'react'; import { Retry } from 'ts/components/ui/retry'; import { Text } from 'ts/components/ui/text'; -import { HeaderItem } from 'ts/pages/jobs/list/header_item'; -import { ListItem } from 'ts/pages/jobs/list/list_item'; import { colors } from 'ts/style/colors'; import { styled } from 'ts/style/theme'; import { ScreenWidths, WebsiteBackendJobInfo } from 'ts/types'; @@ -71,7 +69,6 @@ export class OpenPositions extends React.Component - {_.map(this.state.jobInfos, jobInfo => ( - @@ -174,14 +170,12 @@ export interface JobInfoListItemProps { const PlainJobInfoListItem: React.StatelessComponent = ({ title, description, onClick }) => (
- - - {title + ' ›'} - - - {description} - - + + {title + ' ›'} + + + {description} +
); diff --git a/packages/website/ts/pages/jobs/teams.tsx b/packages/website/ts/pages/jobs/teams.tsx deleted file mode 100644 index 80b036396..000000000 --- a/packages/website/ts/pages/jobs/teams.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import * as _ from 'lodash'; -import * as React from 'react'; - -import { Text } from 'ts/components/ui/text'; -import { HeaderItem } from 'ts/pages/jobs/list/header_item'; -import { ListItem } from 'ts/pages/jobs/list/list_item'; -import { colors } from 'ts/style/colors'; -import { ScreenWidths } from 'ts/types'; - -const TEAM_ITEM_PROPS_COLUMN1: TeamItemProps[] = [ - { - bulletColor: '#EB5757', - title: 'User Growth', - description: - 'Donec eget auctor mauris, a imperdiet ante. Ut a tellus ullamcorper, pharetra nibh sed, dignissim mauris. Quisque vel magna vitae nisi scelerisque commodo sed eget dolor. Maecenas vehicula orci', - }, - { - bulletColor: '#EB5757', - title: 'Governance', - description: - 'Donec eget auctor mauris, a imperdiet ante. Ut a tellus ullamcorper, pharetra nibh sed, dignissim mauris. Quisque vel magna vitae nisi scelerisque commodo sed eget dolor. Maecenas vehicula orci', - }, -]; -const TEAM_ITEM_PROPS_COLUMN2: TeamItemProps[] = [ - { - bulletColor: '#EB5757', - title: 'Developer Tools', - description: - 'Donec eget auctor mauris, a imperdiet ante. Ut a tellus ullamcorper, pharetra nibh sed, dignissim mauris. Quisque vel magna vitae nisi scelerisque commodo sed eget dolor. Maecenas vehicula orci', - }, - { - bulletColor: '#EB5757', - title: 'Marketing', - description: - 'Donec eget auctor mauris, a imperdiet ante. Ut a tellus ullamcorper, pharetra nibh sed, dignissim mauris. Quisque vel magna vitae nisi scelerisque commodo sed eget dolor. Maecenas vehicula orci', - }, -]; -const HEADER_TEXT = 'Our Teams'; -const MINIMUM_ITEM_HEIGHT = 240; - -export interface TeamsProps { - screenWidth: ScreenWidths; -} - -export const Teams = (props: TeamsProps) => (props.screenWidth === ScreenWidths.Sm ? : ); - -const LargeLayout = () => ( -
-
- - {_.map(TEAM_ITEM_PROPS_COLUMN1, teamItemProps => )} -
-
- - {_.map(TEAM_ITEM_PROPS_COLUMN2, teamItemProps => )} -
-
-); - -const SmallLayout = () => ( -
- - {_.map(_.concat(TEAM_ITEM_PROPS_COLUMN1, TEAM_ITEM_PROPS_COLUMN2), teamItemProps => ( - - ))} -
-); - -interface TeamItemProps { - bulletColor: string; - title: string; - description: string; -} - -export const TeamItem: React.StatelessComponent = ({ bulletColor, title, description }) => { - return ( -
- - - {title} - - - - - {description} - - -
- ); -}; diff --git a/packages/website/ts/pages/jobs/values.tsx b/packages/website/ts/pages/jobs/values.tsx deleted file mode 100644 index c7c4d5726..000000000 --- a/packages/website/ts/pages/jobs/values.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import * as _ from 'lodash'; -import * as React from 'react'; - -import { Text } from 'ts/components/ui/text'; -import { HeaderItem } from 'ts/pages/jobs/list/header_item'; -import { ListItem } from 'ts/pages/jobs/list/list_item'; -import { colors } from 'ts/style/colors'; - -const VALUE_ITEM_PROPS_LIST: ValueItemProps[] = [ - { - bulletColor: '#6FCF97', - title: 'Ethics/Doing the right thing', - description: 'orem ipsum dolor sit amet, consectetur adipiscing elit.', - }, - { - bulletColor: '#56CCF2', - title: 'Consistently ship', - description: 'orem ipsum dolor sit amet, consectetur adipiscing elit.', - }, - { - bulletColor: '#EB5757', - title: 'Focus on long term impact', - description: 'orem ipsum dolor sit amet, consectetur adipiscing elit.', - }, -]; - -const HEADER_TEXT = 'Our Values'; -const VALUE_ITEM_MIN_HEIGHT = 150; - -export const Values = () => { - return ( -
- - {_.map(VALUE_ITEM_PROPS_LIST, valueItemProps => )} -
- ); -}; - -interface ValueItemProps { - bulletColor: string; - title: string; - description: string; -} - -export const ValueItem: React.StatelessComponent = ({ bulletColor, title, description }) => { - return ( -
- - - {title} - - - - - {description} - - -
- ); -}; -- cgit