re-natal/resources/om.cljs

34 lines
1.0 KiB
Plaintext
Raw Normal View History

2015-10-31 18:48:25 +00:00
;; Need to set js/React first so that Om can load
(set! js/React (js/require "react-native/Libraries/react-native/react-native.js"))
(ns $PROJECT_NAME_HYPHENATED$.core
(:require [om.core :as om]))
;; Reset js/React back as the form above loads in an different React
(set! js/React (js/require "react-native/Libraries/react-native/react-native.js"))
;; Setup some methods to help create React Native elements
(defn view [opts & children]
(apply js/React.createElement js/React.View (clj->js opts) children))
(defn text [opts & children]
(apply js/React.createElement js/React.Text (clj->js opts) children))
;; Set up our Om UI
(defonce app-state (atom {:text "Welcome to $PROJECT_NAME$"}))
(defn widget [data owner]
(reify
om/IRender
(render [this]
(view {:style {:flexDirection "column" :margin 40}}
2015-11-14 23:16:30 +00:00
(text {:style {:fontSize 50 :fontWeight "100"}} (:text data))))))
2015-10-31 18:48:25 +00:00
(om/root widget app-state {:target 1})
(defn ^:export init []
((fn render []
(.requestAnimationFrame js/window render))))