import React, { RefObject, useEffect, useState } from 'react'; import throttle from 'lodash.throttle'; import { HeaderBlogContainer } from '../../styles/components/blog/Header.style'; import Easyblue from '../../assets/img/logo.svg'; import { Router } from '../../i18n'; import { HeaderBlogData } from '../../typings/entities'; import Menu from './Menu'; import Post from './Post'; import PrismicLink from '../PrismicLink'; interface Props extends HeaderBlogData { postRef?: RefObject; } export const Header: React.FC = (props) => { const [readProgress, setReadProgress] = useState(0); let readOffset: number; let readHeight: number; const { postRef, header_blog_discover_label, header_blog_discover_link, first_post_tag, second_post_tag, third_post_tag, fourth_post_tag } = props; const onScroll = throttle(() => { const scrollY: number = window.scrollY; setReadProgress(Math.round((scrollY - readOffset) / readHeight * 100)); }, 200); useEffect(() => { if (postRef) { readOffset = postRef.current?.getOffset(); readHeight = postRef.current?.getHeight() - 400; onScroll(); window.addEventListener('scroll', onScroll); return () => window.removeEventListener('scroll', onScroll); } }, []); return ( {header_blog_discover_label} Router.push('/blog')}/>
{header_blog_discover_label}
); };