Start integrating the onboarding flow with backend 6
This commit is contained in:
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user