diff --git a/src/v2/components/Account/components/AccountModal/AccountModal.tsx b/src/v2/components/Account/components/AccountModal/AccountModal.tsx
index 93b1f0b6e5..a3794a9aa6 100644
--- a/src/v2/components/Account/components/AccountModal/AccountModal.tsx
+++ b/src/v2/components/Account/components/AccountModal/AccountModal.tsx
@@ -1,14 +1,5 @@
-import { CheckMark } from "@/components/CheckMark"
-import { CircularProgressBar } from "@/components/CircularProgressBar"
-import { CopyableAddress } from "@/components/CopyableAddress"
-import { GuildAvatar } from "@/components/GuildAvatar"
-import { ProfileAvatar } from "@/components/ProfileAvatar"
import { accountModalAtom } from "@/components/Providers/atoms"
-import useConnectorNameAndIcon from "@/components/Web3ConnectionManager/hooks/useConnectorNameAndIcon"
import { useWeb3ConnectionManager } from "@/components/Web3ConnectionManager/hooks/useWeb3ConnectionManager"
-import { Anchor } from "@/components/ui/Anchor"
-import { Avatar } from "@/components/ui/Avatar"
-import { buttonVariants } from "@/components/ui/Button"
import {
Dialog,
DialogBody,
@@ -18,43 +9,23 @@ import {
DialogHeader,
DialogTitle,
} from "@/components/ui/Dialog"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuLabel,
- DropdownMenuTrigger,
-} from "@/components/ui/DropdownMenu"
-import { IconButton } from "@/components/ui/IconButton"
import { Separator } from "@/components/ui/Separator"
-import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/Tooltip"
import { useUserPublic } from "@/hooks/useUserPublic"
-import { LevelBadge } from "@app/(marketing)/profile/_components/LevelBadge"
-import { useExperienceProgression } from "@app/(marketing)/profile/_hooks/useExperienceProgression"
-import { ArrowRight, DotsThreeVertical } from "@phosphor-icons/react"
-import { SignOut } from "@phosphor-icons/react/dist/ssr"
import useUser from "components/[guild]/hooks/useUser"
-import useResolveAddress from "hooks/useResolveAddress"
import { useAtom } from "jotai"
import { deleteKeyPairFromIdb } from "utils/keyPair"
-import { useAccount } from "wagmi"
+import { Account } from "./components/Account"
import { AccountConnections } from "./components/AccountConnections"
-import { NetworkIndicator } from "./components/NetworkIndicator"
+import { AccountGuildProfile } from "./components/AccountGuildProfile"
import { UsersGuildPins } from "./components/UsersGuildPins"
const AccountModal = () => {
- const { address, disconnect, type } = useWeb3ConnectionManager()
- const { connectorName } = useConnectorNameAndIcon()
-
+ const { address, disconnect } = useWeb3ConnectionManager()
const [isOpen, setIsOpen] = useAtom(accountModalAtom)
const { id, guildProfile } = useUser()
const { deleteKeys } = useUserPublic()
- const { address: evmAddress, chainId } = useAccount()
- const domain = useResolveAddress(evmAddress)
- const xp = useExperienceProgression(true)
-
const handleLogout = () => {
const keysToRemove = Object.keys({ ...window.localStorage }).filter((key) =>
/^dc_auth_[a-z]*$/.test(key)
@@ -65,7 +36,7 @@ const AccountModal = () => {
})
deleteKeyPairFromIdb(id)
- ?.catch(() => {})
+ ?.catch(() => null)
.finally(() => {
setIsOpen(false)
disconnect()
@@ -87,129 +58,12 @@ const AccountModal = () => {
{address ? (
<>
{guildProfile ? (
-
- {xp && (
-
- )}
-
-
-
- {guildProfile.name || guildProfile.username}
-
-
-
-
- @{guildProfile.username}
-
- {xp && (
-
- {xp.experienceCount} XP
-
- {`${xp.currentLevelXp} -> `}
-
- {xp.experienceCount} XP
-
- {` -> ${xp.nextLevelXp}`}
-
-
- )}
-
-
-
setIsOpen(false)}
- >
- View profile
-
-
-
-
- }
- />
-
-
-
- Connected with {connectorName}
-
-
-
-
- Disconnect
-
-
-
-
-
-
+ setIsOpen(false)}
+ />
) : (
-
-
-
-
-
-
-
-
-
- {`Connected with ${connectorName}`}
-
-
-
-
-
-
-
- }
- variant="outline"
- size="sm"
- className="ml-auto"
- onClick={handleLogout}
- />
-
-
- Disconnect
-
-
-
+
)}
diff --git a/src/v2/components/Account/components/AccountModal/components/Account.tsx b/src/v2/components/Account/components/AccountModal/components/Account.tsx
new file mode 100644
index 0000000000..f47ae46619
--- /dev/null
+++ b/src/v2/components/Account/components/AccountModal/components/Account.tsx
@@ -0,0 +1,77 @@
+import { CopyableAddress } from "@/components/CopyableAddress"
+import { GuildAvatar } from "@/components/GuildAvatar"
+import useConnectorNameAndIcon from "@/components/Web3ConnectionManager/hooks/useConnectorNameAndIcon"
+import { useWeb3ConnectionManager } from "@/components/Web3ConnectionManager/hooks/useWeb3ConnectionManager"
+import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuTrigger,
+} from "@/components/ui/DropdownMenu"
+import { IconButton } from "@/components/ui/IconButton"
+import { DotsThreeVertical, File, SignOut } from "@phosphor-icons/react"
+import useResolveAddress from "hooks/useResolveAddress"
+import { useAccount } from "wagmi"
+import { NetworkIndicator } from "./NetworkIndicator"
+
+type AccountProps = {
+ handleLogout: () => void
+}
+
+export const Account = ({ handleLogout }: AccountProps) => {
+ const { address } = useWeb3ConnectionManager()
+ const { connectorName } = useConnectorNameAndIcon()
+
+ const { address: evmAddress } = useAccount()
+ const domain = useResolveAddress(evmAddress ?? "")
+
+ if (!address) return null
+
+ return (
+
+
+
+
+
+
+
+
+
+ {`Connected with ${connectorName}`}
+
+
+
+
+
+
+
+ }
+ />
+
+
+
+
+ Purchase history
+
+
+
+ Disconnect
+
+
+
+
+ )
+}
diff --git a/src/v2/components/Account/components/AccountModal/components/AccountGuildProfile.tsx b/src/v2/components/Account/components/AccountModal/components/AccountGuildProfile.tsx
new file mode 100644
index 0000000000..6a803eb8f4
--- /dev/null
+++ b/src/v2/components/Account/components/AccountModal/components/AccountGuildProfile.tsx
@@ -0,0 +1,133 @@
+import { CheckMark } from "@/components/CheckMark"
+import { CircularProgressBar } from "@/components/CircularProgressBar"
+import { ProfileAvatar } from "@/components/ProfileAvatar"
+import { Anchor } from "@/components/ui/Anchor"
+import { Avatar } from "@/components/ui/Avatar"
+import { buttonVariants } from "@/components/ui/Button"
+import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuLabel,
+ DropdownMenuSeparator,
+ DropdownMenuTrigger,
+} from "@/components/ui/DropdownMenu"
+import { IconButton } from "@/components/ui/IconButton"
+import { Separator } from "@/components/ui/Separator"
+import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/Tooltip"
+import { LevelBadge } from "@app/(marketing)/profile/_components/LevelBadge"
+import { ArrowRight, DotsThreeVertical } from "@phosphor-icons/react"
+import { File, SignOut } from "@phosphor-icons/react/dist/ssr"
+
+import useConnectorNameAndIcon from "@/components/Web3ConnectionManager/hooks/useConnectorNameAndIcon"
+import { useExperienceProgression } from "@app/(marketing)/profile/_hooks/useExperienceProgression"
+import useUser from "components/[guild]/hooks/useUser"
+import { NetworkIndicator } from "../components/NetworkIndicator"
+
+type AccountGuildProfileProps = {
+ handleLogout: () => void
+ onClose: () => void
+}
+
+export const AccountGuildProfile = ({
+ handleLogout,
+ onClose,
+}: AccountGuildProfileProps) => {
+ const { guildProfile } = useUser()
+ const xp = useExperienceProgression(true)
+ const { connectorName } = useConnectorNameAndIcon()
+
+ if (!guildProfile) return null
+
+ return (
+
+ {xp && (
+
+ )}
+
+
+
+ {guildProfile.name || guildProfile.username}
+
+
+
+
+ @{guildProfile.username}
+
+ {xp && (
+
+ {xp.experienceCount} XP
+
+ {`${xp.currentLevelXp} -> `}
+ {xp.experienceCount} XP
+ {` -> ${xp.nextLevelXp}`}
+
+
+ )}
+
+
+
+ View profile
+
+
+
+
+ }
+ />
+
+
+
+
+ Purchase history
+
+
+
+ Connected with {connectorName}
+
+
+
+
+ Disconnect
+
+
+
+
+
+
+ )
+}