dropdown fixed.
This commit is contained in:
30
src/cljs/auto_ap/views/components/dropdown.cljs
Normal file
30
src/cljs/auto_ap/views/components/dropdown.cljs
Normal file
@@ -0,0 +1,30 @@
|
||||
(ns auto-ap.views.components.dropdown
|
||||
(:require [reagent.core :as r]
|
||||
[auto-ap.events :as events]
|
||||
[re-frame.core :as re-frame]
|
||||
[auto-ap.subs :as subs]))
|
||||
|
||||
(defn drop-down-contents [{:keys [id]} children ]
|
||||
(let [toggle-fn (fn [] (re-frame/dispatch [::events/toggle-menu id]))]
|
||||
(r/create-class {:component-did-mount (fn [] (.addEventListener js/document "click" toggle-fn))
|
||||
:component-will-unmount (fn [] (.removeEventListener js/document "click" toggle-fn))
|
||||
:reagent-render
|
||||
(fn [children]
|
||||
children)})))
|
||||
|
||||
(defn drop-down [{:keys [ header id]} child]
|
||||
(let [menu-active? (re-frame/subscribe [::subs/menu-active? id])]
|
||||
(r/create-class
|
||||
{:reagent-render (fn [{:keys [header id]} child]
|
||||
(let [menu-active? @(re-frame/subscribe [::subs/menu-active? id])]
|
||||
[:div.dropdown.is-right {:class (if menu-active?
|
||||
"is-active"
|
||||
"")}
|
||||
[:div.dropdown-trigger header]
|
||||
|
||||
[:div.dropdown-menu {:role "menu"}
|
||||
[:div.dropdown-content
|
||||
(when menu-active?
|
||||
[drop-down-contents {:id id}
|
||||
child])]]]))})))
|
||||
|
||||
Reference in New Issue
Block a user