mirror of
https://github.com/fankes/beszel.git
synced 2025-10-19 17:59:28 +08:00
fix: update settings when visiting a settings page directly
This commit is contained in:
@@ -71,7 +71,11 @@ export default function SettingsProfilePage({ userSettings }: { userSettings: Us
|
|||||||
<Label className="block" htmlFor="chartTime">
|
<Label className="block" htmlFor="chartTime">
|
||||||
Default time period
|
Default time period
|
||||||
</Label>
|
</Label>
|
||||||
<Select name="chartTime" defaultValue={userSettings.chartTime}>
|
<Select
|
||||||
|
name="chartTime"
|
||||||
|
key={userSettings.chartTime}
|
||||||
|
defaultValue={userSettings.chartTime}
|
||||||
|
>
|
||||||
<SelectTrigger id="chartTime">
|
<SelectTrigger id="chartTime">
|
||||||
<SelectValue />
|
<SelectValue />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
|
@@ -5,7 +5,7 @@ import { pb } from '@/lib/stores'
|
|||||||
import { Separator } from '@/components/ui/separator'
|
import { Separator } from '@/components/ui/separator'
|
||||||
import { Card } from '@/components/ui/card'
|
import { Card } from '@/components/ui/card'
|
||||||
import { BellIcon, LoaderCircleIcon, PlusIcon, SaveIcon, Trash2Icon } from 'lucide-react'
|
import { BellIcon, LoaderCircleIcon, PlusIcon, SaveIcon, Trash2Icon } from 'lucide-react'
|
||||||
import { ChangeEventHandler, useState } from 'react'
|
import { ChangeEventHandler, useEffect, useState } from 'react'
|
||||||
import { toast } from '@/components/ui/use-toast'
|
import { toast } from '@/components/ui/use-toast'
|
||||||
import { InputTags } from '@/components/ui/input-tags'
|
import { InputTags } from '@/components/ui/input-tags'
|
||||||
import { UserSettings } from '@/types'
|
import { UserSettings } from '@/types'
|
||||||
@@ -29,7 +29,13 @@ const SettingsNotificationsPage = ({ userSettings }: { userSettings: UserSetting
|
|||||||
const [emails, setEmails] = useState<string[]>(userSettings.emails ?? [])
|
const [emails, setEmails] = useState<string[]>(userSettings.emails ?? [])
|
||||||
const [isLoading, setIsLoading] = useState(false)
|
const [isLoading, setIsLoading] = useState(false)
|
||||||
|
|
||||||
const addWebhook = () => {
|
// update values when userSettings changes
|
||||||
|
useEffect(() => {
|
||||||
|
setWebhooks(userSettings.webhooks ?? [])
|
||||||
|
setEmails(userSettings.emails ?? [])
|
||||||
|
}, [userSettings])
|
||||||
|
|
||||||
|
function addWebhook() {
|
||||||
setWebhooks([...webhooks, ''])
|
setWebhooks([...webhooks, ''])
|
||||||
// focus on the new input
|
// focus on the new input
|
||||||
queueMicrotask(() => {
|
queueMicrotask(() => {
|
||||||
@@ -39,7 +45,7 @@ const SettingsNotificationsPage = ({ userSettings }: { userSettings: UserSetting
|
|||||||
}
|
}
|
||||||
const removeWebhook = (index: number) => setWebhooks(webhooks.filter((_, i) => i !== index))
|
const removeWebhook = (index: number) => setWebhooks(webhooks.filter((_, i) => i !== index))
|
||||||
|
|
||||||
const updateWebhook = (index: number, value: string) => {
|
function updateWebhook(index: number, value: string) {
|
||||||
const newWebhooks = [...webhooks]
|
const newWebhooks = [...webhooks]
|
||||||
newWebhooks[index] = value
|
newWebhooks[index] = value
|
||||||
setWebhooks(newWebhooks)
|
setWebhooks(newWebhooks)
|
||||||
|
Reference in New Issue
Block a user