diff --git a/docs/releases/0.34.1.md b/docs/releases/0.34.1.md new file mode 100644 index 00000000..f51313d6 --- /dev/null +++ b/docs/releases/0.34.1.md @@ -0,0 +1,9 @@ +# Thinker 0.34.1 + +```bash +docker pull tmsoftbrasil/thinker:0.34.1 +``` + +## Mudanças + +- feat(dashboard): Account preferences at the top of the user menu and account page split into tabs diff --git a/package-lock.json b/package-lock.json index c3e7d957..9ce8d562 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14768,7 +14768,7 @@ } }, "packages/thinker": { - "version": "0.34.0" + "version": "0.34.1" } } } diff --git a/packages/frontend/src/components/shell/UserMenu.tsx b/packages/frontend/src/components/shell/UserMenu.tsx index e10e8fe2..66c1573e 100644 --- a/packages/frontend/src/components/shell/UserMenu.tsx +++ b/packages/frontend/src/components/shell/UserMenu.tsx @@ -83,6 +83,9 @@ export default function UserMenu() {
{name}
{user?.email ?
{user.email}
: null} + } to="/account"> + {t('nav.accountPreferences')} + {t('shell.user.organization')} {org ? ( @@ -153,9 +156,6 @@ export default function UserMenu() { CLI - } to="/account"> - {t('nav.accountPreferences')} - } danger onSelect={() => void signOut()}> {t('nav.logOut')} diff --git a/packages/frontend/src/pages/Account.tsx b/packages/frontend/src/pages/Account.tsx index e30d1c61..f4ed7eb0 100644 --- a/packages/frontend/src/pages/Account.tsx +++ b/packages/frontend/src/pages/Account.tsx @@ -1,5 +1,5 @@ import { useState, type FormEvent, type ReactNode } from 'react'; -import { useNavigate } from 'react-router'; +import { useNavigate, useSearchParams } from 'react-router'; import { ChevronLeft, Monitor, Moon, Sun } from 'lucide-react'; import { authClient } from '../services/auth-client.js'; import { toast } from '../services/toast-store.js'; @@ -8,7 +8,9 @@ import { setThemePreference, themePreference, type ThemePreference } from '../li import { useSignal } from '../lib/signal.js'; import { useResource } from '../lib/use-resource.js'; import CopyButton from '../components/CopyButton.js'; -import { Button, Field, Panel } from '../components/ui.js'; +import { Button, Field, Panel, Tabs, type TabItem } from '../components/ui.js'; + +type AccountTab = 'profile' | 'security' | 'workspace' | 'appearance' | 'language'; const THEMES: Array<{ value: ThemePreference; label: () => string; icon: ReactNode }> = [ { value: 'light', label: () => t('account.appearance.light'), icon: