diff --git a/re-natal.coffee b/re-natal.coffee index 24f762a..b9d90bc 100644 --- a/re-natal.coffee +++ b/re-natal.coffee @@ -66,8 +66,7 @@ interfaceConf = android: ["core.cljs"] common: ["state.cljs"] other: [["support.cljs","re_natal/support.cljs"]] - deps: ['[org.omcljs/om "1.0.0-alpha28" :exclusions [cljsjs/react cljsjs/react-dom]]' - '[natal-shell "0.1.6"]'] + deps: ['[org.omcljs/om "1.0.0-alpha28" :exclusions [cljsjs/react cljsjs/react-dom]]'] shims: ["cljsjs.react", "cljsjs.react.dom"] sampleCommandNs: '(in-ns \'$PROJECT_NAME_HYPHENATED$.state)' sampleCommand: '(swap! app-state assoc :app/msg "Hello Native World!")' @@ -78,8 +77,7 @@ interfaceConf = android: ["core.cljs"] common: [] other: [["sablono_compiler.clj","sablono/compiler.clj"],["support.cljs","re_natal/support.cljs"]] - deps: ['[rum "0.8.3" :exclusions [cljsjs/react cljsjs/react-dom sablono]]' - '[natal-shell "0.1.6"]'] + deps: ['[rum "0.8.3" :exclusions [cljsjs/react cljsjs/react-dom sablono]]'] shims: ["cljsjs.react", "cljsjs.react.dom", "sablono.core"] sampleCommandNs: '(in-ns \'$PROJECT_NAME_HYPHENATED$.ios.core)' sampleCommand: '(swap! app-state assoc :greeting "Hello Clojure in iOS and Android with Rum!")' diff --git a/resources/cljs-om-next/core.cljs b/resources/cljs-om-next/core.cljs index 247b559..14ba3f1 100644 --- a/resources/cljs-om-next/core.cljs +++ b/resources/cljs-om-next/core.cljs @@ -1,15 +1,25 @@ (ns $PROJECT_NAME_HYPHENATED$.$PLATFORM$.core - (:require-macros [natal-shell.components :refer [view text image touchable-highlight]] - [natal-shell.alert :refer [alert]]) (:require [om.next :as om :refer-macros [defui]] [re-natal.support :as sup] [$PROJECT_NAME_HYPHENATED$.state :as state])) -(set! js/window.React (js/require "react-native")) +(set! js/window.React (js/require "react")) +(def ReactNative (js/require "react-native")) + +(defn create-element [rn-comp opts & children] + (apply js/React.createElement rn-comp (clj->js opts) children)) + +(def app-registry (.-AppRegistry ReactNative)) +(def view (partial create-element (.-View ReactNative))) +(def text (partial create-element (.-Text ReactNative))) +(def image (partial create-element (.-Image ReactNative))) +(def touchable-highlight (partial create-element (.-TouchableHighlight ReactNative))) -(def app-registry (.-AppRegistry js/React)) (def logo-img (js/require "./images/cljs.png")) +(defn alert [title] + (.alert (.-Alert ReactNative) title)) + (defui AppRoot static om/IQuery (query [this] diff --git a/resources/cljs-rum/core.cljs b/resources/cljs-rum/core.cljs index 153e8bc..2f53351 100644 --- a/resources/cljs-rum/core.cljs +++ b/resources/cljs-rum/core.cljs @@ -1,15 +1,25 @@ (ns $PROJECT_NAME_HYPHENATED$.$PLATFORM$.core - (:require-macros [natal-shell.components :refer [view text image touchable-highlight]] - [natal-shell.alert :refer [alert]] - [rum.core :refer [defc]]) + (:require-macros [rum.core :refer [defc]]) (:require [re-natal.support :as support] [rum.core :as rum])) -(set! js/window.React (js/require "react-native")) +(set! js/window.React (js/require "react")) +(def ReactNative (js/require "react-native")) + +(defn create-element [rn-comp opts & children] + (apply js/React.createElement rn-comp (clj->js opts) children)) + +(def app-registry (.-AppRegistry ReactNative)) +(def view (partial create-element (.-View ReactNative))) +(def text (partial create-element (.-Text ReactNative))) +(def image (partial create-element (.-Image ReactNative))) +(def touchable-highlight (partial create-element (.-TouchableHighlight ReactNative))) -(def app-registry (.-AppRegistry js/React)) (def logo-img (js/require "./images/cljs.png")) +(defn alert [title] + (.alert (.-Alert ReactNative) title)) + (defonce app-state (atom {:greeting "Hello Clojure in iOS and Android!"})) (defc AppRoot < rum/cursored-watch [state] diff --git a/resources/cljs-rum/support.cljs b/resources/cljs-rum/support.cljs index d98bd31..acc9196 100644 --- a/resources/cljs-rum/support.cljs +++ b/resources/cljs-rum/support.cljs @@ -1,7 +1,7 @@ (ns re-natal.support "Helpers and adapters to be able to mount/remount Rum components in a React Native application.") -(def React (js/require "react-native")) +(def React (js/require "react")) (def create-class (.-createClass React)) (def create-factory (.-createFactory React))