Migrate from Redux to React Query and React Context. This modernizes state management while maintaining all existing functionality. All the redux code and files were removed, including all redux and related packages.
36 lines
932 B
JavaScript
36 lines
932 B
JavaScript
import React from 'react';
|
|
|
|
import { StrictDict } from 'utils';
|
|
import { useUpdateEmailSettings } from 'data/hooks';
|
|
import { useCourseData } from 'hooks';
|
|
|
|
import * as module from './hooks';
|
|
|
|
export const state = StrictDict({
|
|
toggle: (val) => React.useState(val), // eslint-disable-line
|
|
});
|
|
|
|
export const useEmailData = ({
|
|
closeModal,
|
|
cardId,
|
|
}) => {
|
|
const courseData = useCourseData(cardId);
|
|
const hasOptedOutOfEmail = courseData?.enrollment?.hasOptedOutOfEmail || false;
|
|
const courseId = courseData?.courseRun?.courseId;
|
|
const [isOptedOut, setIsOptedOut] = module.state.toggle(hasOptedOutOfEmail);
|
|
const { mutate: updateEmailSettings } = useUpdateEmailSettings();
|
|
const onToggle = () => setIsOptedOut(!isOptedOut);
|
|
const save = () => {
|
|
updateEmailSettings({ courseId, enable: !isOptedOut });
|
|
closeModal();
|
|
};
|
|
|
|
return {
|
|
onToggle,
|
|
save,
|
|
isOptedOut,
|
|
};
|
|
};
|
|
|
|
export default useEmailData;
|