ux: admin/internet: visual clue that https form is being saved
Massimo Melina committed
Dec 30, 2024 at 19:31 UTC
27e8bc910243185b0ab8d3419325f7f044297728
1 file changed
+4
-1
admin/src/InternetPage.ts
+4
-1
@@ -164,6 +164,7 @@ export default function InternetPage({ setTitleSide }: PageProps) {
164
const [values, setValues] = useState<any>()
165
const cert = useApiEx('get_cert')
166
useEffect(() => { apiCall('get_config', { only: ['acme_domain', 'acme_email', 'acme_renew'] }).then(setValues) } , [])
167
+ const [saving, setSaving] = useState(false)
168
if (!status || !values) return h(CircularProgress)
169
const { https } = status.data ||{}
170
const disabled = https?.port === PORT_DISABLED
@@ -187,7 +188,8 @@ export default function InternetPage({ setTitleSide }: PageProps) {
188
set(v, k) {
189
setValues((was: any) => {
190
const values = { ...was, [k]: v }
190
- apiCall('set_config', { values })
191
+ setSaving(true)
192
+ apiCall('set_config', { values }).finally(() => setSaving(false))
193
return values
194
})
195
},
@@ -214,6 +216,7 @@ export default function InternetPage({ setTitleSide }: PageProps) {
216
save: {
217
children: "Request",
218
startIcon: h(Send),
219
+ ...saving && { loading: true },
220
async onClick() {
221
const [domain, ...altNames] = values.acme_domain.split(',')
222
const fresh = domain === cert.data.subject?.CN && Number(new Date(cert.data.validTo)) - Date.now() >= 30 * DAY