import Alert from 'react-bootstrap/Alert' import YouTube from '@/svgs/youtube-line.svg' import { useEffect, useState } from 'react' import { gql, useQuery } from '@apollo/client' import { datePivot } from '@/lib/time' export default function Snl ({ ignorePreference }) { const [show, setShow] = useState() const { data } = useQuery(gql`{ snl }`, { fetchPolicy: 'cache-and-network' }) useEffect(() => { const dismissed = window.localStorage.getItem('snl') if (!ignorePreference && dismissed && dismissed > new Date(dismissed) < datePivot(new Date(), { days: -6 })) { return } setShow(data?.snl) }, [data, ignorePreference]) if (!show) return null return ( <div className='d-flex'> <Alert variant='info' className='fw-bold mb-3 d-flex flex-shrink align-items-center' onClose={() => { setShow(undefined) window.localStorage.setItem('snl', new Date()) }} dismissible > <a href='https://www.youtube.com/@stackernews/live'> <YouTube width={24} height={24} className='me-2 fill-info' />Stacker News Live is streaming this week's top stories </a> </Alert> </div> ) }