import type { NumArray } from '@h5web/shared'; import { getDims } from '@h5web/shared'; import type { NdArray } from 'ndarray'; import type { ReactNode } from 'react'; import { useMemo } from 'react'; import type { DefaultInteractionsConfig } from '../../interactions/DefaultInteractions'; import DefaultInteractions from '../../interactions/DefaultInteractions'; import ResetZoomButton from '../../toolbar/floating/ResetZoomButton'; import styles from '../heatmap/HeatmapVis.module.css'; import type { Layout } from '../heatmap/models'; import VisCanvas from '../shared/VisCanvas'; import RgbMesh from './RgbMesh'; import { ImageType } from './models'; import { toRgbSafeNdArray } from './utils'; interface Props { dataArray: NdArray; layout?: Layout; showGrid?: boolean; title?: string; imageType?: ImageType; children?: ReactNode; interactions?: DefaultInteractionsConfig; } function RgbVis(props: Props) { const { dataArray, layout = 'cover', showGrid = false, title, imageType = ImageType.RGB, children, interactions, } = props; const { rows, cols } = getDims(dataArray); const safeDataArray = useMemo(() => toRgbSafeNdArray(dataArray), [dataArray]); const keepRatio = layout !== 'fill'; return (
{children}
); } export default RgbVis;