/** * * Copyright 2023-2025 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) { // Step 1: Initialize state and necessary variables const [show, setShow] = useState(true); // Step 2: Render return ( <> {show ? (
Models
} items={models} initialSelectedItems={ignoredModels} itemToString={(item) => (item.name ? item.name : item.modelId)} onChange={(event) => { setIgnoredModels(event.selectedItems); }} >
{ignoredModels.map((model) => { return ( {model.name ? model.name : model.modelId} ); })}
Metrics
} items={metrics} initialSelectedItems={ignoredMetrics} itemToString={(item) => item.displayName ? item.displayName : item.name } onChange={(event) => { setIgnoredMetrics(event.selectedItems); }} >
{ignoredMetrics.map((metric) => { return ( {extractMetricDisplayName(metric)} ); })}
) : null} ); }