Skip to content

Commit

Permalink
Merge pull request #606 from padloc/feature/override-csv-import-format
Browse files Browse the repository at this point in the history
Allow overriding CSV import format
  • Loading branch information
BrunoBernardino committed Oct 4, 2022
2 parents c9c4cd2 + 0fcf084 commit 17bbd55
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
16 changes: 13 additions & 3 deletions packages/app/src/elements/import-dialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ fieldTypeOptions.push({
value: "skip",
});

const csvSupportedFormatValues = imp.csvSupportedFormats.map((importFormat) => importFormat.value);

@customElement("pl-import-dialog")
export class ImportDialog extends Dialog<File, void> {
@state()
Expand All @@ -37,7 +39,7 @@ export class ImportDialog extends Dialog<File, void> {
private _csvHasColumnsOnFirstRowButton: ToggleButton;

@query("#formatSelect")
private _formatSelect: Select<string>;
private _formatSelect: Select<imp.ImportFormat["value"]>;

@query("#vaultSelect")
private _vaultSelect: Select<Vault>;
Expand Down Expand Up @@ -65,16 +67,24 @@ export class ImportDialog extends Dialog<File, void> {

renderContent() {
const csvHasColumnsOnFirstRow = this._csvHasColumnsOnFirstRowButton?.active;
const hasChosenCsvSupportedFormat = Boolean(
this._formatSelect?.value && csvSupportedFormatValues.includes(this._formatSelect?.value)
);
const formatOptions = imp.supportedFormats.map((importFormat) => ({
...importFormat,
disabled: hasChosenCsvSupportedFormat && !csvSupportedFormatValues.includes(importFormat.value),
}));

return html`
<div class="padded vertical spacing layout fit-vertically">
<h1 class="big text-centering margined">${$l("Import Data")}</h1>
<pl-select
id="formatSelect"
.options=${imp.supportedFormats}
.options=${formatOptions}
.label=${$l("Format")}
@change=${this._parseData}
disabled
?disabled=${!hasChosenCsvSupportedFormat}
></pl-select>
<div class="small padded" ?hidden=${this._formatSelect?.value !== imp.CSV.value}>
Expand Down
11 changes: 11 additions & 0 deletions packages/app/src/lib/import.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,17 @@ export const supportedFormats: ImportFormat[] = [
FIREFOX,
];

export const csvSupportedFormats: ImportFormat[] = [
CSV,
LASTPASS,
DASHLANE,
KEEPASS,
NORDPASS,
ICLOUD,
CHROME,
FIREFOX,
];

export function loadPapa(): Promise<any> {
return import(/* webpackChunkName: "papaparse" */ "papaparse");
}
Expand Down

0 comments on commit 17bbd55

Please sign in to comment.