adding schedule by company
This commit is contained in:
@@ -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;
|
||||
}
|
||||
},
|
||||
}));
|
||||
Reference in New Issue
Block a user