Start integrating the onboarding flow with backend 6

This commit is contained in:
Urtzi Alfaro
2025-09-05 17:49:48 +02:00
parent 236c3a32ae
commit 069954981a
131 changed files with 5217 additions and 22838 deletions

View File

@@ -1,6 +1,6 @@
import { create } from 'zustand';
import { persist, createJSONStorage } from 'zustand/middleware';
import { tenantService, TenantResponse } from '../services/api/tenant.service';
import { tenantService, type TenantResponse } from '../api';
import { useAuthUser } from './auth.store';
export interface TenantState {
@@ -45,22 +45,16 @@ export const useTenantStore = create<TenantState>()(
const { availableTenants } = get();
// Find tenant in available tenants first
// Find tenant in available tenants
const targetTenant = availableTenants?.find(t => t.id === tenantId);
if (!targetTenant) {
throw new Error('Tenant not found in available tenants');
}
// Switch tenant using service
const response = await tenantService.switchTenant(tenantId);
if (response.success && response.data?.tenant) {
get().setCurrentTenant(response.data.tenant);
set({ isLoading: false });
return true;
} else {
throw new Error(response.error || 'Failed to switch tenant');
}
// Switch tenant (frontend-only operation)
get().setCurrentTenant(targetTenant);
set({ isLoading: false });
return true;
} catch (error) {
set({
isLoading: false,
@@ -84,8 +78,8 @@ export const useTenantStore = create<TenantState>()(
const response = await tenantService.getUserTenants(user.id);
if (response.success && response.data) {
const tenants = Array.isArray(response.data) ? response.data : [response.data];
if (response) {
const tenants = Array.isArray(response) ? response : [response];
set({
availableTenants: tenants,
@@ -98,7 +92,7 @@ export const useTenantStore = create<TenantState>()(
get().setCurrentTenant(tenants[0]);
}
} else {
throw new Error(response.error || 'Failed to load user tenants');
throw new Error('Failed to load user tenants');
}
} catch (error) {
set({
@@ -181,7 +175,7 @@ export const useTenantStore = create<TenantState>()(
onRehydrateStorage: () => (state) => {
// Initialize API client with stored tenant when store rehydrates
if (state?.currentTenant) {
import('../services/api/client').then(({ apiClient }) => {
import('../api').then(({ apiClient }) => {
apiClient.setTenantId(state.currentTenant!.id);
});
}