refactor: lazy load slugify

isekai-main
Barış Soner Uşaklı 3 years ago
parent 4043f1791d
commit 946d351f3a

@ -11,8 +11,7 @@ define('forum/topic/postTools', [
'bootbox',
'alerts',
'hooks',
'slugify',
], function (share, navigator, components, translator, votes, api, bootbox, alerts, hooks, slugify) {
], function (share, navigator, components, translator, votes, api, bootbox, alerts, hooks) {
const PostTools = {};
let staleReplyAnyway = false;
@ -256,8 +255,8 @@ define('forum/topic/postTools', [
function onReplyClicked(button, tid) {
const selectedNode = getSelectedNode();
showStaleWarning(function () {
let username = getUserSlug(button);
showStaleWarning(async function () {
let username = await getUserSlug(button);
if (getData(button, 'data-uid') === '0' || !getData(button, 'data-userslug')) {
username = '';
}
@ -289,8 +288,8 @@ define('forum/topic/postTools', [
function onQuoteClicked(button, tid) {
const selectedNode = getSelectedNode();
showStaleWarning(function () {
const username = getUserSlug(button);
showStaleWarning(async function () {
const username = await getUserSlug(button);
const toPid = getData(button, 'data-pid');
function quote(text) {
@ -316,7 +315,7 @@ define('forum/topic/postTools', [
});
}
function getSelectedNode() {
async function getSelectedNode() {
let selectedText = '';
let selectedPid;
let username = '';
@ -343,7 +342,7 @@ define('forum/topic/postTools', [
selectedText = range.toString();
const postEl = $(content).parents('[component="post"]');
selectedPid = postEl.attr('data-pid');
username = getUserSlug($(content));
username = await getUserSlug($(content));
range.detach();
}
return { text: selectedText, pid: selectedPid, username: username };
@ -367,28 +366,33 @@ define('forum/topic/postTools', [
}
function getUserSlug(button) {
let slug = '';
const post = button.parents('[data-pid]');
if (button.attr('component') === 'topic/reply') {
return slug;
}
if (post.length) {
slug = slugify(post.attr('data-username'), true);
if (!slug) {
if (post.attr('data-uid') !== '0') {
slug = '[[global:former_user]]';
} else {
slug = '[[global:guest]]';
}
return new Promise((resolve) => {
let slug = '';
if (button.attr('component') === 'topic/reply') {
resolve(slug);
return;
}
const post = button.parents('[data-pid]');
if (post.length) {
require(['slugify'], function (slugify) {
slug = slugify(post.attr('data-username'), true);
if (!slug) {
if (post.attr('data-uid') !== '0') {
slug = '[[global:former_user]]';
} else {
slug = '[[global:guest]]';
}
}
resolve(slug);
});
return;
}
if (post.length && post.attr('data-uid') !== '0') {
slug = '@' + slug;
}
}
if (post.length && post.attr('data-uid') !== '0') {
slug = '@' + slug;
}
return slug;
resolve(slug);
});
}
function togglePostDelete(button) {

Loading…
Cancel
Save