39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
import $ from 'jquery';
|
|
import axios from '../lib/utils/axios_utils';
|
|
import { __ } from '../locale';
|
|
import { deprecatedCreateFlash as Flash } from '../flash';
|
|
import LazyLoader from '../lazy_loader';
|
|
import { togglePopover } from '../shared/popover';
|
|
|
|
export const getSelector = highlightId => `.js-feature-highlight[data-highlight=${highlightId}]`;
|
|
|
|
export function dismiss(highlightId) {
|
|
axios
|
|
.post(this.attr('data-dismiss-endpoint'), {
|
|
feature_name: highlightId,
|
|
})
|
|
.catch(() =>
|
|
Flash(
|
|
__(
|
|
'An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again.',
|
|
),
|
|
),
|
|
);
|
|
|
|
togglePopover.call(this, false);
|
|
this.hide();
|
|
}
|
|
|
|
export function inserted() {
|
|
const popoverId = this.getAttribute('aria-describedby');
|
|
const highlightId = this.dataset.highlight;
|
|
const $popover = $(this);
|
|
const dismissWrapper = dismiss.bind($popover, highlightId);
|
|
|
|
$(`#${popoverId} .dismiss-feature-highlight`).on('click', dismissWrapper);
|
|
|
|
const lazyImg = $(`#${popoverId} .feature-highlight-illustration`)[0];
|
|
if (lazyImg) {
|
|
LazyLoader.loadImage(lazyImg);
|
|
}
|
|
}
|