diff --git a/assets/profile.svg b/assets/profile.svg new file mode 100644 index 00000000..133b1bc1 --- /dev/null +++ b/assets/profile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/components/common/Calendar.module.css b/components/common/Calendar.module.css index 5e50e79a..f1630fa7 100644 --- a/components/common/Calendar.module.css +++ b/components/common/Calendar.module.css @@ -1,7 +1,6 @@ .calendar { display: flex; flex-direction: column; - font-size: var(--font-size-sm); flex: 1; min-height: 306px; } diff --git a/components/common/Dropdown.module.css b/components/common/Dropdown.module.css index a1877529..e0db7432 100644 --- a/components/common/Dropdown.module.css +++ b/components/common/Dropdown.module.css @@ -12,7 +12,6 @@ flex: 1; display: flex; justify-content: space-between; - font-size: var(--font-size-sm); flex-wrap: nowrap; white-space: nowrap; padding: 4px 16px; diff --git a/components/common/Menu.module.css b/components/common/Menu.module.css index 63491d40..d9a23371 100644 --- a/components/common/Menu.module.css +++ b/components/common/Menu.module.css @@ -7,8 +7,6 @@ } .option { - font-size: var(--font-size-sm); - font-weight: normal; background: var(--base50); padding: 4px 16px; cursor: pointer; diff --git a/components/common/UpdateNotice.module.css b/components/common/UpdateNotice.module.css index 5161ea71..1837b4df 100644 --- a/components/common/UpdateNotice.module.css +++ b/components/common/UpdateNotice.module.css @@ -6,7 +6,6 @@ } .message { - font-size: var(--font-size-sm); font-weight: 600; flex: 1; text-align: center; diff --git a/components/layout/FormLayout.module.css b/components/layout/FormLayout.module.css index 48363f65..576be958 100644 --- a/components/layout/FormLayout.module.css +++ b/components/layout/FormLayout.module.css @@ -54,7 +54,6 @@ .msg { color: var(--msgColor); background: var(--red400); - font-size: var(--font-size-sm); padding: 4px 8px; border-radius: 4px; white-space: nowrap; diff --git a/components/metrics/ActiveUsers.module.css b/components/metrics/ActiveUsers.module.css index e290e3de..cc231d16 100644 --- a/components/metrics/ActiveUsers.module.css +++ b/components/metrics/ActiveUsers.module.css @@ -5,7 +5,6 @@ .text { display: flex; - font-size: var(--font-size-md); } .value { diff --git a/components/metrics/DataTable.module.css b/components/metrics/DataTable.module.css index 93c8f622..070dca1f 100644 --- a/components/metrics/DataTable.module.css +++ b/components/metrics/DataTable.module.css @@ -1,7 +1,6 @@ .table { position: relative; height: 100%; - font-size: var(--font-size-sm); display: grid; grid-template-rows: fit-content(100%) auto; overflow: hidden; @@ -23,11 +22,9 @@ .title { display: flex; font-weight: 600; - font-size: var(--font-size-md); } .metric { - font-size: var(--font-size-sm); font-weight: 600; text-align: center; width: 100px; diff --git a/components/metrics/MetricCard.module.css b/components/metrics/MetricCard.module.css index 7de16157..f80b641b 100644 --- a/components/metrics/MetricCard.module.css +++ b/components/metrics/MetricCard.module.css @@ -6,7 +6,7 @@ } .value { - font-size: var(--font-size-xl); + font-size: var(--font-size-xxl); line-height: 40px; min-height: 40px; font-weight: 600; @@ -14,7 +14,6 @@ } .label { - font-size: var(--font-size-md); white-space: nowrap; display: flex; align-items: center; diff --git a/components/metrics/MetricsTable.module.css b/components/metrics/MetricsTable.module.css index 7f3da961..ab57932b 100644 --- a/components/metrics/MetricsTable.module.css +++ b/components/metrics/MetricsTable.module.css @@ -2,7 +2,6 @@ position: relative; min-height: 430px; height: 100%; - font-size: var(--font-size-sm); display: flex; flex-direction: column; } diff --git a/components/pages/settings/users/UserPasswordForm.js b/components/pages/settings/users/UserPasswordForm.js index 0e75fcd1..6cf2c4d0 100644 --- a/components/pages/settings/users/UserPasswordForm.js +++ b/components/pages/settings/users/UserPasswordForm.js @@ -1,7 +1,6 @@ import { useRef } from 'react'; import { Form, FormRow, FormInput, FormButtons, PasswordField, Button } from 'react-basics'; import useApi from 'hooks/useApi'; -import styles from './UserPasswordForm.module.css'; import useUser from 'hooks/useUser'; export default function UserPasswordForm({ onSave, onClose, userId }) { @@ -36,7 +35,7 @@ export default function UserPasswordForm({ onSave, onClose, userId }) { }; return ( -
+ {isCurrentUser && ( diff --git a/components/pages/settings/users/UserPasswordForm.module.css b/components/pages/settings/users/UserPasswordForm.module.css deleted file mode 100644 index 793682e1..00000000 --- a/components/pages/settings/users/UserPasswordForm.module.css +++ /dev/null @@ -1,6 +0,0 @@ -.form { - display: flex; - flex-direction: column; - gap: 30px; - width: 300px; -} diff --git a/components/settings/DateRangeSetting.js b/components/settings/DateRangeSetting.js index c2c2c94c..4f129045 100644 --- a/components/settings/DateRangeSetting.js +++ b/components/settings/DateRangeSetting.js @@ -1,35 +1,21 @@ import { FormattedMessage } from 'react-intl'; -import DateFilter, { filterOptions } from 'components/common/DateFilter'; -import { Button } from 'react-basics'; +import DateFilter from 'components/common/DateFilter'; +import { Button, Flexbox } from 'react-basics'; import useDateRange from 'hooks/useDateRange'; import { DEFAULT_DATE_RANGE } from 'lib/constants'; -import styles from './DateRangeSetting.module.css'; export default function DateRangeSetting() { const [dateRange, setDateRange] = useDateRange(); const { startDate, endDate, value } = dateRange; - const options = filterOptions.filter(e => e.value !== 'all'); - function handleChange(value) { - setDateRange(value); - } - - function handleReset() { - setDateRange(DEFAULT_DATE_RANGE); - } + const handleReset = () => setDateRange(DEFAULT_DATE_RANGE); return ( - <> - - - + ); } diff --git a/components/settings/DateRangeSetting.module.css b/components/settings/DateRangeSetting.module.css deleted file mode 100644 index 230e7c97..00000000 --- a/components/settings/DateRangeSetting.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.button { - margin-left: 10px; -} diff --git a/components/settings/LanguageSetting.js b/components/settings/LanguageSetting.js index b20250e5..f8ba769e 100644 --- a/components/settings/LanguageSetting.js +++ b/components/settings/LanguageSetting.js @@ -13,13 +13,13 @@ export default function LanguageSetting() { const { locale, saveLocale } = useLocale(); const options = Object.keys(languages); - function handleReset() { - saveLocale(DEFAULT_LOCALE); - } + const handleReset = () => saveLocale(DEFAULT_LOCALE); + + const renderValue = value => languages[value].label; return ( - - + + {item => {languages[item].label}} diff --git a/components/settings/ProfileDetails.js b/components/settings/ProfileDetails.js index fb7ef6d7..d1fdb6aa 100644 --- a/components/settings/ProfileDetails.js +++ b/components/settings/ProfileDetails.js @@ -16,7 +16,7 @@ const messages = defineMessages({ }); export default function ProfileDetails() { - const user = useUser(); + const { user } = useUser(); const { formatMessage } = useIntl(); if (!user) { diff --git a/components/settings/ThemeSetting.module.css b/components/settings/ThemeSetting.module.css index a827c88f..a9810355 100644 --- a/components/settings/ThemeSetting.module.css +++ b/components/settings/ThemeSetting.module.css @@ -1,11 +1,8 @@ .buttons { display: flex; -} - -.buttons button { - margin-right: 20px; + gap: 10px; } .active { - border: 1px solid var(--primary400); + border: 2px solid var(--primary400); } diff --git a/components/settings/TimezoneSetting.js b/components/settings/TimezoneSetting.js index 7bed3db3..01fbd281 100644 --- a/components/settings/TimezoneSetting.js +++ b/components/settings/TimezoneSetting.js @@ -1,4 +1,4 @@ -import { Dropdown, Item, Button } from 'react-basics'; +import { Dropdown, Item, Button, Flexbox } from 'react-basics'; import { useIntl, defineMessages } from 'react-intl'; import { listTimeZones } from 'timezone-support'; import useTimezone from 'hooks/useTimezone'; @@ -13,16 +13,14 @@ export default function TimezoneSetting() { const [timezone, saveTimezone] = useTimezone(); const options = listTimeZones(); - function handleReset() { - saveTimezone(getTimezone()); - } + const handleReset = () => saveTimezone(getTimezone()); return ( - <> + {item => {item}} - + ); } diff --git a/components/settings/UserButton.module.css b/components/settings/UserButton.module.css index 1ef6667c..6c4dfdd0 100644 --- a/components/settings/UserButton.module.css +++ b/components/settings/UserButton.module.css @@ -11,7 +11,6 @@ } .icon svg { - font-size: 16px; height: 16px; width: 16px; } diff --git a/hooks/useConfig.js b/hooks/useConfig.js index 678b6d1c..b395829c 100644 --- a/hooks/useConfig.js +++ b/hooks/useConfig.js @@ -9,7 +9,7 @@ export default function useConfig() { const { get } = useApi(); async function loadConfig() { - const { data } = await get('/config'); + const data = await get('/config'); loading = false; setConfig(data); } diff --git a/hooks/useLocale.js b/hooks/useLocale.js index 6063f7ab..e7062d36 100644 --- a/hooks/useLocale.js +++ b/hooks/useLocale.js @@ -1,10 +1,11 @@ import { useEffect } from 'react'; import { useRouter } from 'next/router'; -import { get, setItem } from 'next-basics'; +import { setItem } from 'next-basics'; import { LOCALE_CONFIG } from 'lib/constants'; import { getDateLocale, getTextDirection } from 'lib/lang'; import useStore, { setLocale } from 'store/app'; import useForceUpdate from 'hooks/useForceUpdate'; +import useApi from 'hooks/useApi'; import enUS from 'public/intl/messages/en-US.json'; const messages = { @@ -19,6 +20,7 @@ export default function useLocale() { const forceUpdate = useForceUpdate(); const dir = getTextDirection(locale); const dateLocale = getDateLocale(locale); + const { get } = useApi(); async function loadMessages(locale) { const data = await get(`${basePath}/intl/messages/${locale}.json`); diff --git a/hooks/useShareToken.js b/hooks/useShareToken.js index 4084cce2..bac7ec97 100644 --- a/hooks/useShareToken.js +++ b/hooks/useShareToken.js @@ -9,7 +9,7 @@ export default function useShareToken(shareId) { const { get } = useApi(); async function loadToken(id) { - const { data } = await get(`/share/${id}`); + const data = await get(`/share/${id}`); if (data) { setShareToken(data); diff --git a/pages/_app.js b/pages/_app.js index 8bb8c07b..66dd6f73 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -32,7 +32,12 @@ export default function App({ Component, pageProps }) { return ( - + null} + >