From 3caae2de9bd0b5ab5c92e93cd3d9be5a7271ca4c Mon Sep 17 00:00:00 2001 From: Christopher Tannum Date: Tue, 15 Aug 2023 17:57:14 +0200 Subject: [PATCH] chore: simplify quality component --- .../components/RevealToolbar/LayersButton.tsx | 2 - .../RevealToolbar/RevealToolbar.tsx | 11 +- .../RevealToolbar/SettingsButton.tsx | 53 +++------ .../HighFidelityContainer.tsx | 107 ++++++++++-------- .../SettingsContainer/SettingsContainer.tsx | 28 ----- .../RevealToolbar/SettingsContainer/types.ts | 30 ++--- react-components/src/index.ts | 1 + react-components/src/utilities/DeepPartial.ts | 7 -- react-components/stories/Toolbar.stories.tsx | 40 ++++--- 9 files changed, 118 insertions(+), 161 deletions(-) delete mode 100644 react-components/src/components/RevealToolbar/SettingsContainer/SettingsContainer.tsx delete mode 100644 react-components/src/utilities/DeepPartial.ts diff --git a/react-components/src/components/RevealToolbar/LayersButton.tsx b/react-components/src/components/RevealToolbar/LayersButton.tsx index 0818674351e..185d31ca562 100644 --- a/react-components/src/components/RevealToolbar/LayersButton.tsx +++ b/react-components/src/components/RevealToolbar/LayersButton.tsx @@ -20,7 +20,6 @@ import { useRevealContainerElement } from '../RevealContainer/RevealContainerEle export const LayersButton = (): ReactElement => { const viewer = useReveal(); const revealContainerElement = useRevealContainerElement(); - const [layersEnabled, setLayersEnabled] = useState(false); const [visible, setVisible] = useState(false); const [cadModelIds, setCadModelIds] = useState([]); @@ -38,7 +37,6 @@ export const LayersButton = (): ReactElement => { const pointCloudModelName = use3DModelName(pointCloudModelIds); const showLayers = (): void => { - setLayersEnabled(!layersEnabled); setVisible((prevState) => !prevState); }; diff --git a/react-components/src/components/RevealToolbar/RevealToolbar.tsx b/react-components/src/components/RevealToolbar/RevealToolbar.tsx index 1239e8aa540..78cd66095ee 100644 --- a/react-components/src/components/RevealToolbar/RevealToolbar.tsx +++ b/react-components/src/components/RevealToolbar/RevealToolbar.tsx @@ -11,8 +11,7 @@ import { SettingsButton } from './SettingsButton'; import { withSuppressRevealEvents } from '../../higher-order-components/withSuppressRevealEvents'; import { MeasurementButton } from './MeasurementButton'; import { HelpButton } from './HelpButton'; -import { type QualityConfig } from './SettingsContainer/types'; -import { type DeepPartial } from '../../utilities/DeepPartial'; +import { type QualitySettings } from './SettingsContainer/types'; const defaultStyle: ToolBarProps = { style: { @@ -24,7 +23,8 @@ const defaultStyle: ToolBarProps = { type RevealToolbarProps = ToolBarProps & { customSettingsContent?: JSX.Element; - highFidelityConfig?: DeepPartial; + lowFidelitySettings?: Partial; + highFidelitySettings?: Partial; }; const DefaultContentWrapper = (props: RevealToolbarProps): ReactElement => { @@ -42,8 +42,9 @@ const DefaultContentWrapper = (props: RevealToolbarProps): ReactElement => {
diff --git a/react-components/src/components/RevealToolbar/SettingsButton.tsx b/react-components/src/components/RevealToolbar/SettingsButton.tsx index a45dcc51270..cce9991c63d 100644 --- a/react-components/src/components/RevealToolbar/SettingsButton.tsx +++ b/react-components/src/components/RevealToolbar/SettingsButton.tsx @@ -2,57 +2,36 @@ * Copyright 2023 Cognite AS */ -import { useState, type ReactElement, useMemo } from 'react'; -import { Button, Dropdown } from '@cognite/cogs.js'; -import { SettingsContainer } from './SettingsContainer/SettingsContainer'; -import { type ResolutionOptions } from '@cognite/reveal'; -import { useReveal } from '../RevealContainer/RevealContext'; -import { type DeepPartial } from '../../utilities/DeepPartial'; -import { type QualityConfig } from './SettingsContainer/types'; +import { type ReactElement } from 'react'; +import { Button, Dropdown, Menu } from '@cognite/cogs.js'; +import { type QualitySettings } from './SettingsContainer/types'; +import { HighFidelityContainer } from './SettingsContainer/HighFidelityContainer'; type CustomSettingsProps = { customSettingsContent?: ReactElement; - highFidelityConfig?: DeepPartial; + lowQualitySettings?: Partial; + highQualitySettings?: Partial; }; export const SettingsButton = ({ customSettingsContent, - highFidelityConfig + lowQualitySettings, + highQualitySettings }: CustomSettingsProps): ReactElement => { - const viewer = useReveal(); - const [, setSettingsEnabled] = useState(false); - const [isHighQualityMode, setHighQualityMode] = useState(false); - const SettingsButton = (): void => { - setSettingsEnabled((prevState) => !prevState); - }; - - const defaultsQualityConfig = useMemo(() => { - return { - pointCloudBudget: { ...viewer.pointCloudBudget }, - cadBudget: { ...viewer.cadBudget }, - resolutionOptions: { - maxRenderResolution: 1.4e6, - movingCameraResolutionFactor: 1 - } satisfies ResolutionOptions - }; - }, [viewer]); - return ( + + + {customSettingsContent ?? <>} + } placement="auto"> -