Files
explore/ui/snippets/user/UserProfileDesktop.tsx
tom goriunovandGitHub 401dc58402 Smart wallet auth (#3220)
* basic login button implementation

* refactoring and add dynamic auth button to the other pages

* connect wallet without authenticating an user

* login and logout user in blockscout account

* refactoring and RPC overrides

* authenticate user with connected wallet

* add ENS to profile button

* override evm chains and fix contract write with waas wallet

* disconnect wallet and fix docker build

* add dynamic imports to components that use web3 wallet packages

* refactor user profile directory

* clean up

* tweaks

* update pw ci script

* fix "connect wallet" button behavior

* handle linking email to profile with dynamic provider

* fix test

* async loading web3 hooks and remove dynamic loading from components that use them

* fix pw tests

* add account navigation in horizontal layout when auth provider is dynamic

* fix address verification modal

* review fixes

* spelling fixes
2026-02-18 19:42:44 +01:00

34 lines
1.2 KiB
TypeScript

import { type ButtonProps } from '@chakra-ui/react';
import dynamic from 'next/dynamic';
import config from 'configs/app';
import UserProfileAuth0 from 'ui/snippets/user/profile/auth0/UserProfileDesktop';
import UserWalletDesktop from 'ui/snippets/user/wallet/UserWalletDesktop';
const UserProfileDynamic = dynamic(() => import('ui/snippets/user/profile/dynamic/UserProfile'), { ssr: false });
interface Props {
buttonSize?: ButtonProps['size'];
buttonVariant?: ButtonProps['variant'];
}
const UserProfileDesktop = ({ buttonSize, buttonVariant = 'header' }: Props) => {
const accountFeature = config.features.account;
if (accountFeature.isEnabled) {
switch (accountFeature.authProvider) {
case 'auth0':
return <UserProfileAuth0 buttonSize={ buttonSize } buttonVariant={ buttonVariant }/>;
case 'dynamic':
return <UserProfileDynamic buttonSize={ buttonSize } buttonVariant={ buttonVariant }/>;
default:
return null;
}
}
if (config.features.blockchainInteraction.isEnabled) {
return <UserWalletDesktop buttonSize={ buttonSize } buttonVariant={ buttonVariant }/>;
}
return null;
};
export default UserProfileDesktop;