diff --git a/client/src/components/map/legend/types.ts b/client/src/components/map/legend/types.ts index 3c92daa2..321063d5 100644 --- a/client/src/components/map/legend/types.ts +++ b/client/src/components/map/legend/types.ts @@ -96,9 +96,11 @@ export interface SortableItemProps extends PropsWithChildren { export interface LegendTypeProps { className?: string; + type: 'choropleth' | 'gradient' | 'basic'; items: Array<{ value: string; color: string; + label?: string; }>; } diff --git a/client/src/containers/datasets/item.tsx b/client/src/containers/datasets/item.tsx index 599bbd5b..c37a678f 100644 --- a/client/src/containers/datasets/item.tsx +++ b/client/src/containers/datasets/item.tsx @@ -15,7 +15,7 @@ import { INFO } from '@/containers/datasets/layers'; import { Button } from '@/components/ui/button'; import { Dialog, DialogClose, DialogContent, DialogTrigger } from '@/components/ui/dialog'; import { Switch } from '@/components/ui/switch'; -// TODO: replace with real type DatasetItemResonseDataItem + export default function DatasetsItem(props: LayerListResponseDataItem) { const [layers, setLayersToURL] = useSyncLayers(); diff --git a/client/src/containers/datasets/layers/index.tsx b/client/src/containers/datasets/layers/index.tsx index 9d1a386b..d3c3e962 100644 --- a/client/src/containers/datasets/layers/index.tsx +++ b/client/src/containers/datasets/layers/index.tsx @@ -1,22 +1,15 @@ -import type { LayerProps, DeckGLLayerProps, LayerSettings } from '@/types/layers'; +import type { LayerProps, DeckGLLayerProps } from '@/types/layers'; import BiomassDensity from '@/containers/datasets/layers/biomass-density/layer'; -import BiomassDensityLegend from '@/containers/datasets/layers/biomass-density/legend'; import BiomassDensityInfo from '@/containers/datasets/layers/constants/biomass-density'; import NetForestCarbonFluxInfo from '@/containers/datasets/layers/constants/net-flux-carbon'; import SoilCarbonDensityInfo from '@/containers/datasets/layers/constants/soil-carbon-density'; import { LandDegradationLayer } from '@/containers/datasets/layers/land-degradation/layer'; -import LandDegradationLegend from '@/containers/datasets/layers/land-degradation/legend'; import NetForestCarbonFluxLayer from '@/containers/datasets/layers/net-forest-carbon-flux/layer'; -import NetForestCarbonFluxLegend from '@/containers/datasets/layers/net-forest-carbon-flux/legend'; import { ProjectsLayer } from '@/containers/datasets/layers/projects/layer'; -import ProjectsLegend from '@/containers/datasets/layers/projects/legend'; import SoilCarbonDensityLayer from '@/containers/datasets/layers/soil-carbon-density/layer'; -import SoilCarbonDensityLegend from '@/containers/datasets/layers/soil-carbon-density/legend'; import TreeCoverLayer from '@/containers/datasets/layers/tree-cover/layer'; -import TreeCoverLegend from '@/containers/datasets/layers/tree-cover/legend'; import TreeCoverLossLayer from '@/containers/datasets/layers/tree-cover-loss/layer'; -import TreeCoverLossLegend from '@/containers/datasets/layers/tree-cover-loss/legend'; import LandDegradationInfo from './constants/land-degradation'; import TreeCoverInfo from './constants/tree-cover'; @@ -29,10 +22,6 @@ type SimpleLayerIndex = { [key: number]: React.ComponentType; }; -type LegendIndex = { - [key: string]: React.ComponentType<{ settings: LayerSettings }>; -}; - type InfoIndex = { [key: number]: React.ComponentType; }; @@ -51,16 +40,6 @@ const SIMPLE_LAYERS: SimpleLayerIndex = { 6: LandDegradationLayer, }; -export const LEGENDS: LegendIndex = { - 5: ProjectsLegend, - 1: TreeCoverLegend, - 3: NetForestCarbonFluxLegend, - 2: BiomassDensityLegend, - 4: SoilCarbonDensityLegend, - 6: LandDegradationLegend, - 7: TreeCoverLossLegend, -}; - export const INFO: InfoIndex = { 1: TreeCoverInfo, 2: BiomassDensityInfo, diff --git a/client/src/containers/datasets/layers/net-forest-carbon-flux/legend.tsx b/client/src/containers/datasets/layers/net-forest-carbon-flux/legend.tsx deleted file mode 100644 index c23eb453..00000000 --- a/client/src/containers/datasets/layers/net-forest-carbon-flux/legend.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { cn } from '@/lib/classnames'; - -import { useGetLayersId } from '@/types/generated/layer'; -import { LayerSettings, LegendType } from '@/types/layers'; - -import LegendSettings from '@/containers/legend-settings'; - -export default function Legend({ settings }: { settings: LayerSettings }) { - const { data } = useGetLayersId(Number(settings.id)); - - if (!data?.data?.attributes) return null; - - const { legend_config, name } = data.data.attributes; - const { items } = legend_config as LegendType; - - return ( -
-
-

{name}

- -
- -
-
i.color).join(',')})`, - }} - /> - -
    - {items - .filter(({ value }) => typeof value !== 'undefined' && value !== null) - .map(({ value }) => ( -
  • - {value} -
  • - ))} -
-
-
- ); -} diff --git a/client/src/containers/datasets/layers/projects/legend.tsx b/client/src/containers/datasets/layers/projects/legend.tsx deleted file mode 100644 index e36f1e66..00000000 --- a/client/src/containers/datasets/layers/projects/legend.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { useGetLayersId } from '@/types/generated/layer'; -import { LayerSettings } from '@/types/layers'; - -import LegendSettings from '@/containers/legend-settings'; - -export default function Legend({ settings }: { settings: LayerSettings }) { - const { data } = useGetLayersId(Number(settings.id)); - - if (!data?.data?.attributes) return null; - - const { name } = data.data.attributes; - - return ( -
-
-
-

{name}

-
- -
- ); -} diff --git a/client/src/containers/datasets/layers/soil-carbon-density/legend.tsx b/client/src/containers/datasets/layers/soil-carbon-density/legend.tsx deleted file mode 100644 index c23eb453..00000000 --- a/client/src/containers/datasets/layers/soil-carbon-density/legend.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { cn } from '@/lib/classnames'; - -import { useGetLayersId } from '@/types/generated/layer'; -import { LayerSettings, LegendType } from '@/types/layers'; - -import LegendSettings from '@/containers/legend-settings'; - -export default function Legend({ settings }: { settings: LayerSettings }) { - const { data } = useGetLayersId(Number(settings.id)); - - if (!data?.data?.attributes) return null; - - const { legend_config, name } = data.data.attributes; - const { items } = legend_config as LegendType; - - return ( -
-
-

{name}

- -
- -
-
i.color).join(',')})`, - }} - /> - -
    - {items - .filter(({ value }) => typeof value !== 'undefined' && value !== null) - .map(({ value }) => ( -
  • - {value} -
  • - ))} -
