T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/lavocat.ca/private_html/src/components/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.ca/private_html/src/components/LawyerRegistrationLayout.tsx
import React, { ReactNode } from 'react';
import Head from 'next/head';
import Link from 'next/link';
import { Shield, Globe } from 'lucide-react';

interface LawyerRegistrationLayoutProps {
  children: ReactNode;
  title?: string;
  description?: string;
  language?: 'fr' | 'en';
  onLanguageToggle?: () => void;
}

const LawyerRegistrationLayout: React.FC<LawyerRegistrationLayoutProps> = ({
  children,
  title,
  description,
  language = 'fr',
  onLanguageToggle
}) => {
  const defaultTitle = language === 'fr' 
    ? 'Inscription avocat vérifié - avocat.quebec'
    : 'Verified Lawyer Registration - avocat.quebec';
  
  const defaultDescription = language === 'fr'
    ? 'Rejoignez avocat.quebec en tant qu\'avocat vérifié du Québec'
    : 'Join avocat.quebec as a verified Québec lawyer';

  const content = {
    fr: {
      nav: {
        businessProfiles: 'Cabinets d\'avocats',
        judicialDirectory: 'Répertoire judiciaire',
        liveCases: 'Dossiers en direct',
        about: 'À propos',
        login: 'Connexion',
        join: 'Rejoindre'
      }
    },
    en: {
      nav: {
        businessProfiles: 'Law Firms',
        judicialDirectory: 'Judicial Directory',
        liveCases: 'Live Cases',
        about: 'About',
        login: 'Login',
        join: 'Join'
      }
    }
  };

  const t = content[language];

  return (
    <>
      <Head>
        <title>{title || defaultTitle}</title>
        <meta name="description" content={description || defaultDescription} />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <link rel="icon" href="/favicon.ico" />
      </Head>

      <div className="min-h-screen flex flex-col">
        {/* Header/Topbar */}
        <header className="bg-white/80 dark:bg-gray-800/80 backdrop-blur-sm border-b border-gray-200 dark:border-gray-700 sticky top-0 z-50">
          <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
            <div className="flex justify-between items-center py-4">
              <div className="flex items-center">
                <Link href="/" className="flex items-center">
                  <Shield className="h-8 w-8 text-blue-600 mr-3" />
                  <span className="text-2xl font-bold text-gray-900 dark:text-white">
                    avocat.quebec
                  </span>
                </Link>
              </div>
              
              <nav className="hidden md:flex space-x-8">
                <Link 
                  href="/business-profiles" 
                  className="text-gray-600 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 transition-colors"
                >
                  {t.nav.businessProfiles}
                </Link>
                <Link 
                  href="/judicial-directory" 
                  className="text-gray-600 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 transition-colors"
                >
                  {t.nav.judicialDirectory}
                </Link>
                <Link 
                  href="/live-cases" 
                  className="text-gray-600 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 transition-colors"
                >
                  {t.nav.liveCases}
                </Link>
                <Link 
                  href="/about" 
                  className="text-gray-600 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 transition-colors"
                >
                  {t.nav.about}
                </Link>
              </nav>
              
              <div className="flex items-center space-x-4">
                {/* Language Switcher */}
                {onLanguageToggle && (
                  <button
                    onClick={onLanguageToggle}
                    className="flex items-center space-x-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg px-3 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors"
                  >
                    <Globe className="h-4 w-4" />
                    <span>{language === 'fr' ? 'EN' : 'FR'}</span>
                  </button>
                )}
                
                <Link 
                  href="/auth/login" 
                  className="text-gray-600 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 transition-colors"
                >
                  {t.nav.login}
                </Link>
                
                <Link 
                  href="/register-verified" 
                  className="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-md font-medium transition-colors"
                >
                  {t.nav.join}
                </Link>
              </div>
            </div>
          </div>
        </header>

        {/* Main Content */}
        <main className="flex-grow">
          {children}
        </main>

        {/* Footer */}
        <footer className="bg-gray-900 text-white py-12 px-4 sm:px-6 lg:px-8">
          <div className="max-w-7xl mx-auto">
            <div className="grid grid-cols-1 md:grid-cols-4 gap-8">
              <div>
                <div className="flex items-center mb-4">
                  <Shield className="h-8 w-8 text-blue-400 mr-3" />
                  <span className="text-xl font-bold">avocat.quebec</span>
                </div>
                <p className="text-gray-400">
                  {language === 'fr' 
                    ? 'Le réseau juridique officiel du Québec. Connecter, collaborer, exceller.'
                    : 'The official legal network of Quebec. Connect, collaborate, excel.'
                  }
                </p>
              </div>
              
              <div>
                <h3 className="text-lg font-semibold mb-4">
                  Services
                </h3>
                <ul className="space-y-2 text-gray-400">
                  <li>
                    <Link 
                      href='/business-profiles' 
                      className="hover:text-white transition-colors"
                    >
                      Cabinets d'avocats
                    </Link>
                  </li>
                  <li>
                    <Link 
                      href='/judicial-directory' 
                      className="hover:text-white transition-colors"
                    >
                      Répertoire judiciaire
                    </Link>
                  </li>
                  <li>
                    <Link 
                      href='/live-cases' 
                      className="hover:text-white transition-colors"
                    >
                      Dossiers en direct
                    </Link>
                  </li>
                  <li>
                    <Link 
                      href='/register-verified' 
                      className="hover:text-white transition-colors"
                    >
                      Devenir avocat vérifié
                    </Link>
                  </li>
                </ul>
              </div>
              
              <div>
                <h3 className="text-lg font-semibold mb-4">
                  Support
                </h3>
                <ul className="space-y-2 text-gray-400">
                  <li>
                    <Link 
                      href='/help' 
                      className="hover:text-white transition-colors"
                    >
                      Centre d'aide
                    </Link>
                  </li>
                  <li>
                    <Link 
                      href='/contact' 
                      className="hover:text-white transition-colors"
                    >
                      Contact
                    </Link>
                  </li>
                  <li>
                    <Link 
                      href='/privacy' 
                      className="hover:text-white transition-colors"
                    >
                      Confidentialité
                    </Link>
                  </li>
                  <li>
                    <Link 
                      href='/terms' 
                      className="hover:text-white transition-colors"
                    >
                      Conditions d'utilisation
                    </Link>
                  </li>
                </ul>
              </div>
              
              <div>
                <h3 className="text-lg font-semibold mb-4">
                  Contact
                </h3>
                <div className="space-y-2 text-gray-400">
                  <div className="flex items-center">
                    <svg className="h-4 w-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                      <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M3 8l7.89 4.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
                    </svg>
                    contact@avocat.quebec
                  </div>
                  <div className="flex items-center">
                    <svg className="h-4 w-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                      <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" />
                    </svg>
                    (514) 555-0123
                  </div>
                  <div className="flex items-center">
                    <svg className="h-4 w-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                      <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z" />
                      <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M15 11a3 3 0 11-6 0 3 3 0 016 0z" />
                    </svg>
                    Montréal, Québec
                  </div>
                </div>
              </div>
            </div>
            
            <div className="border-t border-gray-800 mt-8 pt-8 text-center text-gray-400">
              <p>&copy; 2024 avocat.quebec. Tous droits réservés.</p>
            </div>
          </div>
        </footer>
      </div>
    </>
  );
};

export default LawyerRegistrationLayout; 

CasperSecurity Mini