import { Show } from "solid-js";
import { useMegaStore } from "~/state/megaStore";
import { satsToUsd } from "~/utils/conversions";
import bolt from "~/assets/icons/bolt.svg";
import chain from "~/assets/icons/chain.svg";
import { useI18n } from "~/i18n/context";
function prettyPrintAmount(n?: number | bigint): string {
if (!n || n.valueOf() === 0) {
return "0";
}
return n.toLocaleString();
}
export function AmountSats(props: {
amountSats: bigint | number | undefined;
loading?: boolean;
icon?: "lightning" | "chain" | "plus" | "minus";
denominationSize?: "sm" | "lg" | "xl";
}) {
const i18n = useI18n();
return (
+
-
{props.loading ? "..." : prettyPrintAmount(props.amountSats)}
1 ||
Number(props.amountSats) === 0
}
>
{i18n.t("common.sats")}
{i18n.t("common.sat")}
);
}
export function AmountFiat(props: {
amountSats: bigint | number | undefined;
loading?: boolean;
denominationSize?: "sm" | "lg" | "xl";
}) {
const i18n = useI18n()
const [state, _] = useMegaStore();
const amountInUsd = () =>
satsToUsd(state.price, Number(props.amountSats) || 0, true);
return (
~{props.loading ? "..." : amountInUsd()}
{i18n.t("common.usd")}
);
}
export function AmountSmall(props: {
amountSats: bigint | number | undefined;
}) {
const i18n = useI18n();
return (
{prettyPrintAmount(props.amountSats)}
{props.amountSats === 1 || props.amountSats === 1n
? i18n.t("common.sat")
: i18n.t("common.sats")}
);
}