Open options page on banner click
This commit is contained in:
parent
07bcc15e7b
commit
34bd084a4d
2 changed files with 13 additions and 2 deletions
|
@ -26,11 +26,20 @@ export default class NotifyPresenter {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async notifyInvalidSettings(): Promise<void> {
|
async notifyInvalidSettings(onclick: () => void): Promise<void> {
|
||||||
let title = `Loaded settings is invalid`;
|
let title = `Loaded settings is invalid`;
|
||||||
// eslint-disable-next-line max-len
|
// eslint-disable-next-line max-len
|
||||||
let message = 'The default settings is used due to the last saved settings is invalid. Check your current settings from the add-on preference';
|
let message = 'The default settings is used due to the last saved settings is invalid. Check your current settings from the add-on preference';
|
||||||
|
|
||||||
|
const listener = (id: string) => {
|
||||||
|
if (id !== NOTIFICATION_ID_INVALID_SETTINGS) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
onclick();
|
||||||
|
browser.notifications.onClicked.removeListener(listener);
|
||||||
|
};
|
||||||
|
browser.notifications.onClicked.addListener(listener);
|
||||||
|
|
||||||
await browser.notifications.create(NOTIFICATION_ID_INVALID_SETTINGS, {
|
await browser.notifications.create(NOTIFICATION_ID_INVALID_SETTINGS, {
|
||||||
'type': 'basic',
|
'type': 'basic',
|
||||||
'iconUrl': browser.extension.getURL('resources/icon_48x48.png'),
|
'iconUrl': browser.extension.getURL('resources/icon_48x48.png'),
|
||||||
|
|
|
@ -30,7 +30,9 @@ export default class SettingUseCase {
|
||||||
try {
|
try {
|
||||||
value = data.toSettings();
|
value = data.toSettings();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.notifyPresenter.notifyInvalidSettings();
|
this.notifyPresenter.notifyInvalidSettings(() => {
|
||||||
|
browser.runtime.openOptionsPage();
|
||||||
|
});
|
||||||
value = DefaultSettingData.toSettings();
|
value = DefaultSettingData.toSettings();
|
||||||
}
|
}
|
||||||
this.settingRepository.update(value!!);
|
this.settingRepository.update(value!!);
|
||||||
|
|
Reference in a new issue