import React, { useContext, useState, useEffect } from 'react'; import { ServerStatusContext } from '../utils/server-status-context'; import { Typography, Switch, Input, Button } from 'antd'; import { postConfigUpdateToAPI, API_S3_INFO, } from './components/config/constants'; const { Title } = Typography; function Storage({ config }) { if (!config || !config.s3) { return null; } const [endpoint, setEndpoint] = useState(config.s3.endpoint); const [accessKey, setAccessKey] = useState(config.s3.accessKey); const [secret, setSecret] = useState(config.s3.secret); const [bucket, setBucket] = useState(config.s3.bucket); const [region, setRegion] = useState(config.s3.region); const [acl, setAcl] = useState(config.s3.acl); const [servingEndpoint, setServingEndpoint] = useState(config.s3.servingEndpoint); const [enabled, setEnabled] = useState(config.s3.enabled); function storageEnabledChanged(storageEnabled) { setEnabled(storageEnabled); } function endpointChanged(e) { setEndpoint(e.target.value) } function accessKeyChanged(e) { setAccessKey(e.target.value) } function secretChanged(e) { setSecret(e.target.value) } function bucketChanged(e) { setBucket(e.target.value) } function regionChanged(e) { setRegion(e.target.value) } function aclChanged(e) { setAcl(e.target.value) } function servingEndpointChanged(e) { setServingEndpoint(e.target.value) } async function save() { const payload = { value: { enabled: enabled, endpoint: endpoint, accessKey: accessKey, secret: secret, bucket: bucket, region: region, acl: acl, servingEndpoint: servingEndpoint, } }; try { await postConfigUpdateToAPI({apiPath: API_S3_INFO, data: payload}); } catch(e) { console.error(e); } } const table = enabled ? ( <>

endpoint access key secret bucket region advanced

acl serving endpoint ): null; return ( <> Storage Enabled: { table } ); } export default function ServerConfig() { const serverStatusData = useContext(ServerStatusContext); const { serverConfig: config } = serverStatusData || {}; return (
); }