2021-04-22 06:10:43 -07:00
|
|
|
import { useEffect, useState } from 'react'
|
2021-04-24 15:02:13 -07:00
|
|
|
import { RefreshClockwiseIcon } from './icons'
|
2021-04-22 05:33:35 -07:00
|
|
|
import { defaultLayouts } from './TradePageGrid'
|
|
|
|
import useLocalStorageState from '../hooks/useLocalStorageState'
|
2021-04-22 07:45:36 -07:00
|
|
|
import Tooltip from './Tooltip'
|
2021-04-22 05:33:35 -07:00
|
|
|
|
|
|
|
const ResetLayout = ({ className = '' }) => {
|
2021-04-22 06:10:43 -07:00
|
|
|
const [spin, setSpin] = useState(false)
|
2021-04-22 05:33:35 -07:00
|
|
|
const [, setSavedLayouts] = useLocalStorageState(
|
|
|
|
'savedLayouts',
|
|
|
|
defaultLayouts
|
|
|
|
)
|
|
|
|
|
2021-04-22 06:10:43 -07:00
|
|
|
useEffect(() => {
|
|
|
|
const timer = setTimeout(() => {
|
|
|
|
setSpin(false)
|
|
|
|
}, 500)
|
|
|
|
return () => clearTimeout(timer)
|
|
|
|
}, [spin])
|
|
|
|
|
|
|
|
const handleResetLayout = () => {
|
|
|
|
setSavedLayouts(defaultLayouts)
|
|
|
|
setSpin(true)
|
|
|
|
}
|
|
|
|
|
2021-04-22 05:33:35 -07:00
|
|
|
return (
|
2021-04-24 15:02:13 -07:00
|
|
|
<div className={`flex relative ${className} mr-4`}>
|
|
|
|
<Tooltip content="Reset Layout" className="text-xs py-1">
|
2021-04-22 07:45:36 -07:00
|
|
|
<button
|
|
|
|
onClick={() => handleResetLayout()}
|
2021-04-24 15:02:13 -07:00
|
|
|
className="flex items-center justify-center rounded-full bg-th-bkg-3 w-8 h-8 hover:text-th-primary focus:outline-none"
|
2021-04-22 07:45:36 -07:00
|
|
|
>
|
2021-04-24 15:02:13 -07:00
|
|
|
<RefreshClockwiseIcon
|
|
|
|
className={`w-5 h-5 ${spin ? 'animate-spin' : null}`}
|
|
|
|
/>
|
2021-04-22 07:45:36 -07:00
|
|
|
</button>
|
|
|
|
</Tooltip>
|
2021-04-22 05:33:35 -07:00
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default ResetLayout
|