Skip to content

Commit b909007

Browse files
author
amvanbaren
committed
Show Adopters of Open VSX on the Website
Add adopters page Add 'Working Group' menu item to header menu Remove 'Community' and 'FAQ' menu items from header menu Add Resources section to About page with links to Community and FAQ
1 parent b4a73b6 commit b909007

File tree

5 files changed

+101
-37
lines changed

5 files changed

+101
-37
lines changed

configuration/application.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ ovsx:
129129
storage:
130130
primary-service: azure-blob
131131
webui:
132-
frontendRoutes: "/extension/**,/namespace/**,/user-settings/**,/admin-dashboard/**,/about,/publisher-agreement-*,/terms-of-use,/members"
132+
frontendRoutes: "/extension/**,/namespace/**,/user-settings/**,/admin-dashboard/**,/about,/publisher-agreement-*,/terms-of-use,/members,/adopters"
133133
eclipse:
134134
# TODO change back to https://api.eclipse.org/ for release.
135135
base-url: https://api-staging.eclipse.org/

website/dev/mock-service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
NamespaceMembershipList, AdminService, PublisherInfo, NewReview, ExtensionFilter, UrlString, MembershipRole
1515
} from "openvsx-webui";
1616

17-
const avatarUrl = 'https://upload.wikimedia.org/wikipedia/commons/1/19/Spongebob_Squarepants_as_a_balloon.jpg';
17+
const avatarUrl = 'https://upload.wikimedia.org/wikipedia/commons/9/99/Avatar_cupcake.png';
1818

