Skip to content

Commit 4dcd1c0

Browse files
author
Nicholas Kolba
authored
Merge pull request #67 from rikoe/user-changes
Add user showcase to website
2 parents 540b50a + bb71b1e commit 4dcd1c0

20 files changed

+207
-85
lines changed

website/core/Showcase.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* Copyright (c) 2017-present, Facebook, Inc.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
const React = require('react');
9+
const PropTypes = require('prop-types');
10+
11+
const UserLink = ({infoLink, image, caption}) => (
12+
<a href={infoLink} key={infoLink}>
13+
<img src={image} alt={caption} title={caption} />
14+
</a>
15+
);
16+
17+
UserLink.propTypes = {
18+
infoLink: PropTypes.string.isRequired,
19+
image: PropTypes.string.isRequired,
20+
caption: PropTypes.string.isRequired,
21+
};
22+
23+
const Showcase = ({users}) => (
24+
<div className="showcase">
25+
{users.map(user => (
26+
<UserLink key={user.infoLink} {...user} />
27+
))}
28+
</div>
29+
);
30+
31+
Showcase.propTypes = {
32+
users: PropTypes.array.isRequired,
33+
};
34+
35+
module.exports = Showcase;

website/data/users.json

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
[ {
2+
"caption": "Adaptive Financial Consulting",
3+
"image": "/img/users/adaptive.webp",
4+
"infoLink": "https://weareadaptive.com/",
5+
"pinned": true,
6+
"isMember": false
7+
},
8+
{
9+
"caption": "FactSet",
10+
"image": "/img/users/FactSet.webp",
11+
"infoLink": "https://www.factset.com/",
12+
"pinned": true,
13+
"isMember": true
14+
},
15+
{
16+
"caption": "Glue42",
17+
"image": "/img/users/GLUE42.webp",
18+
"infoLink": "https://glue42.com/",
19+
"pinned": true,
20+
"isMember": true
21+
},
22+
{
23+
"caption": "GreenKey",
24+
"image": "/img/users/GreenKey.webp",
25+
"infoLink": "https://www.greenkey.global/",
26+
"pinned": true,
27+
"isMember": true
28+
},
29+
{
30+
"caption": "IHS Markit",
31+
"image": "/img/users/IHSMarkit.webp",
32+
"infoLink": "https://ihsmarkit.com/",
33+
"pinned": true,
34+
"isMember": true
35+
},
36+
{
37+
"caption": "JP Morgan",
38+
"image": "/img/users/JPMorgan.webp",
39+
"infoLink": "https://www.jpmorgan.com/",
40+
"pinned": true,
41+
"isMember": true
42+
},
43+
{
44+
"caption": "OpenFin",
45+
"image": "/img/users/Openfin.webp",
46+
"infoLink": "https://openfin.co/",
47+
"pinned": true,
48+
"isMember": true
49+
},
50+
{
51+
"caption": "Refinitv",
52+
"image": "/img/users/Refinitiv.webp",
53+
"infoLink": "https://www.refinitiv.com/",
54+
"pinned": true,
55+
"isMember": true
56+
},
57+
{
58+
"caption": "Scott Logic",
59+
"image": "/img/users/scottlogic.png",
60+
"infoLink": "https://www.scottlogic.com/",
61+
"pinned": true,
62+
"isMember": true
63+
}
64+
]

website/pages/en/index.js

Lines changed: 29 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ const React = require('react');
99

1010
const CompLibrary = require('../../core/CompLibrary.js');
1111

12+
const Showcase = require(`${process.cwd()}/core/Showcase.js`);
13+
1214
const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */
1315
const Container = CompLibrary.Container;
1416
const GridBlock = CompLibrary.GridBlock;
@@ -97,55 +99,6 @@ class Index extends React.Component {
9799
</Container>
98100
);
99101

