import { INITIAL_ANIMATION_SETTINGS } from '@components/settings/AnimationSettings' import mangoStore from '@store/mangoStore' import useJupiterMints from 'hooks/useJupiterMints' import useLocalStorageState from 'hooks/useLocalStorageState' import { useEffect, useMemo } from 'react' import Particles from 'react-tsparticles' import { ANIMATION_SETTINGS_KEY } from 'utils/constants' const SwapSuccessParticles = () => { const { mangoTokens } = useJupiterMints() const showSwapAnimation = mangoStore((s) => s.swap.success) const swapTokenMint = mangoStore((s) => s.swap.outputBank)?.mint.toString() const set = mangoStore((s) => s.set) const [animationSettings] = useLocalStorageState( ANIMATION_SETTINGS_KEY, INITIAL_ANIMATION_SETTINGS ) const tokenLogo = useMemo(() => { if (!mangoTokens.length || !swapTokenMint) return '' const token = mangoTokens.find((t) => t.address === swapTokenMint) return token?.logoURI ? token.logoURI : '' }, [mangoTokens, swapTokenMint]) useEffect(() => { if (showSwapAnimation) { setTimeout( () => set((s) => { s.swap.success = false }), 8000 ) } }, [showSwapAnimation]) return animationSettings['swap-success'] && showSwapAnimation && tokenLogo ? ( ) : null } export default SwapSuccessParticles