ENCOA-228 Now when user navigates between modules the generation items persist. Reading, listening and writing added to level module
This commit is contained in:
@@ -4,12 +4,13 @@ import { useCallback, useState } from 'react';
|
||||
|
||||
interface Props {
|
||||
sectionId: number;
|
||||
mode?: "delete" | "edit";
|
||||
editing?: boolean;
|
||||
setEditing?: React.Dispatch<React.SetStateAction<boolean>>;
|
||||
onSave?: () => void;
|
||||
onDiscard?: () => void;
|
||||
onMode?: () => void;
|
||||
onDelete?: () => void;
|
||||
onPractice?: () => void;
|
||||
onEdit?: () => void;
|
||||
}
|
||||
|
||||
const useSectionEdit = ({
|
||||
@@ -18,7 +19,9 @@ const useSectionEdit = ({
|
||||
setEditing: externalSetEditing,
|
||||
onSave,
|
||||
onDiscard,
|
||||
onMode
|
||||
onDelete,
|
||||
onPractice,
|
||||
onEdit
|
||||
}: Props) => {
|
||||
const { dispatch } = useExamEditorStore();
|
||||
const [internalEditing, setInternalEditing] = useState<boolean>(externalEditing);
|
||||
@@ -31,9 +34,12 @@ const useSectionEdit = ({
|
||||
}, [dispatch]);
|
||||
|
||||
const handleEdit = useCallback(() => {
|
||||
setEditing(true);
|
||||
setEditing(!editing);
|
||||
if (onEdit) {
|
||||
onEdit();
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [sectionId, setEditing, updateRoot]);
|
||||
}, [sectionId, editing, setEditing, updateRoot]);
|
||||
|
||||
const handleSave = useCallback(() => {
|
||||
if (onSave) {
|
||||
@@ -51,12 +57,18 @@ const useSectionEdit = ({
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [setEditing, updateRoot, onDiscard, sectionId]);
|
||||
|
||||
const modeHandle = useCallback(() => {
|
||||
const handleDelete = useCallback(() => {
|
||||
setEditing(!editing);
|
||||
onMode?.();
|
||||
onDelete?.();
|
||||
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [setEditing, editing, updateRoot, onMode, sectionId]);
|
||||
}, [setEditing, editing, updateRoot, onDelete, sectionId]);
|
||||
|
||||
const handlePractice = useCallback(() => {
|
||||
onPractice?.();
|
||||
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [setEditing, editing, updateRoot, onPractice, sectionId]);
|
||||
|
||||
return {
|
||||
editing,
|
||||
@@ -64,7 +76,8 @@ const useSectionEdit = ({
|
||||
handleEdit,
|
||||
handleSave,
|
||||
handleDiscard,
|
||||
modeHandle,
|
||||
handleDelete,
|
||||
handlePractice,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user