import React from "react"; import {useEffect, useState} from "react"; import api from "../api.js"; export default function AccountsModule() { const [accounts, setAccounts] = useState([]) const [loading, setLoading] = useState(false) const [serviceDays, setServiceDays] = useState([]) const [loadingDays, setLoadingDays] = useState(false) const [activeAccount, setActiveAccount] = useState([]) const [accountStatus, setAccountStatus] = useState([]) const fetchServiceDays = async (account) => { setLoadingDays(true); try { const response = await api.get(`days/${account}/`); if (response.status === 200) { setServiceDays(response.data );} } catch (error) { alert(error); } finally { setLoadingDays(false); } }; const handleToggle = (account) => { if (activeAccount === account) { setServiceDays([]) setActiveAccount([]) } else { setServiceDays([]) setActiveAccount(account) fetchServiceDays(account) } } useEffect(() => { const fetchAccounts = async () => { setLoading(true); try { const response = await api.get('/accounts/'); if (response.status === 200) { const sortedAccounts = response.data.sort((a, b) => a.full_name.localeCompare(b.full_name)); setAccounts(sortedAccounts); } } catch (error) { alert(error); } finally { setLoading(false); } }; const fetchAccountStatus = async () => { setLoading(true); try { const response = await api.get('/accounts/status/'); if (response.status === 200) { setAccountStatus(response.data); } } catch (error) { alert(error); } finally { setLoading(false); } }; fetchAccounts(); fetchAccountStatus(); }, []); const activeAccounts = accounts.filter(account => { const status = accountStatus.find(status => status.short_name === account.short_name); return status && status.is_active; }); const inactiveAccounts = accounts.filter(account => { const status = accountStatus.find(status => status.short_name === account.short_name); return status?!status.is_active: false; }); return (

Account Information

{loading ?

Loading accounts...

:

Active Accounts

{activeAccounts.map(loc => (

{loc.street_address}, {loc.city}, {loc.state} {loc.zip_code}

{loadingDays ?

Loading service days...

: serviceDays.map(schedule => (
{schedule.mon_serv === true ?

Monday

: null} {schedule.tues_serv === true ?

Tuesday

: null} {schedule.wed_serv === true ?

Wednesday

: null} {schedule.thurs_serv === true ?

Thursday

: null} {schedule.fri_serv === true ?

Friday

: null} {schedule.sat_serv === true ?

Saturday

: null} {schedule.sun_serv === true ?

Sunday

: null} {schedule.weekend_serv === true ?

Friday with weekend option

: null} {schedule.exception_serv === true ?

Schedule exceptions exist - see scope of work

: null}
))}
))}

Inactive Accounts

{inactiveAccounts.map(loc => (

{loc.street_address}, {loc.city}, {loc.state} {loc.zip_code}

{loadingDays ?

Loading service days...

: serviceDays.map(schedule => (
{schedule.mon_serv === true ?

Monday

: null} {schedule.tues_serv === true ?

Tuesday

: null} {schedule.wed_serv === true ?

Wednesday

: null} {schedule.thurs_serv === true ?

Thursday

: null} {schedule.fri_serv === true ?

Friday

: null} {schedule.sat_serv === true ?

Saturday

: null} {schedule.sun_serv === true ?

Sunday

: null} {schedule.weekend_serv === true ?

Friday with weekend option

: null} {schedule.exception_serv === true ?

Schedule exceptions exist - see scope of work

: null}
))}
))}
}
) }