diff --git a/components/forms/UserPasswordForm.js b/components/forms/UserPasswordForm.js index 83eaaa81..ff474608 100644 --- a/components/forms/UserPasswordForm.js +++ b/components/forms/UserPasswordForm.js @@ -1,16 +1,15 @@ import { useRef } from 'react'; import { Form, FormInput, FormButtons, PasswordField, Button } from 'react-basics'; import useApi from 'hooks/useApi'; -import { useMutation } from '@tanstack/react-query'; import styles from './UserPasswordForm.module.css'; import useUser from 'hooks/useUser'; -export default function UserPasswordForm({ onSave, userId }) { +export default function UserPasswordForm({ onSave, onClose, userId }) { const user = useUser(); const isCurrentUser = !userId || user?.id === userId; const url = isCurrentUser ? `/users/${user?.id}/password` : `/users/${user?.id}`; - const { post } = useApi(); + const { post, useMutation } = useApi(); const { mutate, error, isLoading } = useMutation(data => post(url, data)); const ref = useRef(null); @@ -65,9 +64,10 @@ export default function UserPasswordForm({ onSave, userId }) { - + ); diff --git a/components/pages/Dashboard.js b/components/pages/Dashboard.js index e1c948af..c979c130 100644 --- a/components/pages/Dashboard.js +++ b/components/pages/Dashboard.js @@ -1,9 +1,9 @@ import { useState } from 'react'; +import { Button, Loading } from 'react-basics'; import { defineMessages, useIntl } from 'react-intl'; import Page from 'components/layout/Page'; import PageHeader from 'components/layout/PageHeader'; -import WebsiteList from 'components/pages/WebsiteList'; -import { Button, Loading } from 'react-basics'; +import WebsiteChartList from 'components/pages/WebsiteChartList'; import DashboardSettingsButton from 'components/settings/DashboardSettingsButton'; import useApi from 'hooks/useApi'; import useDashboard from 'store/dashboard'; @@ -42,7 +42,7 @@ export default function Dashboard({ userId }) { {!editing && } {editing && } - {!editing && } + {!editing && } {max < data.length && ( General - Password {tab === 'general' && } - {tab === 'password' && } + {edit && ( + + {close => } + + )} ); } diff --git a/components/pages/UserSettings.js b/components/pages/UserSettings.js index 52f2d9d8..32edcb48 100644 --- a/components/pages/UserSettings.js +++ b/components/pages/UserSettings.js @@ -8,9 +8,11 @@ import useApi from 'hooks/useApi'; import Link from 'next/link'; import { useRouter } from 'next/router'; import { useEffect, useState } from 'react'; -import { Breadcrumbs, Item, Tabs, useToast } from 'react-basics'; +import { Breadcrumbs, Item, Icon, Tabs, useToast, Modal, Button } from 'react-basics'; +import Pen from 'assets/pen.svg'; export default function UserSettings({ userId }) { + const [edit, setEdit] = useState(false); const [values, setValues] = useState(null); const [tab, setTab] = useState('general'); const { get } = useApi(); @@ -31,6 +33,18 @@ export default function UserSettings({ userId }) { if (data) { setValues(state => ({ ...state, ...data })); } + + if (edit) { + setEdit(false); + } + }; + + const handleAdd = () => { + setEdit(true); + }; + + const handleClose = () => { + setEdit(false); }; const handleDelete = async () => { @@ -54,15 +68,26 @@ export default function UserSettings({ userId }) { {values?.username} + General - Password Danger Zone {tab === 'general' && } - {tab === 'password' && } {tab === 'delete' && } + {edit && ( + + {close => ( + + )} + + )} ); } diff --git a/components/pages/WebsiteList.js b/components/pages/WebsiteChartList.js similarity index 100% rename from components/pages/WebsiteList.js rename to components/pages/WebsiteChartList.js diff --git a/components/settings/ProfileDetails.js b/components/settings/ProfileDetails.js index bc6b5c0b..c0aaf0e6 100644 --- a/components/settings/ProfileDetails.js +++ b/components/settings/ProfileDetails.js @@ -4,7 +4,7 @@ import useUser from 'hooks/useUser'; import { FormattedMessage } from 'react-intl'; import DateRangeSetting from './DateRangeSetting'; import LanguageSetting from './LanguageSetting'; -import styles from './ProfileSettings.module.css'; +import styles from './ProfileDetails.module.css'; import ThemeSetting from './ThemeSetting'; export default function ProfileDetails() { diff --git a/components/settings/ProfileSettings.module.css b/components/settings/ProfileDetails.module.css similarity index 100% rename from components/settings/ProfileSettings.module.css rename to components/settings/ProfileDetails.module.css