Skip to content

Commit 7cd1559

Browse files
committed
final tweaks
1 parent c20aadb commit 7cd1559

File tree

4 files changed

+100
-11
lines changed

4 files changed

+100
-11
lines changed

src/shared/components/Contentful/Tabs/Tabs.jsx

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export default class TabsItemsLoader extends Component {
4545
super(props);
4646
this.state = {
4747
tabIndex: props.selected || 0,
48+
mobileTabsShow: false,
4849
};
4950

5051
this.updatePageUrl.bind(this);
@@ -85,8 +86,9 @@ export default class TabsItemsLoader extends Component {
8586
environment,
8687
theme,
8788
tabId,
89+
themeName,
8890
} = this.props;
89-
const { tabIndex } = this.state;
91+
const { tabIndex, mobileTabsShow } = this.state;
9092

9193
return (
9294
<ContentfulLoader
@@ -99,11 +101,39 @@ export default class TabsItemsLoader extends Component {
99101
className={theme.container}
100102
selectedIndex={tabIndex}
101103
selectedTabClassName={theme.selected}
102-
onSelect={tIndx => this.setState({ tabIndex: tIndx })}
104+
onSelect={tIndx => this.setState({ tabIndex: tIndx, mobileTabsShow: false })}
103105
forceRenderTabPanel
104106
>
105107
<div className={theme.tabListWrap}>
106-
<TabList className={theme.tablist}>
108+
{
109+
themeName === 'Underline box' ? (
110+
<button type="button" className={theme.tabListMobileTrigger} onClick={() => this.setState({ mobileTabsShow: !mobileTabsShow })}>
111+
<MarkdownRenderer
112+
markdown={_.toArray(data.entries.items)[tabIndex].fields.tab}
113+
/>
114+
<svg className={mobileTabsShow ? theme.tabListMobileTriggerSVGOpen : theme.tabListMobileTriggerSVG} width="16px" height="10px" viewBox="0 0 16 10" version="1.1" xmlns="http://www.w3.org/2000/svg">
115+
<defs>
116+
<polygon id="path-1" points="7.7 9.2 0 1.5 1.4 0 7.7 6.3 14 0 15.4 1.5" />
117+
</defs>
118+
<g id="Mobile" stroke="none" strokeWidth="1" fill="none" fillRule="evenodd">
119+
<g id="01" transform="translate(-228.000000, -315.000000)">
120+
<g id="Group-6" transform="translate(16.000000, 289.000000)">
121+
<g id="Group-4" transform="translate(126.000000, 21.000000)">
122+
<g id="icons/arrow/minimal-down" transform="translate(86.300000, 5.400000)">
123+
<mask id="mask-2" fill="white">
124+
<use xlinkHref="#path-1" />
125+
</mask>
126+
<use id="icon-color" fill="#2A2A2A" xlinkHref="#path-1" />
127+
</g>
128+
</g>
129+
</g>
130+
</g>
131+
</g>
132+
</svg>
133+
</button>
134+
) : null
135+
}
136+
<TabList className={[theme.tablist, mobileTabsShow ? theme.visible : null]}>
107137
{
108138
_.map(data.entries.items, tabItem => (
109139
<Tab
@@ -210,4 +240,5 @@ TabsItemsLoader.propTypes = {
210240
selected: PT.number,
211241
theme: PT.shape().isRequired,
212242
tabId: PT.string.isRequired,
243+
themeName: PT.string.isRequired,
213244
};

src/shared/components/Contentful/Tabs/index.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ function ContentfulTabs(props) {
3535
selected={fields.selected}
3636
theme={TAB_THEMES[fields.theme || 'Default']}
3737
tabId={fields.urlQueryName || id}
38+
themeName={fields.theme}
3839
/>
3940
);
4041
}}

src/shared/components/Contentful/Tabs/themes/underline-box.scss

Lines changed: 64 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@ $text-color-gray: #888894;
66
$text-color-pannel: #4a4a4a;
77

88
.container {
9-
@include roboto-regular;
10-
119
margin: auto;
10+
11+
@include xs-to-sm {
12+
margin-top: 65px;
13+
}
1214
}
1315

1416
.tabListWrap {
1517
display: flex;
1618
justify-content: center;
19+
position: relative;
1720

1821
.tablist {
1922
@include roboto-regular;
@@ -29,25 +32,65 @@ $text-color-pannel: #4a4a4a;
2932
align-items: center;
3033
background-color: white;
3134
padding: 0 25px;
35+
border: 1px solid #e4e4e4;
3236

3337
@include xs-to-sm {
34-
overflow-x: auto;
3538
white-space: nowrap;
36-
border: none;
3739
flex-direction: column;
38-
overflow: hidden;
40+
padding: 28px 15px 0;
41+
align-items: flex-start;
42+
border-radius: 8px;
43+
min-width: 85vw;
44+
overflow: visible;
45+
position: absolute;
46+
z-index: 999;
47+
display: none; // by default
48+
49+
&.visible {
50+
display: flex;
51+
}
52+
}
53+
}
54+
55+
.tabListMobileTrigger {
56+
display: none;
57+
justify-content: center;
58+
align-items: center;
59+
background-color: white;
60+
position: absolute;
61+
top: -65px;
62+
width: 85vw;
63+
left: calc(50% - 42.5vw);
64+
outline: none;
65+
border: navajowhite;
66+
min-height: 60px;
67+
font-family: Barlow, sans-serif;
68+
font-size: 16px;
69+
font-weight: 600;
70+
text-transform: uppercase;
71+
border-radius: 30px;
72+
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.06);
73+
color: #2a2a2a;
74+
75+
@media (max-width: 768px) {
76+
display: flex;
3977
}
4078

41-
@media (max-width: 425px) {
42-
justify-content: space-between;
79+
.tabListMobileTriggerSVG,
80+
.tabListMobileTriggerSVGOpen {
81+
margin-left: 9px;
82+
}
83+
84+
.tabListMobileTriggerSVGOpen {
85+
transform: scaleY(-1);
4386
}
4487
}
4588
}
4689

4790
.tab {
4891
text-align: center;
4992
margin: 0 25px;
50-
color: #555555;
93+
color: #555;
5194
font-family: Barlow, sans-serif;
5295
font-size: 16px;
5396
font-weight: 600;
@@ -59,6 +102,19 @@ $text-color-pannel: #4a4a4a;
59102

60103
@include xs-to-sm {
61104
margin: 0;
105+
margin-bottom: 23px;
106+
padding: 0;
107+
padding-left: 5px;
108+
109+
&::after {
110+
display: none;
111+
}
112+
113+
&:hover,
114+
&.selected {
115+
border-left: 3px solid #43d7b0;
116+
margin-left: -3px;
117+
}
62118
}
63119

64120
&:hover,

src/shared/components/Gigs/GigApply/style.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,7 @@
313313
margin-left: 20px;
314314
}
315315
}
316+
316317
.gig-list-btn {
317318
margin-right: 12px;
318319
}

0 commit comments

Comments
 (0)