adding schedule by company

This commit is contained in:
2026-09-18 17:13:50 -04:00
parent 1911a973a0
commit 4c39253b81
9 changed files with 1268 additions and 1839 deletions
+36
View File
@@ -0,0 +1,36 @@
import { create } from "zustand";
import { getCompanies } from "@api/companiesApi";
import type { BackendPreference } from "@/types/backend";
import type { Company } from "@/types/companies";
type CompaniesState = {
companies: Company[];
companyNames: string[];
error: string;
isLoading: boolean;
loadCompanies: (backendPreference: BackendPreference) => Promise<Company[]>;
};
export const useCompaniesStore = create<CompaniesState>((set) => ({
companies: [],
companyNames: [],
error: "",
isLoading: false,
async loadCompanies(backendPreference) {
set({ error: "", isLoading: true });
try {
const companies = await getCompanies(backendPreference);
const companyNames = companies
.map((company) => company.name)
.sort((firstCompany, secondCompany) => firstCompany.localeCompare(secondCompany));
set({ companies, companyNames, isLoading: false });
return companies;
} catch (loadError) {
const error = loadError instanceof Error ? loadError.message : "Unable to load companies";
set({ error, isLoading: false });
throw loadError;
}
},
}));