diff --git a/DSL/Ruuter/analytics/POST/accounts/edit-user-domains.yml b/DSL/Ruuter/analytics/POST/accounts/edit-user-domains.yml index 518575c3..3cc38e73 100644 --- a/DSL/Ruuter/analytics/POST/accounts/edit-user-domains.yml +++ b/DSL/Ruuter/analytics/POST/accounts/edit-user-domains.yml @@ -18,10 +18,6 @@ declaration: type: string description: "Body field 'selectedDomains'" - -checkV: - log: ${incoming.body} - extractRequestData: assign: userId: ${incoming.body.userId} diff --git a/GUI/package.json b/GUI/package.json index 8050d037..45228acc 100644 --- a/GUI/package.json +++ b/GUI/package.json @@ -7,7 +7,7 @@ "@buerokratt-ria/menu": "^0.2.9", "@buerokratt-ria/header": "^0.1.46", "@buerokratt-ria/styles": "^0.0.1", - "@buerokratt-ria/common-gui-components": "^0.0.30", + "@buerokratt-ria/common-gui-components": "^0.0.33", "@fontsource/roboto": "^4.5.8", "@formkit/auto-animate": "^1.0.0-beta.6", "@hookform/resolvers": "^2.9.11", diff --git a/GUI/src/pages/AdvisorsPage.tsx b/GUI/src/pages/AdvisorsPage.tsx index be85310e..242d072a 100644 --- a/GUI/src/pages/AdvisorsPage.tsx +++ b/GUI/src/pages/AdvisorsPage.tsx @@ -10,7 +10,7 @@ import { translateChartKeys, } from '../util/charts-utils'; import { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators'; -import { Subject } from 'rxjs'; +import {BehaviorSubject} from 'rxjs'; import { getAvgCsaPresent, getAvgPickTime, @@ -76,13 +76,20 @@ const AdvisorsPage: React.FC = () => { const multiDomainEnabled = import.meta.env.REACT_APP_ENABLE_MULTI_DOMAIN?.toLowerCase() === 'true'; - if(multiDomainEnabled) { - useStore.subscribe((state, prevState) => { - if(JSON.stringify(state.userDomains) !== JSON.stringify(prevState.userDomains)) { - setUpdateKey(prevState => prevState + 1); + useEffect(() => { + if (!multiDomainEnabled) return; + + const unsubscribe = useStore.subscribe((state, prevState) => { + if ( + JSON.stringify(state.userDomains) !== + JSON.stringify(prevState.userDomains) + ) { + setUpdateKey((v) => v + 1); } }); - } + + return () => unsubscribe(); + }, [multiDomainEnabled, useStore]); useEffect(() => { setAdvisorsList(advisors.current); @@ -98,7 +105,10 @@ const AdvisorsPage: React.FC = () => { } }, [currentConfigs]); - const [configsSubject] = useState(() => new Subject()); + const [configsSubject] = useState( + () => new BehaviorSubject(null) + ); + useEffect(() => { const subscription = configsSubject .pipe( diff --git a/GUI/src/pages/BurokrattPage/index.tsx b/GUI/src/pages/BurokrattPage/index.tsx index 1c625535..713992c9 100644 --- a/GUI/src/pages/BurokrattPage/index.tsx +++ b/GUI/src/pages/BurokrattPage/index.tsx @@ -21,13 +21,20 @@ const BurokrattPage: React.FC = () => { const [updateKey, setUpdateKey] = useState(0) const multiDomainEnabled = import.meta.env.REACT_APP_ENABLE_MULTI_DOMAIN?.toLowerCase() === 'true'; - if (multiDomainEnabled) { - useStore.subscribe((state, prevState) => { - if (JSON.stringify(state.userDomains) !== JSON.stringify(prevState.userDomains)) { - setUpdateKey(prevState => prevState + 1); + useEffect(() => { + if (!multiDomainEnabled) return; + + const unsubscribe = useStore.subscribe((state, prevState) => { + if ( + JSON.stringify(state.userDomains) !== + JSON.stringify(prevState.userDomains) + ) { + setUpdateKey((v) => v + 1); } }); - } + + return () => unsubscribe(); + }, [multiDomainEnabled, useStore]); const [configsSubject] = useState(() => new Subject()) useEffect(() => { diff --git a/GUI/src/pages/FeedbackPage.tsx b/GUI/src/pages/FeedbackPage.tsx index 1f0d3509..415a424e 100644 --- a/GUI/src/pages/FeedbackPage.tsx +++ b/GUI/src/pages/FeedbackPage.tsx @@ -20,7 +20,7 @@ import { translateChartKeys, } from '../util/charts-utils'; import {debounceTime, distinctUntilChanged, switchMap} from 'rxjs/operators'; -import {Subject} from 'rxjs'; +import {BehaviorSubject} from 'rxjs'; import {Methods, request} from '../util/axios-client'; import withAuthorization, {ROLES} from '../hoc/with-authorization'; import useStore from '../store/user/store'; @@ -64,13 +64,20 @@ const FeedbackPage: React.FC = () => { const multiDomainEnabled = import.meta.env.REACT_APP_ENABLE_MULTI_DOMAIN?.toLowerCase() === 'true'; - if(multiDomainEnabled) { - useStore.subscribe((state, prevState) => { - if(JSON.stringify(state.userDomains) !== JSON.stringify(prevState.userDomains)) { - setUpdateKey(prevState => prevState + 1); + useEffect(() => { + if (!multiDomainEnabled) return; + + const unsubscribe = useStore.subscribe((state, prevState) => { + if ( + JSON.stringify(state.userDomains) !== + JSON.stringify(prevState.userDomains) + ) { + setUpdateKey((v) => v + 1); } }); - } + + return () => unsubscribe(); + }, [multiDomainEnabled, useStore]); useEffect(() => { setAdvisorsList(advisors.current); @@ -128,7 +135,10 @@ const FeedbackPage: React.FC = () => { const showNegativeChart = currentConfigs?.metric === 'negative_feedback'; - const [configsSubject] = useState(() => new Subject()); + const [configsSubject] = useState( + () => new BehaviorSubject(null) + ); + useEffect(() => { const subscription = configsSubject .pipe( diff --git a/GUI/src/pages/OverviewPage.tsx b/GUI/src/pages/OverviewPage.tsx index 32b9c119..18748b24 100644 --- a/GUI/src/pages/OverviewPage.tsx +++ b/GUI/src/pages/OverviewPage.tsx @@ -31,13 +31,20 @@ const OverviewPage: React.FC = () => { const multiDomainEnabled = import.meta.env.REACT_APP_ENABLE_MULTI_DOMAIN?.toLowerCase() === 'true'; - if(multiDomainEnabled) { - useStore.subscribe((state, prevState) => { - if(JSON.stringify(state.userDomains) !== JSON.stringify(prevState.userDomains)) { - setUpdateKey(prevState => prevState + 1); + useEffect(() => { + if (!multiDomainEnabled) return; + + const unsubscribe = useStore.subscribe((state, prevState) => { + if ( + JSON.stringify(state.userDomains) !== + JSON.stringify(prevState.userDomains) + ) { + setUpdateKey((v) => v + 1); } }); - } + + return () => unsubscribe(); + }, [multiDomainEnabled, useStore]); const { t } = useTranslation();