/
dedaMazai
/
aboutMe
Обзор
Документация
Войти
/
dedaMazai
/
aboutMe
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/shared/lib/features/services/updateFeatureFlags.ts
39 строк
1 KB
Andrey Chipizubov
fix
05 сен 2023, 09:22
05 сен 2023, 09:22
8214691
Код
Авторство
О чём код?
import { createAsyncThunk } from '@reduxjs/toolkit'; import { ThunkConfig } from '@/app/providers/StoreProvider'; import { FeatureFlags } from '@/shared/types/featureFlags'; import { updateFeatureFlagsMutation } from '../api/featureFlagsApi'; import { getAllFeatureFlags, setFeatureFlags } from '../lib/setGetFeatures'; interface UpdateFeatureFlagOptions { userId: string; newFeatures: Partial<FeatureFlags>; } export const updateFeatureFlag = createAsyncThunk< void, UpdateFeatureFlagOptions, ThunkConfig<string> >('features/updateFeatureFlag', async ({ userId, newFeatures }, thunkApi) => { const { rejectWithValue, dispatch } = thunkApi; const allFeatures = { ...getAllFeatureFlags(), ...newFeatures, }; try { await dispatch( updateFeatureFlagsMutation({ userId, features: allFeatures, }), ); setFeatureFlags(allFeatures); window.location.reload(); return undefined; } catch (e) { console.log(e); return rejectWithValue(''); } });