import { Fragment } from 'react' import cx from 'classnames' import slugger from 'github-slugger' import { ReleaseNotePatch } from './types' import { Link } from 'components/Link' import styles from './PatchNotes.module.scss' const SectionToLabelMap: Record = { features: 'Features', bugs: 'Bug fixes', known_issues: 'Known issues', security_fixes: 'Security fixes', changes: 'Changes', deprecations: 'Deprecations', backups: 'Backups', } const LabelColorMap = { features: 'color-bg-success-emphasis', bugs: 'color-bg-attention-emphasis', known_issues: 'color-bg-accent-emphasis', security_fixes: 'color-bg-sponsors-emphasis', changes: 'color-bg-success-emphasis', deprecations: 'color-bg-done-emphasis', backups: 'color-bg-severe-emphasis', } const HeadingColorMap = { features: 'color-fg-success', bugs: 'color-fg-attention', known_issues: 'color-fg-accent', security_fixes: 'color-fg-sponsors', changes: 'color-fg-success', deprecations: 'color-fg-done', backups: 'color-fg-severe', } type Props = { patch: ReleaseNotePatch withReleaseNoteLabel?: boolean } export function PatchNotes({ patch, withReleaseNoteLabel }: Props) { return ( <> {Object.entries(patch.sections).map(([key, sectionItems], i, arr) => { const isLast = i === arr.length - 1 const primaryLabelColor = LabelColorMap[key as keyof typeof LabelColorMap] || LabelColorMap.features const primaryHeadingColor = HeadingColorMap[key as keyof typeof HeadingColorMap] || HeadingColorMap.features return (
{withReleaseNoteLabel && (
{SectionToLabelMap[key] || 'INVALID SECTION'}
)}
) })} ) }