From 8d8a2f8133e2683e15e1eed43b32b476b1360c3c Mon Sep 17 00:00:00 2001 From: Daniel Schiavini Date: Fri, 7 Nov 2025 09:36:56 +0100 Subject: [PATCH] feat: release user profile - remove old code and release user profile even in legacy mode --- .../src/features/user-profile/UserProfile.tsx | 64 ++++++++++++------- .../user-profile/UserProfileButton.tsx | 28 -------- .../Header.tsx => UserProfileHeader.tsx} | 0 .../src/features/user-profile/home/Home.tsx | 22 ------- .../src/features/user-profile/home/index.ts | 1 - .../src/features/user-profile/index.ts | 1 - .../settings/ThemeToggleButton.tsx | 25 -------- .../curve-ui-kit/src/hooks/useFeatureFlags.ts | 3 - .../src/widgets/Header/DesktopHeader.tsx | 4 +- 9 files changed, 42 insertions(+), 106 deletions(-) delete mode 100644 packages/curve-ui-kit/src/features/user-profile/UserProfileButton.tsx rename packages/curve-ui-kit/src/features/user-profile/{home/Header.tsx => UserProfileHeader.tsx} (100%) delete mode 100644 packages/curve-ui-kit/src/features/user-profile/home/Home.tsx delete mode 100644 packages/curve-ui-kit/src/features/user-profile/home/index.ts delete mode 100644 packages/curve-ui-kit/src/features/user-profile/settings/ThemeToggleButton.tsx diff --git a/packages/curve-ui-kit/src/features/user-profile/UserProfile.tsx b/packages/curve-ui-kit/src/features/user-profile/UserProfile.tsx index 6304a2c696..9099ccb7e8 100644 --- a/packages/curve-ui-kit/src/features/user-profile/UserProfile.tsx +++ b/packages/curve-ui-kit/src/features/user-profile/UserProfile.tsx @@ -1,28 +1,44 @@ +import { useAccount } from 'wagmi' +import PersonIcon from '@mui/icons-material/Person' import Drawer from '@mui/material/Drawer' +import IconButton from '@mui/material/IconButton' +import Stack from '@mui/material/Stack' +import { Settings } from '@ui-kit/features/user-profile/settings/Settings' +import { UserProfileHeader } from '@ui-kit/features/user-profile/UserProfileHeader' +import { useSwitch } from '@ui-kit/hooks/useSwitch' import { SizesAndSpaces } from '@ui-kit/themes/design/1_sizes_spaces' -import { Home } from './home' -type Props = { - open: boolean - onClose: () => void -} +const { Spacing, Width } = SizesAndSpaces + +export const UserProfile = () => { + const [isOpen, open, close] = useSwitch(false) + const { address: walletAddress } = useAccount() + return ( + <> + + + -export const UserProfile = ({ open, onClose }: Props) => ( - t.design.Layer[1].Fill, - }, - }, - }} - > - - -) + t.design.Layer[1].Fill, + }, + }, + }} + > + + + + + + + ) +} diff --git a/packages/curve-ui-kit/src/features/user-profile/UserProfileButton.tsx b/packages/curve-ui-kit/src/features/user-profile/UserProfileButton.tsx deleted file mode 100644 index bba10c87ae..0000000000 --- a/packages/curve-ui-kit/src/features/user-profile/UserProfileButton.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import PersonIcon from '@mui/icons-material/Person' -import IconButton from '@mui/material/IconButton' -import { AdvancedModeSwitch } from '@ui-kit/features/user-profile/settings/AdvancedModeSwitch' -import { ThemeToggleButton } from '@ui-kit/features/user-profile/settings/ThemeToggleButton' -import { useUserProfileButton } from '@ui-kit/hooks/useFeatureFlags' -import { useSwitch } from '@ui-kit/hooks/useSwitch' -import { t } from '@ui-kit/lib/i18n' -import { UserProfile } from './UserProfile' - -export const UserProfileButton = () => { - const [isOpen, open, close] = useSwitch(false) - return ( - <> - {useUserProfileButton() ? ( - - - - ) : ( - <> - - - - )} - - - - ) -} diff --git a/packages/curve-ui-kit/src/features/user-profile/home/Header.tsx b/packages/curve-ui-kit/src/features/user-profile/UserProfileHeader.tsx similarity index 100% rename from packages/curve-ui-kit/src/features/user-profile/home/Header.tsx rename to packages/curve-ui-kit/src/features/user-profile/UserProfileHeader.tsx diff --git a/packages/curve-ui-kit/src/features/user-profile/home/Home.tsx b/packages/curve-ui-kit/src/features/user-profile/home/Home.tsx deleted file mode 100644 index 150dde0bf5..0000000000 --- a/packages/curve-ui-kit/src/features/user-profile/home/Home.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { useAccount } from 'wagmi' -import Stack from '@mui/material/Stack' -import { SizesAndSpaces } from '@ui-kit/themes/design/1_sizes_spaces' -import { Settings } from '../settings/Settings' -import { UserProfileHeader } from './Header' - -const { Spacing } = SizesAndSpaces - -type Props = { - onClose: () => void -} - -export const Home = ({ onClose }: Props) => { - const { address: walletAddress } = useAccount() - - return ( - - - - - ) -} diff --git a/packages/curve-ui-kit/src/features/user-profile/home/index.ts b/packages/curve-ui-kit/src/features/user-profile/home/index.ts deleted file mode 100644 index aefc0fb578..0000000000 --- a/packages/curve-ui-kit/src/features/user-profile/home/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Home } from './Home' diff --git a/packages/curve-ui-kit/src/features/user-profile/index.ts b/packages/curve-ui-kit/src/features/user-profile/index.ts index 81dea190eb..ddd01c8255 100644 --- a/packages/curve-ui-kit/src/features/user-profile/index.ts +++ b/packages/curve-ui-kit/src/features/user-profile/index.ts @@ -1,3 +1,2 @@ export { UserProfile } from './UserProfile' -export { UserProfileButton } from './UserProfileButton' export { useUserProfileStore } from './store' diff --git a/packages/curve-ui-kit/src/features/user-profile/settings/ThemeToggleButton.tsx b/packages/curve-ui-kit/src/features/user-profile/settings/ThemeToggleButton.tsx deleted file mode 100644 index a6666c7c35..0000000000 --- a/packages/curve-ui-kit/src/features/user-profile/settings/ThemeToggleButton.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { useCallback } from 'react' -import IconButton from '@mui/material/IconButton' -import { Tooltip } from '@ui-kit/shared/ui/Tooltip' -import { useUserProfileStore } from '../store' -import { themes } from './themes' - -export const ThemeToggleButton = ({ label }: { label: string }) => { - const theme = useUserProfileStore((state) => state.theme) - const onChange = useUserProfileStore((state) => state.setTheme) - const i = themes.findIndex((t) => t.type === theme) - const themeIndex = i === -1 ? 0 : i - const onClick = useCallback(() => { - const nextIndex = (themeIndex + 1) % themes.length - onChange(themes[nextIndex].type) - }, [themeIndex, onChange]) - - const { Component } = themes[themeIndex]! - return ( - - - - - - ) -} diff --git a/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts b/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts index 835dbcaa80..f08790600d 100644 --- a/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts +++ b/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts @@ -23,6 +23,3 @@ export const useDexMarketList = useBetaChannel /** New unified borrow form (BorrowTabContents) */ export const useBorrowUnifiedForm = useBetaChannel - -/** New user profile button on the header */ -export const useUserProfileButton = useStableChannel diff --git a/packages/curve-ui-kit/src/widgets/Header/DesktopHeader.tsx b/packages/curve-ui-kit/src/widgets/Header/DesktopHeader.tsx index 9e40bfd351..0380435cb2 100644 --- a/packages/curve-ui-kit/src/widgets/Header/DesktopHeader.tsx +++ b/packages/curve-ui-kit/src/widgets/Header/DesktopHeader.tsx @@ -5,7 +5,7 @@ import Container from '@mui/material/Container' import Toolbar from '@mui/material/Toolbar' import { ConnectWalletIndicator } from '@ui-kit/features/connect-wallet' import { ChainSwitcher } from '@ui-kit/features/switch-chain' -import { UserProfileButton } from '@ui-kit/features/user-profile' +import { UserProfile } from '@ui-kit/features/user-profile' import { type AppMenuOption } from '@ui-kit/shared/routes' import { GlobalBanner } from '@ui-kit/shared/ui/GlobalBanner' import { DEFAULT_BAR_SIZE } from '@ui-kit/themes/components' @@ -46,7 +46,7 @@ export const DesktopHeader = ({ - +