charts
This commit is contained in:
@@ -35,4 +35,11 @@ Alpine.directive('hx-header', (el, { value, expression }, { evaluateLater, effec
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Alpine.directive(
|
||||||
|
"destroy",
|
||||||
|
(el, { expression }, { evaluateLater, cleanup }) => {
|
||||||
|
const onDestroy = evaluateLater(expression);
|
||||||
|
cleanup(onDestroy);
|
||||||
|
}
|
||||||
|
);
|
||||||
})
|
})
|
||||||
@@ -107,7 +107,6 @@ htmx.defineExtension('trigger-filter', {
|
|||||||
onEvent: function(name , evt) {
|
onEvent: function(name , evt) {
|
||||||
if (name=="htmx:beforeRequest") {
|
if (name=="htmx:beforeRequest") {
|
||||||
var element = evt.detail.elt;
|
var element = evt.detail.elt;
|
||||||
console.log("HEREEE", element.lastParams, evt.detail.requestConfig.parameters)
|
|
||||||
if (!deepEqual(element.lastParams, evt.detail.requestConfig.parameters)) {
|
if (!deepEqual(element.lastParams, evt.detail.requestConfig.parameters)) {
|
||||||
element.lastParams = evt.detail.requestConfig.parameters;
|
element.lastParams = evt.detail.requestConfig.parameters;
|
||||||
} else {
|
} else {
|
||||||
@@ -122,13 +121,21 @@ htmx.defineExtension('trigger-filter', {
|
|||||||
initDatepicker = function(elem) {
|
initDatepicker = function(elem) {
|
||||||
const modalParent = elem.closest('#modal-content');
|
const modalParent = elem.closest('#modal-content');
|
||||||
if (modalParent) {
|
if (modalParent) {
|
||||||
elem.dp = new Datepicker(elem, {format: "mm/dd/yyyy", autohide: true, container: "#modal-content .modal-card"});
|
return new Datepicker(elem, {format: "mm/dd/yyyy", autohide: true, container: "#modal-content .modal-card"});
|
||||||
} else {
|
} else {
|
||||||
elem.dp = new Datepicker(elem, {format: "mm/dd/yyyy", autohide: true});
|
return new Datepicker(elem, {format: "mm/dd/yyyy", autohide: true});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
destroyDatepicker = function(dp) {
|
||||||
|
try {
|
||||||
|
dp.destroy()
|
||||||
|
} catch {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
countRows = function(id) {
|
countRows = function(id) {
|
||||||
var table = document.querySelector(id);
|
var table = document.querySelector(id);
|
||||||
var rows = table.querySelectorAll("tbody tr");
|
var rows = table.querySelectorAll("tbody tr");
|
||||||
@@ -171,3 +178,4 @@ htmx.onLoad(function(content) {
|
|||||||
console.error('Failed to copy text to clipboard:', err);
|
console.error('Failed to copy text to clipboard:', err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,12 +11,6 @@
|
|||||||
(def client-id (-> env :plaid :client-id))
|
(def client-id (-> env :plaid :client-id))
|
||||||
(def secret-key (-> env :plaid :secret-key))
|
(def secret-key (-> env :plaid :secret-key))
|
||||||
|
|
||||||
(def base-url "https://production.plaid.com")
|
|
||||||
|
|
||||||
(def client-id "61bfab05f7e762001b323f79")
|
|
||||||
|
|
||||||
(def secret-key "2be026ca5e7f7e9f23f2fb4d7c914d")
|
|
||||||
|
|
||||||
(defn get-link-token [client-code]
|
(defn get-link-token [client-code]
|
||||||
(-> (client/post (str base-url "/link/token/create")
|
(-> (client/post (str base-url "/link/token/create")
|
||||||
{:as :json
|
{:as :json
|
||||||
|
|||||||
@@ -67,6 +67,7 @@
|
|||||||
:x-show "leftNavShow"
|
:x-show "leftNavShow"
|
||||||
":aria-hidden" "leftNavShow ? 'false' : 'true'"}
|
":aria-hidden" "leftNavShow ? 'false' : 'true'"}
|
||||||
|
|
||||||
|
;; TODO this causes a leftNavShow error when hitting back button. maybe amke a container
|
||||||
[:template {:x-teleport "body"}
|
[:template {:x-teleport "body"}
|
||||||
|
|
||||||
[:div.fixed.inset-0.lg:hidden {:x-show "leftNavShow" :x-transition:enter "transition duration-500" :x-transition:enter-start "opacity-0" :x-transition:enter-end "opacity-100"
|
[:div.fixed.inset-0.lg:hidden {:x-show "leftNavShow" :x-transition:enter "transition duration-500" :x-transition:enter-start "opacity-0" :x-transition:enter-end "opacity-100"
|
||||||
|
|||||||
@@ -175,10 +175,12 @@
|
|||||||
(update :class (fnil hh/add-class "") default-input-classes)
|
(update :class (fnil hh/add-class "") default-input-classes)
|
||||||
(assoc :x-modelable "value")
|
(assoc :x-modelable "value")
|
||||||
(assoc :type "text")
|
(assoc :type "text")
|
||||||
(assoc "_" (hiccup/raw "init initDatepicker(me)"))
|
(assoc :x-data (hx/json {:dp nil}) )
|
||||||
(assoc "@change" "value = $event.target.value; console.log(value)")
|
(assoc :x-init " dp = initDatepicker($el);")
|
||||||
(assoc "hx-on" (hiccup/raw "changeDate: htmx.trigger(this, \"change\")
|
(assoc "@htmx:before-history-save" "destroyDatepicker(dp)" )
|
||||||
htmx:beforeCleanupElement: this.dp.destroy()"))
|
(assoc "@htmx:before-cleanup-element" "destroyDatepicker(dp)" )
|
||||||
|
(assoc "@change" "value = $event.target.value;")
|
||||||
|
(assoc "hx-on" (hiccup/raw "changeDate: htmx.trigger(this, \"change\") "))
|
||||||
(update :class #(str % (use-size size) " w-full"))
|
(update :class #(str % (use-size size) " w-full"))
|
||||||
(dissoc :size))]])
|
(dissoc :size))]])
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,8 @@
|
|||||||
on notification from body put event.detail.value into #notification-details then add .htmx-added to #notification-holder then remove .hidden from #notification-holder then wait 30ms then remove .htmx-added from #notification-holder
|
on notification from body put event.detail.value into #notification-details then add .htmx-added to #notification-holder then remove .hidden from #notification-holder then wait 30ms then remove .htmx-added from #notification-holder
|
||||||
on htmx:responseError put event.detail.xhr.response into #error-details then add .htmx-added to #error-holder then remove .hidden from #error-holder then wait 30ms then remove .htmx-added from #error-holder"
|
on htmx:responseError put event.detail.xhr.response into #error-details then add .htmx-added to #error-holder then remove .hidden from #error-holder then wait 30ms then remove .htmx-added from #error-holder"
|
||||||
)
|
)
|
||||||
:x-data (hx/json {:leftNavShow true})}
|
:x-data (hx/json {:leftNavShow true})
|
||||||
|
}
|
||||||
(navbar- {:client-selection client-selection
|
(navbar- {:client-selection client-selection
|
||||||
:clients clients
|
:clients clients
|
||||||
:client client
|
:client client
|
||||||
|
|||||||
@@ -250,7 +250,7 @@
|
|||||||
|
|
||||||
(com/link {:href (hu/url (bidi.bidi/path-for ssr-routes/only-routes ::i-routes/unpaid-page)
|
(com/link {:href (hu/url (bidi.bidi/path-for ssr-routes/only-routes ::i-routes/unpaid-page)
|
||||||
{:date-range "year"})
|
{:date-range "year"})
|
||||||
:hx-boost "true"}
|
}
|
||||||
|
|
||||||
"Pay now")
|
"Pay now")
|
||||||
])
|
])
|
||||||
|
|||||||
Reference in New Issue
Block a user