mango-v4-ui/components/account/HideMangoAccount.tsx

53 lines
1.4 KiB
TypeScript
Raw Normal View History

import {
toggleMangoAccountHidden,
useMangoAccountHidden,
} from 'hooks/useMangoAccountHidden'
import { useWallet } from '@solana/wallet-adapter-react'
import useMangoAccount from 'hooks/useMangoAccount'
import Switch from '@components/forms/Switch'
import { useState } from 'react'
import Loading from '@components/shared/Loading'
const HideMangoAccount = () => {
const { publicKey, signMessage } = useWallet()
const { mangoAccountPk } = useMangoAccount()
const { accountHidden, refetch } = useMangoAccountHidden()
const [signingForHide, setSigningForHide] = useState(false)
2023-09-03 07:07:40 -07:00
const handleHideMangoAccount = async () => {
if (!publicKey || !mangoAccountPk || !signMessage) return
setSigningForHide(true)
try {
await toggleMangoAccountHidden(
mangoAccountPk,
publicKey,
!(accountHidden ?? false),
signMessage,
)
refetch()
setSigningForHide(false)
} catch (e) {
console.error('Error toggling account visibility', e)
setSigningForHide(false)
}
}
return (
<>
<div className="flex items-center justify-between border-t border-th-bkg-3 p-4">
<p className="">Hide Mango Account From Search</p>
{signingForHide ? (
<Loading />
) : (
<Switch
checked={accountHidden ?? false}
2023-09-03 07:07:40 -07:00
onChange={handleHideMangoAccount}
/>
)}
</div>
</>
)
}
export default HideMangoAccount