import { dialog, OpenDialogOptions } from 'electron'; import { injectable } from 'inversify'; import { inject } from '../../core/inject'; import { II18nTranslator } from '../i18n/i-i18n-translator'; import { IDialog } from './i-dialog'; @injectable() export class Dialog implements IDialog { private readonly translator: II18nTranslator; public constructor(@inject('i18n-translator') translator: II18nTranslator) { this.translator = translator; } public selectFolder(options: OpenDialogOptions): ReturnType { return dialog.showOpenDialog({ ...{ title: this.translator.t('select a folder'), }, ...options, ...{ properties: ['openDirectory', 'showHiddenFiles'], }, }); } }