action modal is gone.

This commit is contained in:
Bryce Covert
2020-08-22 09:29:12 -07:00
parent 86a117f739
commit dc57fd7d0c
10 changed files with 56 additions and 96 deletions

View File

@@ -1,7 +1,6 @@
(ns auto-ap.views.components.vendor-dialog
(:require [re-frame.core :as re-frame]
[auto-ap.views.utils :refer [dispatch-event horizontal-field bind-field with-user with-is-admin? active-when]]
[auto-ap.views.components.modal :refer [action-modal]]
[auto-ap.views.components.address :refer [address-field]]
[auto-ap.views.components.typeahead :refer [typeahead-entity]]
[auto-ap.views.components.dropdown :refer [drop-down drop-down-contents]]
@@ -12,7 +11,15 @@
[auto-ap.entities.vendors :as entity]
[auto-ap.entities.contact :as contact]
[auto-ap.subs :as subs]
[auto-ap.forms :as forms]))
[auto-ap.forms :as forms]
[auto-ap.views.components.modal :as modal]
[auto-ap.status :as status]))
(re-frame/reg-sub
::can-submit
:<- [::forms/form ::vendor-form]
(fn [form]
(s/valid? ::entity/vendor (:data form))))
(defn ngrams [text len]
(mapv #(.toLowerCase (str/join "" %))
@@ -56,30 +63,7 @@
(map vector (range) overrides))))))
(re-frame/reg-event-fx
::started
(fn [{:keys [db]} [_ vendor]]
{:db (-> db (forms/start-form ::vendor-form (-> vendor
(update :account-overrides #(mapv
(fn [ao]
{:id (:id ao)
:client (:client ao)
:override (:account ao)})
%))
(update :terms-overrides #(mapv
(fn [to]
{:id (:id to)
:client (:client to)
:override (:terms to)})
%))
(update :hidden #(if (nil? %)
false
%))
(update :default-account
(fn [da]
@(re-frame/subscribe [::subs/account nil (:id da)]))))))
:dispatch [::events/modal-status ::dialog {:visible? true}]}))
(re-frame/reg-event-db
::changed
@@ -99,9 +83,8 @@
::save-complete
[(forms/triggers-stop ::vendor-form)]
(fn [{:keys [db]} [_ {vendor :upsert-vendor} ]]
{:dispatch [::events/modal-completed ::dialog ]
:db (-> db
(assoc-in [:vendors (:id vendor)] vendor))}))
{:dispatch [::modal/modal-closed ]
:db (-> db (assoc-in [:vendors (:id vendor)] vendor))}))
(re-frame/reg-event-fx
::save
@@ -110,9 +93,9 @@
(when (s/valid? ::entity/vendor data)
{ :graphql
{:token user
:owns-state {:single ::vendor-form}
:query-obj {:venia/operation {:operation/type :mutation
:operation/name "UpsertVendor"}
:venia/queries [{:query/data [:upsert-vendor
:operation/name "UpsertVendor"} :venia/queries [{:query/data [:upsert-vendor
{:vendor (cond-> {:id id
:name name
:print-as print-as
@@ -139,8 +122,7 @@
:id
automatically-paid-when-due)))}
events/vendor-query]}]}
:on-success [::save-complete]
:on-error [::forms/save-error ::vendor-form]}})))
:on-success [::save-complete]}})))
(defn client-list [{:keys [override-key override-value-key change-event default-key data]} template]
(let [clients @(re-frame/subscribe [::subs/clients])
@@ -368,19 +350,39 @@
all-vendors @(re-frame/subscribe [::subs/vendors])
{:keys [data error warning] :as f} @(re-frame/subscribe [::forms/form ::vendor-form])
change-event [::changed]]
[action-modal {:id ::dialog
:class ["wide"]
:title [:span (if (:id data)
(str "Edit " (or (:name data) "<vendor>"))
(str "Add " (or (:name data) "<new vendor>")))
(when error
[:span.icon.has-text-danger
[:i.fa.fa-exclamation-triangle]])]
:status-from ::vendor-form
:warning warning
:action-text "Save"
:save-event [::save]
:can-submit? (s/valid? ::entity/vendor data)}
[:div
[form-content {:data data :change-event change-event}]]]))
[:div
[form-content {:data data :change-event change-event}]]))
(re-frame/reg-event-fx
::started
(fn [{:keys [db]} [_ vendor]]
{:db (-> db (forms/start-form ::vendor-form (-> vendor
(update :account-overrides #(mapv
(fn [ao]
{:id (:id ao)
:client (:client ao)
:override (:account ao)})
%))
(update :terms-overrides #(mapv
(fn [to]
{:id (:id to)
:client (:client to)
:override (:terms to)})
%))
(update :hidden #(if (nil? %)
false
%))
(update :default-account
(fn [da]
@(re-frame/subscribe [::subs/account nil (:id da)]))))))
:dispatch [::modal/modal-requested
{:title "Vendor"
:class "is-wide"
:body [vendor-dialog]
:confirm {:value "Save Vendor"
:status-from [::status/single ::vendor-form]
:class "is-primary"
:on-click (dispatch-event [::save])
:can-submit [::can-submit]
:close-event [::status/completed ::vendor-form]}}]}))