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,38 @@
|
||||
@val external window: {..} = "window"
|
||||
|
||||
let use = (courseId: string) => {
|
||||
let (state, setState) = React.useState(() => AnnotationTypes.initialState)
|
||||
|
||||
let selectLesson = (lesson: AnnotationTypes.lesson) => {
|
||||
let savedNote = AnnotationStorage.loadNote(courseId, lesson.id)
|
||||
let notes = Dict.make()
|
||||
switch savedNote {
|
||||
| Some(note) => Dict.set(notes, lesson.id, note)
|
||||
| None => ()
|
||||
}
|
||||
setState(_ => {
|
||||
selectedLesson: Some(lesson),
|
||||
isPenOpen: true,
|
||||
notes,
|
||||
})
|
||||
}
|
||||
|
||||
let updateNote = (lessonId: string, note: string) => {
|
||||
AnnotationStorage.saveNote(courseId, lessonId, note)
|
||||
setState(prev => {
|
||||
let notes = Dict.make()
|
||||
Dict.set(notes, lessonId, note)
|
||||
{...prev, notes}
|
||||
})
|
||||
}
|
||||
|
||||
let closePen = () => {
|
||||
setState(prev => {...prev, isPenOpen: false, selectedLesson: None})
|
||||
}
|
||||
|
||||
let getNote = (lessonId: string) => {
|
||||
Dict.get(state.notes, lessonId)
|
||||
}
|
||||
|
||||
(state, selectLesson, updateNote, closePen, getNote)
|
||||
}
|
||||
Reference in New Issue
Block a user