import { ref, watch } from 'vue' import axios from 'axios' const companies = ref([]) const hasLoaded = ref(false) const activeCompanyId = ref(localStorage.getItem('lemon_active_company') || null) watch(activeCompanyId, (newVal) => { if (newVal) localStorage.setItem('lemon_active_company', newVal) else localStorage.removeItem('lemon_active_company') }) export function useCompanies() { async function loadCompanies() { try { if (hasLoaded.value) return companies.value const { data } = await axios.get('/api/company/list') companies.value = data hasLoaded.value = true return data } catch (e) { console.error(e) return [] } } function addCompany(c) { companies.value.push(c) } function setActiveCompany(id) { activeCompanyId.value = id } return { companies, loadCompanies, addCompany, hasLoaded, activeCompanyId, setActiveCompany } }