import * as React from 'react' import { Box, Text } from 'ink' import { getTheme } from '../../utils/theme' export type RiskScoreCategory = 'low' | 'moderate' | 'high' export function categoryForRiskScore(riskScore: number): RiskScoreCategory { return riskScore >= 70 ? 'high' : riskScore >= 30 ? 'moderate' : 'low' } function colorSchemeForRiskScoreCategory(category: RiskScoreCategory): { highlightColor: string textColor: string } { const theme = getTheme() switch (category) { case 'low': return { highlightColor: theme.success, textColor: theme.permission, } case 'moderate': return { highlightColor: theme.warning, textColor: theme.warning, } case 'high': return { highlightColor: theme.error, textColor: theme.error, } } } export function textColorForRiskScore(riskScore: number | null): string { if (riskScore === null) { return getTheme().permission } const category = categoryForRiskScore(riskScore) return colorSchemeForRiskScoreCategory(category).textColor } export function PermissionRiskScore({ riskScore, }: { riskScore: number }): React.ReactNode { const category = categoryForRiskScore(riskScore) return Risk: {category} } type Props = { title: string riskScore: number | null } export function PermissionRequestTitle({ title, riskScore, }: Props): React.ReactNode { return ( {title} {riskScore !== null && } ) }