1919
export class MockRegistryService extends ExtensionRegistryService {
2020

website/src/about.tsx

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
********************************************************************************/
1010

1111
import * as React from 'react';
12-
import { Link, Typography, Container } from '@mui/material';
12+
import { Link, Typography, Container, List, ListItem, ListItemText } from '@mui/material';
1313
import { styled, Theme } from '@mui/material/styles';
1414

1515
const Heading = styled(Typography)(({ theme }: { theme: Theme }) => ({
@@ -58,11 +58,24 @@ const About = () => {
5858
</li>
5959
</RepositoryList>
6060

61-
<Heading variant='h5'>Publishing Extensions</Heading>
62-
<Paragraph variant='body1'>
63-
The publishing process is described in
64-
the <Link color='secondary' underline='hover' href='https://github.com/eclipse/openvsx/wiki/Publishing-Extensions#how-to-publish-an-extension'>openvsx Wiki</Link>.
65-
</Paragraph>
61+
<Heading variant='h5'>Resources</Heading>
62+
<List>
63+
<ListItem>
64+
<ListItemText>
65+
The publishing process is described in the <Link color='secondary' underline='hover' href='https://github.com/eclipse/openvsx/wiki/Publishing-Extensions#how-to-publish-an-extension'>openvsx Wiki</Link>.
66+
</ListItemText>
67+
</ListItem>
68+
<ListItem>
69+
<ListItemText>
70+
The <Link color='secondary' underline='hover' href='https://www.eclipse.org/legal/open-vsx-registry-faq/'>FAQ</Link> section explains what you can and cannot do as a user of our service.
71+
</ListItemText>
72+
</ListItem>
73+
<ListItem>
74+
<ListItemText>
75+
Get involved in the <Link color='secondary' underline='hover' href='https://gitter.im/eclipse/openvsx'>community</Link>.
76+
</ListItemText>
77+
</ListItem>
78+
</List>
6679
</Container>;
6780
}
6881

website/src/menu-content.tsx

Lines changed: 78 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,20 @@
88
* SPDX-License-Identifier: EPL-2.0
99
********************************************************************************/
1010

11-
import React, { FunctionComponent, PropsWithChildren } from 'react';
12-
import { Theme, Typography, MenuItem, Link, Button } from '@mui/material';
11+
import React, { FunctionComponent, PropsWithChildren, useState, useRef } from 'react';
12+
import { Theme, Typography, Menu, MenuItem, Link, Button, Accordion, AccordionDetails, AccordionSummary } from '@mui/material';
1313
import { styled } from '@mui/material/styles';
1414
import { Link as RouteLink } from 'react-router-dom';
15+
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
1516
import GitHubIcon from '@mui/icons-material/GitHub';
1617
import MenuBookIcon from '@mui/icons-material/MenuBook';
17-
import HelpIcon from '@mui/icons-material/Help';
18-
import ForumIcon from '@mui/icons-material/Forum';
1918
import InfoIcon from '@mui/icons-material/Info';
2019
import StarIcon from '@mui/icons-material/Star';
2120
import StatusIcon from '@mui/icons-material/NetworkCheck';
2221
import PublishIcon from '@mui/icons-material/Publish';
22+
import GroupWorkIcon from '@mui/icons-material/GroupWork';
23+
import PeopleAltIcon from '@mui/icons-material/PeopleAlt';
24+
import HubIcon from '@mui/icons-material/Hub';
2325
import { UserSettingsRoutes } from 'openvsx-webui';
2426

2527
//-------------------- Mobile View --------------------//
@@ -71,19 +73,41 @@ export const MobileMenuContent: FunctionComponent = () => {
7173
</MobileMenuItemText>
7274
</Link>
7375
</MobileMenuItem>
74-
<MobileMenuItem>
75-
<Link href='https://www.eclipse.org/legal/open-vsx-registry-faq/'>
76+
<Accordion sx={{border: 0, borderRadius: 0, boxShadow: '0 0'}}>
77+
<AccordionSummary
78+
expandIcon={<ExpandMoreIcon />}
79+
aria-controls="working-group-content"
80+
id="working-group-header"
81+
>
7682
<MobileMenuItemText>
77-
<HelpIcon sx={itemIcon} />
78-
FAQ
83+
<GroupWorkIcon sx={itemIcon} />
84+
Working Group
7985
</MobileMenuItemText>
80-
</Link>
81-
</MobileMenuItem>
86+
</AccordionSummary>
87+
<AccordionDetails>
88+
<MobileMenuItem>
89+
<RouteLink to='/members'>
90+
<MobileMenuItemText>
91+
<PeopleAltIcon sx={itemIcon} />
92+
Members
93+
</MobileMenuItemText>
94+
</RouteLink>
95+
</MobileMenuItem>
96+
<MobileMenuItem>
97+
<RouteLink to='/adopters'>
98+
<MobileMenuItemText>
99+
<HubIcon sx={itemIcon} />
100+
Adopters
101+
</MobileMenuItemText>
102+
</RouteLink>
103+
</MobileMenuItem>
104+
</AccordionDetails>
105+
</Accordion>
82106
<MobileMenuItem>
83-
<Link href='https://gitter.im/eclipse/openvsx'>
107+
<Link href='https://www.eclipse.org/donate/openvsx/'>
84108
<MobileMenuItemText>
85-
<ForumIcon sx={itemIcon} />
86-
Community
109+
<StarIcon sx={itemIcon} />
110+
Sponsor
87111
</MobileMenuItemText>
88112
</Link>
89113
</MobileMenuItem>
@@ -95,14 +119,6 @@ export const MobileMenuContent: FunctionComponent = () => {
95119
</MobileMenuItemText>
96120
</RouteLink>
97121
</MobileMenuItem>
98-
<MobileMenuItem>
99-
<Link href='https://www.eclipse.org/donate/openvsx/'>
100-
<MobileMenuItemText>
101-
<StarIcon sx={itemIcon} />
102-
Sponsor
103-
</MobileMenuItemText>
104-
</Link>
105-
</MobileMenuItem>
106122
{
107123
!location.pathname.startsWith(UserSettingsRoutes.ROOT)
108124
? <MobileMenuItem>
@@ -135,29 +151,62 @@ const headerItem = ({ theme }: { theme: Theme }) => ({
135151
}
136152
});
137153

154+
const headerTypography = ({ theme }: { theme: Theme }) => ({
155+
...headerItem({theme}),
156+
cursor: 'pointer'
157+
});
158+
138159
const MenuLink = styled(Link)(headerItem);
139160
const MenuRouteLink = styled(RouteLink)(headerItem);
161+
const MenuTypography = styled(Typography)(headerTypography);
162+
163+
const subMenuItem = ({ theme }: { theme: Theme }) => ({
164+
'&:focus, &:hover': {
165+
background: 'transparent'
166+
}
167+
});
168+
169+
const subMenuLink = ({ theme }: { theme: Theme }) => ({
170+
...headerItem({theme}),
171+
margin: theme.spacing(0.5)
172+
});
173+
174+
const SubMenuItem = styled(MenuItem)(subMenuItem);
175+
const SubMenuLink = styled(Link)(subMenuLink);
176+
140177

141178
export const DefaultMenuContent: FunctionComponent = () => {
179+
const [workingGroupMenuOpen, setWorkingGroupOpen] = useState(false);
180+
const workingGroupMenuEl = useRef<HTMLButtonElement | null>(null);
181+
const toggleWorkingGroupMenu = () => setWorkingGroupOpen(!workingGroupMenuOpen);
182+
const closeWorkingGroupMenu = () => setWorkingGroupOpen(false);
183+
142184
return <>
143185
<MenuLink href='https://github.com/eclipse/openvsx/wiki'>
144186
Documentation
145187
</MenuLink>
146-
<MenuLink href='https://www.eclipse.org/legal/open-vsx-registry-faq/'>
147-
FAQ
148-
</MenuLink>
149188
<MenuLink href='https://status.open-vsx.org/'>
150189
Status
151190
</MenuLink>
152-
<MenuLink href='https://gitter.im/eclipse/openvsx'>
153-
Community
191+
<MenuTypography onClick={toggleWorkingGroupMenu} ref={workingGroupMenuEl}>Working Group</MenuTypography>
192+
<Menu open={workingGroupMenuOpen} onClose={closeWorkingGroupMenu} anchorEl={workingGroupMenuEl.current}>
193+
<SubMenuItem>
194+
<SubMenuLink href='/members' onClick={closeWorkingGroupMenu}>
195+
Members
196+
</SubMenuLink>
197+
</SubMenuItem>
198+
<SubMenuItem>
199+
<SubMenuLink href='/adopters' onClick={closeWorkingGroupMenu}>
200+
Adopters
201+
</SubMenuLink>
202+
</SubMenuItem>
203+
</Menu>
204+
<MenuLink href='https://www.eclipse.org/donate/openvsx/'>
205+
Sponsor
154206
</MenuLink>
155207
<MenuRouteLink to='/about'>
156208
About
157209
</MenuRouteLink>
158-
<MenuLink href='https://www.eclipse.org/donate/openvsx/'>
159-
Sponsor
160-
</MenuLink>
161210
<Button variant='contained' color='secondary' href='/user-settings/extensions' sx={{ mx: 2.5 }}>
162211
Publish
163212
</Button>

website/src/page-settings.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import OpenVSXLogo from './openvsx-registry-logo';
2020
import footerContent from './footer-content';
2121
import { Document } from './document';
2222
import About from './about';
23+
import Adopters from './adopters';
2324
import Members from './members';
2425

2526
export default function createPageSettings(theme: Theme, prefersDarkMode: boolean): PageSettings {
@@ -64,6 +65,7 @@ export default function createPageSettings(theme: Theme, prefersDarkMode: boolea
6465
<Route path='/terms-of-use' element={<Document url='/documents/terms-of-use.md' />} />
6566
<Route path='/publisher-agreement-v1.0' element={<Document url='/documents/publisher-agreement-v1.0.md' />} />
6667
<Route path='/members' element={<Members />} />
68+
<Route path='/adopters' element={<Adopters />} />
6769
</>;
6870

6971
//---------- REPORT ABUSE LINK

0 commit comments

Comments
 (0)