mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-28 04:25:03 +02:00
Fix office load waiting before joining meeting (#8484)
Signed-off-by: Nikolay Chunosov <Chunosov.N@gmail.com>
This commit is contained in:
@@ -29,7 +29,7 @@
|
||||
myRequests,
|
||||
rooms,
|
||||
selectedFloor,
|
||||
storePromise
|
||||
waitForOfficeLoaded
|
||||
} from '../stores'
|
||||
import { connectToMeeting, tryConnect } from '../utils'
|
||||
import Floor from './Floor.svelte'
|
||||
@@ -72,11 +72,11 @@
|
||||
const { sessionId, meetId, ...query } = loc.query ?? {}
|
||||
loc.query = Object.keys(query).length === 0 ? undefined : query
|
||||
navigate(loc, true)
|
||||
if (sessionId != null) {
|
||||
await $storePromise
|
||||
if (sessionId) {
|
||||
await waitForOfficeLoaded()
|
||||
await connectToSession(sessionId)
|
||||
} else if (meetId != null) {
|
||||
await $storePromise
|
||||
} else if (meetId) {
|
||||
await waitForOfficeLoaded()
|
||||
await connectToMeeting($personByIdStore, $myInfo, $infos, $myRequests, $invites, meetId)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
import { getMetadata } from '@hcengineering/platform'
|
||||
import love from '../plugin'
|
||||
import { tryConnect, isConnected, isCurrentInstanceConnected, screenSharing } from '../utils'
|
||||
import { infos, invites, myInfo, myRequests, storePromise, currentRoom } from '../stores'
|
||||
import { infos, invites, myInfo, myRequests, waitForOfficeLoaded, currentRoom } from '../stores'
|
||||
|
||||
const localNav: boolean = $deviceInfo.navigator.visible
|
||||
const savedNav = localStorage.getItem('love-visibleNav')
|
||||
@@ -41,7 +41,7 @@
|
||||
return
|
||||
}
|
||||
|
||||
await $storePromise
|
||||
await waitForOfficeLoaded()
|
||||
const room = $currentRoom
|
||||
|
||||
if (room === undefined) return
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
import { aiBotSocialIdentityStore } from '@hcengineering/ai-bot-resources'
|
||||
|
||||
import love from '../plugin'
|
||||
import { storePromise, currentRoom, infos, invites, myInfo, myRequests } from '../stores'
|
||||
import { waitForOfficeLoaded, currentRoom, infos, invites, myInfo, myRequests } from '../stores'
|
||||
import {
|
||||
awaitConnect,
|
||||
isConnected,
|
||||
@@ -231,7 +231,7 @@
|
||||
|
||||
configured = true
|
||||
|
||||
await $storePromise
|
||||
await waitForOfficeLoaded()
|
||||
|
||||
if (
|
||||
!$isConnected &&
|
||||
|
||||
@@ -72,7 +72,7 @@ function filterParticipantInfo (value: ParticipantInfo[]): ParticipantInfo[] {
|
||||
return Array.from(map.values())
|
||||
}
|
||||
|
||||
export const storePromise = writable<Promise<void>>(new Promise((resolve) => {}))
|
||||
const officeLoaded = writable(false)
|
||||
|
||||
const query = createQuery(true)
|
||||
const statusQuery = createQuery(true)
|
||||
@@ -124,19 +124,25 @@ onClient(() => {
|
||||
resolve()
|
||||
})
|
||||
)
|
||||
storePromise.set(
|
||||
new Promise((resolve) => {
|
||||
void Promise.all([
|
||||
roomPromise,
|
||||
infoPromise,
|
||||
floorPromise,
|
||||
requestPromise,
|
||||
preferencePromise,
|
||||
invitesPromise
|
||||
]).then(() => {
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
|
||||
void Promise.all([roomPromise, infoPromise, floorPromise, requestPromise, preferencePromise, invitesPromise]).then(
|
||||
() => {
|
||||
officeLoaded.set(true)
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
export async function waitForOfficeLoaded (): Promise<void> {
|
||||
if (!get(officeLoaded)) {
|
||||
await new Promise((resolve) => {
|
||||
const unsubscribe = officeLoaded.subscribe((loaded) => {
|
||||
if (loaded) {
|
||||
unsubscribe()
|
||||
resolve(null)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
export const lockedRoom = writable<string>('')
|
||||
|
||||
Reference in New Issue
Block a user