-
-
- ); -} diff --git a/client/src/containers/datasets/layers/tree-cover-loss/legend.tsx b/client/src/containers/datasets/layers/tree-cover-loss/legend.tsx deleted file mode 100644 index 5b67a236..00000000 --- a/client/src/containers/datasets/layers/tree-cover-loss/legend.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { useGetLayersId } from '@/types/generated/layer'; -import { LayerSettings } from '@/types/layers'; - -import LegendSettings from '@/containers/legend-settings'; - -export default function Legend({ settings }: { settings: LayerSettings }) { - const { data } = useGetLayersId(Number(settings.id)); - - if (!data?.data?.attributes) return null; - - const { name } = data.data.attributes; - - return ( -
-
-
-

{name}

-
- -
- ); -} diff --git a/client/src/containers/datasets/layers/tree-cover/legend.tsx b/client/src/containers/datasets/layers/tree-cover/legend.tsx deleted file mode 100644 index 39e9a37c..00000000 --- a/client/src/containers/datasets/layers/tree-cover/legend.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { useGetLayersId } from '@/types/generated/layer'; -import { LayerSettings } from '@/types/layers'; - -import LegendSettings from '@/containers/legend-settings'; - -export default function Legend({ settings }: { settings: LayerSettings }) { - const { data } = useGetLayersId(Number(settings.id)); - - if (!data?.data?.attributes) return null; - - const { name } = data.data.attributes; - - return ( -
-
-
-

{name}

-
- -
- ); -} diff --git a/client/src/containers/datasets/list.tsx b/client/src/containers/datasets/list.tsx index 9a88c9a4..7543186d 100644 --- a/client/src/containers/datasets/list.tsx +++ b/client/src/containers/datasets/list.tsx @@ -13,6 +13,8 @@ export default function DatasetsList() { const layers = data?.data || []; + if (!layers.length) return null; + return ( { const [layers] = useSyncLayers(); @@ -56,7 +56,7 @@ const MapLegends = ({ className = '' }) => {