import SvgIcon from '@/components/SvgIcon'
import useScroll from '@/hooks/useScroll'
import useUser from '@/hooks/useUser'
import { resizeImage } from '@/utils/common'
const NavigationButtons = () => {
const navigate = useNavigate()
enum ACTION {
BACK = 'back',
FORWARD = 'forward',
}
const handleNavigate = (action: ACTION) => {
if (action === ACTION.BACK) navigate(-1)
if (action === ACTION.FORWARD) navigate(1)
}
return (
{[ACTION.BACK, ACTION.FORWARD].map(action => (
handleNavigate(action)}
key={action}
className='app-region-no-drag btn-hover-animation rounded-lg p-2 text-gray-500 transition duration-300 after:rounded-full after:bg-black/[.06] hover:text-gray-900 dark:text-gray-300 dark:after:bg-white/10 dark:hover:text-gray-200'
>
))}
)
}
const SearchBox = () => {
const [keyword, setKeyword] = useState('')
const navigate = useNavigate()
const toSearch = (e: React.KeyboardEvent) => {
if (!keyword) return
if (e.key === 'Enter') {
navigate(`/search/${keyword}`)
}
}
return (
)
}
const Settings = () => {
return (
)
}
const Avatar = () => {
const navigate = useNavigate()
const { data: user } = useUser()
const avatarUrl = resizeImage(user?.profile?.avatarUrl ?? '', 'sm')
return (
navigate('/login')}
className='app-region-no-drag h-9 w-9 rounded-full bg-gray-100 dark:bg-gray-700'
/>
)
}
const Topbar = () => {
/**
* Show topbar background when scroll down
*/
const [mainContainer, setMainContainer] = useState(null)
const scroll = useScroll(mainContainer, { throttle: 100 })
useEffect(() => {
setMainContainer(document.getElementById('mainContainer'))
}, [setMainContainer])
return (
)
}
export default Topbar