"use client"; import { FC, PropsWithChildren, useState } from "react"; import { Box, Grid, Accordion, AccordionSummary, AccordionDetails, Button, ButtonGroup, IconButton, Tooltip as MUITooltip, } from "@mui/material"; import { useTranslate } from "react-polyglot"; import { ExpandMore as ExpandMoreIcon, Help as HelpIcon, } from "@mui/icons-material"; import { useAppContext } from "./AppProvider"; interface QueryBuilderSectionProps { name: string; keyName: string; children: any; Image: any; width: number; // eslint-disable-next-line react/require-default-props showQueryType?: boolean; tooltipTitle: string; tooltipDescription: string; } type TooltipProps = PropsWithChildren<{ title: string; description: string; children: any; open: boolean; }>; const Tooltip: FC = ({ title, description, children, open }) => { const { colors: { white, leafcutterElectricBlue, almostBlack }, typography: { h5, small }, } = useAppContext(); return ( {title} {description} } arrow placement="top" componentsProps={{ tooltip: { sx: { backgroundColor: white, boxShadow: "0px 6px 8px rgba(0,0,0,0.5)", }, }, arrow: { sx: { color: "white", fontSize: "22px", }, }, }} > {children} ); }; export const QueryBuilderSection: FC = ({ name, keyName, children, Image, width, showQueryType = false, tooltipTitle, tooltipDescription, }) => { const t = useTranslate(); const [queryType, setQueryType] = useState("include"); const [showTooltip, setShowTooltip] = useState(false); const { colors: { white, leafcutterElectricBlue, warningPink, almostBlack }, typography: { h6, small }, updateQueryType, } = useAppContext(); const updateType = (type: string) => { setQueryType(type); updateQueryType({ [keyName]: { queryType: type }, }); }; const minHeight = "42px"; const maxHeight = "42px"; return ( } sx={{ backgroundColor: leafcutterElectricBlue, height: "14px", minHeight, maxHeight, "&.Mui-expanded": { minHeight, maxHeight, }, }} > {name} setShowTooltip(true)} onMouseLeave={() => setShowTooltip(false)} > {showQueryType ? ( these items: ) : null} {children} ); };