Last active
October 1, 2022 07:06
-
-
Save soequi/3abbf34f000c1a55f7b25273bf74ddac to your computer and use it in GitHub Desktop.
cljs fetch
This file contains hidden or 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 nomadcoders.frontend.app | |
| (:require | |
| [cljss.core :refer-macros [defstyles]] | |
| [helix.core :refer [defnc $]] | |
| [helix.dom :as d] | |
| [helix.hooks :as hooks] | |
| [promesa.core :as p] | |
| [goog.object :as gobj] | |
| ["react-dom/client" :as rdom])) | |
| (defn json-get [url] | |
| (p/let [resp (js/fetch url) | |
| json (.json resp)] | |
| (js->clj json :keywordize-keys true))) | |
| (defnc App | |
| [] | |
| (let [[loading set-loading] (hooks/use-state true) | |
| [movies set-movies] (hooks/use-state [])] | |
| ;(hooks/use-effect [] | |
| ; (-> (js/fetch "https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year") | |
| ; (p/then #(.json %)) | |
| ; (p/then #(gobj/get % "data")) | |
| ; (p/then #(gobj/get % "movies")) | |
| ; (p/then #(js->clj % {:keywordize-keys true})) | |
| ; (p/then (fn [movie-list] | |
| ; (set-movies movie-list) | |
| ; (set-loading false))))) | |
| (hooks/use-effect [] | |
| (p/let [{:keys [data]} (json-get "https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year")] | |
| (set-movies (:movies data)) | |
| (set-loading false))) | |
| (d/div | |
| (d/h1 "The Coins!") | |
| (when loading (d/strong "Loading..."))))) | |
| (defn ^:export init [] | |
| (let [root (rdom/createRoot (js/document.getElementById "root"))] | |
| (.render root ($ App)))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment