// Byrne Buyer Guarantee ... Production entry
// StoryBrand-framed landing page for Byrne Real Estate Group

function App() {
  const [modalOpen, setModalOpen] = React.useState(false);
  const [modalMode, setModalMode] = React.useState('call'); // 'call' | 'guide'

  // Exit intent ... open lead modal once per browser session
  React.useEffect(() => {
    let fired = false;
    const key = 'byrne_exit_intent_fired';
    if (sessionStorage.getItem(key)) return;
    const onLeave = (e) => {
      if (fired) return;
      if (e.clientY <= 0 && e.relatedTarget == null) {
        fired = true;
        sessionStorage.setItem(key, '1');
        setModalMode('call');
        setModalOpen(true);
      }
    };
    document.addEventListener('mouseout', onLeave);
    return () => document.removeEventListener('mouseout', onLeave);
  }, []);

  const openModal = () => { setModalMode('call'); setModalOpen(true); };
  const openGuide = () => { setModalMode('guide'); setModalOpen(true); };
  const closeModal = () => setModalOpen(false);

  return (
    <>
      <SBNav onOpenModal={openModal} />
      <SBHero onOpenModal={openModal} onOpenGuide={openGuide} layout="fullbleed" />
      <SBProblem />
      <SBGuide />
      <SBPlan onOpenModal={openModal} onOpenGuide={openGuide} />
      <SBStakes />
      <SBTagline />
      <Packages onOpenModal={openModal} />
      <SBSuccess />
      <SBFAQ />
      <SBClose onOpenModal={openModal} onOpenGuide={openGuide} />
      <SBFooter />
      <LeadModal open={modalOpen} onClose={closeModal} mode={modalMode} />
    </>
  );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);
