import { Box, useColorModeValue } from "@chakra-ui/react"; import { useEffect, useState } from "react"; import { MessageView } from "src/components/Messages"; import { MessageTable } from "src/components/Messages/MessageTable"; import { LabelRadioGroup } from "src/components/Survey/LabelRadioGroup"; import { LabelSliderGroup } from "src/components/Survey/LabelSliderGroup"; import { TwoColumnsWithCards } from "src/components/Survey/TwoColumnsWithCards"; import { TaskSurveyProps } from "src/components/Tasks/Task"; import { TaskHeader } from "src/components/Tasks/TaskHeader"; import { TaskType } from "src/types/Task"; export const LabelTask = ({ task, taskType, onReplyChanged, isEditable, }: TaskSurveyProps<{ text: string; labels: Record; message_id: string }>) => { const valid_labels = task.valid_labels; const [sliderValues, setSliderValues] = useState(new Array(valid_labels.length).fill(0)); useEffect(() => { onReplyChanged({ content: { labels: {}, text: task.reply, message_id: task.message_id }, state: "NOT_SUBMITTABLE", }); }, [task, onReplyChanged]); const onSliderChange = (values: number[]) => { console.assert(valid_labels.length === sliderValues.length); const labels = Object.fromEntries(valid_labels.map((label, i) => [label, sliderValues[i]])); onReplyChanged({ content: { labels, text: task.reply || task.prompt, message_id: task.message_id }, state: "VALID", }); setSliderValues(values); }; const cardColor = useColorModeValue("gray.50", "gray.800"); return (
<> {task.conversation ? ( ) : ( )} {task.mode === "simple" ? ( ) : ( )}
); };