Skip to content
Snippets Groups Projects
Verified Commit fc828b40 authored by Phil Hughes's avatar Phil Hughes
Browse files

Fixed server rendered flash not being removed on click

parent fe3ec2d9
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -40,6 +40,10 @@ const createFlashEl = (message, type, isInContentWrapper = false) => `
</div>
`;
 
const removeFlashClickListener = (flashEl, fadeTransition) => {
flashEl.parentNode.addEventListener('click', () => hideFlash(flashEl, fadeTransition));
};
/*
* Flash banner supports different types of Flash configurations
* along with ability to provide actionConfig which can be used to show
Loading
Loading
@@ -70,7 +74,7 @@ const createFlash = function createFlash(
flashContainer.innerHTML = createFlashEl(message, type, isInContentWrapper);
 
const flashEl = flashContainer.querySelector(`.flash-${type}`);
flashEl.addEventListener('click', () => hideFlash(flashEl, fadeTransition));
removeFlashClickListener(flashEl, fadeTransition);
 
if (actionConfig) {
flashEl.innerHTML += createAction(actionConfig);
Loading
Loading
@@ -90,5 +94,6 @@ export {
createFlashEl,
createAction,
hideFlash,
removeFlashClickListener,
};
window.Flash = createFlash;
Loading
Loading
@@ -64,7 +64,7 @@ import './diff';
import './dropzone_input';
import './due_date_select';
import './files_comment_button';
import Flash from './flash';
import Flash, { removeFlashClickListener } from './flash';
import './gl_dropdown';
import './gl_field_error';
import './gl_field_errors';
Loading
Loading
@@ -339,4 +339,10 @@ $(function () {
event.preventDefault();
gl.utils.visitUrl(`${action}${$(this).serialize()}`);
});
const flashContainer = document.querySelector('.flash-container');
if (flashContainer && flashContainer.children.length) {
removeFlashClickListener(flashContainer.children[0]);
}
});
Loading
Loading
@@ -2,6 +2,7 @@ import flash, {
createFlashEl,
createAction,
hideFlash,
removeFlashClickListener,
} from '~/flash';
 
describe('Flash', () => {
Loading
Loading
@@ -266,4 +267,24 @@ describe('Flash', () => {
});
});
});
describe('removeFlashClickListener', () => {
beforeEach(() => {
document.body.innerHTML += '<div class="flash-container"><div class="flash"></div></div>';
});
it('removes global flash on click', (done) => {
const flashEl = document.querySelector('.flash');
removeFlashClickListener(flashEl, false);
flashEl.parentNode.click();
setTimeout(() => {
expect(document.querySelector('.flash')).toBeNull();
done();
});
});
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment