mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-06 05:55:21 +02:00
Balance trends in activity view
This commit is contained in:
parent
9e2b01bd8e
commit
79d019bacd
5 changed files with 31 additions and 29 deletions
|
@ -1,9 +1,9 @@
|
|||
<div data-controller="ds-tooltip" data-ds-tooltip-placement-value="<%= placement %>" data-ds-tooltip-offset-value="<%= offset %>" data-ds-tooltip-cross-axis-value="<%= cross_axis %>">
|
||||
<span data-controller="DS--tooltip" data-DS--tooltip-placement-value="<%= placement %>" data-DS--tooltip-offset-value="<%= offset %>" data-DS--tooltip-cross-axis-value="<%= cross_axis %>" class="inline-flex">
|
||||
<%= helpers.icon icon_name, size: size, color: color %>
|
||||
|
||||
<div role="tooltip" data-ds-tooltip-target="tooltip" class="hidden absolute z-50 bg-gray-700 text-sm px-1.5 py-1 rounded-md">
|
||||
<div role="tooltip" data-DS--tooltip-target="tooltip" class="hidden absolute z-50 bg-gray-700 text-sm px-1.5 py-1 rounded-md">
|
||||
<div class="fg-inverse font-normal max-w-[200px]">
|
||||
<%= tooltip_content %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
|
@ -37,20 +37,21 @@ export default class extends Controller {
|
|||
}
|
||||
|
||||
show = () => {
|
||||
this.tooltipTarget.style.display = "block";
|
||||
this.tooltipTarget.classList.remove("hidden");
|
||||
this.startAutoUpdate();
|
||||
this.update();
|
||||
};
|
||||
|
||||
hide = () => {
|
||||
this.tooltipTarget.style.display = "none";
|
||||
this.tooltipTarget.classList.add("hidden");
|
||||
this.stopAutoUpdate();
|
||||
};
|
||||
|
||||
startAutoUpdate() {
|
||||
if (!this._cleanup) {
|
||||
const reference = this.element.querySelector("[data-icon]");
|
||||
this._cleanup = autoUpdate(
|
||||
this.element.firstElementChild, // Use the icon as the reference element
|
||||
reference || this.element,
|
||||
this.tooltipTarget,
|
||||
this.boundUpdate
|
||||
);
|
||||
|
@ -65,7 +66,8 @@ export default class extends Controller {
|
|||
}
|
||||
|
||||
update() {
|
||||
computePosition(this.element.firstElementChild, this.tooltipTarget, {
|
||||
const reference = this.element.querySelector("[data-icon]");
|
||||
computePosition(reference || this.element, this.tooltipTarget, {
|
||||
placement: this.placementValue,
|
||||
middleware: [
|
||||
offset({
|
|
@ -4,7 +4,7 @@
|
|||
<%= tag.h2 t(".title"), class: "font-medium text-lg" %>
|
||||
|
||||
<% if account.manual? %>
|
||||
<%= render MenuComponent.new(variant: "button") do |menu| %>
|
||||
<%= render DS::Menu.new(variant: "button") do |menu| %>
|
||||
<% menu.with_button(text: "New", variant: "secondary", icon: "plus") %>
|
||||
|
||||
<% menu.with_item(
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<%= tag.div id: id, data: { bulk_select_target: "group" }, class: "bg-container-inset rounded-xl p-1 w-full" do %>
|
||||
<details open class="group">
|
||||
<details class="group">
|
||||
<summary>
|
||||
<div class="py-2 px-4 flex items-center justify-between font-medium text-xs text-secondary">
|
||||
<div class="flex pl-0.5 items-center gap-4">
|
||||
|
@ -16,9 +16,9 @@
|
|||
</div>
|
||||
|
||||
<div class="flex items-center gap-4">
|
||||
<div class="flex items-center gap-1">
|
||||
<div class="flex items-center gap-2">
|
||||
<span class="font-medium"><%= balance_trend.current.format %></span>
|
||||
<%= render DS::Tooltip.new(text: "The end of day balance, after all transactions and adjustments") %>
|
||||
<%= render DS::Tooltip.new(text: "The end of day balance, after all transactions and adjustments", placement: "left", size: "sm") %>
|
||||
</div>
|
||||
<%= helpers.icon "chevron-down", class: "group-open:rotate-180" %>
|
||||
</div>
|
||||
|
@ -29,48 +29,48 @@
|
|||
<dl class="flex gap-4 items-center text-sm text-primary">
|
||||
<dt>Start of day balance</dt>
|
||||
<hr class="grow border-dashed border-secondary" />
|
||||
<dd class="font-medium"><%= start_balance_money.format %></dd>
|
||||
<dd class="font-bold"><%= start_balance_money.format %></dd>
|
||||
</dl>
|
||||
|
||||
<% if account.balance_type == :investment %>
|
||||
<dl class="flex gap-4 items-center text-sm text-primary">
|
||||
<dt>Cash Δ</dt>
|
||||
<hr class="grow border-dashed border-secondary" />
|
||||
<dd class="font-medium"><%= transaction_totals_money.format %></dd>
|
||||
<dd><%= transaction_totals_money.format %></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="flex gap-4 items-center text-sm text-primary">
|
||||
<dt>Holdings Δ</dt>
|
||||
<hr class="grow border-dashed border-secondary" />
|
||||
<dd class="font-medium"><%= holding_change_money.format %></dd>
|
||||
<dd><%= holding_change_money.format %></dd>
|
||||
</dl>
|
||||
<% else %>
|
||||
<dl class="flex gap-4 items-center text-sm text-primary">
|
||||
<dt>Transaction totals</dt>
|
||||
<hr class="grow border-dashed border-secondary" />
|
||||
<dd class="font-medium"><%= transaction_totals_money.format %></dd>
|
||||
<dd><%= transaction_totals_money.format %></dd>
|
||||
</dl>
|
||||
<% end %>
|
||||
|
||||
<dl class="flex gap-4 items-center text-sm text-primary">
|
||||
<dt>End of day balance</dt>
|
||||
<hr class="grow border-dashed border-secondary" />
|
||||
<dd><%= end_balance_before_adjustments_money.format %></dd>
|
||||
<dd class="font-medium"><%= end_balance_before_adjustments_money.format %></dd>
|
||||
</dl>
|
||||
|
||||
<div class="pl-4 space-y-3">
|
||||
<dl class="flex gap-4 items-center text-sm text-primary">
|
||||
<dt>Value adjustments Δ </dt>
|
||||
<hr class="grow border-dashed border-secondary" />
|
||||
<dd class="font-medium"><%= adjustments_money.format %></dd>
|
||||
</dl>
|
||||
<hr class="border border-primary" />
|
||||
|
||||
<dl class="flex gap-4 items-center text-sm text-primary">
|
||||
<dt>Closing balance (incl. adjustments)</dt>
|
||||
<hr class="grow border-dashed border-primary" />
|
||||
<dd class="font-bold"><%= end_balance_money.format %></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<dl class="flex gap-4 items-center text-sm text-primary">
|
||||
<dt>Value adjustments Δ </dt>
|
||||
<hr class="grow border-dashed border-secondary" />
|
||||
<dd ><%= adjustments_money.format %></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="flex gap-4 items-center text-sm text-primary">
|
||||
<dt>Closing balance (incl. adjustments)</dt>
|
||||
<hr class="grow border-dashed border-primary" />
|
||||
<dd class="font-bold"><%= end_balance_money.format %></dd>
|
||||
</dl>
|
||||
</div>
|
||||
</details>
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ class Account::ActivityFeedData
|
|||
def trend_for_date(date)
|
||||
start_balance = start_balance_for_date(date)
|
||||
end_balance = end_balance_for_date(date)
|
||||
|
||||
|
||||
Trend.new(
|
||||
current: end_balance.balance_money,
|
||||
previous: start_balance.balance_money
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue