diff --git a/resources/js/components/app-logo-icon.tsx b/resources/js/components/app-logo-icon.tsx index 222232f6..51c178a8 100644 --- a/resources/js/components/app-logo-icon.tsx +++ b/resources/js/components/app-logo-icon.tsx @@ -22,7 +22,7 @@ export default function AppLogoIcon({ const showBirdhouse = !isKeySet || isPrivacyModeEnabled; if (!animated) { - + ; } return ( diff --git a/resources/js/components/transactions/transaction-columns.tsx b/resources/js/components/transactions/transaction-columns.tsx index d2a19583..186f0519 100644 --- a/resources/js/components/transactions/transaction-columns.tsx +++ b/resources/js/components/transactions/transaction-columns.tsx @@ -130,8 +130,7 @@ export function createTransactionColumns({ header: 'Account', meta: { label: 'Account', - cellClassName: - '!min-w-[125px] whitespace-normal', + cellClassName: '!min-w-[125px] whitespace-normal', }, cell: ({ row }) => { const transaction = row.original; diff --git a/resources/js/components/ui/amount-input.tsx b/resources/js/components/ui/amount-input.tsx index 264ea9be..3f3572a7 100644 --- a/resources/js/components/ui/amount-input.tsx +++ b/resources/js/components/ui/amount-input.tsx @@ -108,6 +108,13 @@ export const AmountInput = React.forwardRef( setDisplayValue(e.target.value); }; + const handleKeyDown = (e: React.KeyboardEvent) => { + if (e.key === 'Enter') { + const valueInCents = parseInputValue(displayValue); + onChange(valueInCents); + } + }; + const currencySymbol = getCurrencySymbol(currencyCode); return ( @@ -124,6 +131,7 @@ export const AmountInput = React.forwardRef( onChange={handleChange} onFocus={handleFocus} onBlur={handleBlur} + onKeyDown={handleKeyDown} placeholder={placeholder} disabled={disabled} required={required} diff --git a/tests/Browser/AmountInputTest.php b/tests/Browser/AmountInputTest.php index be056ab9..846b62c0 100644 --- a/tests/Browser/AmountInputTest.php +++ b/tests/Browser/AmountInputTest.php @@ -72,3 +72,34 @@ it('can create a transaction with amount input', function () { 'amount' => 12345, ]); })->skip('Requires browser encryption key setup'); + +it('formats amount when pressing enter', function () { + $user = User::factory()->onboarded()->create(); + $category = Category::factory()->create(['user_id' => $user->id]); + $account = Account::factory()->create(['user_id' => $user->id]); + + actingAs($user); + + $page = visit('/transactions'); + + $page->assertSee('Transactions') + ->click('Add Transaction') + ->wait(1) + ->fill('description', 'Test Transaction Enter') + ->click('Select Account') + ->wait(0.5) + ->click($account->name) + ->click('Select Category') + ->wait(0.5) + ->click($category->name) + ->fill('#amount', '99.99') + ->press('Enter') + ->wait(2) + ->assertNoJavascriptErrors(); + + $this->assertDatabaseHas('transactions', [ + 'user_id' => $user->id, + 'description' => 'Test Transaction Enter', + 'amount' => 9999, + ]); +})->skip('Requires browser encryption key setup');