Skip to content

Commit be86be8

Browse files
authored
Add startups sidebar to partners (#2688)
* Add sidebar for startup partners [CORE-609] * Filter out null partnership_level, fix up formatting * Format for mobile * Code review fixups * Prettier main-menu
1 parent 7b7e836 commit be86be8

File tree

5 files changed

+260
-71
lines changed

5 files changed

+260
-71
lines changed

src/app/layouts/default/header/menus/main-menu/main-menu.js

Lines changed: 48 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,23 @@ import {
77
} from '~/components/language-selector/language-selector';
88
import {FormattedMessage} from 'react-intl';
99
import {useLocation} from 'react-router-dom';
10-
import { useDataFromSlug } from '~/helpers/page-data-utils';
10+
import {useDataFromSlug} from '~/helpers/page-data-utils';
1111
import Dropdown, {MenuItem} from './dropdown/dropdown';
1212
import LoginMenu from './login-menu/login-menu';
1313
import GiveButton from '../give-button/give-button';
1414
import {treatSpaceOrEnterAsClick} from '~/helpers/events';
1515
import './main-menu.scss';
1616

1717
function DropdownOrMenuItem({item}) {
18+
if (! item.name && ! item.label) {
19+
return null;
20+
}
1821
if ('menu' in item) {
1922
return (
20-
<Dropdown label={item.name} navAnalytics={`Main Menu (${item.name})`}>
23+
<Dropdown
24+
label={item.name}
25+
navAnalytics={`Main Menu (${item.name})`}
26+
>
2127
<MenusFromStructure structure={item.menu} />
2228
</Dropdown>
2329
);
@@ -43,18 +49,11 @@ function MenusFromCMS() {
4349
return null;
4450
}
4551

46-
return (
47-
<MenusFromStructure structure={structure} />
48-
);
52+
return <MenusFromStructure structure={structure} />;
4953
}
5054

5155
function K12MenuItem() {
52-
return (
53-
<MenuItem
54-
label='&#127822; For K12 Teachers'
55-
url='/k12'
56-
/>
57-
);
56+
return <MenuItem label="&#127822; For K12 Teachers" url="/k12" />;
5857
}
5958

6059
function SubjectsMenu() {
@@ -69,27 +68,38 @@ function SubjectsMenu() {
6968
}
7069

7170
return (
72-
<Dropdown className='subjects-dropdown' label='Subjects' navAnalytics="Main Menu (Subjects)">
73-
{categories.filter((obj) => obj.html !== 'K12').map((obj) => (
74-
<MenuItem
75-
key={obj.value}
76-
label={obj.html}
77-
url={`/subjects/${obj.value}`}
78-
/>
79-
))}
71+
<Dropdown
72+
className="subjects-dropdown"
73+
label="Subjects"
74+
navAnalytics="Main Menu (Subjects)"
75+
>
76+
{categories
77+
.filter((obj) => obj.html !== 'K12')
78+
.map((obj) => (
79+
<MenuItem
80+
key={obj.value}
81+
label={obj.html}
82+
url={`/subjects/${obj.value}`}
83+
/>
84+
))}
8085
{pathname.startsWith('/details/books') ? null : (
8186
<React.Fragment>
8287
<LanguageSelectorWrapper>
83-
<FormattedMessage id='view' defaultMessage='View' />{' '}
88+
<FormattedMessage id="view" defaultMessage="View" />{' '}
8489
<LanguageLink locale={otherLocale} />
8590
</LanguageSelectorWrapper>
8691
<LanguageSelectorWrapper>
87-
<FormattedMessage id='view' defaultMessage='View' />{' '}
88-
<LanguageLink locale='pl' />
92+
<FormattedMessage id="view" defaultMessage="View" />{' '}
93+
<LanguageLink locale="pl" />
8994
</LanguageSelectorWrapper>
9095
</React.Fragment>
91-
)}
92-
{language === 'en' ? <React.Fragment><hr /><K12MenuItem /></React.Fragment> : null}
96+
)}
97+
{language === 'en' ? (
98+
<React.Fragment>
99+
<hr />
100+
<K12MenuItem />
101+
</React.Fragment>
102+
) : null}
93103
</Dropdown>
94104
);
95105
}
@@ -99,12 +109,18 @@ function navigateWithArrows(event) {
99109
case 'ArrowRight':
100110
event.preventDefault();
101111
event.stopPropagation();
102-
event.target.closest('li').nextElementSibling?.querySelector('a').focus();
112+
event.target
113+
.closest('li')
114+
.nextElementSibling?.querySelector('a')
115+
.focus();
103116
break;
104117
case 'ArrowLeft':
105118
event.preventDefault();
106119
event.stopPropagation();
107-
event.target.closest('li').previousElementSibling?.querySelector('a').focus();
120+
event.target
121+
.closest('li')
122+
.previousElementSibling?.querySelector('a')
123+
.focus();
108124
break;
109125
default:
110126
break;
@@ -117,7 +133,7 @@ export function MainMenuItems() {
117133
<React.Fragment>
118134
<SubjectsMenu />
119135
<MenusFromCMS />
120-
<li className='give-button-item' role='presentation'>
136+
<li className="give-button-item" role="presentation">
121137
<GiveButton />
122138
</li>
123139
<LoginMenu />
@@ -127,7 +143,11 @@ export function MainMenuItems() {
127143

128144
export default function MainMenu() {
129145
return (
130-
<ul className='nav-menu main-menu no-bullets' data-analytics-nav="Main Menu" onKeyDown={navigateWithArrows}>
146+
<ul
147+
className="nav-menu main-menu no-bullets"
148+
data-analytics-nav="Main Menu"
149+
onKeyDown={navigateWithArrows}
150+
>
131151
<MainMenuItems />
132152
</ul>
133153
);

src/app/pages/partners/active-filters/active-filters.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
.active-filters {
44
@extend %content;
5+
56
padding: 0;
67

78
@include wider-than($phone-max) {

src/app/pages/partners/results/results.scss

Lines changed: 80 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
@import 'mixins/placeholder-selectors';
33

44
.partners .results {
5-
align-items: start;
6-
padding: 2rem 0 20rem;
7-
row-gap: 2rem;
5+
padding: 2rem $normal-margin 20rem;
86

97
@include width-up-to($phone-max) {
108
padding: 0 $normal-margin 6rem;
@@ -14,6 +12,16 @@
1412
min-height: 60rem;
1513
}
1614

15+
>:first-child {
16+
@include width-up-to($phone-max) {
17+
margin-bottom: $normal-margin;
18+
}
19+
20+
@include wider-than($phone-max) {
21+
margin-bottom: 3rem;
22+
}
23+
}
24+
1725
h2 {
1826
margin: 0;
1927
}
@@ -104,4 +112,73 @@
104112
}
105113
}
106114
}
115+
116+
.boxed {
117+
gap: 3rem;
118+
119+
@include width-up-to($phone-max) {
120+
gap: $normal-margin;
121+
padding: 0;
122+
}
123+
}
124+
125+
.with-sidebar {
126+
h2 {
127+
text-align: center;
128+
}
129+
130+
@include width-up-to($phone-max) {
131+
> .boxed {
132+
padding: 0;
133+
}
134+
135+
&,
136+
.sidebar-content {
137+
display: flex;
138+
flex-direction: column;
139+
gap: $normal-margin;
140+
}
141+
}
142+
143+
@include wider-than($phone-max) {
144+
display: flex;
145+
flex-direction: row;
146+
gap: 3rem;
147+
max-width: 120rem;
148+
margin: 0 auto;
149+
padding-right: $normal-margin;
150+
151+
.grid {
152+
max-width: unset;
153+
}
154+
155+
> .sidebar {
156+
min-width: 20rem;
157+
border: thin solid black;
158+
height: max-content;
159+
160+
.sidebar-content {
161+
background-color: ui-color(white);
162+
}
163+
164+
h2 {
165+
@include set-font(h3);
166+
167+
background-color: os-color(gray);
168+
color: ui-color(white);
169+
padding: $normal-margin;
170+
}
171+
172+
.grid {
173+
gap: 0.2rem;
174+
}
175+
176+
.card {
177+
border-radius: 0;
178+
box-shadow: none;
179+
border-bottom: thin solid ui-color(form-border);
180+
}
181+
}
182+
}
183+
}
107184
}

0 commit comments

Comments
 (0)