import React, { useState, useEffect } from 'react'; import { useQuery, useMutation } from '@tanstack/react-query'; import { api } from '../lib/api'; import { useToast } from '../components/Toast'; export default function Settings() { const toast = useToast(); const [workspaceName, setWorkspaceName] = useState(''); const [defaultBillable, setDefaultBillable] = useState(false); const [weekStart, setWeekStart] = useState('Monday'); const { data: settings, isLoading, refetch } = useQuery({ queryKey: ['settings'], queryFn: () => api.getSettings(), }); const { data: user } = useQuery({ queryKey: ['me'], queryFn: () => api.getMe(), }); const updateMutation = useMutation({ mutationFn: async (data: { workspaceName: string; defaultBillable: boolean; weekStart: string }) => { return api.updateSettings(data); }, onSuccess: async () => { toast.success('Einstellungen erfolgreich aktualisiert'); await refetch(); }, onError: () => { toast.error('Fehler beim Aktualisieren der Einstellungen'); }, }); useEffect(() => { if (settings) { setWorkspaceName(settings.workspaceName || ''); setDefaultBillable(settings.defaultBillable ?? false); setWeekStart(settings.weekStart || 'Monday'); } }, [settings]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); updateMutation.mutate({ workspaceName, defaultBillable, weekStart, }); }; if (isLoading) { return (
Diese Seite ist nur für Administratoren zugänglich.