diff --git a/src/tools/tip-calculator/tip-calculator.vue b/src/tools/tip-calculator/tip-calculator.vue index 3838724c..55f5b286 100644 --- a/src/tools/tip-calculator/tip-calculator.vue +++ b/src/tools/tip-calculator/tip-calculator.vue @@ -3,77 +3,44 @@ const billAmount = ref(); const tipPercentage = ref(15); const numberOfPeople = ref(1); -const tipAmount = computed(() => { - if (billAmount.value === undefined || tipPercentage.value === undefined) { - return 0; - } - return (billAmount.value * tipPercentage.value) / 100; -}); +const tipAmount = computed(() => (billAmount.value && tipPercentage.value) ? (billAmount.value * tipPercentage.value) / 100 : 0); +const totalAmount = computed(() => billAmount.value ? billAmount.value + tipAmount.value : 0); +const amountPerPerson = computed(() => (totalAmount.value && numberOfPeople.value && numberOfPeople.value > 0) ? totalAmount.value / numberOfPeople.value : 0); -const totalAmount = computed(() => { - if (billAmount.value === undefined) { - return 0; - } - return billAmount.value + tipAmount.value; -}); +const formatNum = (v: number) => new Intl.NumberFormat('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(v); -const amountPerPerson = computed(() => { - if (totalAmount.value === 0 || numberOfPeople.value === undefined || numberOfPeople.value <= 0) { - return 0; - } - return totalAmount.value / numberOfPeople.value; -}); - -const formatNumber = (value: number) => { - return new Intl.NumberFormat('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(value); -}; - -const tipAmountFormatted = computed(() => formatNumber(tipAmount.value)); -const totalAmountFormatted = computed(() => formatNumber(totalAmount.value)); -const amountPerPersonFormatted = computed(() => formatNumber(amountPerPerson.value)); +const results = computed(() => [ + { label: 'Tip Amount', val: formatNum(tipAmount.value), id: 'tipAmountResult' }, + { label: 'Total Bill', val: formatNum(totalAmount.value), id: 'totalBillResult' }, + { label: 'Amount Per Person', val: formatNum(amountPerPerson.value), id: 'amountPerPersonResult', isBold: true } +]);