import React from 'react';
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import { FeatureFlagProvider } from './contexts/FeatureFlagContext';
import Register from './pages/Register';
import Login from './pages/Login';
import ForgotPassword from './pages/ForgotPassword';
import ResetPassword from './pages/ResetPassword';
import Dashboard from './pages/Dashboard';
import PrivacyPolicy from './pages/PrivacyPolicy';
import TermsOfService from './pages/TermsOfService';
import './App.css';
import { useState } from 'react';
import { Link } from 'react-router-dom';

const App: React.FC = () => {
  const [cookieDismissed, setCookieDismissed] = useState(
    () => localStorage.getItem('cookie_notice_dismissed') === 'true'
  );

  const dismissCookies = () => {
    localStorage.setItem('cookie_notice_dismissed', 'true');
    setCookieDismissed(true);
  };

  return (
    <FeatureFlagProvider>
      <BrowserRouter>
        <div className="app-shell">
          <main className="app-main">
            <Routes>
              <Route path="/" element={<Navigate to="/login" />} />
              <Route path="/register" element={<Register />} />
              <Route path="/login" element={<Login />} />
              <Route path="/forgot-password" element={<ForgotPassword />} />
              <Route path="/reset-password" element={<ResetPassword />} />
              <Route path="/dashboard" element={<Dashboard />} />
              <Route path="/email-templates" element={<Navigate to="/dashboard" />} />
              <Route path="/membership-tiers" element={<Navigate to="/dashboard" />} />
              <Route path="/bounce-management" element={<Navigate to="/dashboard" />} />
              <Route path="/privacy-policy" element={<PrivacyPolicy />} />
              <Route path="/terms-of-service" element={<TermsOfService />} />
            </Routes>
          </main>
          <footer className="site-footer">
            <div>
              <Link to="/privacy-policy">Privacy Policy</Link>
              <Link to="/terms-of-service">Terms of Service</Link>
            </div>
            <div style={{ marginTop: '8px' }}>SASA Portal</div>
          </footer>
          {!cookieDismissed && (
            <div className="cookie-banner">
              <div>
                We use cookies for session authentication, security, and basic site functionality.
              </div>
              <button className="btn btn-primary" style={{ padding: '6px 12px' }} onClick={dismissCookies}>
                OK
              </button>
            </div>
          )}
        </div>
      </BrowserRouter>
    </FeatureFlagProvider>
  );
};

export default App;