100-
const FeatureCallout = () => (
101-
<div
102-
className="productShowcaseSection paddingBottom"
103-
style={{textAlign: 'center'}}>
104-
<h2>Use Cases</h2>
105-
<MarkdownBlock>{`Document business [use cases](${docUrl('use-cases/overview')}) that drive FDC3 interoperability standards.`}</MarkdownBlock>
106-
</div>
107-
);
108-
109-
const TryOut = () => (
110-
<Block id="try">
111-
{[
112-
{
113-
content: 'Talk about trying this out',
114-
image: `${baseUrl}img/docusaurus.svg`,
115-
imageAlign: 'left',
116-
title: 'Try it Out',
117-
},
118-
]}
119-
</Block>
120-
);
121-
122-
const Description = () => (
123-
<Block background="dark">
124-
{[
125-
{
126-
content:
127-
'This is another description of how this project is useful',
128-
image: `${baseUrl}img/docusaurus.svg`,
129-
imageAlign: 'right',
130-
title: 'Description',
131-
},
132-
]}
133-
</Block>
134-
);
135-
136-
const LearnHow = () => (
137-
<Block background="light">
138-
{[
139-
{
140-
content: 'Talk about learning how to use this',
141-
image: `${baseUrl}img/docusaurus.svg`,
142-
imageAlign: 'right',
143-
title: 'Learn How',
144-
},
145-
]}
146-
</Block>
147-
);
148-
149102
const Features = () => (
150103
<Block background="light" layout="fourColumn">
151104
{[
@@ -179,31 +132,42 @@ class Index extends React.Component {
179132
</Block>
180133
);
181134

182-
const Showcase = () => {
135+
const FeatureCallout = () => (
136+
<div className="productShowcaseSection paddingBottom" style={{textAlign: 'center'}}>
137+
<h2>Use Cases</h2>
138+
<MarkdownBlock>{`Document business [use cases](${docUrl('use-cases/overview')}) that drive FDC3 interoperability standards.`}</MarkdownBlock>
139+
</div>
140+
);
141+
142+
const FinosBanner = () => (
143+
<div className="finos lightBackground">
144+
<h2>Proud member of the Fintech Open Source Foundation</h2>
145+
<a href="https://www.finos.org">
146+
<img src={`${baseUrl}img/finos_wordmark.svg`} height='150px' alt="FINOS" title="FINOS"/>
147+
</a>
148+
</div>
149+
);
150+
151+
const UserShowcase = () => {
183152
if ((siteConfig.users || []).length === 0) {
184153
return null;
185154
}
186155

187-
const showcase = siteConfig.users
188-
.filter(user => user.pinned)
189-
.map(user => (
190-
<a href={user.infoLink} key={user.infoLink}>
191-
<img src={user.image} alt={user.caption} title={user.caption} />
192-
</a>
193-
));
156+
const pinnedUsers = siteConfig.users.filter(user => user.pinned);
194157

195158
const pageUrl = page => baseUrl + (language ? `${language}/` : '') + page;
196159

197160
return (
198161
<div className="productShowcaseSection paddingBottom">
199-
<h2>Who is Using This?</h2>
200-
<p>This project is used by all these people</p>
201-
<div className="logos">{showcase}</div>
202-
<div className="more-users">
162+
<h2>Who is Using FDC3?</h2>
163+
<p>FDC3 is used by several industry-leading organisations...</p>
164+
<Showcase users={pinnedUsers} />
165+
{/* exclude button to users page for now, all users shown on main page */}
166+
{/* <div className="more-users">
203167
<a className="button" href={pageUrl('users.html')}>
204-
More {siteConfig.title} Users
168+
All {siteConfig.title} Users
205169
</a>
206-
</div>
170+
</div> */}
207171
</div>
208172
);
209173
};
@@ -214,10 +178,8 @@ class Index extends React.Component {
214178
<div className="mainContainer">
215179
<Features />
216180
<FeatureCallout />
217-
{/* <LearnHow />
218-
<TryOut />
219-
<Description />
220-
<Showcase /> */}
181+
<FinosBanner />
182+
<UserShowcase />
221183
</div>
222184
</div>
223185
);

website/pages/en/users.js

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,22 @@ const CompLibrary = require('../../core/CompLibrary.js');
1111

1212
const Container = CompLibrary.Container;
1313

14+
const Showcase = require(`${process.cwd()}/core/Showcase.js`);
15+
1416
class Users extends React.Component {
1517
render() {
1618
const {config: siteConfig} = this.props;
1719
if ((siteConfig.users || []).length === 0) {
1820
return null;
1921
}
2022

21-
const editUrl = `${siteConfig.repoUrl}/edit/master/website/siteConfig.js`;
23+
const editUrl = `${siteConfig.repoUrl}/edit/master/website/data/users.json`;
24+
25+
const membersToShowcase = siteConfig.users.filter(
26+
user => user.isMember,
27+
);
28+
const othersToShowcase = siteConfig.users.filter(user => !user.isMember);
29+
2230
const showcase = siteConfig.users.map(user => (
2331
<a href={user.infoLink} key={user.infoLink}>
2432
<img src={user.image} alt={user.caption} title={user.caption} />
@@ -27,14 +35,19 @@ class Users extends React.Component {
2735

2836
return (
2937
<div className="mainContainer">
30-
<Container padding={['bottom', 'top']}>
38+
<Container>
3139
<div className="showcaseSection">
3240
<div className="prose">
33-
<h1>Who is Using This?</h1>
34-
<p>This project is used by many folks</p>
41+
<h1>Who is Using FDC3?</h1>
42+
<p>FDC3 has several industry-leading <a href="https://www.finos.org/become-a-member">member participants.</a></p>
43+
</div>
44+
<Showcase users={membersToShowcase} />
45+
{/* <div className="logos">{showcase}</div> */}
46+
<div className="prose paddingTop">
47+
<p>FDC3 is also used by financial organizations of all sizes.</p>
3548
</div>
36-
<div className="logos">{showcase}</div>
37-
<p>Are you using this project?</p>
49+
<Showcase users={othersToShowcase} />
50+
<p>Are you using FDC3?</p>
3851
<a href={editUrl} className="button">
3952
Add your company
4053
</a>

website/siteConfig.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,8 @@
99
// site configuration options.
1010

1111
// List of projects/orgs using your project for the users page.
12-
const users = [
13-
{
14-
caption: 'User1',
15-
// You will need to prepend the image path with your baseUrl
16-
// if it is not '/', like: '/test-site/img/docusaurus.svg'.
17-
image: '/img/docusaurus.svg',
18-
infoLink: 'https://www.facebook.com',
19-
pinned: true,
20-
},
21-
];
12+
13+
const users = require('./data/users.json');
2214

2315
const siteConfig = {
2416
title: 'FDC3', // Title for your website.
@@ -53,7 +45,7 @@ const siteConfig = {
5345
/* Colors for website */
5446
colors: {
5547
primaryColor: '#00b5e2',
56-
secondaryColor: '#0086bf',
48+
secondaryColor: '#0086bf'
5749
},
5850

5951
/* Custom fonts for website */

website/static/css/custom.css

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,33 @@ header.postHeader:empty + article h1 {
2525

2626
.imageAlignTop .blockImage {
2727
max-width: 220px;
28-
}
28+
}
29+
30+
.productShowcaseSection .logos img {
31+
width: 200px;
32+
}
33+
34+
.showcaseSection .logos img {
35+
width: 250px;
36+
}
37+
38+
.showcase {
39+
align-items: center;
40+
display: flex;
41+
flex-flow: row wrap;
42+
justify-content: center;
43+
padding: 20px;
44+
}
45+
46+
.showcase img {
47+
width: 250px;
48+
max-height: 150px;
49+
padding-left: 15px;
50+
padding-right: 15px;
51+
}
52+
53+
.finos {
54+
padding-top: 10px;
55+
padding-bottom: 40px;
56+
text-align: center;
57+
}

website/static/img/finos_wordmark.svg

Lines changed: 27 additions & 0 deletions
Loading

website/static/img/users/ChartIQ.webp

3.73 KB
Binary file not shown.

website/static/img/users/Cloud9.webp

6.68 KB
Binary file not shown.

website/static/img/users/FactSet.webp

6.79 KB
Binary file not shown.

website/static/img/users/GLUE42.webp

9.66 KB
Binary file not shown.
17.3 KB
Binary file not shown.
14.9 KB
Binary file not shown.
11.3 KB
Binary file not shown.
10.7 KB
Binary file not shown.

website/static/img/users/Openfin.webp

29.7 KB
Binary file not shown.
14.8 KB
Binary file not shown.
64 KB
Binary file not shown.
760 Bytes
Binary file not shown.
23.8 KB
Loading

0 commit comments

Comments
 (0)