import React, { useState, useEffect } from 'react'; const departmentTypeMap = { EMS: 'Medical Services', Fire: 'Fire Department', Rescue: 'Fire & EMS' } const accountDetails = { "CallThemes" : { "CriticalCallList": [ "CARDIAC ARREST" ], "HighCallList": [ "EMS ALS PRIORITY (ALS)", "EMS Advanced Life Support life threatening response (ALS)", "EMS ALS Intercept Required", "EMS ALS Response – Cardiac Related", "EMS ALS Response – Respiratory Distress", "EMS ALS Response – Stroke Alert", "EMS Basic Life Support with Paramedic Assist (BLS)", "EMS ALS Tiered Response with Fire", "EMS Response – Behavioral Emergency (ALS)", "EMS Response – Obstetric Emergency (ALS)", "EMS ALS Response – Overdose / Poisoning", "EMS ALS Priority Interfacility Transfer", "EMS Response – Unresponsive / Unconscious Patient (ALS)" ], "MediumCallList": [ "ALS-STANDARD", "BLS-PRIORITY", "EMS BLS Priority Response", "EMS BLS Response – Fall Injury" ], "LowCallList": [ "EMS Standard Basic Life Support Response (BLS)", "EMS BLS Non-Emergency Transport", "EMS BLS Standby – Event Coverage", "EMS Public Assist – Lift Only (BLS)", "EMS BLS Scheduled Interfacility Transport" ] }, "InitList": [ { deptId: 1, dept: 'Darien EMS', addDepts: [ 'Darien EMS Supv' ], deptAbv: 'DEMS', rank: 'Assistant Director', rankAbv: 'Asst. Director', type: 'EMS', primary: true, selected: true, supervisor: true, admin: true, hasVolunteer: true, }, { deptId: 2, dept: 'Noroton Fire Department', deptAbv: 'NFD', rank: 'Lieutenant', rankAbv: 'Lt.', type: 'Fire', primary: false, selected: false, supervisor: true, admin: true, hasVolunteer: true, }, { deptId: 3, dept: 'Stamford Fire Rescue', deptAbv: 'SFD', rank: 'Paramedic', rankAbv: 'EMT-P', type: 'Rescue', primary: false, selected: false, supervisor: false, admin: true, hasVolunteer: false, }, ] } export const useDepartments = () => { const { InitList } = accountDetails; const [deptList, setDeptList] = useState(InitList); const [selectedDepartment, setSelectedDepartment] = useState(deptList?.find((dept) => { return dept?.primary; })); const updateSelectedDepartment = (currentSelectedId, newSelectedId) => { if (currentSelectedId !== newSelectedId) { setDeptList(deptList?.map((item) => { if (item?.selected) { item.selected = false; } if (item?.deptId === newSelectedId) { item.selected = true; } return item; })) } }; const selectedDepartmentColorPicker = (deptartmentType) => { if (deptartmentType === 'Fire') { return '#FF0000'; } else if (deptartmentType === 'EMS') { return '#FF8C00'; } else if (deptartmentType === 'Rescue') { return '#0000CD'; } return 'grey'; }; useEffect(() => { if (deptList) { setSelectedDepartment(deptList?.find((dept) => { return dept?.selected; })); } }, [deptList]); return { departmentTypeMap, accountDetails, deptList, setDeptList, selectedDepartment, setSelectedDepartment, updateSelectedDepartment, selectedDepartmentColorPicker } }