/
wordpreview.go
53 lines (45 loc) · 1.52 KB
/
wordpreview.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package main
import (
. "github.com/siongui/godom"
"github.com/siongui/gopalilib/lib"
"github.com/siongui/gopalilib/lib/dicmgr"
"github.com/siongui/gopalilib/libfrontend"
"github.com/siongui/gopalilib/libfrontend/setting"
sg "github.com/siongui/gopherjs-input-suggest"
)
var wordPreviewElm *Object
func setWordPreviewUI(word, rawhtml string) {
wordPreviewElm.SetInnerHTML(rawhtml)
wordPreviewElm.ClassList().Remove("is-hidden")
Document.QuerySelector(".suggest").ClassList().Add("suggest-is-absolute")
w := Document.QuerySelector(".suggest").Get("offsetWidth").String() + "px"
//println(w)
wordPreviewElm.Style().SetLeft(w)
}
func httpGetWordJson2(word string) {
wi, err := lib.HttpGetWordJson(libfrontend.HttpWordJsonPath(word))
if err != nil {
// TODO: handle error here.
return
}
setWordPreviewUI(word, dicmgr.GetWordPreviewHtml(word, wi, setting.LoadPaliSetting(), Window.Navigator().Languages()))
}
func setupWordPreview() {
wordPreviewElm = Document.QuerySelector(".suggestedWordPreview")
sg.OnHighlightSelectedWord(func(word string) {
//println(word)
if !setting.LoadPaliSetting().IsShowWordPreview {
return
}
//println("show word preview")
go httpGetWordJson2(word)
})
sg.OnUpdateSuggestMenu(func(word string) {
wordPreviewElm.ClassList().Add("is-hidden")
Document.QuerySelector(".suggest").ClassList().Remove("suggest-is-absolute")
})
sg.OnHideSuggestMenu(func() {
wordPreviewElm.ClassList().Add("is-hidden")
Document.QuerySelector(".suggest").ClassList().Remove("suggest-is-absolute")
})
}