🐛 fix(toggleShadComponent): remove unused useEffect hook to improve code readability and maintainability
✨ feat(toggleShadComponent): add disabled prop to Switch component to disable interaction when disabled is true 🐛 fix(formModal): remove unused imports to improve code cleanliness ✨ feat(formModal): add MessageSquarePlus icon to represent chat input ✨ feat(formModal): add multiple collapsible accordions for input variables 🐛 fix(formModal): disable Toggle component when handle key is present in formKeysData
This commit is contained in:
parent
6e5222306a
commit
fe16467914
2 changed files with 29 additions and 32 deletions
|
|
@ -8,11 +8,6 @@ export default function ToggleShadComponent({
|
||||||
disabled,
|
disabled,
|
||||||
size,
|
size,
|
||||||
}: ToggleComponentType) {
|
}: ToggleComponentType) {
|
||||||
useEffect(() => {
|
|
||||||
if (disabled) {
|
|
||||||
setEnabled(false);
|
|
||||||
}
|
|
||||||
}, [disabled, setEnabled]);
|
|
||||||
let scaleX, scaleY;
|
let scaleX, scaleY;
|
||||||
switch (size) {
|
switch (size) {
|
||||||
case "small":
|
case "small":
|
||||||
|
|
@ -32,11 +27,12 @@ export default function ToggleShadComponent({
|
||||||
scaleY = 1;
|
scaleY = 1;
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<div className={disabled ? "pointer-events-none cursor-not-allowed" : ""}>
|
<div className={disabled ? "pointer-events-none cursor-not-allowed " : ""}>
|
||||||
<Switch
|
<Switch
|
||||||
style={{
|
style={{
|
||||||
transform: `scaleX(${scaleX}) scaleY(${scaleY})`,
|
transform: `scaleX(${scaleX}) scaleY(${scaleY})`,
|
||||||
}}
|
}}
|
||||||
|
disabled={disabled}
|
||||||
className="data-[state=unchecked]:bg-slate-500"
|
className="data-[state=unchecked]:bg-slate-500"
|
||||||
checked={enabled}
|
checked={enabled}
|
||||||
onCheckedChange={(x: boolean) => {
|
onCheckedChange={(x: boolean) => {
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,13 @@ import { alertContext } from "../../contexts/alertContext";
|
||||||
import { classNames, validateNodes } from "../../utils";
|
import { classNames, validateNodes } from "../../utils";
|
||||||
import { typesContext } from "../../contexts/typesContext";
|
import { typesContext } from "../../contexts/typesContext";
|
||||||
import ChatMessage from "./chatMessage";
|
import ChatMessage from "./chatMessage";
|
||||||
import { TerminalSquare, MessageSquare, Variable, Eraser } from "lucide-react";
|
import {
|
||||||
|
TerminalSquare,
|
||||||
|
MessageSquare,
|
||||||
|
Variable,
|
||||||
|
Eraser,
|
||||||
|
MessageSquarePlus,
|
||||||
|
} from "lucide-react";
|
||||||
import { sendAllProps } from "../../types/api";
|
import { sendAllProps } from "../../types/api";
|
||||||
import { ChatMessageType } from "../../types/chat";
|
import { ChatMessageType } from "../../types/chat";
|
||||||
import ChatInput from "./chatInput";
|
import ChatInput from "./chatInput";
|
||||||
|
|
@ -401,17 +407,20 @@ export default function FormModal({
|
||||||
<div className="flex h-[80vh] w-full mt-2 ">
|
<div className="flex h-[80vh] w-full mt-2 ">
|
||||||
<div className="w-2/5 h-full overflow-auto scrollbar-hide flex flex-col justify-start mr-6">
|
<div className="w-2/5 h-full overflow-auto scrollbar-hide flex flex-col justify-start mr-6">
|
||||||
<div className="flex justify-between items-center">
|
<div className="flex justify-between items-center">
|
||||||
<div className="flex py-2">
|
<div className="flex py-2 items-center">
|
||||||
<Variable className="w-6 h-6 pe-1 text-gray-700 stroke-2 dark:text-slate-200"></Variable>
|
<Variable className="w-6 h-6 pe-1 text-primary"></Variable>
|
||||||
<span className="text-md font-semibold text-primary">
|
<span className="text-md font-semibold text-primary">
|
||||||
Input Variables
|
Input Variables
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<span className="mr-2 text-md font-semibold text-primary">
|
<div className="flex py-2 items-center">
|
||||||
Chat Input
|
<MessageSquarePlus className="w-6 h-6 pe-1 mr-0.5 text-primary" />
|
||||||
</span>
|
<span className=" text-md font-semibold text-primary">
|
||||||
|
Chat Input
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Accordion type="single" collapsible className="w-full">
|
<Accordion type="multiple" className="w-full">
|
||||||
{Object.keys(tabsState[id.current].formKeysData.input_keys).map(
|
{Object.keys(tabsState[id.current].formKeysData.input_keys).map(
|
||||||
(i, k) => (
|
(i, k) => (
|
||||||
<div className="flex items-start gap-3">
|
<div className="flex items-start gap-3">
|
||||||
|
|
@ -434,7 +443,9 @@ export default function FormModal({
|
||||||
handleOnCheckedChange(value, i)
|
handleOnCheckedChange(value, i)
|
||||||
}
|
}
|
||||||
size="small"
|
size="small"
|
||||||
disabled={false}
|
disabled={tabsState[
|
||||||
|
id.current
|
||||||
|
].formKeysData.handle_keys.some((t) => t === i)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -443,33 +454,23 @@ export default function FormModal({
|
||||||
<div className="p-1 flex flex-col gap-2">
|
<div className="p-1 flex flex-col gap-2">
|
||||||
{tabsState[
|
{tabsState[
|
||||||
id.current
|
id.current
|
||||||
].formKeysData.handle_keys.some((t) => t === i) ? (
|
].formKeysData.handle_keys.some((t) => t === i) && (
|
||||||
<div className="font-normal text-muted-foreground ">
|
<div className="font-normal text-muted-foreground ">
|
||||||
Handle
|
Source: Component
|
||||||
</div>
|
</div>
|
||||||
) : (
|
|
||||||
<></>
|
|
||||||
)}
|
)}
|
||||||
<Textarea
|
<Textarea
|
||||||
value={
|
value={
|
||||||
tabsState[id.current].formKeysData.input_keys[i]
|
tabsState[id.current].formKeysData.input_keys[i]
|
||||||
}
|
}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
if (
|
setTabsState((old) => {
|
||||||
!tabsState[
|
let newTabsState = _.cloneDeep(old);
|
||||||
|
newTabsState[
|
||||||
id.current
|
id.current
|
||||||
].formKeysData.handle_keys.some(
|
].formKeysData.input_keys[i] = e.target.value;
|
||||||
(t) => t === i
|
return newTabsState;
|
||||||
)
|
});
|
||||||
)
|
|
||||||
setTabsState((old) => {
|
|
||||||
let newTabsState = _.cloneDeep(old);
|
|
||||||
newTabsState[
|
|
||||||
id.current
|
|
||||||
].formKeysData.input_keys[i] =
|
|
||||||
e.target.value;
|
|
||||||
return newTabsState;
|
|
||||||
});
|
|
||||||
}}
|
}}
|
||||||
disabled={chatKey === i}
|
disabled={chatKey === i}
|
||||||
placeholder="Enter text..."
|
placeholder="Enter text..."
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue