import { Button, FormControl, FormLabel, HStack, Input, Spacer, VStack, useToast, Image, Box, Flex, Text, } from "@chakra-ui/react"; import React, { useEffect, useState } from "react"; import { DEFAULT_TOAST_DURATION } from "src/common/constants"; import { AppSettings } from "src/common/types"; import PasswordInput from "src/components/password-input"; import { getSettings, saveSettings } from "src/storage"; import InfoIcon from "src/imgs/icons/Info.svg"; import ResetIcon from "src/imgs/icons/Reset.svg"; export const Settings = () => { const [sipDomain, setSipDomain] = useState(""); const [sipServerAddress, setSipServerAddress] = useState( "wss://sip.jambonz.cloud:8443/" ); const [sipUsername, setSipUsername] = useState(""); const [sipPassword, setSipPassword] = useState(""); const [sipDisplayName, setSipDisplayName] = useState(""); const [apiKey, setApiKey] = useState(""); const toast = useToast(); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); const settings: AppSettings = { sipDomain, sipServerAddress: sipServerAddress, sipUsername, sipPassword, sipDisplayName, apiKey, }; saveSettings(settings); toast({ title: "Settings saved successfully", status: "success", duration: DEFAULT_TOAST_DURATION, isClosable: true, colorScheme: "jambonz", }); }; const resetSetting = () => { saveSettings({} as AppSettings); setSipDomain(""); setSipServerAddress(""); setSipUsername(""); setSipPassword(""); setSipDisplayName(""); setApiKey(""); }; useEffect(() => { const settings = getSettings(); if (settings.sipDomain) { setSipDomain(settings.sipDomain); } if (settings.sipServerAddress) { setSipServerAddress(settings.sipServerAddress); } if (settings.sipUsername) { setSipUsername(settings.sipUsername); } if (settings.sipPassword) { setSipPassword(settings.sipPassword); } if (settings.sipDisplayName) { setSipDisplayName(settings.sipDisplayName); } if (settings.apiKey) { setApiKey(settings.apiKey); } }, []); return (
Jambonz SIP Domain setSipDomain(e.target.value)} /> Jambonz Server Address setSipServerAddress(e.target.value)} /> SIP Username setSipUsername(e.target.value)} /> SIP Password SIP Display Name setSipDisplayName(e.target.value)} /> API Key (optional) Get help Reset settings
); }; export default Settings;