From e1c5f3a457f52173f1d23001ba737ae8ec7c9f82 Mon Sep 17 00:00:00 2001 From: Leonardo Christino <leomilho@gmail.com> Date: Tue, 23 Jan 2024 17:03:45 +0100 Subject: [PATCH] feat(url): sync saveID as a URL query param --- libs/shared/lib/data-access/api/wsState.tsx | 7 ++----- libs/shared/lib/data-access/store/sessionSlice.ts | 5 +++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/libs/shared/lib/data-access/api/wsState.tsx b/libs/shared/lib/data-access/api/wsState.tsx index 6a0ff2eab..f227653a7 100644 --- a/libs/shared/lib/data-access/api/wsState.tsx +++ b/libs/shared/lib/data-access/api/wsState.tsx @@ -1,9 +1,5 @@ -import { useEffect } from 'react'; import { WebSocketHandler } from '../socket'; -import Broker from '../socket/broker'; -import { keyTypeI, subKeyTypeI } from '../socket/types'; -import { useAppDispatch, useConfig } from '../store'; -import { addSaveState, updateSaveStateList } from '../store/sessionSlice'; +import { URLParams, setParam } from './url'; // export function wsGetState() { // Broker.instance().subscribe((data) => dispatch(readInSchemaFromBackend(data)), 'schema_result'); @@ -58,6 +54,7 @@ export function wsSelectState(saveStateId: string | undefined) { body: { saveStateId: saveStateId }, //messageTypeGetSaveState }); WebSocketHandler.instance().useSaveStateID(saveStateId); + setParam(URLParams.saveState, saveStateId); } export function wsCreateState(request: SaveStateI) { diff --git a/libs/shared/lib/data-access/store/sessionSlice.ts b/libs/shared/lib/data-access/store/sessionSlice.ts index 2adf04d6e..da99e4797 100644 --- a/libs/shared/lib/data-access/store/sessionSlice.ts +++ b/libs/shared/lib/data-access/store/sessionSlice.ts @@ -1,7 +1,7 @@ -import { includes } from 'lodash-es'; import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import type { RootState } from './store'; -import { DatabaseInfo, DatabaseStatus, SaveStateI, wsSelectState } from '../api/wsState'; +import { DatabaseStatus, SaveStateI, wsSelectState } from '../api/wsState'; +import { getParam, URLParams } from '../api/url'; /** Message format of the error message from the backend */ export type ErrorMessage = { @@ -42,6 +42,7 @@ export const sessionSlice = createSlice({ }); state.saveStates = newState; + state.currentSaveState = getParam(URLParams.saveState) || state.currentSaveState; if (!state.currentSaveState || !(state.currentSaveState in state.saveStates)) { if (Object.keys(state.saveStates).length > 0) { state.currentSaveState = Object.keys(state.saveStates)[0]; -- GitLab