aboutsummaryrefslogtreecommitdiff
path: root/ext/js/pages/settings/popup-preview-controller.js
diff options
context:
space:
mode:
authorStefanVukovic99 <stefanvukovic44@gmail.com>2024-02-18 14:00:04 +0100
committerGitHub <noreply@github.com>2024-02-18 13:00:04 +0000
commitc2e3f60e51529f05284fea5f5bc1afcd1674f5ca (patch)
tree61b0b35a73c41f4ab552bbbe056748a204562745 /ext/js/pages/settings/popup-preview-controller.js
parent7e9f7e2616973418cc50f7706bd8f644cb9d5559 (diff)
switch preview popup's example text based on language (#700)
* Copy functions from JapaneseUtil * Remove JapaneseUtil * Update usages of JapaneseUtil functions * part1 * frotend done? * fix tests * offscreen and type complications * add tests * start fixing tests * keep fixing tests * fix tests * Copy functions from JapaneseUtil * Remove JapaneseUtil * Update usages of JapaneseUtil functions * delete pt * renames * add tests * kebab-case filenames * lint * minor fixes * merge * fixes * fix part of comments * fix more comments * delete unused types * comment * comment * do backend * other files * move fetch utils to own file * remove extra line * add extra line * remove unnecessary export * simplify folder structure * remove redundant async * fix param type in api * fix language index * undo changes to cssStyleApplier * undo changes to utilities.js * undo changes to utilities.js * simplify language util * lint * undo phantom changes to anki integration * require textTransformations options * explicit locale in localeCompare * punctuate notes * prefer early exit * rename LanguageOptionsObjectMap * rename to textPreprocessor * tuple with names instead of boolean array * safe data setting * optional chaining * simplify LanguageOptions * encapsulate languages * delete language util * nullable language in text preprocessors controller * rename transform to process * remove settings * make translation advanced again * remove unused getTextTransformations api call * comments * change language types * RIP flags * comments * fix tests * lint * Text preprocessor type changes (#10) * Add types * Update types * Simplify type check * Refactor typing and structuring of language definitions * lint * update translator benchmark * undo markdown changes * undo markdown changes * undo markdown changes * more merge * use example text * comments * comments --------- Co-authored-by: toasted-nutbread <toasted-nutbread@users.noreply.github.com> Co-authored-by: Darius Jahandarie <djahandarie@gmail.com>
Diffstat (limited to 'ext/js/pages/settings/popup-preview-controller.js')
-rw-r--r--ext/js/pages/settings/popup-preview-controller.js22
1 files changed, 22 insertions, 0 deletions
diff --git a/ext/js/pages/settings/popup-preview-controller.js b/ext/js/pages/settings/popup-preview-controller.js
index 5194410c..bd335460 100644
--- a/ext/js/pages/settings/popup-preview-controller.js
+++ b/ext/js/pages/settings/popup-preview-controller.js
@@ -47,6 +47,14 @@ export class PopupPreviewController {
this._customOuterCss.addEventListener('settingChanged', this._onCustomOuterCssChange.bind(this), false);
this._frame.addEventListener('load', this._onFrameLoad.bind(this), false);
this._settingsController.on('optionsContextChanged', this._onOptionsContextChange.bind(this));
+ this._settingsController.on('optionsChanged', this._onOptionsChanged.bind(this));
+ const languageSelect = querySelectorNotNull(document, '#language-select');
+ languageSelect.addEventListener(
+ /** @type {string} */ ('settingChanged'),
+ /** @type {EventListener} */ (this._onLanguageSelectChanged.bind(this)),
+ false
+ );
+
this._frame.src = '/popup-preview.html';
}
@@ -79,6 +87,20 @@ export class PopupPreviewController {
}
/**
+ * @param {import('settings-controller').EventArgument<'optionsChanged'>} details
+ */
+ _onOptionsChanged({options}) {
+ this._invoke('PopupPreviewFrame.optionsChanged', {options});
+ }
+
+ /**
+ * @param {import('dom-data-binder').SettingChangedEvent} settingChangedEvent
+ */
+ _onLanguageSelectChanged(settingChangedEvent) {
+ this._invoke('PopupPreviewFrame.setLanguageExampleText', {language: settingChangedEvent.detail.value});
+ }
+
+ /**
* @param {string} action
* @param {import('core').SerializableObject} params
*/