'use client' import type { AppIconSelection } from '@/app/components/base/app-icon-picker' import type { Member } from '@/models/common' import type { DataSet, DatasetPermission, IconInfo } from '@/models/datasets' import type { AppIconType } from '@/types/app' import { useTranslation } from 'react-i18next' import AppIcon from '@/app/components/base/app-icon' import AppIconPicker from '@/app/components/base/app-icon-picker' import Input from '@/app/components/base/input' import Textarea from '@/app/components/base/textarea' import PermissionSelector from '../../permission-selector' const rowClass = 'flex gap-x-1' const labelClass = 'flex items-center shrink-0 w-[180px] h-7 pt-1' type BasicInfoSectionProps = { currentDataset: DataSet | undefined isCurrentWorkspaceDatasetOperator: boolean name: string setName: (value: string) => void description: string setDescription: (value: string) => void iconInfo: IconInfo showAppIconPicker: boolean handleOpenAppIconPicker: () => void handleSelectAppIcon: (icon: AppIconSelection) => void handleCloseAppIconPicker: () => void permission: DatasetPermission | undefined setPermission: (value: DatasetPermission | undefined) => void selectedMemberIDs: string[] setSelectedMemberIDs: (value: string[]) => void memberList: Member[] } const BasicInfoSection = ({ currentDataset, isCurrentWorkspaceDatasetOperator, name, setName, description, setDescription, iconInfo, showAppIconPicker, handleOpenAppIconPicker, handleSelectAppIcon, handleCloseAppIconPicker, permission, setPermission, selectedMemberIDs, setSelectedMemberIDs, memberList, }: BasicInfoSectionProps) => { const { t } = useTranslation() return ( <> {/* Dataset name and icon */}