'use client'; import { Key, useEffect, useState } from 'react'; import { Item, Loading, Tabs, useToasts } from 'react-basics'; import UserEditForm from '../UserEditForm'; import PageHeader from 'components/layout/PageHeader'; import { useApi } from 'components/hooks'; import { useMessages } from 'components/hooks'; import UserWebsites from '../UserWebsites'; export function UserSettings({ userId }) { const { formatMessage, labels, messages } = useMessages(); const [edit, setEdit] = useState(false); const [values, setValues] = useState(null); const [tab, setTab] = useState('details'); const { get, useQuery } = useApi(); const { showToast } = useToasts(); const { data, isLoading } = useQuery({ queryKey: ['user', userId], queryFn: () => { if (userId) { return get(`/users/${userId}`); } }, gcTime: 0, }); const handleSave = (data: any) => { showToast({ message: formatMessage(messages.saved), variant: 'success' }); if (data) { setValues(state => ({ ...state, ...data })); } if (edit) { setEdit(false); } }; useEffect(() => { if (data) { setValues(data); } }, [data]); if (isLoading || !values) { return ; } return ( <> {formatMessage(labels.details)} {formatMessage(labels.websites)} {tab === 'details' && } {tab === 'websites' && } ); } export default UserSettings;