mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-04 21:15:19 +02:00
* Reindent TimeSeries classes * Fix spacing in time series tests * Remove trend tests where current is nil I think if we've gotten this far with a nil value for current, there's a data integrity problem. If we allow this, we'll have to be very defensive in our code. Best to raise and fix early. * Reindent Money class * Refactor TimeSeries artifacts * Use as_json in TimeSeries * Bring back tests for trends where current is nil * Bring back trend test * Correctly enumerate trend test * Use favorable_direction for trend_styles helper * Make trend public in TimeSeries::Value * Allow nil current values in trends I think I might've gotten it wrong before, nils might appear in trends if values are unavailable for snapshots * Clean up TimeSeries::Trend * Skip trend values same class validations if any values are nil * Refactor Money * Remove object parsing in TimeSeries::Value We're only every passing hashes
27 lines
1.3 KiB
Text
27 lines
1.3 KiB
Text
<%# locals: (label:, period:, value:, trend:, size: "lg", is_percentage: false)%>
|
|
<div class="space-y-2">
|
|
<p class="text-sm text-gray-500 font-medium"><%= label %></p>
|
|
<p class="text-gray-900 -space-x-0.5">
|
|
<% if value.is_a?(Money) %>
|
|
<span class="text-gray-500"><%= value.currency.symbol %></span>
|
|
<span class="<%= size == "lg" ? "text-xl" : "text-lg" %> font-medium"><%= format_money_without_symbol value, precision: 0 %></span>
|
|
<%- if value.currency.default_precision.positive? -%>
|
|
<span class="text-gray-500">
|
|
<%= value.currency.separator %><%= value.cents_str %>
|
|
</span>
|
|
<% end %>
|
|
<% else %>
|
|
<span class="<%= size == "lg" ? "text-xl" : "text-lg" %> font-medium"><%= is_percentage ? number_to_percentage(value, precision: 2) : value %></span>
|
|
<% end %>
|
|
</p>
|
|
<% if trend.nil? %>
|
|
<p class="text-sm text-gray-500">Data not available for the selected period</p>
|
|
<% elsif trend.direction.flat? %>
|
|
<p class="text-sm text-gray-500">No change vs. prior period</p>
|
|
<% else %>
|
|
<div class="flex items-center gap-2">
|
|
<%= render partial: "shared/trend_change", locals: { trend: trend } %>
|
|
<span class="text-sm text-gray-500"><%= period_label(period) %></span>
|
|
</div>
|
|
<% end %>
|
|
</div>
|