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:
Carlos-Mesquita
2024-11-12 14:17:54 +00:00
parent 696c968ebc
commit fdf411d133
66 changed files with 2546 additions and 1635 deletions

View File

@@ -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,
};
};