import badgeList from '../public/.meta/badge-list.json' import badgeListLegacy from '../public/.meta/badges.json' // const examples = [...badgeList.live, ...badgeList.static].reduce((accu, curr) => { // return (accu as any).concat(Object.entries(curr.examples)) // }, [] as [string, string][]) type BadgeExamples = { [pathname: string]: string } type BadgeList = { [id: string]: { title: string; examples: BadgeExamples; } } const examples = extractExampleList(badgeList) function extractExampleList (badgeList: BadgeList): BadgeExamples { let examples = {} Object.entries(badgeList).forEach((x) => { examples = { ...examples, ...x[1].examples } }) // Also apply legacy examples badgeListLegacy.live.forEach((x) => { examples = { ...examples, ...x.examples } }) return examples } interface BuilderHelperProps { host?: string; badgeURL: string; onSelect: (value: string) => void; } export default function BuilderHelper ({ badgeURL, onSelect }: BuilderHelperProps) { if (badgeURL.length < 2) { return
} const matched = Object.entries(examples).filter(eg => eg[0].includes(badgeURL)) const hints = matched.length === 1 && matched[0][0] === '/' + badgeURL ? null : (
{ matched.map(eg => (
onSelect(eg[0].replace(/^\//, ''))}>
{eg[1]}
{eg[0]}
)) }
) return (
{hints}
) }