27 lines
772 B
TypeScript
27 lines
772 B
TypeScript
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<typeof dialog.showOpenDialog> {
|
|
return dialog.showOpenDialog({
|
|
...{
|
|
title: this.translator.t('select a folder'),
|
|
},
|
|
...options,
|
|
...{
|
|
properties: ['openDirectory', 'showHiddenFiles'],
|
|
},
|
|
});
|
|
}
|
|
}
|