import React, { useContext, useState } from 'react'; import { Table, Space, Button, Typography, Alert, Input, Form } from 'antd'; import { DeleteOutlined, EyeOutlined, PlusOutlined } from '@ant-design/icons'; import { ServerStatusContext } from '../../../../../utils/server-status-context'; import { fetchData, UPDATE_STREAM_KEYS } from '../../../../../utils/apis'; const { Paragraph } = Typography; const { Item } = Form; const saveKeys = async (keys, setError) => { try { await fetchData(UPDATE_STREAM_KEYS, { method: 'POST', auth: true, data: { value: keys }, }); } catch (error) { console.error(error); setError(error); } }; const AddKeyForm = ({ setShowAddKeyForm, setFieldInConfigState, streamKeys, setError }) => { const handleAddKey = (newkey: any) => { const updatedKeys = [...streamKeys, newkey]; setFieldInConfigState({ fieldName: 'streamKeys', value: updatedKeys, }); saveKeys(updatedKeys, setError); setShowAddKeyForm(false); }; return (
); }; const AddKeyButton = ({ setShowAddKeyForm }) => ( ); const StreamKeys = () => { const serverStatusData = useContext(ServerStatusContext); const { serverConfig, setFieldInConfigState } = serverStatusData || {}; const { streamKeys } = serverConfig; const [showAddKeyForm, setShowAddKeyForm] = useState(false); const [showKeyMap, setShowKeyMap] = useState({}); const [error, setError] = useState(null); const handleDeleteKey = keyToRemove => { const newKeys = streamKeys.filter(k => k !== keyToRemove); setFieldInConfigState({ fieldName: 'streamKeys', value: newKeys, }); saveKeys(newKeys, setError); }; const handleToggleShowKey = key => { setShowKeyMap({ ...showKeyMap, [key]: !showKeyMap[key], }); }; const columns = [ { title: 'Key', dataIndex: 'key', key: 'key', render: text => (