import { RiArrowRightUpLine, RiBookOpenLine } from '@remixicon/react' import Link from 'next/link' import * as React from 'react' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' import Switch from '@/app/components/base/switch' import Indicator from '@/app/components/header/indicator' import { useSelector as useAppContextSelector } from '@/context/app-context' import { useDatasetDetailContextWithSelector } from '@/context/dataset-detail' import { useDatasetApiAccessUrl } from '@/hooks/use-api-access-url' import { useDisableDatasetServiceApi, useEnableDatasetServiceApi } from '@/service/knowledge/use-dataset' import { cn } from '@/utils/classnames' type CardProps = { apiEnabled: boolean } const Card = ({ apiEnabled, }: CardProps) => { const { t } = useTranslation() const datasetId = useDatasetDetailContextWithSelector(state => state.dataset?.id) const mutateDatasetRes = useDatasetDetailContextWithSelector(state => state.mutateDatasetRes) const { mutateAsync: enableDatasetServiceApi } = useEnableDatasetServiceApi() const { mutateAsync: disableDatasetServiceApi } = useDisableDatasetServiceApi() const isCurrentWorkspaceManager = useAppContextSelector(state => state.isCurrentWorkspaceManager) const apiReferenceUrl = useDatasetApiAccessUrl() const onToggle = useCallback(async (state: boolean) => { let result: 'success' | 'fail' if (state) result = (await enableDatasetServiceApi(datasetId ?? '')).result else result = (await disableDatasetServiceApi(datasetId ?? '')).result if (result === 'success') mutateDatasetRes?.() }, [datasetId, enableDatasetServiceApi, mutateDatasetRes, disableDatasetServiceApi]) return (