// frontend/components/tasks/RiskRadar.tsx "use client"; import { Icon } from "@/components/Icon"; import type { IconName } from "@/components/icons/paths"; import type { Risk } from "@/lib/types"; function Bolded({ text }: { text: string }) { // "**A**B" → AB (정규식 split, dangerouslySetInnerHTML 미사용) return ( <> {text.split(/(\*\*[^*]+\*\*)/).map((s, i) => s.startsWith("**") ? {s.slice(2, -2)} : {s}, )} ); } export function RiskRadar({ risks, onOpen }: { risks: Risk[]; onOpen: (id: string) => void }) { if (!risks.length) return null; return (
리스크 레이더 마감 · 업무량 · 의존성을 아리가 훑었어요
{risks.map((r, i) => (
{r.kind}

{r.task_id && r.cta && ( )}
))}
); }