Skip to content

Commit

Permalink
feat: add confirmation after transaction prompt
Browse files Browse the repository at this point in the history
  • Loading branch information
joshcanhelp committed Feb 27, 2024
1 parent 1cfbd31 commit 97d9f8d
Showing 1 changed file with 29 additions and 16 deletions.
45 changes: 29 additions & 16 deletions src/scripts/import.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,28 +134,41 @@ export const run = async (

// Output all values from the imported transaction for inspection
printTransaction(importedTransaction);
const transactionPrompt = await promptTransaction();

// Force a skipped transaction, no record created in the output file
if (transactionPrompt.category === "skip") {
continue;
}
let mappedTransaction;
let promptForCategories = true;
do {
const transactionPrompt = await promptTransaction();
const mappedExpenses = Object.keys(config.expenseTypeMapping);
if (
transactionPrompt.category === "expense" &&
mappedExpenses.includes(transactionPrompt.subCategory)
) {
transactionPrompt.expenseType =
config.expenseTypeMapping[transactionPrompt.subCategory];
}

mappedTransaction = mapTransaction(importedTransaction, transactionPrompt);
printTransaction(mappedTransaction);

// Force a skipped transaction, no record created in the output file
const mappedExpenses = Object.keys(config.expenseTypeMapping);
if (
transactionPrompt.category === "expense" &&
mappedExpenses.includes(transactionPrompt.subCategory)
) {
transactionPrompt.expenseType =
config.expenseTypeMapping[transactionPrompt.subCategory];
const promptMessage =
mappedTransaction.category === "split"
? "Save and define splits?"
: "Save this transaction and continue?";

if (await promptConfirm(promptMessage)) {
promptForCategories = false;
}
} while (promptForCategories);

if (mappedTransaction.category === "skip") {
continue;
}

// Save the row as-is now
db.saveRow(mapTransaction(importedTransaction, transactionPrompt));
db.saveRow(mappedTransaction);

// Everything that's not skip or split is done
if (transactionPrompt.category !== "split") {
if (mappedTransaction.category !== "split") {
continue;
}

Expand Down

0 comments on commit 97d9f8d

Please sign in to comment.