fix: removed extra loader while updating preferences

This commit is contained in:
sundasnoreen12
2023-10-17 12:56:31 +05:00
parent 966b59b70f
commit bc8197a9af
3 changed files with 11 additions and 4 deletions

View File

@@ -11,7 +11,7 @@ import {
selectPreference,
selectPreferenceNonEditableChannels,
selectSelectedCourseId,
selectNotificationPreferencesStatus,
selectUpdatePreferencesStatus,
} from './data/selectors';
import { updatePreferenceToggle } from './data/thunks';
import { LOADING_STATUS } from '../constants';
@@ -22,7 +22,7 @@ const NotificationPreferenceRow = ({ appId, preferenceName }) => {
const courseId = useSelector(selectSelectedCourseId());
const preference = useSelector(selectPreference(appId, preferenceName));
const nonEditable = useSelector(selectPreferenceNonEditableChannels(appId, preferenceName));
const preferencesStatus = useSelector(selectNotificationPreferencesStatus());
const updatePreferencesStatus = useSelector(selectUpdatePreferencesStatus());
const onToggle = useCallback((event) => {
const {
@@ -76,7 +76,7 @@ const NotificationPreferenceRow = ({ appId, preferenceName }) => {
name={channel}
value={preference[channel]}
onChange={onToggle}
disabled={nonEditable.includes(channel) || preferencesStatus === LOADING_STATUS}
disabled={nonEditable.includes(channel) || updatePreferencesStatus === LOADING_STATUS}
/>
</div>
))}

View File

@@ -15,6 +15,7 @@ export const defaultState = {
},
preferences: {
status: IDLE_STATUS,
updatePreferenceStatus: IDLE_STATUS,
selectedCourse: null,
preferences: [],
apps: [],
@@ -70,6 +71,7 @@ const notificationPreferencesReducer = (state = defaultState, action = {}) => {
preferences: {
...state.preferences,
status: SUCCESS_STATUS,
updatePreferenceStatus: SUCCESS_STATUS,
...action.payload,
},
};
@@ -79,6 +81,7 @@ const notificationPreferencesReducer = (state = defaultState, action = {}) => {
preferences: {
...state.preferences,
status: FAILURE_STATUS,
updatePreferenceStatus: FAILURE_STATUS,
preferences: [],
apps: [],
nonEditable: {},
@@ -102,7 +105,7 @@ const notificationPreferencesReducer = (state = defaultState, action = {}) => {
? { ...preference, [notificationChannel]: value }
: preference
)),
status: LOADING_STATUS,
updatePreferenceStatus: LOADING_STATUS,
},
};
case Actions.UPDATE_APP_PREFERENCE:

View File

@@ -2,6 +2,10 @@ export const selectNotificationPreferencesStatus = () => state => (
state.notificationPreferences.preferences.status
);
export const selectUpdatePreferencesStatus = () => state => (
state.notificationPreferences.preferences.updatePreferenceStatus
);
export const selectPreferences = () => state => (
state.notificationPreferences.preferences?.preferences
);