Make the rest of the application use "new" services

This commit is contained in:
2025-07-04 16:19:26 +02:00
parent 70d6979b47
commit 83fa902b4c
8 changed files with 159 additions and 179 deletions

View File

@@ -7,30 +7,29 @@ import { Badge } from '@/components/ui/badge';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table';
import { parseTransactionLine, formatISK } from '@/utils/priceUtils';
import { IndTransactionRecord } from '@/lib/pbtypes';
import { IndTransactionRecord, IndTransactionRecordNoId } from '@/lib/pbtypes';
import { Check, X } from 'lucide-react';
interface TransactionFormProps {
jobId: string;
onTransactionsAdded: (transactions: IndTransactionRecord[], type: 'expenditure' | 'income') => void;
onTransactionsAdded: (transactions: IndTransactionRecordNoId[], type: 'expenditure' | 'income') => void;
}
const TransactionForm: React.FC<TransactionFormProps> = ({ jobId, onTransactionsAdded }) => {
const [pastedData, setPastedData] = useState('');
const [parsedTransactions, setParsedTransactions] = useState<IndTransactionRecord[]>([]);
const [parsedTransactions, setParsedTransactions] = useState<IndTransactionRecordNoId[]>([]);
const [transactionType, setTransactionType] = useState<'expenditure' | 'income'>('expenditure');
const handlePaste = (value: string) => {
setPastedData(value);
const lines = value.trim().split('\n');
const transactions: IndTransactionRecord[] = [];
const transactions: IndTransactionRecordNoId[] = [];
lines.forEach((line, index) => {
const parsed = parseTransactionLine(line);
if (parsed) {
transactions.push({
id: `temp-${index}`,
date: parsed.date.toISOString(),
quantity: parsed.quantity,
itemName: parsed.itemName,
@@ -40,13 +39,11 @@ const TransactionForm: React.FC<TransactionFormProps> = ({ jobId, onTransactions
location: parsed.location,
corporation: parsed.corporation,
wallet: parsed.wallet,
job: jobId,
created: undefined,
updated: undefined
job: jobId
});
}
});
setParsedTransactions(transactions);
};
@@ -75,7 +72,7 @@ const TransactionForm: React.FC<TransactionFormProps> = ({ jobId, onTransactions
Income
</TabsTrigger>
</TabsList>
<TabsContent value={transactionType} className="space-y-4">
<div className="space-y-2">
<label className="text-sm font-medium text-gray-300">
@@ -88,7 +85,7 @@ const TransactionForm: React.FC<TransactionFormProps> = ({ jobId, onTransactions
className="min-h-32 bg-gray-800 border-gray-600 text-white"
/>
</div>
{parsedTransactions.length > 0 && (
<div className="space-y-4">
<div className="flex items-center justify-between">
@@ -99,7 +96,7 @@ const TransactionForm: React.FC<TransactionFormProps> = ({ jobId, onTransactions
Total: {formatISK(totalAmount)}
</Badge>
</div>
<div className="max-h-64 overflow-y-auto">
<Table>
<TableHeader>
@@ -132,17 +129,17 @@ const TransactionForm: React.FC<TransactionFormProps> = ({ jobId, onTransactions
</TableBody>
</Table>
</div>
<div className="flex gap-2">
<Button
<Button
onClick={handleSubmit}
className="flex-1 bg-blue-600 hover:bg-blue-700"
>
<Check className="w-4 h-4 mr-2" />
Add Transactions
</Button>
<Button
variant="outline"
<Button
variant="outline"
onClick={() => {
setPastedData('');
setParsedTransactions([]);