store/resources/js/components/display/RupiahText.vue
Yoga Pangestu b7f8bf7e0f
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (8.3) (push) Waiting to run
tests / ci (8.4) (push) Waiting to run
tests / ci (8.5) (push) Waiting to run
fix: adjust grid layout in StatCard component for better responsiveness and update RupiahText component to support short format
2026-07-20 19:46:18 +07:00

33 lines
739 B
Vue

<script setup lang="ts">
import { computed } from 'vue';
import { formatRupiah, formatRupiahShort } from '@/lib/rupiah';
const props = defineProps<{
amount: number | string;
formatted?: string | null;
short?: boolean;
}>();
const display = computed(() => {
if (props.formatted) {
return props.formatted;
}
const numericAmount = typeof props.amount === 'string'
? Number.parseInt(props.amount, 10)
: props.amount;
const safeAmount = Number.isFinite(numericAmount) ? numericAmount : 0;
if (props.short) {
return `Rp ${formatRupiahShort(safeAmount)}`;
}
return `Rp ${formatRupiah(safeAmount)}`;
});
</script>
<template>
<span>{{ display }}</span>
</template>