Skip to content

Commit 4d31cb9

Browse files
committed
Integrate external docs with internal docs
1 parent 1d0f939 commit 4d31cb9

File tree

9 files changed

+111
-37
lines changed

9 files changed

+111
-37
lines changed

gatsby-config.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,24 @@ module.exports = {
6161
siteMetadata: {
6262
siteUrl: `https://colony.io`,
6363
title: 'Colony: A platform for open organizations',
64+
externalDocs: [
65+
{
66+
entryPoint: 'https://joincolony.github.io/colonyJS',
67+
logo: '/img/logomark_colonyJS_color.svg',
68+
logoSmall: '/img/logomark_colonyJS_red.svg',
69+
name: 'colonyJS',
70+
repoUrl: 'https://github.com/JoinColony/colonyJS',
71+
type: 'core',
72+
},
73+
{
74+
entryPoint: 'https://joincolony.github.io/purser',
75+
logo: '/img/purser_color.svg',
76+
logoSmall: '/img/logomark_purser_green.svg',
77+
name: 'purser',
78+
repoUrl: 'https://github.com/JoinColony/purser',
79+
type: 'tool',
80+
}
81+
]
6482
},
6583
plugins: [
6684
{

src/hooks/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/* @flow */
22

33
export { default as useDiscordWebhook } from './useDiscordWebhook';
4+
export { default as useDocsLinks } from './useDocsLinks';
45
export { default as useElementHeight } from './useElementHeight';
56
export { default as useHubspotForm } from './useHubspotForm';

src/hooks/useDocsLinks.js

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/* @flow */
2+
3+
import { useMemo } from 'react';
4+
import { graphql, useStaticQuery } from 'gatsby';
5+
import type { IntlShape } from 'react-intl';
6+
7+
import type { Project } from '~types';
8+
9+
import { transformProjectData } from '~utils/docs';
10+
11+
const useDocsLinks = (intl: IntlShape) => {
12+
const { locale } = intl;
13+
const projectQueryData = useStaticQuery(graphql`
14+
{
15+
...coreProjectsFragment
16+
...externalProjectsFragment
17+
...openSourceProjectsFragment
18+
}
19+
`);
20+
21+
const {
22+
site: {
23+
siteMetadata: { externalDocs },
24+
},
25+
} = projectQueryData;
26+
27+
const coreGitHubDocs: Array<Project> = useMemo(
28+
() =>
29+
projectQueryData.coreProjects.edges.map(edge =>
30+
transformProjectData(edge, locale),
31+
) || [],
32+
[locale, projectQueryData.coreProjects.edges],
33+
);
34+
const openSourceGitHubDocs: Array<Project> = useMemo(
35+
() =>
36+
projectQueryData.openSourceProjects.edges.map(edge =>
37+
transformProjectData(edge, locale),
38+
) || [],
39+
[locale, projectQueryData.openSourceProjects.edges],
40+
);
41+
42+
const coreProjects = useMemo(
43+
() => [
44+
...coreGitHubDocs,
45+
...externalDocs.filter(({ type }) => type === 'core'),
46+
],
47+
[coreGitHubDocs, externalDocs],
48+
);
49+
50+
const openSourceProjects = useMemo(
51+
() => [
52+
...openSourceGitHubDocs,
53+
...externalDocs.filter(({ type }) => type === 'tool'),
54+
],
55+
[externalDocs, openSourceGitHubDocs],
56+
);
57+
58+
return { coreProjects, openSourceProjects };
59+
};
60+
61+
export default useDocsLinks;

src/modules/layouts/components/DeveloperPortalLayout/DeveloperPortalLayout.jsx

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,9 @@
33
import type { Element } from 'react';
44
import type { IntlShape } from 'react-intl';
55

6-
import React, { Component, useMemo } from 'react';
7-
import { graphql, useStaticQuery } from 'gatsby';
6+
import React, { Component } from 'react';
87

9-
import type { Project } from '~types';
10-
11-
import { transformProjectData } from '~utils/docs';
8+
import { useDocsLinks } from '~hooks';
129

1310
import Header from './Header';
1411
import Footer from './Footer';
@@ -22,27 +19,8 @@ type Props = {|
2219

2320
const displayName = 'layouts.DeveloperPortalLayout';
2421

25-
const DeveloperPortalLayout = ({ children, intl: { locale } }: Props) => {
26-
const projectQueryData = useStaticQuery(graphql`
27-
{
28-
...coreProjectsFragment
29-
...openSourceProjectsFragment
30-
}
31-
`);
32-
const coreProjects: Array<Project> = useMemo(
33-
() =>
34-
projectQueryData.coreProjects.edges.map(edge =>
35-
transformProjectData(edge, locale),
36-
) || [],
37-
[locale, projectQueryData.coreProjects.edges],
38-
);
39-
const openSourceProjects: Array<Project> = useMemo(
40-
() =>
41-
projectQueryData.openSourceProjects.edges.map(edge =>
42-
transformProjectData(edge, locale),
43-
) || [],
44-
[locale, projectQueryData.openSourceProjects.edges],
45-
);
22+
const DeveloperPortalLayout = ({ children, intl }: Props) => {
23+
const { coreProjects, openSourceProjects } = useDocsLinks(intl);
4624

4725
return (
4826
<div>

src/queries/project.js

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,7 @@ export const allProjectsFragment = graphql`
5656

5757
export const coreProjectsFragment = graphql`
5858
fragment coreProjectsFragment on Query {
59-
coreProjects: allProject(
60-
filter: { name: { in: ["colonyJS", "colonyNetwork", "colonyStarter"] } }
61-
) {
59+
coreProjects: allProject(filter: { name: { in: ["colonyNetwork"] } }) {
6260
edges {
6361
node {
6462
slug
@@ -94,19 +92,29 @@ export const coreProjectsFragment = graphql`
9492
}
9593
`;
9694

95+
export const externalProjectsFragment = graphql`
96+
fragment externalProjectsFragment on Query {
97+
site {
98+
siteMetadata {
99+
externalDocs {
100+
entryPoint
101+
logo
102+
logoSmall
103+
name
104+
repoUrl
105+
type
106+
}
107+
}
108+
}
109+
}
110+
`;
111+
97112
export const openSourceProjectsFragment = graphql`
98113
fragment openSourceProjectsFragment on Query {
99114
openSourceProjects: allProject(
100115
filter: {
101116
name: {
102-
in: [
103-
"budgetBox"
104-
"tailor"
105-
"pinion"
106-
"trufflepig"
107-
"purser"
108-
"solcover"
109-
]
117+
in: ["budgetBox", "tailor", "pinion", "trufflepig", "solcover"]
110118
}
111119
}
112120
) {

static/img/colonyJS_color.svg

Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading

static/img/purser_color.svg

Lines changed: 1 addition & 0 deletions
Loading

0 commit comments

Comments
 (0)