|
@@ -11,7 +11,7 @@
|
|
|
|
|
|
(defonce feeds (r/atom []))
|
|
|
(defonce active-user (r/atom {:name "Anonymous CoW"}))
|
|
|
-(defonce app-state (r/atom {:text "Hello clojure world!" :nav-open? true :__figwheel_counter 0 :active-user active-user}))
|
|
|
+(defonce app-state (r/atom {:text "Hello clojure world!" :nav-open? true :dropdown-open? false :__figwheel_counter 0 :active-user active-user}))
|
|
|
|
|
|
(println "h i")
|
|
|
|
|
@@ -32,15 +32,23 @@
|
|
|
:allow "autoplay; encrypted-media"
|
|
|
:allowfullscreen "allowfullscreen"}]])
|
|
|
|
|
|
+; [:a {:href (:url item)} [:p (:title item)]]
|
|
|
+
|
|
|
(defn feed-items [items]
|
|
|
[:ul
|
|
|
(for [item items]
|
|
|
[:li.feed-item
|
|
|
- [:a {:href (:url item)} [:p (:title item)]]
|
|
|
[:div {} (if (item-is-video? item)
|
|
|
(video-item item)
|
|
|
(when (item-is-yt? item)
|
|
|
- (yt-item item)))]])])
|
|
|
+ (yt-item item)))]
|
|
|
+ [:p
|
|
|
+ [:a {:href (:url item)} (:title item)]
|
|
|
+ " "
|
|
|
+ (:feed-title item)]
|
|
|
+ [:p (str (:pub-date item))] ; TODO format date, shrink line height and font
|
|
|
+
|
|
|
+ ])])
|
|
|
|
|
|
(defn iframe-video-item [item]
|
|
|
(let [media (:media item)]
|
|
@@ -51,31 +59,51 @@
|
|
|
(iframe-video-item item)))
|
|
|
|
|
|
(defn feeds-as-list [feeds]
|
|
|
- [:ul
|
|
|
+ [:ul {:class "feed"} ; TODO remove list bullet
|
|
|
(for [feed feeds]
|
|
|
- [:li (:title feed) (-> (:items feed) video-items feed-items)])])
|
|
|
+ [:li (-> (:items feed) video-items feed-items)])])
|
|
|
|
|
|
-(defn toggle-nav [app-state]
|
|
|
+#_ (defn toggle-nav [app-state]
|
|
|
(swap! app-state update :nav-open? (fn [nav-open?] (not nav-open?))))
|
|
|
|
|
|
+#_ (defn toggle-dropdown [app-state]
|
|
|
+ (swap! app-state update :dropdown-open? (fn [dropdown-open?] (not dropdown-open?))))
|
|
|
+
|
|
|
+
|
|
|
(defn hello-world [app-state]
|
|
|
(fn []
|
|
|
[:div
|
|
|
- [b/Navbar
|
|
|
-
|
|
|
+ #_ [b/Navbar
|
|
|
+
|
|
|
[b/NavbarBrand "HolaB"]
|
|
|
[b/NavbarToggler {:on-click #(toggle-nav app-state)} [:span "menu"]]
|
|
|
-
|
|
|
- [b/Collapse {:is-open (get @app-state :nav-open?) :navbar "navbar"}
|
|
|
- [b/Nav {:pills true} [b/NavItem [b/NavLink {:href "/"} "Hola"]] [b/NavItem [b/NavLink {:href "#"} "Hola 2"]]]]]
|
|
|
-
|
|
|
- [:h1 (:text @app-state)]
|
|
|
- [:h2 "You are " (get @(:active-user @app-state) :name "Anonymous cow")]
|
|
|
- [:h3 "Edit This and watch it change!"]
|
|
|
- [:p "We've reloaded " [:strong (:__figwheel_counter @app-state)] " times (not counting errorz)."]
|
|
|
- [b/Button {:color "danger"
|
|
|
- :on-click #(js/alert "HOLA")}
|
|
|
- "Say Hola"]
|
|
|
+ [b/Collapse {:is-open (get @app-state :nav-open?) :navbar true}
|
|
|
+ [b/Nav
|
|
|
+ [b/NavItem [b/NavLink {:href "/"} "Hola"]]
|
|
|
+ [b/NavItem [b/NavLink {:href "#"} "Hola 2"]]
|
|
|
+
|
|
|
+ [b/NavItem
|
|
|
+ [b/UncontrolledDropdown
|
|
|
+ [b/DropdownToggle {:caret true :on-click #(toggle-dropdown app-state)} "Dropdown"]
|
|
|
+ [b/DropdownMenu
|
|
|
+ [b/DropdownItem {:header true} "Header"]
|
|
|
+ [b/DropdownItem [b/NavLink {:href "/"} "Hola 3"]]]]]
|
|
|
+
|
|
|
+
|
|
|
+ ]]
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ ]
|
|
|
+
|
|
|
+ ;[:h1 (:text @app-state)]
|
|
|
+ ;[:h2 "You are " (get @(:active-user @app-state) :name "Anonymous cow")]
|
|
|
+ ;[:h3 "Edit This and watch it change!"]
|
|
|
+ ;[:p "We've reloaded " [:strong (:__figwheel_counter @app-state)] " times (not counting errorz)."]
|
|
|
+ ;[b/Button {:color "danger"
|
|
|
+ ; :on-click #(js/alert "HOLA")}
|
|
|
+ ; "Say Hola"]
|
|
|
(feeds-as-list @feeds)]))
|
|
|
|
|
|
(defn on-js-reload []
|
|
@@ -125,6 +153,7 @@
|
|
|
{:guid guid
|
|
|
:key guid
|
|
|
:title title
|
|
|
+ :feed-title "Feed Title" ; TODO
|
|
|
:pub-date pub-date
|
|
|
:description description
|
|
|
:url url
|
|
@@ -160,4 +189,16 @@
|
|
|
(add-feeds!)
|
|
|
nil)
|
|
|
|
|
|
+(def state (atom {}))
|
|
|
+
|
|
|
+(defn dispatch-feed-added [])
|
|
|
+
|
|
|
+(defn dispatch-feed-item-added [])
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
(defonce __initialized! (init!))
|