import {
FaCheckCircle,
FaCircleNotch,
FaExclamationTriangle,
FaStar,
FaStopCircle,
FaThumbtack,
} from "react-icons/fa";
import type { Message } from "../../types/message";
import { MESSAGE_TYPE_ERROR, MESSAGE_TYPE_GOAL } from "../../types/message";
import {
getTaskStatus,
isTask,
TASK_STATUS_COMPLETED,
TASK_STATUS_EXECUTING,
TASK_STATUS_FINAL,
TASK_STATUS_STARTED,
} from "../../types/task";
export const getMessageContainerStyle = (message: Message) => {
if (!isTask(message)) {
switch (message.type) {
case "error":
return "border-yellow-400 hover:border-yellow-300 transition-colors";
default:
return "border-white/10 hover:border-white/40";
}
}
switch (message.status) {
case TASK_STATUS_STARTED:
return "border-white/20 hover:border-white/40";
case TASK_STATUS_EXECUTING:
return "border-white/20 hover:border-white/40";
case TASK_STATUS_COMPLETED:
case TASK_STATUS_FINAL:
return "border-green-500 hover:border-green-400";
default:
return "";
}
};
export const getTaskStatusIcon = (
message: Message,
config: { [key: string]: string | boolean | undefined }
) => {
const taskStatusIconClass = "mr-1 mb-1 inline-block";
const { isAgentStopped } = config;
switch (message.type) {
case MESSAGE_TYPE_GOAL:
return ;
case MESSAGE_TYPE_ERROR:
return ;
}
if (getTaskStatus(message) === TASK_STATUS_STARTED) {
return ;
} else if (getTaskStatus(message) === TASK_STATUS_EXECUTING) {
return isAgentStopped ? (
) : (
);
} else if (
getTaskStatus(message) === TASK_STATUS_COMPLETED ||
getTaskStatus(message) === TASK_STATUS_FINAL
) {
return (
);
}
};