@@ -6,11 +6,12 @@ import type {
66 SetSingleSettingParams ,
77 Setting ,
88} from '../../../types/api/settings' ;
9- import type { AppDispatch } from '../../defaultStore' ;
9+ import type { AppDispatch , RootState } from '../../defaultStore' ;
1010import { api } from '../api' ;
1111
1212import type { SettingKey } from './constants' ;
1313import { DEFAULT_USER_SETTINGS , SETTINGS_OPTIONS } from './constants' ;
14+ import { getSettingValue , setSettingValue } from './settings' ;
1415import { parseSettingValue , readSettingValueFromLS , setSettingValueToLS } from './utils' ;
1516
1617export const settingsApi = api . injectEndpoints ( {
@@ -51,7 +52,8 @@ export const settingsApi = api.injectEndpoints({
5152 if ( SETTINGS_OPTIONS [ name ] ?. preventSyncWithLS ) {
5253 const savedValue = readSettingValueFromLS ( name ) ;
5354 const value = savedValue ?? DEFAULT_USER_SETTINGS [ name as SettingKey ] ;
54- dispatch ( settingsApi . util . upsertQueryData ( 'setting' , { name} , value ) ) ;
55+ // dispatch(settingsApi.util.upsertQueryData('setting', {name}, value));
56+ dispatch ( setSettingValue ( name , value ) ) ;
5557 }
5658
5759 if ( ! user ) {
@@ -74,7 +76,8 @@ export const settingsApi = api.injectEndpoints({
7476 setSettingValueToLS ( name , data . value ) ;
7577
7678 const parsedValue = parseSettingValue ( data . value ) ;
77- dispatch ( settingsApi . util . upsertQueryData ( 'setting' , { name} , parsedValue ) ) ;
79+ dispatch ( setSettingValue ( name , parsedValue ) ) ;
80+ // dispatch(settingsApi.util.upsertQueryData('setting', {name}, parsedValue));
7881 }
7982
8083 return { data : data } ;
@@ -109,21 +112,31 @@ export const settingsApi = api.injectEndpoints({
109112 return { error} ;
110113 }
111114 } ,
112- async onQueryStarted ( args , { dispatch, queryFulfilled} ) {
115+ async onQueryStarted ( args , { dispatch, queryFulfilled, getState } ) {
113116 const { name, value} = args ;
114117
118+ if ( ! name ) {
119+ return ;
120+ }
121+
122+ const prev = getSettingValue ( getState ( ) as RootState , name ) ;
123+ // console.log({prev, state: getState(), name});
124+
125+ dispatch ( setSettingValue ( name , value ) ) ;
126+
115127 // Optimistically update existing cache entry
116- const patchResult = dispatch (
117- settingsApi . util . updateQueryData ( 'setting' , { name} , ( ) => {
118- return value ;
119- } ) ,
120- ) ;
128+ // const patchResult = dispatch(
129+ // settingsApi.util.updateQueryData('setting', {name}, () => {
130+ // return value;
131+ // }),
132+ // );
121133
122134 try {
123135 await queryFulfilled ;
124136 setSettingValueToLS ( name , value ) ;
125137 } catch {
126- patchResult . undo ( ) ;
138+ // patchResult.undo();
139+ dispatch ( setSettingValue ( name , prev ) ) ;
127140 }
128141 } ,
129142 } ) ,
@@ -170,13 +183,15 @@ export const settingsApi = api.injectEndpoints({
170183 setSettingValueToLS ( settingName , data . value ) ;
171184
172185 const parsedValue = parseSettingValue ( settingData . value ) ;
173- dispatch (
174- settingsApi . util . upsertQueryData (
175- 'setting' ,
176- { name : settingName } ,
177- parsedValue ,
178- ) ,
179- ) ;
186+ dispatch ( setSettingValue ( settingName , parsedValue ) ) ;
187+
188+ // dispatch(
189+ // settingsApi.util.upsertQueryData(
190+ // 'setting',
191+ // {name: settingName},
192+ // parsedValue,
193+ // ),
194+ // );
180195 }
181196 } ) ;
182197
0 commit comments