From 44d05ed709b4fae5aec32c72f0b29bbcdf6d3f83 Mon Sep 17 00:00:00 2001 From: klotske Date: Sat, 7 Jan 2023 00:06:15 +0300 Subject: [PATCH] Initial implementation of progressbar tracking --- .../src/components/Survey/TrackedTextarea.tsx | 35 +++++++++++++++++++ website/src/pages/create/assistant_reply.tsx | 24 +++++++++---- website/src/pages/create/initial_prompt.tsx | 22 +++++++++--- website/src/pages/create/summarize_story.tsx | 22 +++++++++--- website/src/pages/create/user_reply.tsx | 22 +++++++++--- 5 files changed, 104 insertions(+), 21 deletions(-) create mode 100644 website/src/components/Survey/TrackedTextarea.tsx diff --git a/website/src/components/Survey/TrackedTextarea.tsx b/website/src/components/Survey/TrackedTextarea.tsx new file mode 100644 index 00000000..205d7588 --- /dev/null +++ b/website/src/components/Survey/TrackedTextarea.tsx @@ -0,0 +1,35 @@ +import { Progress, Stack, Textarea, TextareaProps } from "@chakra-ui/react"; + +interface TrackedTextboxProps { + text: string; + thresholds: { + low: number; + medium: number; + goal: number; + }; + textareaProps?: TextareaProps; + onTextChange: (event: React.ChangeEvent) => void; +} + +export const TrackedTextarea = (props: TrackedTextboxProps) => { + const wordCount = props.text.split(" ").length - 1; + + let progressColor: string; + switch (true) { + case wordCount < props.thresholds.low: + progressColor = "red"; + break; + case wordCount < props.thresholds.medium: + progressColor = "yellow"; + break; + default: + progressColor = "green"; + } + + return ( + +