All files / src/hooks useFeedbackOpen.ts

100% Statements 17/17
100% Branches 7/7
100% Functions 2/2
100% Lines 17/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 221x 1x 1x   1x 1x   1x 13x 13x 13x   13x 11x 5x 11x 11x 13x   13x 13x  
import { useEffect, useState } from 'react';
import { isFeedbackOpen } from '@/utils';
import { ENV } from '@/constants';
 
const expireHour = Number(ENV.EXPIRE_HOUR ?? 11);
const expireMinute = Number(ENV.EXPIRE_MINUTE ?? 30);
 
export const useFeedbackOpen = (date: string): boolean => {
  const [isExpiredMeal, setIsExpiredMeal] = useState(
    () => !isFeedbackOpen(date, expireHour, expireMinute),
  );
 
  useEffect(() => {
    const check = () =>
      setIsExpiredMeal(!isFeedbackOpen(date, expireHour, expireMinute));
    const interval = setInterval(check, 60_000);
    return () => clearInterval(interval);
  }, [date]);
 
  return isExpiredMeal;
};