mirror of
https://github.com/we-promise/sure.git
synced 2026-04-18 03:24:09 +00:00
This can be updated to redirect/pull from third party sources in future, with the option of always falling back to the placeholder if there are any failures.
41 lines
2.0 KiB
Ruby
41 lines
2.0 KiB
Ruby
module AccountsHelper
|
|
def to_accountable_title(accountable)
|
|
accountable.model_name.human
|
|
end
|
|
|
|
def accountable_text_class(accountable_type)
|
|
class_mapping(accountable_type)[:text]
|
|
end
|
|
|
|
def accountable_fill_class(accountable_type)
|
|
class_mapping(accountable_type)[:fill]
|
|
end
|
|
|
|
def accountable_bg_class(accountable_type)
|
|
class_mapping(accountable_type)[:bg]
|
|
end
|
|
|
|
def accountable_bg_transparent_class(accountable_type)
|
|
class_mapping(accountable_type)[:bg_transparent]
|
|
end
|
|
|
|
def accountable_color(accountable_type)
|
|
class_mapping(accountable_type)[:hex]
|
|
end
|
|
|
|
private
|
|
|
|
def class_mapping(accountable_type)
|
|
{
|
|
"Account::Credit" => { text: "text-red-500", bg: "bg-red-500", bg_transparent: "bg-red-500/10", fill: "fill-red-500", hex: "#F13636" },
|
|
"Account::Loan" => { text: "text-fuchsia-500", bg: "bg-fuchsia-500", bg_transparent: "bg-fuchsia-500/10", fill: "fill-fuchsia-500", hex: "#D444F1" },
|
|
"Account::OtherLiability" => { text: "text-gray-500", bg: "bg-gray-500", bg_transparent: "bg-gray-500/10", fill: "fill-gray-500", hex: "#737373" },
|
|
"Account::Depository" => { text: "text-violet-500", bg: "bg-violet-500", bg_transparent: "bg-violet-500/10", fill: "fill-violet-500", hex: "#875BF7" },
|
|
"Account::Investment" => { text: "text-blue-600", bg: "bg-blue-600", bg_transparent: "bg-blue-600/10", fill: "fill-blue-600", hex: "#1570EF" },
|
|
"Account::OtherAsset" => { text: "text-green-500", bg: "bg-green-500", bg_transparent: "bg-green-500/10", fill: "fill-green-500", hex: "#12B76A" },
|
|
"Account::Property" => { text: "text-cyan-500", bg: "bg-cyan-500", bg_transparent: "bg-cyan-500/10", fill: "fill-cyan-500", hex: "#06AED4" },
|
|
"Account::Vehicle" => { text: "text-pink-500", bg: "bg-pink-500", bg_transparent: "bg-pink-500/10", fill: "fill-pink-500", hex: "#F23E94" }
|
|
}.fetch(accountable_type, { text: "text-gray-500", bg: "bg-gray-500", bg_transparent: "bg-gray-500/10", fill: "fill-gray-500", hex: "#737373" })
|
|
end
|
|
end
|