diff --git a/packages/graphic-walker/src/components/selectContext/index.tsx b/packages/graphic-walker/src/components/selectContext/index.tsx index c24d090e..6bf2deae 100644 --- a/packages/graphic-walker/src/components/selectContext/index.tsx +++ b/packages/graphic-walker/src/components/selectContext/index.tsx @@ -4,24 +4,24 @@ import { CheckIcon, Cog6ToothIcon } from '@heroicons/react/24/outline'; import { Float } from '@headlessui-float/react'; import { blockContext } from '../../fields/fieldsContext'; -export interface ISelectContextOption { - key: string; +export interface ISelectContextOption { + key: T; label: string; disabled?: boolean; } -interface ISelectContextProps { - options?: ISelectContextOption[]; +interface ISelectContextProps { + options?: ISelectContextOption[]; disable?: boolean; - selectedKeys?: string[]; - onSelect?: (selectedKeys: string[]) => void; + selectedKeys?: T[]; + onSelect?: (selectedKeys: T[]) => void; className?: string; required?: boolean; children?: React.ReactNode | Iterable; } -const SelectContext: React.FC = (props) => { +function SelectContext (props: ISelectContextProps) { const { options = [], disable = false, selectedKeys = [], onSelect, className = '', required } = props; - const [selected, setSelected] = useState(options.filter((opt) => selectedKeys.includes(opt.key))); + const [selected, setSelected] = useState[]>(options.filter((opt) => selectedKeys.includes(opt.key))); useEffect(() => { setSelected(options.filter((opt) => selectedKeys.includes(opt.key))); diff --git a/packages/graphic-walker/src/fields/encodeFields/singleEncodeEditor.tsx b/packages/graphic-walker/src/fields/encodeFields/singleEncodeEditor.tsx index 0c31583a..bbc49aff 100644 --- a/packages/graphic-walker/src/fields/encodeFields/singleEncodeEditor.tsx +++ b/packages/graphic-walker/src/fields/encodeFields/singleEncodeEditor.tsx @@ -1,18 +1,17 @@ import React, { useMemo, useContext } from 'react'; -import { DraggableFieldState, IAggregator, IDraggableStateKey } from '../../interfaces'; +import { DraggableFieldState, IAggregator } from '../../interfaces'; import { observer } from 'mobx-react-lite'; import { DatasetNamesContext, useVizStore } from '../../store'; import { DroppableProvided } from 'react-beautiful-dnd'; import { ChevronUpDownIcon, PencilSquareIcon, TrashIcon } from '@heroicons/react/24/outline'; import { useTranslation } from 'react-i18next'; -import { COUNT_FIELD_ID, DEFAULT_DATASET, MEA_KEY_ID, MEA_VAL_ID } from '../../constants'; +import { COUNT_FIELD_ID, DEFAULT_DATASET, MEA_KEY_ID } from '../../constants'; import DropdownContext from '../../components/dropdownContext'; import { GLOBAL_CONFIG } from '../../config'; import { Draggable, DroppableStateSnapshot } from '@kanaries/react-beautiful-dnd'; import styled from 'styled-components'; -import SelectContext, { type ISelectContextOption } from '../../components/selectContext'; +import SelectContext from '../../components/selectContext'; import { refMapper } from '../fieldsContext'; -import Tooltip from '@/components/tooltip'; import { EditNamePopover } from '../renamePanel'; import { getFieldIdentifier } from '@/utils'; diff --git a/packages/graphic-walker/src/fields/obComponents/obPill.tsx b/packages/graphic-walker/src/fields/obComponents/obPill.tsx index 935f1141..9ff448a7 100644 --- a/packages/graphic-walker/src/fields/obComponents/obPill.tsx +++ b/packages/graphic-walker/src/fields/obComponents/obPill.tsx @@ -4,7 +4,7 @@ import React, { useMemo, useContext } from 'react'; import { useTranslation } from 'react-i18next'; import { DraggableProvided } from '@kanaries/react-beautiful-dnd'; import { COUNT_FIELD_ID, DEFAULT_DATASET, MEA_KEY_ID, MEA_VAL_ID } from '../../constants'; -import { IAggregator, IDraggableViewStateKey } from '../../interfaces'; +import { FieldIdentifier, IAggregator, IDraggableViewStateKey } from '../../interfaces'; import { DatasetNamesContext, useVizStore } from '../../store'; import { Pill } from '../components'; import { GLOBAL_CONFIG } from '../../config'; diff --git a/packages/graphic-walker/src/interfaces.ts b/packages/graphic-walker/src/interfaces.ts index 8edcbe17..53d9d1a7 100644 --- a/packages/graphic-walker/src/interfaces.ts +++ b/packages/graphic-walker/src/interfaces.ts @@ -460,7 +460,7 @@ export interface IVisualConfigNew { /** @default "generic" */ coordSystem?: ICoordMode; limit: number; - folds?: string[]; + folds?: FieldIdentifier[]; timezoneDisplayOffset?: number; baseDataset?: string; } diff --git a/packages/graphic-walker/src/renderer/hooks.ts b/packages/graphic-walker/src/renderer/hooks.ts index 016cbbd6..fec486f4 100644 --- a/packages/graphic-walker/src/renderer/hooks.ts +++ b/packages/graphic-walker/src/renderer/hooks.ts @@ -1,6 +1,6 @@ import { useState, useEffect, useMemo, useRef } from 'react'; import { unstable_batchedUpdates } from 'react-dom'; -import type { IFilterField, IRow, IViewField, IDataQueryWorkflowStep, IComputationFunction } from '../interfaces'; +import type { IFilterField, IRow, IViewField, IDataQueryWorkflowStep, IComputationFunction, FieldIdentifier } from '../interfaces'; import { useAppRootContext } from '../components/appRoot'; import { toWorkflow } from '../utils/workflow'; import { dataQuery } from '../computation'; @@ -15,7 +15,7 @@ interface UseRendererProps { sort: 'none' | 'ascending' | 'descending'; limit: number; computationFunction: IComputationFunction; - folds?: string[]; + folds?: FieldIdentifier[]; timezoneDisplayOffset?: number; }