
import { useState, useEffect, useCallback } from 'react';

export const useWelcomeDialog = () => {
  const [showWelcome, setShowWelcome] = useState(false);
  
  // 환영 다이얼로그 표시 여부 확인
  const checkWelcomeDialogState = useCallback(() => {
    // 현재 세션에서 이미 환영 메시지를 닫았는지 확인
    const sessionClosed = sessionStorage.getItem('welcomeClosedThisSession') === 'true';
    
    if (sessionClosed) {
      console.log('useWelcomeDialog - 이번 세션에서 이미 환영 메시지를 닫았습니다');
      setShowWelcome(false);
      return;
    }
    
    const dontShowWelcome = localStorage.getItem('dontShowWelcome');
    console.log('useWelcomeDialog - dontShowWelcome 값:', dontShowWelcome);
    
    // 명시적으로 'true' 문자열인 경우에만 숨김 처리
    if (dontShowWelcome === 'true') {
      console.log('useWelcomeDialog - 환영 메시지 표시하지 않음 (저장된 설정)');
      setShowWelcome(false);
    } else {
      console.log('useWelcomeDialog - 환영 메시지 표시함');
      setShowWelcome(true);
    }
  }, []);
  
  // 환영 다이얼로그 닫기 핸들러
  const handleCloseWelcome = useCallback((dontShowAgain: boolean) => {
    setShowWelcome(false);
    
    // 이번 세션에서 닫았음을 기록
    sessionStorage.setItem('welcomeClosedThisSession', 'true');
    
    // 사용자가 더 이상 보지 않기를 선택한 경우
    if (dontShowAgain) {
      localStorage.setItem('dontShowWelcome', 'true');
      sessionStorage.setItem('dontShowWelcome', 'true');
      console.log('useWelcomeDialog - 환영 팝업 더 이상 표시하지 않기 설정됨:', dontShowAgain);
      
      // 설정 확인
      const savedValue = localStorage.getItem('dontShowWelcome');
      console.log('useWelcomeDialog - 설정 후 dontShowWelcome 저장값:', savedValue);
    } else {
      // 체크하지 않은 경우 명시적으로 false 저장
      localStorage.setItem('dontShowWelcome', 'false');
      sessionStorage.setItem('dontShowWelcome', 'false');
    }
  }, []);
  
  return {
    showWelcome,
    setShowWelcome,
    checkWelcomeDialogState,
    handleCloseWelcome
  };
};
