V13-FE-006: consolidate approved UI and contract hardening
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s

This commit is contained in:
2026-08-13 02:41:00 +09:00
parent d79edae546
commit 3f293d8aa8
1278 changed files with 14384 additions and 1664 deletions
@@ -0,0 +1,22 @@
import * as signalR from '@microsoft/signalr'
import type { KbxImportProgressEvent } from '@kbx/contracts'
import type { KbxImportProgressConnection } from '@kbx/ui'
export function createImportProgressConnection(url = '/hubs/import-progress'): KbxImportProgressConnection {
const hub = new signalR.HubConnectionBuilder()
.withUrl(url)
.withAutomaticReconnect()
.build()
return {
start: () => hub.state === signalR.HubConnectionState.Disconnected ? hub.start() : Promise.resolve(),
stop: () => hub.stop(),
subscribe: sessionId => hub.invoke('Subscribe', sessionId),
unsubscribe: sessionId => hub.state === signalR.HubConnectionState.Connected
? hub.invoke('Unsubscribe', sessionId)
: Promise.resolve(),
onProgress(callback) {
hub.on('ImportProgress', (event: KbxImportProgressEvent) => callback(event))
},
}
}