Files
Verso/services/web/frontend/js/shared/components/beta-badge-icon.tsx
T
Tim DownandCopybot 065464f722 Merge pull request #22147 from overleaf/td-bs5-beta-badge-special-cases
Alpha/beta badge fixes and change warning badge colours in Bootstrap 5

GitOrigin-RevId: f60610572c62607db7e5cf349c5791c3519c74ed
2024-11-27 09:05:04 +00:00

54 lines
1.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { FC } from 'react'
import classnames from 'classnames'
import MaterialIcon from '@/shared/components/material-icon'
import BootstrapVersionSwitcher from '@/features/ui/components/bootstrap-5/bootstrap-version-switcher'
import OLBadge from '@/features/ui/components/ol/ol-badge'
function BS5BetaBadgeIcon({
badgeClass,
}: {
badgeClass: ReturnType<typeof chooseBadgeClass>
}) {
if (badgeClass === 'info-badge') {
return <MaterialIcon type="info" className="align-middle info-badge" />
} else if (badgeClass === 'alpha-badge') {
return (
<OLBadge bg="primary" className="alpha-badge">
α
</OLBadge>
)
} else {
return (
<OLBadge bg="warning" className="beta-badge">
β
</OLBadge>
)
}
}
const BetaBadgeIcon: FC<{
phase?: string
}> = ({ phase = 'beta' }) => {
const badgeClass = chooseBadgeClass(phase)
return (
<BootstrapVersionSwitcher
bs3={<span className={classnames('badge', badgeClass)} />}
bs5={<BS5BetaBadgeIcon badgeClass={badgeClass} />}
/>
)
}
function chooseBadgeClass(phase?: string) {
switch (phase) {
case 'release':
return 'info-badge'
case 'alpha':
return 'alpha-badge'
case 'beta':
default:
return 'beta-badge'
}
}
export default BetaBadgeIcon