import { useEffect, useRef, useState } from 'react' const themeOptions = [ { label: 'System', value: 'system' }, { label: 'Dark', value: 'dark' }, { label: 'Light', value: 'light' }, ] function SettingsPanel({ themeMode, onSetThemeMode, onCloseSettings }) { const [activeSection, setActiveSection] = useState('general') const [isThemeMenuOpen, setIsThemeMenuOpen] = useState(false) const menuRef = useRef(null) useEffect(() => { const handlePointerDown = (event) => { if (menuRef.current && !menuRef.current.contains(event.target)) { setIsThemeMenuOpen(false) } } window.addEventListener('mousedown', handlePointerDown) return () => window.removeEventListener('mousedown', handlePointerDown) }, []) const activeThemeLabel = themeOptions.find((option) => option.value === themeMode)?.label || 'System' return (

{activeSection === 'general' ? 'General' : 'About'}

{activeSection === 'general' ? (
Appearance
{isThemeMenuOpen ? (
{themeOptions.map((option) => { const isActive = option.value === themeMode return ( ) })}
) : null}
) : (

What this project does

This HR dashboard helps manage positions, candidate pipelines, and recruiter workflows in one place.

Features

  • Protected login access for authorized users.
  • Position management for roles like Research, Frontend, and Product.
  • Kanban pipeline with drag-and-drop candidate movement.
  • Candidate directory with filters, edit, delete, and copy actions.
  • Calendar planning views for month, week, and year tracking.
  • Light, dark, and system theme support with saved preference.

How to use

  • Use General to change appearance settings.
  • Use About to review the product features.
  • Return to Dashboard to switch the position and inspect each pipeline.
)}
) } export default SettingsPanel