import React, { useState, useEffect } from 'react'; import axios from 'axios'; const apiUrl = process.env.REACT_APP_API_URL; function CareerModal({ career, careerDetails, closeModal, addCareerToList }) { const [error, setError] = useState(null); const [loadingRisk, setLoadingRisk] = useState(false); const aiRisk = careerDetails?.aiRisk || null; console.log('CareerModal props:', { career, careerDetails, aiRisk }); // Handle your normal careerDetails loading logic if (careerDetails?.error) { return (

{careerDetails.error}

); } if (!careerDetails?.salaryData) { return (

Loading career details...

); } if (error) return
{error}
; // Helper for "stability" rating const calculateStabilityRating = (salaryData) => { const medianSalaryObj = salaryData.find((s) => s.percentile === 'Median'); const medianSalary = medianSalaryObj?.regionalSalary || medianSalaryObj?.nationalSalary || 0; if (medianSalary >= 90000) return 5; if (medianSalary >= 70000) return 4; if (medianSalary >= 50000) return 3; if (medianSalary >= 30000) return 2; return 1; }; return (
{/* Title row */}

{careerDetails.title}

{/* AI RISK SECTION */} {loadingRisk ? (

Loading AI risk...

) : aiRisk?.riskLevel && aiRisk?.reasoning ? (
AI Risk Level: {aiRisk.riskLevel}
{aiRisk.reasoning}
) : (

No AI risk data available

)}
{/* Buttons */}
{/* Job Description */}

Job Description:

{careerDetails.jobDescription}

{/* Tasks */}

Tasks:

    {careerDetails.tasks.map((task, i) => (
  • {task}
  • ))}
{/* Salary & Projections side-by-side */}
{/* Salary Data */}

Salary Data:

{careerDetails.salaryData.map((s, i) => ( ))}
Percentile Regional Salary National Salary
{s.percentile} ${s.regionalSalary.toLocaleString()} ${s.nationalSalary.toLocaleString()}
{/* Economic Projections */}

Economic Projections

{careerDetails.economicProjections.state && ( )} {careerDetails.economicProjections.national && ( )} {careerDetails.economicProjections.state && ( )} {careerDetails.economicProjections.national && ( )} {careerDetails.economicProjections.state && ( )} {careerDetails.economicProjections.national && ( )} {careerDetails.economicProjections.state && ( )} {careerDetails.economicProjections.national && ( )} {careerDetails.economicProjections.state && ( )} {careerDetails.economicProjections.national && ( )}
{careerDetails.economicProjections.state.area} National
Current Jobs {careerDetails.economicProjections.state.base.toLocaleString()} {careerDetails.economicProjections.national.base.toLocaleString()}
Jobs in 10 yrs {careerDetails.economicProjections.state.projection.toLocaleString()} {careerDetails.economicProjections.national.projection.toLocaleString()}
Growth % {careerDetails.economicProjections.state.percentChange}% {careerDetails.economicProjections.national.percentChange}%
Annual Openings {careerDetails.economicProjections.state.annualOpenings.toLocaleString()} {careerDetails.economicProjections.national.annualOpenings.toLocaleString()}
{/* Conditional disclaimer when AI risk is Moderate or High */} {(aiRisk.riskLevel === 'Moderate' || aiRisk.riskLevel === 'High') && (

Note: These 10-year projections may change if AI-driven tools significantly affect {careerDetails.title} tasks. With a {aiRisk.riskLevel.toLowerCase()} AI risk, it’s possible that some tasks or responsibilities could be automated over time.

)}
); } export default CareerModal;