refactor: standardize code formatting and improve consistency across various components and API routes for enhanced readability and maintainability

This commit is contained in:
Julien Froidefond
2025-12-10 14:28:05 +01:00
parent 299a66e6ff
commit f8919b19b3
19 changed files with 152 additions and 161 deletions

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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,
};
}