From a13e17d9451797043374e20a547ff8622f951419 Mon Sep 17 00:00:00 2001 From: Leonardo <leomilho@gmail.com> Date: Thu, 13 Jun 2024 21:51:05 +0200 Subject: [PATCH] fix: recover settings popup --- libs/shared/lib/components/layout/Popover.tsx | 2 +- libs/shared/lib/inspector/InspectorPanel.tsx | 2 +- .../lib/querybuilder/panel/QueryBuilder.tsx | 57 +++++++------------ libs/shared/lib/schema/panel/Schema.tsx | 19 ++++++- .../lib/schema/panel/SchemaSettings.tsx | 2 +- 5 files changed, 43 insertions(+), 39 deletions(-) diff --git a/libs/shared/lib/components/layout/Popover.tsx b/libs/shared/lib/components/layout/Popover.tsx index 7a2543de1..3a4f9e063 100644 --- a/libs/shared/lib/components/layout/Popover.tsx +++ b/libs/shared/lib/components/layout/Popover.tsx @@ -180,7 +180,7 @@ export const PopoverContent = React.forwardRef<HTMLDivElement, React.HTMLProps<H aria-labelledby={context.labelId} aria-describedby={context.descriptionId} {...context.interactions.getFloatingProps(props)} - className={`w-fit ${className || ''}`} + className={`w-fit bg-light border-[1px] ${className || ''}`} > {props.children} </div> diff --git a/libs/shared/lib/inspector/InspectorPanel.tsx b/libs/shared/lib/inspector/InspectorPanel.tsx index 9d570ef29..c5532a14c 100644 --- a/libs/shared/lib/inspector/InspectorPanel.tsx +++ b/libs/shared/lib/inspector/InspectorPanel.tsx @@ -6,7 +6,7 @@ import { useDispatch } from 'react-redux'; import { ConnectionInspector } from './ConnectionInspector'; import { VisualizationSettings } from '../vis/components/config/VisualizationSettings'; import { SelectionConfig } from '../vis/components/config/SelectionConfig'; -import { SchemaDialog } from '../schema/panel/SchemaSettings'; +import { SchemaSettings } from '../schema/panel/SchemaSettings'; import { QuerySettings } from '../querybuilder/panel/querysidepanel/QuerySettings'; import { useActiveVisualization } from '@graphpolaris/shared/lib/data-access'; diff --git a/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx b/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx index 3f3ac4618..d5a38f395 100644 --- a/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx +++ b/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx @@ -44,6 +44,7 @@ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../ import { resultSetFocus } from '../../data-access/store/interactionSlice'; import { QueryBuilderDispatcherContext } from './QueryBuilderDispatcher'; import { Popover, PopoverContent, PopoverTrigger } from '../../components/layout/Popover'; +import { QuerySettings } from './querysidepanel/QuerySettings'; export type QueryBuilderProps = { onRunQuery?: () => void; @@ -458,7 +459,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => { <ControlContainer> <TooltipProvider delayDuration={0}> <Tooltip> - <TooltipTrigger asChild> + <TooltipTrigger> <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Fullscreen />} onClick={fitView} /> </TooltipTrigger> <TooltipContent side={'top'}> @@ -466,7 +467,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => { </TooltipContent> </Tooltip> <Tooltip> - <TooltipTrigger asChild> + <TooltipTrigger> <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Delete />} onClick={() => clearAllNodes()} /> </TooltipTrigger> <TooltipContent side={'top'}> @@ -474,7 +475,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => { </TooltipContent> </Tooltip> <Tooltip> - <TooltipTrigger asChild> + <TooltipTrigger> <Button variantType="secondary" variant="ghost" @@ -490,7 +491,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => { </TooltipContent> </Tooltip> <Tooltip> - <TooltipTrigger asChild> + <TooltipTrigger> <Button variantType="secondary" variant="ghost" @@ -506,27 +507,23 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => { <p>Layouts</p> </TooltipContent> </Tooltip> + <Popover> + <PopoverTrigger> + <Tooltip> + <TooltipTrigger> + <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Settings />} className="query-settings" /> + </TooltipTrigger> + <TooltipContent side={'top'}> + <p>Query builder settings</p> + </TooltipContent> + </Tooltip> + </PopoverTrigger> + <PopoverContent> + <QuerySettings /> + </PopoverContent> + </Popover> <Tooltip> - <TooltipTrigger asChild> - <Button - variantType="secondary" - variant="ghost" - size="xs" - iconComponent={<Settings />} - className="query-settings" - onClick={(event) => { - event.stopPropagation(); - if (toggleSettings === 'settings') setToggleSettings(undefined); - else setToggleSettings('settings'); - }} - /> - </TooltipTrigger> - <TooltipContent side={'top'} disabled={toggleSettings === 'settings'}> - <p>Query builder settings</p> - </TooltipContent> - </Tooltip> - <Tooltip> - <TooltipTrigger asChild> + <TooltipTrigger> <Button variantType="secondary" variant="ghost" @@ -564,17 +561,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => { <PopoverTrigger> <Tooltip> <TooltipTrigger> - <Button - variantType="secondary" - variant="ghost" - size="xs" - iconComponent={<Lightbulb />} - onClick={(event) => { - // event.stopPropagation(); - // if (toggleSettings === 'ml') setToggleSettings(undefined); - // else setToggleSettings('ml'); - }} - /> + <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Lightbulb />} /> </TooltipTrigger> <TooltipContent side={'top'} disabled={toggleSettings === 'ml'}> <p>Machine learning</p> diff --git a/libs/shared/lib/schema/panel/Schema.tsx b/libs/shared/lib/schema/panel/Schema.tsx index 20d12776e..6bc23f973 100644 --- a/libs/shared/lib/schema/panel/Schema.tsx +++ b/libs/shared/lib/schema/panel/Schema.tsx @@ -9,7 +9,8 @@ import { NodeEdge } from '../pills/edges/node-edge'; import { SelfEdge } from '../pills/edges/self-edge'; import { SchemaEntityPill } from '../pills/nodes/entity/SchemaEntityPill'; import { SchemaRelationPill } from '../pills/nodes/relation/SchemaRelationPill'; -import { SchemaDialog } from './SchemaSettings'; +import { SchemaSettings } from './SchemaSettings'; +import { Settings } from '@mui/icons-material'; import { ContentCopy, FitScreen, Fullscreen, KeyboardArrowDown, KeyboardArrowRight, Remove } from '@mui/icons-material'; import { AlgorithmToLayoutProvider, AllLayoutAlgorithms, LayoutFactory } from '../../graph-layout'; import { ConnectionLine, ConnectionDragLine } from '../../querybuilder'; @@ -18,6 +19,7 @@ import { Panel } from '../../components'; import { Tooltip, TooltipContent, TooltipTrigger } from '../../components/tooltip/Tooltip'; import { resultSetFocus } from '../../data-access/store/interactionSlice'; import { useDispatch } from 'react-redux'; +import { Popover, PopoverContent, PopoverTrigger } from '../../components/layout/Popover'; interface Props { content?: string; @@ -159,6 +161,21 @@ export const Schema = (props: Props) => { <p>Fit to screen</p> </TooltipContent> </Tooltip> + <Popover> + <PopoverTrigger> + <Tooltip> + <TooltipTrigger> + <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Settings />} className="schema-settings" /> + </TooltipTrigger> + <TooltipContent side={'top'}> + <p>Schema settings</p> + </TooltipContent> + </Tooltip> + </PopoverTrigger> + <PopoverContent> + <SchemaSettings /> + </PopoverContent> + </Popover> </> } > diff --git a/libs/shared/lib/schema/panel/SchemaSettings.tsx b/libs/shared/lib/schema/panel/SchemaSettings.tsx index 0d3c0fa55..0a6534d52 100644 --- a/libs/shared/lib/schema/panel/SchemaSettings.tsx +++ b/libs/shared/lib/schema/panel/SchemaSettings.tsx @@ -4,7 +4,7 @@ import { SchemaConnectionTypes, schemaConnectionTypeArray, setSchemaSettings } f import { Input } from '../../components/inputs'; import { Layouts } from '../../graph-layout'; -export const SchemaDialog = () => { +export const SchemaSettings = () => { const settings = useSchemaSettings(); const dispatch = useAppDispatch(); -- GitLab