/** * * Copyright 2023-present InspectorRAGet Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * **/ 'use client'; import cx from 'classnames'; import { useState } from 'react'; import { FilterableMultiSelect, Tag, Tooltip, Button } from '@carbon/react'; import { ChevronUp, ChevronDown, SubtractAlt } from '@carbon/icons-react'; import { Metric, Model } from '@/src/types'; import { extractMetricDisplayName } from '@/src/utilities/metrics'; import classes from './Hide.module.scss'; // --- Types --- interface Props { models: Model[]; metrics: Metric[]; hiddenModels: Model[]; hiddenMetrics: Metric[]; setHiddenModels: Function; setHiddenMetrics: Function; } export default function HidePanel({ models, metrics, hiddenModels: ignoredModels, hiddenMetrics: ignoredMetrics, setHiddenModels: setIgnoredModels, setHiddenMetrics: setIgnoredMetrics, }: Props) { const [show, setShow] = useState(true); return ( <> {show ? (
Models
} items={models} selectedItems={ignoredModels} itemToString={(item) => (item ? item.name || item.modelId : '')} onChange={(event) => { setIgnoredModels(event.selectedItems); }} >
{ignoredModels.map((model) => { return ( {model.name ? model.name : model.modelId} ); })}
Metrics
} items={metrics} selectedItems={ignoredMetrics} itemToString={(item) => item ? item.displayName || item.name : '' } onChange={(event) => { setIgnoredMetrics(event.selectedItems); }} >
{ignoredMetrics.map((metric) => { return ( {extractMetricDisplayName(metric)} ); })}
) : null} ); }