| ... | ... | @@ -2,6 +2,12 @@ import { useAtomValue } from "@effect/atom-react"; |
| 2 | 2 | import { useNavigate, useParams } from "@tanstack/react-router"; |
| 3 | 3 | import type { EnvironmentId, ThreadId } from "@t3tools/contracts"; |
| 4 | 4 | import * as Option from "effect/Option"; |
| 5 | import { |
| 6 | CircleAlertIcon, |
| 7 | CircleCheckIcon, |
| 8 | MessageCircleQuestionIcon, |
| 9 | ShieldQuestionIcon, |
| 10 | } from "lucide-react"; |
| 5 | 11 | import { useCallback, useEffect, useRef } from "react"; |
| 6 | 12 | |
| 7 | 13 | import { getClientSettings, useClientSettings } from "../hooks/useSettings"; |
| ... | ... | @@ -154,7 +160,28 @@ function EnvironmentNotifications({ |
| 154 | 160 | type: kind === "completion" ? "success" : status === "failed" ? "error" : "warning", |
| 155 | 161 | title, |
| 156 | 162 | description: thread.title, |
| 157 | | data: { hideCopyButton: true }, |
| 163 | data: { |
| 164 | hideCopyButton: true, |
| 165 | leadingIcon: |
| 166 | kind === "completion" ? ( |
| 167 | <CircleCheckIcon |
| 168 | aria-hidden |
| 169 | className="size-4 text-emerald-700 dark:text-emerald-300" |
| 170 | /> |
| 171 | ) : status === "approval" ? ( |
| 172 | <ShieldQuestionIcon |
| 173 | aria-hidden |
| 174 | className="size-4 text-amber-700 dark:text-amber-300" |
| 175 | /> |
| 176 | ) : status === "failed" ? ( |
| 177 | <CircleAlertIcon aria-hidden className="size-4 text-red-700 dark:text-red-300" /> |
| 178 | ) : ( |
| 179 | <MessageCircleQuestionIcon |
| 180 | aria-hidden |
| 181 | className="size-4 text-indigo-600 dark:text-indigo-300" |
| 182 | /> |
| 183 | ), |
| 184 | }, |
| 158 | 185 | actionProps: { |
| 159 | 186 | children: "Open thread", |
| 160 | 187 | onClick: () => { |