From 895acbb61b43944b530e4864477d32547f21d839 Mon Sep 17 00:00:00 2001 From: KaiBelmo Date: Mon, 9 Oct 2023 09:36:19 +0200 Subject: [PATCH 1/6] fix: csv parser delimiter csv parser delimiter && selecting delimiters in csv option --- .../src/components/modals/ImportTransactions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/desktop-client/src/components/modals/ImportTransactions.js b/packages/desktop-client/src/components/modals/ImportTransactions.js index 309916656a..34d2de9eb9 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactions.js +++ b/packages/desktop-client/src/components/modals/ImportTransactions.js @@ -1070,8 +1070,8 @@ export default function ImportTransactions({ modalProps, options }) { function getParseOptions(fileType, csvOptions, ofxOptions) { if (fileType === 'csv') { - const { csvDelimiter, hasHeaderRow } = csvOptions; - return { csvDelimiter, hasHeaderRow }; + const { delimiter, hasHeaderRow } = csvOptions; + return { delimiter, hasHeaderRow }; } else if (isOfxFile(fileType)) { const { fallbackMissingPayeeToMemo } = ofxOptions; return { fallbackMissingPayeeToMemo }; From 58115a599b3b3a1715d339146f869aa3efdee6c0 Mon Sep 17 00:00:00 2001 From: KaiBelmo Date: Mon, 9 Oct 2023 09:37:22 +0200 Subject: [PATCH 2/6] feat: add '|' delimiter --- .../desktop-client/src/components/modals/ImportTransactions.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/desktop-client/src/components/modals/ImportTransactions.js b/packages/desktop-client/src/components/modals/ImportTransactions.js index 34d2de9eb9..e2e91c0e60 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactions.js +++ b/packages/desktop-client/src/components/modals/ImportTransactions.js @@ -966,6 +966,7 @@ export default function ImportTransactions({ modalProps, options }) { options={[ [',', ','], [';', ';'], + ['|', '|'], ['\t', 'tab'], ]} value={csvDelimiter} From 3761853496275897a82a79cc63fea5147b40bba7 Mon Sep 17 00:00:00 2001 From: KaiBelmo Date: Mon, 9 Oct 2023 20:18:34 +0200 Subject: [PATCH 3/6] add changelog --- upcoming-release-notes/1774.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 upcoming-release-notes/1774.md diff --git a/upcoming-release-notes/1774.md b/upcoming-release-notes/1774.md new file mode 100644 index 0000000000..1c34eeb710 --- /dev/null +++ b/upcoming-release-notes/1774.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [[KaiBelmo](https://github.com/KaiBelmo)] +--- + +Now you can select delimiters in CSV options when you're uploading a CSV, and it's going to apply to parsing. I've also added a new delimiter '|'. \ No newline at end of file From 92f6e5fc1a3ffad46ca4a9e05f2cb95aba46a4f6 Mon Sep 17 00:00:00 2001 From: KaiBelmo Date: Mon, 9 Oct 2023 20:22:21 +0200 Subject: [PATCH 4/6] update change log --- upcoming-release-notes/1774.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/upcoming-release-notes/1774.md b/upcoming-release-notes/1774.md index 1c34eeb710..1ad0be8ce5 100644 --- a/upcoming-release-notes/1774.md +++ b/upcoming-release-notes/1774.md @@ -1,6 +1,6 @@ --- category: Bugfix -authors: [[KaiBelmo](https://github.com/KaiBelmo)] +authors: [KaiBelmo] --- -Now you can select delimiters in CSV options when you're uploading a CSV, and it's going to apply to parsing. I've also added a new delimiter '|'. \ No newline at end of file +Fix selecting delimiters in CSV options when uploading a CSV; it will apply to parsing. Also added a new delimiter '|'. \ No newline at end of file From c976530b0b5db62df40fd811c458fd6e56108e5d Mon Sep 17 00:00:00 2001 From: KaiBelmo Date: Mon, 9 Oct 2023 20:34:47 +0200 Subject: [PATCH 5/6] refactor: rename csvDelimiter to delimite --- .../src/components/modals/ImportTransactions.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/desktop-client/src/components/modals/ImportTransactions.js b/packages/desktop-client/src/components/modals/ImportTransactions.js index e2e91c0e60..33ac6cde7d 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactions.js +++ b/packages/desktop-client/src/components/modals/ImportTransactions.js @@ -578,7 +578,7 @@ export default function ImportTransactions({ modalProps, options }) { // options which are simple post-processing. That means if you // parsed different files without closing the modal, it wouldn't // re-read this. - let [csvDelimiter, setCsvDelimiter] = useState( + let [delimiter, setdelimiter] = useState( prefs[`csv-delimiter-${accountId}`] || (filename.endsWith('.tsv') ? '\t' : ','), ); @@ -666,7 +666,7 @@ export default function ImportTransactions({ modalProps, options }) { const fileType = getFileType(options.filename); const parseOptions = getParseOptions( fileType, - { csvDelimiter, hasHeaderRow }, + { delimiter, hasHeaderRow }, { fallbackMissingPayeeToMemo }, ); @@ -716,7 +716,7 @@ export default function ImportTransactions({ modalProps, options }) { const fileType = getFileType(res[0]); const parseOptions = getParseOptions( fileType, - { csvDelimiter, hasHeaderRow }, + { delimiter, hasHeaderRow }, { fallbackMissingPayeeToMemo }, ); @@ -787,7 +787,7 @@ export default function ImportTransactions({ modalProps, options }) { savePrefs({ [`csv-mappings-${accountId}`]: JSON.stringify(fieldMappings), }); - savePrefs({ [`csv-delimiter-${accountId}`]: csvDelimiter }); + savePrefs({ [`csv-delimiter-${accountId}`]: delimiter }); } if (filetype === 'csv' || filetype === 'qif') { @@ -969,9 +969,9 @@ export default function ImportTransactions({ modalProps, options }) { ['|', '|'], ['\t', 'tab'], ]} - value={csvDelimiter} + value={delimiter} onChange={value => { - setCsvDelimiter(value); + setdelimiter(value); parse( filename, getParseOptions('csv', { @@ -991,7 +991,7 @@ export default function ImportTransactions({ modalProps, options }) { parse( filename, getParseOptions('csv', { - delimiter: csvDelimiter, + delimiter, hasHeaderRow: !hasHeaderRow, }), ); From c88bab999a572871521f7bfe48c64c0657e286de Mon Sep 17 00:00:00 2001 From: KaiBelmo Date: Mon, 9 Oct 2023 20:38:40 +0200 Subject: [PATCH 6/6] fix: typo --- .../src/components/modals/ImportTransactions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/desktop-client/src/components/modals/ImportTransactions.js b/packages/desktop-client/src/components/modals/ImportTransactions.js index 33ac6cde7d..e9f27f5c80 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactions.js +++ b/packages/desktop-client/src/components/modals/ImportTransactions.js @@ -578,7 +578,7 @@ export default function ImportTransactions({ modalProps, options }) { // options which are simple post-processing. That means if you // parsed different files without closing the modal, it wouldn't // re-read this. - let [delimiter, setdelimiter] = useState( + let [delimiter, setDelimiter] = useState( prefs[`csv-delimiter-${accountId}`] || (filename.endsWith('.tsv') ? '\t' : ','), ); @@ -971,7 +971,7 @@ export default function ImportTransactions({ modalProps, options }) { ]} value={delimiter} onChange={value => { - setdelimiter(value); + setDelimiter(value); parse( filename, getParseOptions('csv', {