                             (dom/a #js {:href "#" :onClick #(om/transact! comp ['(app/logout)])}
                               (dom/i #js {:className "icon-share-alt"}) "Logout")))))
 
+(defn signed-in? [me]
+  (boolean (:user/name me)))
+
 (om/defui ^:once DesktopMenu
   static om/Ident
   (ident [_ props] (u/model-ident props))


  Object
  (render [this]
    (let [{:keys [user/name user/score] :as props} (om/props this)]
      (dom/div #js {:className "header hidden-phone"}
        (dom/div #js {:className "navbar"}
          (dom/div #js {:className "navbar-inner"}

    (remove-watch (some-> (om/get-reconciler this) :config :state) :auth-state-detector))

  (render [this]
    (let [{:keys [app/route app/me route/data ui/react-key ui/banner]} (om/props this)]
      (dom/div #js {:key react-key}
        (when (and banner
                   (not (signed-in? me))
                   (contains? banner-routes (::r/handler route)))
          (banner))
        (desktop-menu (assoc me :react-key "desktop-menu"))
        (u/transition-group #js {:transitionName "loading" :transitionEnterTimeout 200 :transitionLeaveTimeout 200}
          (if (df/loading? (get data :ui/fetch-state))
