feat(federation): trigger DM failover on setInstanceStatus transition
When an instance transitions from 'connected' to 'disconnected' or 'error', fire failoverDmOriginsFromDisconnected for that origin. Dynamic import preserves the circular-dep-safe resolver pattern used elsewhere in instanceStore. Fire-and-forget; the failover utility reads fresh state at call time.
This commit is contained in:
@@ -428,11 +428,19 @@ export const useInstanceStore = create<InstanceState>((set, get) => ({
|
||||
},
|
||||
|
||||
setInstanceStatus: (origin, status, error) => {
|
||||
const prev = get().instances.find(i => i.origin === origin)?.status;
|
||||
set((state) => ({
|
||||
instances: state.instances.map(i =>
|
||||
i.origin === origin ? { ...i, status, error } : i
|
||||
),
|
||||
}));
|
||||
if (prev === 'connected' && (status === 'disconnected' || status === 'error')) {
|
||||
// Dynamic import keeps the circular-dep-safe resolver pattern used elsewhere
|
||||
// in this file. Fire-and-forget: failover reads state at call time.
|
||||
import('../utils/dmOriginFailover').then(({ failoverDmOriginsFromDisconnected }) => {
|
||||
failoverDmOriginsFromDisconnected(origin);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
disconnectInstance: (origin: string) => {
|
||||
|
||||
Reference in New Issue
Block a user