From 3c406b24bb0833e22c8fc848a30a64edcae70b73 Mon Sep 17 00:00:00 2001 From: janherich Date: Tue, 30 Jan 2018 17:17:20 +0100 Subject: [PATCH] Remove obsolete `:on-send` checking --- resources/js/status.js | 3 +- src/status_im/chat/events/input.cljs | 73 ++++++++-------------------- 2 files changed, 22 insertions(+), 54 deletions(-) diff --git a/resources/js/status.js b/resources/js/status.js index 3cedc45499..0909993c5d 100644 --- a/resources/js/status.js +++ b/resources/js/status.js @@ -53,8 +53,7 @@ Command.prototype.create = function (com) { this.icon = com.icon; this.params = com.params || []; this.preview = com.preview; - this["short-preview"] = com.shortPreview; - this["on-send"] = com.onSend; + this["short-preview"] = com.shortPreview; this.fullscreen = com.fullscreen; this.actions = com.actions; this.request = com.request; diff --git a/src/status_im/chat/events/input.cljs b/src/status_im/chat/events/input.cljs index 04e5e7ffee..c6b600ef84 100644 --- a/src/status_im/chat/events/input.cljs +++ b/src/status_im/chat/events/input.cljs @@ -279,39 +279,28 @@ command-message)}))) (defn proceed-command - "Proceed with command processing by setting up execution chain of events: - - 1. Command validation - 2. Checking if command defined `onSend` - - Second check is important because commands defining `onSend` are actually not - 'sendable' and can't be treated as normal command messages, instead of actually - sending them, returned markup is displayed in the chat result box and command processing - ends there. - If it's normal command instead (determined by nil response to `:on-send` jail request), - processing continues by requesting command preview before actually sending the command - message." + "Proceed with command processing by setting up and executing chain of events: + 1. Params validation + 2. Preview fetching" [{:keys [current-chat-id chats] :as db} {{:keys [bot]} :command :as content} message-id current-time] - (let [params-template {:content content - :chat-id current-chat-id - :group-id (when (get-in chats [current-chat-id :group-chat]) - current-chat-id) - :jail-id (or bot current-chat-id) - :message-id message-id - :current-time current-time} - on-send-params (merge params-template - {:data-type :on-send - :event-after-creator (fn [_ jail-response] - [::check-command-type - jail-response - params-template])}) - after-validation-events [[::request-command-data on-send-params]] - validation-params (merge params-template - {:data-type :validator - :event-after-creator (fn [_ jail-response] - [::proceed-validation - jail-response - after-validation-events])})] + (let [params-template {:content content + :chat-id current-chat-id + :group-id (when (get-in chats [current-chat-id :group-chat]) + current-chat-id) + :jail-id (or bot current-chat-id) + :message-id message-id + :current-time current-time} + preview-params (merge params-template + {:data-type :preview + :event-after-creator (fn [command-message jail-response] + [::send-command + (assoc-in command-message [:command :preview] jail-response)])}) + validation-params (merge params-template + {:data-type :validator + :event-after-creator (fn [_ jail-response] + [::proceed-validation + jail-response + [[::request-command-data preview-params]]])})] (request-command-data db validation-params))) ;;;; Handlers @@ -421,26 +410,6 @@ (set-chat-input-metadata nil) (set-chat-input-text nil)))))) -(handlers/register-handler-fx - ::check-command-type - [re-frame/trim-v] - (fn [{{:keys [current-chat-id] :as db} :db} [on-send-jail-response params-template]] - (if on-send-jail-response - ;; `onSend` is defined, we have non-sendable command here, like `@browse` - {:db (-> db - (model/set-chat-ui-props {:result-box on-send-jail-response - :sending-in-progress? false}) - (animation-events/choose-predefined-expandable-height :result-box :max)) - ::dismiss-keyboard nil} - ;; regular command message, we need to fetch preview before sending the command message - (request-command-data - db - (merge params-template - {:data-type :preview - :event-after-creator (fn [command-message returned] - [::send-command (assoc-in command-message - [:command :preview] returned)])}))))) - (defn command-complete? [chat-command] (= :complete (input-model/command-completion chat-command)))