wasmplay icon indicating copy to clipboard operation
wasmplay copied to clipboard

Port todomvc examples from gopherjs vecty

Open yml opened this issue 6 years ago • 1 comments

The changes github.com/gopherjs/vecty/example/todomvc/ => github.com/bketelsen/wasmplay/todomvcvecty/ github.com/gowasm/vecty => github.com/bketelsen/wasmplay/vecty github.com/gopherjs/js/ => "github.com/gowasm/gopherwasm/js"

in the main function we need to block to not exit the app

   c := make(chan struct{}, 0)
   <-c

Keep in mind that I have no idea what I am doing so take it with a grain of salt :-)

yml avatar Jun 25 '18 19:06 yml

I have just noticed that some events are fired multiple times. This issue sometimes crash the app. One way to reproduce it is to create multiple items (5) and delete the top 2 or 3 items. The action *actions.DestroyItem is fired multiple times.

Here it is the kind of traceback

Wrapping something real
wasm_exec.js:39 a.Index:  0  ; item len:  6
wasm_exec.js:39 item len:  5
wasm_exec.js:39 Global [object Window]
wasm_exec.js:39 name: requestAnimationFrame
wasm_exec.js:39 args [{408 {80399}}]
wasm_exec.js:39 Wrapping something real
wasm_exec.js:39 a.Index:  0  ; item len:  5
wasm_exec.js:39 item len:  4
wasm_exec.js:39 a.Index:  0  ; item len:  4
wasm_exec.js:39 item len:  3
wasm_exec.js:39 a.Index:  0  ; item len:  3
wasm_exec.js:39 item len:  2
wasm_exec.js:39 a.Index:  0  ; item len:  2
wasm_exec.js:39 item len:  1
wasm_exec.js:39 a.Index:  0  ; item len:  1
wasm_exec.js:39 item len:  0
wasm_exec.js:39 a.Index:  0  ; item len:  0
wasm_exec.js:39 panic: runtime error: slice bounds out of range
wasm_exec.js:39 
wasm_exec.js:39 goroutine 5 [running]:
wasm_exec.js:39 github.com/bketelsen/wasmplay/todomvcvecty/store.onAction(0x128a0, 0xc214430)
wasm_exec.js:39 	/home/yml/gopath/src/github.com/bketelsen/wasmplay/todomvcvecty/store/store.go:55 +0x84
wasm_exec.js:39 github.com/bketelsen/wasmplay/todomvcvecty/dispatcher.Dispatch(0x128a0, 0xc214430)
wasm_exec.js:39 	/home/yml/gopath/src/github.com/bketelsen/wasmplay/todomvcvecty/dispatcher/dispatcher.go:12 +0x5
wasm_exec.js:39 github.com/bketelsen/wasmplay/todomvcvecty/components.(*ItemView).onDestroy(0xc02ed80, 0xc214428)
wasm_exec.js:39 	/home/yml/gopath/src/github.com/bketelsen/wasmplay/todomvcvecty/components/itemview.go:32 +0x4
wasm_exec.js:39 github.com/bketelsen/wasmplay/todomvcvecty/components.(*ItemView).onDestroy-fm(0xc214428)
wasm_exec.js:39 	/home/yml/gopath/src/github.com/bketelsen/wasmplay/todomvcvecty/components/itemview.go:105 +0x2
wasm_exec.js:39 github.com/gowasm/vecty.(*HTML).reconcileProperties.func1(0x13a4f)
wasm_exec.js:39 	/home/yml/gopath/src/github.com/gowasm/vecty/dom.go:251 +0x7
wasm_exec.js:39 syscall/js.NewEventCallback.func1(0xc214424, 0x1, 0x1)
wasm_exec.js:39 	/home/yml/gowasm/src/syscall/js/callback.go:95 +0x3
wasm_exec.js:39 syscall/js.callbackLoop()
wasm_exec.js:39 	/home/yml/gowasm/src/syscall/js/callback.go:139 +0x6
wasm_exec.js:39 created by syscall/js.NewCallback.func1
wasm_exec.js:39 	/home/yml/gowasm/src/syscall/js/callback.go:65 +0x2```

yml avatar Jun 26 '18 11:06 yml