another attempt to improve animation

Former-commit-id: 5ff4ff7ead38cb24279de455fa6d857f318074fe
This commit is contained in:
Roman Volosovskyi 2016-06-30 19:27:42 +03:00
parent cd564d43ab
commit cb03a563d1
2 changed files with 10 additions and 12 deletions

View File

@ -29,10 +29,10 @@
(fn [{:keys [current-chat-id] :as db} _] (fn [{:keys [current-chat-id] :as db} _]
(let [suggestions? (seq (get-in db [:command-suggestions current-chat-id])) (let [suggestions? (seq (get-in db [:command-suggestions current-chat-id]))
current (get-in db [:animations :command-suggestions-height]) current (get-in db [:animations :command-suggestions-height])
height (if suggestions? middle-height 30) height (if suggestions? middle-height input-height)
changed? (if (and suggestions? changed? (if (and suggestions?
(not (nil? current)) (not (nil? current))
(not= 30 current)) (not= input-height current))
identity inc)] identity inc)]
(-> db (-> db
(update :animations assoc :command-suggestions-height height) (update :animations assoc :command-suggestions-height height)
@ -44,7 +44,7 @@
type (get-in db path)] type (get-in db path)]
(if (= :response type) (if (= :response type)
minimum-suggestion-height minimum-suggestion-height
30))) input-height)))
(register-handler :animate-show-response (register-handler :animate-show-response
[(after #(dispatch [:command-edit-mode]))] [(after #(dispatch [:command-edit-mode]))]
@ -97,7 +97,7 @@
(let [suggestions (get-in db [:command-suggestions current-chat-id])] (let [suggestions (get-in db [:command-suggestions current-chat-id])]
(if (seq suggestions) (if (seq suggestions)
minimum-command-suggestions-height minimum-command-suggestions-height
0.1))) input-height)))
(register-handler :fix-commands-suggestions-height (register-handler :fix-commands-suggestions-height
(fix-height :command-suggestions-height (fix-height :command-suggestions-height

View File

@ -115,14 +115,12 @@
on-update on-update
:reagent-render :reagent-render
(fn [h & elements] (fn [h & elements]
@changed @to-response-height @changed
(into [animated-view {:style (st/container h)}] elements))}))) (into [animated-view {:style (st/container h)}] elements))})))
(defn suggestion-container [] (defn suggestion-container []
(let [h (anim/create-value 0.1) (let [h (anim/create-value c/input-height)]
command? (subscribe [:command?])] [container h
(when-not @command? [header h]
[container h [suggestions-view]
[header h] [view {:height c/input-height}]]))
[suggestions-view]
[view {:height c/input-height}]])))