-
-
Save tskardal/4c149a1d8a5050b76a06 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns battlesnake.lobby | |
(:require [chord.client :refer [ws-ch]] | |
[cljs.core.async :refer [chan <! >! put! close! timeout]] | |
[reagent.core :as reagent :refer [atom]]) | |
(:require-macros [cljs.core.async.macros :refer [go go-loop]])) | |
(def game-name (atom "")) | |
(def all-games (atom [{:name "Awesome game"} {:name "Less awesome game"}])) | |
(defn create-game [] | |
[:div | |
[:h3 "Create a game"] | |
[:input {:type "text" :value @game-name :placeholder "Name the game!" | |
:on-change #(reset! game-name (-> % .-target .-value))}] | |
[:input {:type "button" :value "Start" :on-click #(reset! game-name "")}]]) | |
(defn game-list [] | |
[:ul | |
(for [game @all-games] | |
[:li (game :name)])]) | |
(defn lobby [] | |
[:div | |
[create-game] | |
[game-list]]) | |
(defn listen [] | |
(go (let [{:keys [ws-channel]} (<! (ws-ch "ws://localhost:3000/ws"))]) | |
(go-loop [] | |
(when-let [{:keys [message]} (<! ws-channel)] | |
(js/console.log (str "msg: " message)) | |
(recur))))) | |
(defn ^:export init [parent] | |
(reagent/render-component [lobby] parent)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Compiling ClojureScript. | |
Compiling "target/classes/public/js/battlesnake.js" from ["src/cljs"]... | |
Compiling "target/classes/public/js/battlesnake.js" failed. | |
clojure.lang.ExceptionInfo: failed compiling file:src/cljs/battlesnake/lobby.cljs {:file #<File src/cljs/battlesnake/lobby.cljs>} | |
at clojure.core$ex_info.invoke(core.clj:4403) | |
at cljs.compiler$compile_file.invoke(compiler.clj:999) | |
at cljs.compiler$compile_root.invoke(compiler.clj:1029) | |
at cljs.closure$compile_dir.invoke(closure.clj:358) | |
at cljs.closure$eval3139$fn__3140.invoke(closure.clj:398) | |
at cljs.closure$eval3075$fn__3076$G__3066__3083.invoke(closure.clj:306) | |
at cljs.closure$eval3126$fn__3127.invoke(closure.clj:412) | |
at cljs.closure$eval3075$fn__3076$G__3066__3083.invoke(closure.clj:306) | |
at cljsbuild.compiler.SourcePaths$fn__3353.invoke(compiler.clj:67) | |
at clojure.core$map$fn__4245.invoke(core.clj:2557) | |
at clojure.lang.LazySeq.sval(LazySeq.java:40) | |
at clojure.lang.LazySeq.seq(LazySeq.java:49) | |
at clojure.lang.RT.seq(RT.java:484) | |
at clojure.core$seq.invoke(core.clj:133) | |
at clojure.core$apply.invoke(core.clj:624) | |
at clojure.core$mapcat.doInvoke(core.clj:2586) | |
at clojure.lang.RestFn.invoke(RestFn.java:423) | |
at cljsbuild.compiler.SourcePaths._compile(compiler.clj:67) | |
at cljs.closure$build.invoke(closure.clj:1006) | |
at cljs.closure$build.invoke(closure.clj:960) | |
at cljsbuild.compiler$compile_cljs$fn__3364.invoke(compiler.clj:81) | |
at cljsbuild.compiler$compile_cljs.invoke(compiler.clj:80) | |
at cljsbuild.compiler$run_compiler.invoke(compiler.clj:179) | |
at user$eval3496$iter__3514__3518$fn__3519$fn__3531.invoke(form-init1751129634322424023.clj:1) | |
at user$eval3496$iter__3514__3518$fn__3519.invoke(form-init1751129634322424023.clj:1) | |
at clojure.lang.LazySeq.sval(LazySeq.java:40) | |
at clojure.lang.LazySeq.seq(LazySeq.java:49) | |
at clojure.lang.RT.seq(RT.java:484) | |
at clojure.core$seq.invoke(core.clj:133) | |
at clojure.core$dorun.invoke(core.clj:2855) | |
at clojure.core$doall.invoke(core.clj:2871) | |
at user$eval3496.invoke(form-init1751129634322424023.clj:1) | |
at clojure.lang.Compiler.eval(Compiler.java:6703) | |
at clojure.lang.Compiler.eval(Compiler.java:6693) | |
at clojure.lang.Compiler.load(Compiler.java:7130) | |
at clojure.lang.Compiler.loadFile(Compiler.java:7086) | |
at clojure.main$load_script.invoke(main.clj:274) | |
at clojure.main$init_opt.invoke(main.clj:279) | |
at clojure.main$initialize.invoke(main.clj:307) | |
at clojure.main$null_opt.invoke(main.clj:342) | |
at clojure.main$main.doInvoke(main.clj:420) | |
at clojure.lang.RestFn.invoke(RestFn.java:421) | |
at clojure.lang.Var.invoke(Var.java:383) | |
at clojure.lang.AFn.applyToHelper(AFn.java:156) | |
at clojure.lang.Var.applyTo(Var.java:700) | |
at clojure.main.main(main.java:37) | |
Caused by: clojure.lang.ExceptionInfo: Referred var fressian-cljs.fns/lookup does not exist at line 1 file:/home/thomas/.m2/repository/net/unit8/fressian-cljs/0.1.0/fressian-cljs-0.1.0.jar!/fressian_cljs/reader.cljs {:tag :cljs/analysis-error, :file "file:/home/thomas/.m2/repository/net/unit8/fressian-cljs/0.1.0/fressian-cljs-0.1.0.jar!/fressian_cljs/reader.cljs", :line 1, :column 1} | |
at clojure.core$ex_info.invoke(core.clj:4403) | |
at cljs.analyzer$error.invoke(analyzer.clj:297) | |
at cljs.analyzer$error.invoke(analyzer.clj:294) | |
at cljs.analyzer$check_uses.invoke(analyzer.clj:1090) | |
at cljs.analyzer$eval1537$fn__1539.invoke(analyzer.clj:1260) | |
at clojure.lang.MultiFn.invoke(MultiFn.java:249) | |
at cljs.analyzer$analyze_seq.invoke(analyzer.clj:1567) | |
at cljs.analyzer$analyze$fn__1752.invoke(analyzer.clj:1654) | |
at cljs.analyzer$analyze.invoke(analyzer.clj:1647) | |
at cljs.analyzer$analyze.invoke(analyzer.clj:1642) | |
at cljs.analyzer$analyze_file$fn__1792.invoke(analyzer.clj:1811) | |
at cljs.analyzer$analyze_file.invoke(analyzer.clj:1807) | |
at cljs.analyzer$analyze_deps.invoke(analyzer.clj:1080) | |
at cljs.analyzer$eval1537$fn__1539.invoke(analyzer.clj:1258) | |
at clojure.lang.MultiFn.invoke(MultiFn.java:249) | |
at cljs.analyzer$analyze_seq.invoke(analyzer.clj:1567) | |
at cljs.analyzer$analyze$fn__1752.invoke(analyzer.clj:1654) | |
at cljs.analyzer$analyze.invoke(analyzer.clj:1647) | |
at cljs.analyzer$analyze.invoke(analyzer.clj:1642) | |
at cljs.analyzer$analyze_file$fn__1792.invoke(analyzer.clj:1811) | |
at cljs.analyzer$analyze_file.invoke(analyzer.clj:1807) | |
at cljs.analyzer$analyze_deps.invoke(analyzer.clj:1080) | |
at cljs.analyzer$eval1537$fn__1539.invoke(analyzer.clj:1258) | |
at clojure.lang.MultiFn.invoke(MultiFn.java:249) | |
at cljs.analyzer$analyze_seq.invoke(analyzer.clj:1567) | |
at cljs.analyzer$analyze$fn__1752.invoke(analyzer.clj:1654) | |
at cljs.analyzer$analyze.invoke(analyzer.clj:1647) | |
at cljs.analyzer$analyze.invoke(analyzer.clj:1642) | |
at cljs.analyzer$analyze_file$fn__1792.invoke(analyzer.clj:1811) | |
at cljs.analyzer$analyze_file.invoke(analyzer.clj:1807) | |
at cljs.analyzer$analyze_deps.invoke(analyzer.clj:1080) | |
at cljs.analyzer$eval1537$fn__1539.invoke(analyzer.clj:1258) | |
at clojure.lang.MultiFn.invoke(MultiFn.java:249) | |
at cljs.analyzer$analyze_seq.invoke(analyzer.clj:1567) | |
at cljs.analyzer$analyze$fn__1752.invoke(analyzer.clj:1654) | |
at cljs.analyzer$analyze.invoke(analyzer.clj:1647) | |
at cljs.analyzer$analyze.invoke(analyzer.clj:1642) | |
at cljs.analyzer$analyze_file$fn__1792.invoke(analyzer.clj:1811) | |
at cljs.analyzer$analyze_file.invoke(analyzer.clj:1807) | |
at cljs.analyzer$analyze_deps.invoke(analyzer.clj:1080) | |
at cljs.analyzer$eval1537$fn__1539.invoke(analyzer.clj:1258) | |
at clojure.lang.MultiFn.invoke(MultiFn.java:249) | |
at cljs.analyzer$analyze_seq.invoke(analyzer.clj:1567) | |
at cljs.analyzer$analyze$fn__1752.invoke(analyzer.clj:1654) | |
at cljs.analyzer$analyze.invoke(analyzer.clj:1647) | |
at cljs.analyzer$analyze.invoke(analyzer.clj:1642) | |
at cljs.analyzer$analyze_file$fn__1792.invoke(analyzer.clj:1811) | |
at cljs.analyzer$analyze_file.invoke(analyzer.clj:1807) | |
at cljs.compiler$compile_file$fn__2809.invoke(compiler.clj:996) | |
at cljs.compiler$with_core_cljs.invoke(compiler.clj:867) | |
at cljs.compiler$compile_file.invoke(compiler.clj:996) | |
... 44 more |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment