refactor: standardize code formatting and improve consistency across various components and API routes for enhanced readability and maintainability
This commit is contained in:
@@ -26,7 +26,7 @@ export function useTransactionMutations({
|
||||
if (!transactionsData) return;
|
||||
|
||||
const transaction = transactionsData.transactions.find(
|
||||
(t) => t.id === transactionId
|
||||
(t) => t.id === transactionId,
|
||||
);
|
||||
if (!transaction) return;
|
||||
|
||||
@@ -48,7 +48,7 @@ export function useTransactionMutations({
|
||||
transactions: oldData.transactions.map((t) =>
|
||||
t.id === transactionId
|
||||
? { ...t, isReconciled: newReconciledState }
|
||||
: t
|
||||
: t,
|
||||
),
|
||||
};
|
||||
});
|
||||
@@ -75,7 +75,7 @@ export function useTransactionMutations({
|
||||
invalidateAllTransactionQueries(queryClient);
|
||||
}
|
||||
},
|
||||
[transactionsData, transactionParams, queryClient]
|
||||
[transactionsData, transactionParams, queryClient],
|
||||
);
|
||||
|
||||
const markReconciled = useCallback(
|
||||
@@ -83,7 +83,7 @@ export function useTransactionMutations({
|
||||
if (!transactionsData) return;
|
||||
|
||||
const transaction = transactionsData.transactions.find(
|
||||
(t) => t.id === transactionId
|
||||
(t) => t.id === transactionId,
|
||||
);
|
||||
if (!transaction || transaction.isReconciled) return;
|
||||
|
||||
@@ -102,7 +102,7 @@ export function useTransactionMutations({
|
||||
return {
|
||||
...oldData,
|
||||
transactions: oldData.transactions.map((t) =>
|
||||
t.id === transactionId ? { ...t, isReconciled: true } : t
|
||||
t.id === transactionId ? { ...t, isReconciled: true } : t,
|
||||
),
|
||||
};
|
||||
});
|
||||
@@ -129,7 +129,7 @@ export function useTransactionMutations({
|
||||
invalidateAllTransactionQueries(queryClient);
|
||||
}
|
||||
},
|
||||
[transactionsData, transactionParams, queryClient]
|
||||
[transactionsData, transactionParams, queryClient],
|
||||
);
|
||||
|
||||
const setCategory = useCallback(
|
||||
@@ -137,7 +137,7 @@ export function useTransactionMutations({
|
||||
if (!transactionsData) return;
|
||||
|
||||
const transaction = transactionsData.transactions.find(
|
||||
(t) => t.id === transactionId
|
||||
(t) => t.id === transactionId,
|
||||
);
|
||||
if (!transaction) return;
|
||||
|
||||
@@ -154,7 +154,7 @@ export function useTransactionMutations({
|
||||
return {
|
||||
...oldData,
|
||||
transactions: oldData.transactions.map((t) =>
|
||||
t.id === transactionId ? { ...t, categoryId } : t
|
||||
t.id === transactionId ? { ...t, categoryId } : t,
|
||||
),
|
||||
};
|
||||
});
|
||||
@@ -187,7 +187,7 @@ export function useTransactionMutations({
|
||||
});
|
||||
}
|
||||
},
|
||||
[transactionsData, transactionParams, queryClient]
|
||||
[transactionsData, transactionParams, queryClient],
|
||||
);
|
||||
|
||||
const deleteTransaction = useCallback(
|
||||
@@ -205,7 +205,7 @@ export function useTransactionMutations({
|
||||
return {
|
||||
...oldData,
|
||||
transactions: oldData.transactions.filter(
|
||||
(t) => t.id !== transactionId
|
||||
(t) => t.id !== transactionId,
|
||||
),
|
||||
total: oldData.total - 1,
|
||||
};
|
||||
@@ -216,14 +216,14 @@ export function useTransactionMutations({
|
||||
`/api/banking/transactions?id=${transactionId}`,
|
||||
{
|
||||
method: "DELETE",
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json().catch(() => ({}));
|
||||
throw new Error(
|
||||
errorData.error ||
|
||||
`Failed to delete transaction: ${response.status}`
|
||||
`Failed to delete transaction: ${response.status}`,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -238,7 +238,7 @@ export function useTransactionMutations({
|
||||
invalidateAllTransactionQueries(queryClient);
|
||||
}
|
||||
},
|
||||
[transactionsData, transactionParams, queryClient]
|
||||
[transactionsData, transactionParams, queryClient],
|
||||
);
|
||||
|
||||
const bulkReconcile = useCallback(
|
||||
@@ -246,7 +246,7 @@ export function useTransactionMutations({
|
||||
if (!transactionsData) return;
|
||||
|
||||
const transactionsToUpdate = transactionsData.transactions.filter((t) =>
|
||||
selectedTransactionIds.has(t.id)
|
||||
selectedTransactionIds.has(t.id),
|
||||
);
|
||||
|
||||
const transactionIds = transactionsToUpdate.map((t) => t.id);
|
||||
@@ -263,7 +263,7 @@ export function useTransactionMutations({
|
||||
transactions: oldData.transactions.map((t) =>
|
||||
transactionIds.includes(t.id)
|
||||
? { ...t, isReconciled: reconciled }
|
||||
: t
|
||||
: t,
|
||||
),
|
||||
};
|
||||
});
|
||||
@@ -275,8 +275,8 @@ export function useTransactionMutations({
|
||||
method: "PUT",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ ...t, isReconciled: reconciled }),
|
||||
})
|
||||
)
|
||||
}),
|
||||
),
|
||||
);
|
||||
|
||||
// TOUJOURS revalider après succès pour garantir la cohérence
|
||||
@@ -290,7 +290,7 @@ export function useTransactionMutations({
|
||||
invalidateAllTransactionQueries(queryClient);
|
||||
}
|
||||
},
|
||||
[transactionsData, transactionParams, queryClient]
|
||||
[transactionsData, transactionParams, queryClient],
|
||||
);
|
||||
|
||||
const bulkSetCategory = useCallback(
|
||||
@@ -298,7 +298,7 @@ export function useTransactionMutations({
|
||||
if (!transactionsData) return;
|
||||
|
||||
const transactionsToUpdate = transactionsData.transactions.filter((t) =>
|
||||
selectedTransactionIds.has(t.id)
|
||||
selectedTransactionIds.has(t.id),
|
||||
);
|
||||
|
||||
const transactionIds = transactionsToUpdate.map((t) => t.id);
|
||||
@@ -318,7 +318,7 @@ export function useTransactionMutations({
|
||||
return {
|
||||
...oldData,
|
||||
transactions: oldData.transactions.map((t) =>
|
||||
transactionIds.includes(t.id) ? { ...t, categoryId } : t
|
||||
transactionIds.includes(t.id) ? { ...t, categoryId } : t,
|
||||
),
|
||||
};
|
||||
});
|
||||
@@ -330,8 +330,8 @@ export function useTransactionMutations({
|
||||
method: "PUT",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ ...t, categoryId }),
|
||||
})
|
||||
)
|
||||
}),
|
||||
),
|
||||
);
|
||||
|
||||
// TOUJOURS revalider après succès pour garantir la cohérence
|
||||
@@ -351,7 +351,7 @@ export function useTransactionMutations({
|
||||
});
|
||||
}
|
||||
},
|
||||
[transactionsData, transactionParams, queryClient]
|
||||
[transactionsData, transactionParams, queryClient],
|
||||
);
|
||||
|
||||
return {
|
||||
|
||||
@@ -27,7 +27,7 @@ export function useTransactionRules({
|
||||
const queryClient = useQueryClient();
|
||||
const [ruleDialogOpen, setRuleDialogOpen] = useState(false);
|
||||
const [ruleTransaction, setRuleTransaction] = useState<Transaction | null>(
|
||||
null
|
||||
null,
|
||||
);
|
||||
|
||||
const handleCreateRule = useCallback((transaction: Transaction) => {
|
||||
@@ -40,7 +40,7 @@ export function useTransactionRules({
|
||||
|
||||
const normalizedDesc = normalizeDescription(ruleTransaction.description);
|
||||
const similarTransactions = transactionsData.transactions.filter(
|
||||
(t) => normalizeDescription(t.description) === normalizedDesc
|
||||
(t) => normalizeDescription(t.description) === normalizedDesc,
|
||||
);
|
||||
|
||||
if (similarTransactions.length === 0) return null;
|
||||
@@ -51,7 +51,7 @@ export function useTransactionRules({
|
||||
transactions: similarTransactions,
|
||||
totalAmount: similarTransactions.reduce((sum, t) => sum + t.amount, 0),
|
||||
suggestedKeyword: suggestKeyword(
|
||||
similarTransactions.map((t) => t.description)
|
||||
similarTransactions.map((t) => t.description),
|
||||
),
|
||||
};
|
||||
}, [ruleTransaction, transactionsData]);
|
||||
@@ -67,7 +67,7 @@ export function useTransactionRules({
|
||||
|
||||
// Add keyword to category
|
||||
const category = metadata.categories.find(
|
||||
(c) => c.id === ruleData.categoryId
|
||||
(c) => c.id === ruleData.categoryId,
|
||||
);
|
||||
if (!category) {
|
||||
throw new Error("Category not found");
|
||||
@@ -75,7 +75,7 @@ export function useTransactionRules({
|
||||
|
||||
// Check if keyword already exists
|
||||
const keywordExists = category.keywords.some(
|
||||
(k: string) => k.toLowerCase() === ruleData.keyword.toLowerCase()
|
||||
(k: string) => k.toLowerCase() === ruleData.keyword.toLowerCase(),
|
||||
);
|
||||
|
||||
if (!keywordExists) {
|
||||
@@ -93,8 +93,8 @@ export function useTransactionRules({
|
||||
method: "PUT",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ id, categoryId: ruleData.categoryId }),
|
||||
})
|
||||
)
|
||||
}),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ export function useTransactionRules({
|
||||
invalidateAllCategoryQueries(queryClient);
|
||||
setRuleDialogOpen(false);
|
||||
},
|
||||
[metadata, queryClient]
|
||||
[metadata, queryClient],
|
||||
);
|
||||
|
||||
return {
|
||||
|
||||
@@ -31,10 +31,10 @@ export function useTransactionsPage() {
|
||||
const [showReconciled, setShowReconciled] = useState<string>("all");
|
||||
const [period, setPeriod] = useState<Period>("all");
|
||||
const [customStartDate, setCustomStartDate] = useState<Date | undefined>(
|
||||
undefined
|
||||
undefined,
|
||||
);
|
||||
const [customEndDate, setCustomEndDate] = useState<Date | undefined>(
|
||||
undefined
|
||||
undefined,
|
||||
);
|
||||
const [isCustomDatePickerOpen, setIsCustomDatePickerOpen] = useState(false);
|
||||
const [showDuplicates, setShowDuplicates] = useState(false);
|
||||
@@ -48,7 +48,7 @@ export function useTransactionsPage() {
|
||||
|
||||
// Selection state
|
||||
const [selectedTransactions, setSelectedTransactions] = useState<Set<string>>(
|
||||
new Set()
|
||||
new Set(),
|
||||
);
|
||||
|
||||
// Debounce search query
|
||||
@@ -168,18 +168,15 @@ export function useTransactionsPage() {
|
||||
setPage(0);
|
||||
}, []);
|
||||
|
||||
const handlePeriodChange = useCallback(
|
||||
(p: Period) => {
|
||||
setPeriod(p);
|
||||
setPage(0);
|
||||
if (p !== "custom") {
|
||||
setIsCustomDatePickerOpen(false);
|
||||
} else {
|
||||
setIsCustomDatePickerOpen(true);
|
||||
}
|
||||
},
|
||||
[]
|
||||
);
|
||||
const handlePeriodChange = useCallback((p: Period) => {
|
||||
setPeriod(p);
|
||||
setPage(0);
|
||||
if (p !== "custom") {
|
||||
setIsCustomDatePickerOpen(false);
|
||||
} else {
|
||||
setIsCustomDatePickerOpen(true);
|
||||
}
|
||||
}, []);
|
||||
|
||||
const handleCustomStartDateChange = useCallback((date: Date | undefined) => {
|
||||
setCustomStartDate(date);
|
||||
@@ -191,15 +188,18 @@ export function useTransactionsPage() {
|
||||
setPage(0);
|
||||
}, []);
|
||||
|
||||
const handleSortChange = useCallback((field: SortField) => {
|
||||
if (sortField === field) {
|
||||
setSortOrder((prev) => (prev === "asc" ? "desc" : "asc"));
|
||||
} else {
|
||||
setSortField(field);
|
||||
setSortOrder(field === "date" ? "desc" : "asc");
|
||||
}
|
||||
setPage(0);
|
||||
}, [sortField]);
|
||||
const handleSortChange = useCallback(
|
||||
(field: SortField) => {
|
||||
if (sortField === field) {
|
||||
setSortOrder((prev) => (prev === "asc" ? "desc" : "asc"));
|
||||
} else {
|
||||
setSortField(field);
|
||||
setSortOrder(field === "date" ? "desc" : "asc");
|
||||
}
|
||||
setPage(0);
|
||||
},
|
||||
[sortField],
|
||||
);
|
||||
|
||||
const toggleSelectAll = useCallback(() => {
|
||||
if (!transactionsData) return;
|
||||
@@ -207,7 +207,7 @@ export function useTransactionsPage() {
|
||||
setSelectedTransactions(new Set());
|
||||
} else {
|
||||
setSelectedTransactions(
|
||||
new Set(transactionsData.transactions.map((t) => t.id))
|
||||
new Set(transactionsData.transactions.map((t) => t.id)),
|
||||
);
|
||||
}
|
||||
}, [transactionsData, selectedTransactions.size]);
|
||||
@@ -283,4 +283,3 @@ export function useTransactionsPage() {
|
||||
transactionParams,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user