Commit 45734995 authored by Scott Hampton's avatar Scott Hampton

Merge branch 'jnnkl-remove-eventlistener-profiles-show' into 'master'

Remove obsolete DOMContentLoadedEventListener

See merge request gitlab-org/gitlab!56684
parents 4464c511 cf798a30
...@@ -7,81 +7,78 @@ import { __ } from '~/locale'; ...@@ -7,81 +7,78 @@ import { __ } from '~/locale';
import EmojiMenu from './emoji_menu'; import EmojiMenu from './emoji_menu';
const defaultStatusEmoji = 'speech_balloon'; const defaultStatusEmoji = 'speech_balloon';
const toggleEmojiMenuButtonSelector = '.js-toggle-emoji-menu';
const toggleEmojiMenuButton = document.querySelector(toggleEmojiMenuButtonSelector);
const statusEmojiField = document.getElementById('js-status-emoji-field');
const statusMessageField = document.getElementById('js-status-message-field');
document.addEventListener('DOMContentLoaded', () => { const toggleNoEmojiPlaceholder = (isVisible) => {
const toggleEmojiMenuButtonSelector = '.js-toggle-emoji-menu'; const placeholderElement = document.getElementById('js-no-emoji-placeholder');
const toggleEmojiMenuButton = document.querySelector(toggleEmojiMenuButtonSelector); placeholderElement.classList.toggle('hidden', !isVisible);
const statusEmojiField = document.getElementById('js-status-emoji-field'); };
const statusMessageField = document.getElementById('js-status-message-field');
const toggleNoEmojiPlaceholder = (isVisible) => { const findStatusEmoji = () => toggleEmojiMenuButton.querySelector('gl-emoji');
const placeholderElement = document.getElementById('js-no-emoji-placeholder'); const removeStatusEmoji = () => {
placeholderElement.classList.toggle('hidden', !isVisible); const statusEmoji = findStatusEmoji();
}; if (statusEmoji) {
statusEmoji.remove();
}
};
const findStatusEmoji = () => toggleEmojiMenuButton.querySelector('gl-emoji'); const selectEmojiCallback = (emoji, emojiTag) => {
const removeStatusEmoji = () => { statusEmojiField.value = emoji;
const statusEmoji = findStatusEmoji(); toggleNoEmojiPlaceholder(false);
if (statusEmoji) { removeStatusEmoji();
statusEmoji.remove(); toggleEmojiMenuButton.innerHTML += emojiTag;
} };
};
const selectEmojiCallback = (emoji, emojiTag) => { const clearEmojiButton = document.getElementById('js-clear-user-status-button');
statusEmojiField.value = emoji; clearEmojiButton.addEventListener('click', () => {
toggleNoEmojiPlaceholder(false); statusEmojiField.value = '';
removeStatusEmoji(); statusMessageField.value = '';
toggleEmojiMenuButton.innerHTML += emojiTag; removeStatusEmoji();
}; toggleNoEmojiPlaceholder(true);
});
const clearEmojiButton = document.getElementById('js-clear-user-status-button');
clearEmojiButton.addEventListener('click', () => {
statusEmojiField.value = '';
statusMessageField.value = '';
removeStatusEmoji();
toggleNoEmojiPlaceholder(true);
});
const emojiAutocomplete = new GfmAutoComplete(); const emojiAutocomplete = new GfmAutoComplete();
emojiAutocomplete.setup($(statusMessageField), { emojis: true }); emojiAutocomplete.setup($(statusMessageField), { emojis: true });
const userNameInput = document.getElementById('user_name'); const userNameInput = document.getElementById('user_name');
userNameInput.addEventListener('input', () => { userNameInput.addEventListener('input', () => {
const EMOJI_REGEX = emojiRegex(); const EMOJI_REGEX = emojiRegex();
if (EMOJI_REGEX.test(userNameInput.value)) { if (EMOJI_REGEX.test(userNameInput.value)) {
// set field to invalid so it gets detected by GlFieldErrors // set field to invalid so it gets detected by GlFieldErrors
userNameInput.setCustomValidity(__('Invalid field')); userNameInput.setCustomValidity(__('Invalid field'));
} else { } else {
userNameInput.setCustomValidity(''); userNameInput.setCustomValidity('');
} }
}); });
Emoji.initEmojiMap() Emoji.initEmojiMap()
.then(() => { .then(() => {
const emojiMenu = new EmojiMenu( const emojiMenu = new EmojiMenu(
Emoji, Emoji,
toggleEmojiMenuButtonSelector, toggleEmojiMenuButtonSelector,
'js-status-emoji-menu', 'js-status-emoji-menu',
selectEmojiCallback, selectEmojiCallback,
); );
emojiMenu.bindEvents(); emojiMenu.bindEvents();
const defaultEmojiTag = Emoji.glEmojiTag(defaultStatusEmoji); const defaultEmojiTag = Emoji.glEmojiTag(defaultStatusEmoji);
statusMessageField.addEventListener('input', () => { statusMessageField.addEventListener('input', () => {
const hasStatusMessage = statusMessageField.value.trim() !== ''; const hasStatusMessage = statusMessageField.value.trim() !== '';
const statusEmoji = findStatusEmoji(); const statusEmoji = findStatusEmoji();
if (hasStatusMessage && statusEmoji) { if (hasStatusMessage && statusEmoji) {
return; return;
} }
if (hasStatusMessage) { if (hasStatusMessage) {
toggleNoEmojiPlaceholder(false); toggleNoEmojiPlaceholder(false);
toggleEmojiMenuButton.innerHTML += defaultEmojiTag; toggleEmojiMenuButton.innerHTML += defaultEmojiTag;
} else if (statusEmoji.dataset.name === defaultStatusEmoji) { } else if (statusEmoji.dataset.name === defaultStatusEmoji) {
toggleNoEmojiPlaceholder(true); toggleNoEmojiPlaceholder(true);
removeStatusEmoji(); removeStatusEmoji();
} }
}); });
}) })
.catch(() => createFlash(__('Failed to load emoji list.'))); .catch(() => createFlash(__('Failed to load emoji list.')));
});
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment