| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | 'use client'import type { FC } from 'react'import React from 'react'import { type MetadataItemWithEdit, UpdateType } from '../types'import Label from './label'import { RiDeleteBinLine } from '@remixicon/react'import cn from '@/utils/classnames'import InputHasSetMultipleValue from './input-has-set-multiple-value'import InputCombined from './input-combined'import EditedBeacon from './edited-beacon'type Props = {  payload: MetadataItemWithEdit  onChange: (payload: MetadataItemWithEdit) => void  onRemove: (id: string) => void  onReset: (id: string) => void}const EditMetadatabatchItem: FC<Props> = ({  payload,  onChange,  onRemove,  onReset,}) => {  const isUpdated = payload.isUpdated  const isDeleted = payload.updateType === UpdateType.delete  return (    <div className='flex h-6 items-center space-x-0.5'>      {isUpdated ? <EditedBeacon onReset={() => onReset(payload.id)} /> : <div className='size-4 shrink-0' />}      <Label text={payload.name} isDeleted={isDeleted} />      {payload.isMultipleValue        ? <InputHasSetMultipleValue          onClear={() => onChange({ ...payload, value: null, isMultipleValue: false })}          readOnly={isDeleted}        />        : <InputCombined          type={payload.type}          value={payload.value}          onChange={v => onChange({ ...payload, value: v as string })}          readOnly={isDeleted}        />}      <div        className={          cn(            'cursor-pointer rounded-md p-1 text-text-tertiary hover:bg-state-destructive-hover hover:text-text-destructive',            isDeleted && 'cursor-default bg-state-destructive-hover  text-text-destructive')        }        onClick={() => onRemove(payload.id)}      >        <RiDeleteBinLine className='size-4' />      </div>    </div>  )}export default React.memo(EditMetadatabatchItem)
 |