43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
import { usePhondueDigraphs } from '../KeyboardFire/phondue/ipaField';
|
|
import { enableHotKeys } from '../hotkeys';
|
|
import { dismiss, isDismissed } from '../announcements';
|
|
import { fadeOutElement } from '../utilities';
|
|
import { setupDetailsTabs } from './details';
|
|
import { setupWordForm, setupMobileWordFormButton } from './words';
|
|
import { setupIPAButtons, setupHeaderButtons, setupInfoButtons } from './buttons';
|
|
|
|
export default function setupListeners() {
|
|
setupAnnouncements();
|
|
setupDetailsTabs();
|
|
setupHeaderButtons();
|
|
setupWordForm();
|
|
setupMobileWordFormButton();
|
|
setupInfoButtons();
|
|
if (window.settings.useHotkeys) {
|
|
enableHotKeys();
|
|
}
|
|
}
|
|
|
|
function setupAnnouncements() {
|
|
const announcements = document.querySelectorAll('.announcement');
|
|
Array.from(announcements).forEach(announcement => {
|
|
if (announcement.id && isDismissed(announcement.id)) {
|
|
fadeOutElement(announcement);
|
|
} else {
|
|
announcement.querySelector('.close-button').addEventListener('click', () => dismiss(announcement));
|
|
}
|
|
});
|
|
}
|
|
|
|
export function setupIPAFields() {
|
|
if (window.settings.useIPAPronunciationField) {
|
|
const ipaFields = document.getElementsByClassName('ipa-field');
|
|
Array.from(ipaFields).forEach(field => {
|
|
field.removeEventListener('keypress', usePhondueDigraphs);
|
|
field.addEventListener('keypress', usePhondueDigraphs);
|
|
});
|
|
}
|
|
|
|
setupIPAButtons();
|
|
}
|