Prevent infinity reload wher version mismatch (#5967)

This commit is contained in:
Denis Bykhov 2024-07-01 18:28:50 +05:00 committed by GitHub
parent 96d71b1334
commit 51028108c7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 19 additions and 13 deletions

View File

@ -149,11 +149,6 @@ export function tableToCSV (tableId: string, separator = ','): string {
return csv.join('\n') return csv.join('\n')
} }
/**
* @public
*/
export const networkStatus = writable<number>(0)
let attractorMx: number | undefined let attractorMx: number | undefined
let attractorMy: number | undefined let attractorMy: number | undefined

View File

@ -16,6 +16,7 @@ import { fetchMetadataLocalStorage, getCurrentLocation, navigate, setMetadataLoc
import { writable } from 'svelte/store' import { writable } from 'svelte/store'
export const versionError = writable<string | undefined>(undefined) export const versionError = writable<string | undefined>(undefined)
const versionStorageKey = 'last_server_version'
let _token: string | undefined let _token: string | undefined
let _client: AccountClient | undefined let _client: AccountClient | undefined
@ -103,7 +104,14 @@ export async function connect (title: string): Promise<Client | undefined> {
console.log('Server version', serverVersion.version) console.log('Server version', serverVersion.version)
if (serverVersion.version !== '' && serverVersion.version !== currentVersionStr) { if (serverVersion.version !== '' && serverVersion.version !== currentVersionStr) {
if (typeof sessionStorage !== 'undefined') {
if (sessionStorage.getItem(versionStorageKey) !== serverVersion.version) {
sessionStorage.setItem(versionStorageKey, serverVersion.version)
location.reload() location.reload()
}
} else {
location.reload()
}
versionError.set(`${currentVersionStr} => ${serverVersion.version}`) versionError.set(`${currentVersionStr} => ${serverVersion.version}`)
} }
} }

View File

@ -13,7 +13,7 @@ import core, {
type Version type Version
} from '@hcengineering/core' } from '@hcengineering/core'
import login, { loginId } from '@hcengineering/login' import login, { loginId } from '@hcengineering/login'
import { addEventListener, broadcastEvent, getMetadata, getResource, setMetadata } from '@hcengineering/platform' import { broadcastEvent, getMetadata, getResource, setMetadata } from '@hcengineering/platform'
import presentation, { import presentation, {
closeClient, closeClient,
getCurrentWorkspaceUrl, getCurrentWorkspaceUrl,
@ -27,7 +27,6 @@ import {
getCurrentLocation, getCurrentLocation,
locationStorageKeyId, locationStorageKeyId,
navigate, navigate,
networkStatus,
setMetadataLocalStorage setMetadataLocalStorage
} from '@hcengineering/ui' } from '@hcengineering/ui'
import { writable } from 'svelte/store' import { writable } from 'svelte/store'
@ -35,15 +34,12 @@ import plugin from './plugin'
import { workspaceCreating } from './utils' import { workspaceCreating } from './utils'
export const versionError = writable<string | undefined>(undefined) export const versionError = writable<string | undefined>(undefined)
const versionStorageKey = 'last_server_version'
let _token: string | undefined let _token: string | undefined
let _client: AccountClient | undefined let _client: AccountClient | undefined
let _clientSet: boolean = false let _clientSet: boolean = false
addEventListener(client.event.NetworkRequests, async (event: string, val: number) => {
networkStatus.set(val)
})
export async function disconnect (): Promise<void> { export async function disconnect (): Promise<void> {
if (_client !== undefined) { if (_client !== undefined) {
await _client.close() await _client.close()
@ -211,7 +207,14 @@ export async function connect (title: string): Promise<Client | undefined> {
version !== undefined ? versionToString(version) : '' version !== undefined ? versionToString(version) : ''
) )
if (serverVersion.version !== '' && serverVersion.version !== currentVersionStr) { if (serverVersion.version !== '' && serverVersion.version !== currentVersionStr) {
if (typeof sessionStorage !== 'undefined') {
if (sessionStorage.getItem(versionStorageKey) !== serverVersion.version) {
sessionStorage.setItem(versionStorageKey, serverVersion.version)
location.reload() location.reload()
}
} else {
location.reload()
}
versionError.set(`${currentVersionStr} => ${serverVersion.version}`) versionError.set(`${currentVersionStr} => ${serverVersion.version}`)
} else { } else {
versionError.set(undefined) versionError.set(undefined)