overleaf-cep/services/web/frontend/js/features/settings/components/linking/status.tsx
Tim Down 9c16a85295 Merge pull request #24030 from overleaf/td-bs5-remove-font-awesome
Remove Font Awesome in BS5

GitOrigin-RevId: 3ee9b136ac9ecda57ba9985d1da7d7a7e6b275e6
2025-07-18 08:05:06 +00:00

49 lines
1 KiB
TypeScript

import { ReactNode } from 'react'
import MaterialIcon from '@/shared/components/material-icon'
import OLSpinner from '@/features/ui/components/ol/ol-spinner'
type Status = 'pending' | 'success' | 'error'
type LinkingStatusProps = {
status: Status
description: string | ReactNode
}
export default function LinkingStatus({
status,
description,
}: LinkingStatusProps) {
return (
<span>
<StatusIcon status={status} />
<span className="small"> {description}</span>
</span>
)
}
type StatusIconProps = {
status: Status
}
function StatusIcon({ status }: StatusIconProps) {
switch (status) {
case 'success':
return (
<MaterialIcon
type="check_circle"
className="settings-widget-status-icon status-success"
/>
)
case 'error':
return (
<MaterialIcon
type="cancel"
className="settings-widget-status-icon status-error"
/>
)
case 'pending':
return <OLSpinner size="sm" />
default:
return null
}
}