mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
ready to test
Testing Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
|
||||
import * as React from "react";
|
||||
import * as AnnotationTypes from "./AnnotationTypes.js";
|
||||
import * as AnnotationStorage from "./AnnotationStorage.js";
|
||||
|
||||
function use(courseId) {
|
||||
let match = React.useState(() => AnnotationTypes.initialState);
|
||||
let setState = match[1];
|
||||
let state = match[0];
|
||||
let selectLesson = lesson => {
|
||||
let savedNote = AnnotationStorage.loadNote(courseId, lesson.id);
|
||||
let notes = {};
|
||||
if (savedNote !== undefined) {
|
||||
notes[lesson.id] = savedNote;
|
||||
}
|
||||
setState(param => ({
|
||||
selectedLesson: lesson,
|
||||
isPenOpen: true,
|
||||
notes: notes
|
||||
}));
|
||||
};
|
||||
let updateNote = (lessonId, note) => {
|
||||
AnnotationStorage.saveNote(courseId, lessonId, note);
|
||||
setState(prev => {
|
||||
let notes = {};
|
||||
notes[lessonId] = note;
|
||||
return {
|
||||
selectedLesson: prev.selectedLesson,
|
||||
isPenOpen: prev.isPenOpen,
|
||||
notes: notes
|
||||
};
|
||||
});
|
||||
};
|
||||
let closePen = () => setState(prev => ({
|
||||
selectedLesson: undefined,
|
||||
isPenOpen: false,
|
||||
notes: prev.notes
|
||||
}));
|
||||
let getNote = lessonId => state.notes[lessonId];
|
||||
return [
|
||||
state,
|
||||
selectLesson,
|
||||
updateNote,
|
||||
closePen,
|
||||
getNote
|
||||
];
|
||||
}
|
||||
|
||||
export {
|
||||
use,
|
||||
}
|
||||
/* react Not a pure module */
|
||||
Reference in New Issue
Block a user