'use client' import React from 'react' import { useTranslation } from 'react-i18next' import { v4 as uuid } from 'uuid' import { RiAddLine, RiDeleteBinLine } from '@remixicon/react' import Input from '@/app/components/base/input' import Button from '@/app/components/base/button' import ActionButton from '@/app/components/base/action-button' import cn from '@/utils/classnames' export type HeaderItem = { id: string key: string value: string } type Props = { headersItems: HeaderItem[] onChange: (headerItems: HeaderItem[]) => void readonly?: boolean isMasked?: boolean } const HeadersInput = ({ headersItems, onChange, readonly = false, isMasked = false, }: Props) => { const { t } = useTranslation() const handleItemChange = (index: number, field: 'key' | 'value', value: string) => { const newItems = [...headersItems] newItems[index] = { ...newItems[index], [field]: value } onChange(newItems) } const handleRemoveItem = (index: number) => { const newItems = headersItems.filter((_, i) => i !== index) onChange(newItems) } const handleAddItem = () => { const newItems = [...headersItems, { id: uuid(), key: '', value: '' }] onChange(newItems) } if (headersItems.length === 0) { return (