From 06a568f11426d124134f42d73fd13413e0b46ba1 Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Sun, 2 Jun 2024 23:55:20 -0300 Subject: [PATCH] Disabled accordion when it is empty --- .../components/accordionComponent/index.tsx | 17 ++++++++---- src/frontend/src/components/ui/accordion.tsx | 27 +++++++++++++++---- src/frontend/src/modals/IOModal/index.tsx | 4 +++ src/frontend/src/types/components/index.ts | 1 + 4 files changed, 39 insertions(+), 10 deletions(-) diff --git a/src/frontend/src/components/accordionComponent/index.tsx b/src/frontend/src/components/accordionComponent/index.tsx index fdcf8b96c..7c5562e7f 100644 --- a/src/frontend/src/components/accordionComponent/index.tsx +++ b/src/frontend/src/components/accordionComponent/index.tsx @@ -6,10 +6,13 @@ import { AccordionTrigger, } from "../../components/ui/accordion"; import { AccordionComponentType } from "../../types/components"; +import { cn } from "../../utils/utils"; +import ShadTooltip from "../shadTooltipComponent"; export default function AccordionComponent({ trigger, children, + disabled, open = [], keyValue, sideBar, @@ -29,7 +32,9 @@ export default function AccordionComponent({ } function handleClick(): void { - value === "" ? setValue(keyValue!) : setValue(""); + if (!disabled) { + value === "" ? setValue(keyValue!) : setValue(""); + } } return ( @@ -38,16 +43,18 @@ export default function AccordionComponent({ type="single" className="w-full" value={value} - onValueChange={setValue} + onValueChange={!disabled ? setValue : () => {}} > { handleClick(); }} - className={ - sideBar ? "w-full bg-muted px-[0.75rem] py-[0.5rem]" : "ml-3" - } + disabled={disabled} + className={cn( + sideBar ? "w-full bg-muted px-[0.75rem] py-[0.5rem]" : "ml-3", + disabled ? "cursor-not-allowed" : "cursor-pointer", + )} > {trigger} diff --git a/src/frontend/src/components/ui/accordion.tsx b/src/frontend/src/components/ui/accordion.tsx index b0eaaf47a..39578095b 100644 --- a/src/frontend/src/components/ui/accordion.tsx +++ b/src/frontend/src/components/ui/accordion.tsx @@ -4,6 +4,7 @@ import * as AccordionPrimitive from "@radix-ui/react-accordion"; import { ChevronDownIcon } from "@radix-ui/react-icons"; import * as React from "react"; import { cn } from "../../utils/utils"; +import ShadTooltip from "../shadTooltipComponent"; const Accordion = AccordionPrimitive.Root; @@ -22,17 +23,33 @@ AccordionItem.displayName = "AccordionItem"; const AccordionTrigger = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( +>(({ className, children, disabled, ...props }, ref) => ( - +
svg]:rotate-180", - className + className, )} > {children} - + + +
@@ -47,7 +64,7 @@ const AccordionContent = React.forwardRef< ref={ref} className={cn( "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm", - className + className, )} {...props} > diff --git a/src/frontend/src/modals/IOModal/index.tsx b/src/frontend/src/modals/IOModal/index.tsx index 4d7453619..a3d00e89c 100644 --- a/src/frontend/src/modals/IOModal/index.tsx +++ b/src/frontend/src/modals/IOModal/index.tsx @@ -253,6 +253,10 @@ export default function IOModal({ key={index} >