in src/pages/status.js [130:175]
async function getComponents() {
// Get component status data
const viewComponents = await fetch(`https://primer.style/view-components/components.json`).then((res) => res.json())
const reactComponents = await fetch(`https://primer.style/react/components.json`).then((res) => res.json())
const implementations = {
react: {
url: 'https://primer.style/react',
data: reactComponents,
},
viewComponent: {
url: 'https://primer.style/view-components',
data: viewComponents,
},
}
const components = {}
for (const [implementation, {url, data}] of Object.entries(implementations)) {
for (const {id, path, status} of data) {
if (!(id in components)) {
components[id] = {
id,
displayName: idToDisplayName(id),
description: '',
implementations: {},
}
}
components[id].implementations[implementation] = {
status: status.charAt(0).toUpperCase() + status.slice(1), // Capitalize the first letter
url: `${url}${path}`,
}
}
}
for (const component of Object.values(componentMetadata.components)) {
if (component.id in components) {
components[component.id].displayName = component.displayName
components[component.id].description = component.description
}
}
return Object.values(components).sort((a, b) => a.id.localeCompare(b.id))
}