Files
authentik/website/src/components/VersionBadge.tsx
Teffen Ellis 264f59775c website/docs: Update deps. (#14397)
* website/docs: Update deps.

* website/docs: Port partial monorepo fixes. Fix build warnings.

* website/docs: Update Prettier.

* website/docs: Format. Update deps.

* website/docs: Remove empty entry.
2025-05-05 16:59:49 +00:00

37 lines
942 B
TypeScript

import React from "react";
import { coerce } from "semver";
export interface AuthentikVersionProps {
semver: string;
}
/**
* Badge indicating semantic versioning of authentik required for a feature or integration.
*/
export const VersionBadge: React.FC<AuthentikVersionProps> = ({ semver }) => {
const parsed = coerce(semver);
if (!parsed) {
throw new Error(`Invalid semver version: ${semver}`);
}
const yearCutoff = new Date().getFullYear() - 2;
if (parsed.major <= yearCutoff) {
throw new Error(`Semver version <= ${yearCutoff} is not supported: ${semver}`);
}
return (
<span
title={`Available in authentik ${parsed.format()} and later`}
aria-description="Version badge"
role="img"
className="badge badge--version"
>
authentik:&nbsp;{parsed.format()}+
</span>
);
};
export default VersionBadge;