diff --git a/src/helpers/storage.js b/src/helpers/storage.js index e077954..5c8e6d8 100644 --- a/src/helpers/storage.js +++ b/src/helpers/storage.js @@ -12,6 +12,7 @@ export const load = _load; export const clear = () => { doc.destroy(); record.value = null; + localStorage.clear(); } export const create = (person) => { diff --git a/src/providers/syncedstore.js b/src/providers/syncedstore.js index 454c289..31ba322 100644 --- a/src/providers/syncedstore.js +++ b/src/providers/syncedstore.js @@ -10,6 +10,14 @@ enableVueBindings(Vue); export const doc = new Doc(); +doc.on('update', () => { + if (record.value.id.toString().length > 0) { + localStorage.setItem('isActive', true); + } else { + localStorage.removeItem('isActive'); + } +}); + // /** @type {import('@syncedstore/core/types/doc').DocTypeDescription} */ const shape = { id: 'text', diff --git a/src/providers/webrtc.js b/src/providers/webrtc.js index aec96f2..83c2e1e 100644 --- a/src/providers/webrtc.js +++ b/src/providers/webrtc.js @@ -22,10 +22,22 @@ watch( disconnect(); } } -) +); -watch(record, () => { - if (record.value) { +watch( + () => preferencesStore.webRTC.signalerUrl, + () => { + if (!preferencesStore.webRTC.signalerUrl) return; + + if (!webRTCProvider.signalingUrls.includes(preferencesStore.webRTC.signalerUrl)) { + disconnect(); + connect(); + } + } +); + +doc.on('update', () => { + if (record.value.id.toString().length > 0) { connect(); } else { disconnect(); @@ -61,5 +73,5 @@ const disconnect = () => { webRTCProvider.disconnect(); webRTCProvider.destroy(); webRTCProvider = null; - peers.value = 0 + peers.value = 0; } diff --git a/src/router/index.js b/src/router/index.js index 4e21ab2..92c6ed4 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -219,7 +219,7 @@ const router = createRouter({ }) router.beforeEach((to) => { - if (to.meta.requiresAuth && !record.value) { + if (to.meta.requiresAuth && !localStorage.getItem('isActive')) { return { name: 'Start' } diff --git a/src/store/record.js b/src/store/record.js index 6fdd14d..754d136 100644 --- a/src/store/record.js +++ b/src/store/record.js @@ -16,11 +16,3 @@ export const downloadable = () => { } return exportable; } - -watch(record, (value) => { - if (value) { - localStorage.setItem('isActive', true); - } else { - localStorage.removeItem('isActive'); - } -});