typesript

This commit is contained in:
2024-05-13 11:52:43 +07:00
parent f567aed4da
commit eee07fab6b
4 changed files with 68 additions and 21 deletions

65
assets/src/main.js Normal file
View File

@@ -0,0 +1,65 @@
"use strict";
const AdminFunction = (() => {
function capNhatTrangThaiMenu(hideMenuBig) {
if (hideMenuBig === false) {
$('#js-admin-content-container').addClass('show-large-menu');
}
else {
$('#js-admin-content-container').removeClass('show-large-menu');
}
$('#js-menu-big').toggleClass('hidden', hideMenuBig);
$('#js-menu-small').toggleClass('hidden', !hideMenuBig);
$('#js-form-search').toggleClass('menu-hide', hideMenuBig);
localStorage.setItem(hideMenuBig ? 'menu_big' : 'menu_small', 'hidden');
localStorage.removeItem(hideMenuBig ? 'menu_small' : 'menu_big');
}
function debounce(func, wait, immediate) {
let timeout = null;
return function (...args) {
const context = this;
const later = function () {
timeout = null;
if (!immediate)
func.apply(context, args);
};
const callNow = immediate && !timeout;
if (timeout !== null) {
clearTimeout(timeout);
}
timeout = setTimeout(later, wait);
if (callNow)
func.apply(context, args);
};
}
function add_product_to_category(id) {
$('#status_' + id).html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Đang xử lý..</span>');
setTimeout(() => {
$('#status_' + id).html('');
}, 1000);
}
function run_search(holder) {
$(holder).keyup(debounce(function () {
//const inputString = $(this).val();
$('#js-show-search').show();
}, 300, false)); // Cast debounce to any to avoid type inference issues
$('body').click(function () {
$("#js-show-search").hide();
});
}
function update_product_hot(id) {
$('#js-status-hottype-' + id).html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Đang xử lý..</span>');
setTimeout(() => {
$('#js-status-hottype-' + id).html('');
}, 1000);
}
function searchSelect(holder) {
$(holder).select2();
}
return {
capNhatTrangThaiMenu,
add_product_to_category,
run_search,
searchSelect,
update_product_hot
};
})();

80
assets/src/main.ts Normal file
View File

@@ -0,0 +1,80 @@
"use strict";
interface AdminFunction {
capNhatTrangThaiMenu(hideMenuBig: boolean): void;
add_product_to_category(id: string): void;
run_search(holder: string): void;
searchSelect(holder: string): void;
update_product_hot(id: string): void;
}
const AdminFunction: AdminFunction = (() => {
function capNhatTrangThaiMenu(hideMenuBig: boolean): void {
if (hideMenuBig === false) {
$('#js-admin-content-container').addClass('show-large-menu');
} else {
$('#js-admin-content-container').removeClass('show-large-menu');
}
$('#js-menu-big').toggleClass('hidden', hideMenuBig);
$('#js-menu-small').toggleClass('hidden', !hideMenuBig);
$('#js-form-search').toggleClass('menu-hide', hideMenuBig);
localStorage.setItem(hideMenuBig ? 'menu_big' : 'menu_small', 'hidden');
localStorage.removeItem(hideMenuBig ? 'menu_small' : 'menu_big');
}
function debounce(func: (...args: any[]) => void, wait: number, immediate: boolean) {
let timeout: ReturnType<typeof setTimeout> | null = null;
return function (this: HTMLInputElement, ...args: any[]) {
const context = this;
const later = function () {
timeout = null;
if (!immediate) func.apply(context, args);
};
const callNow = immediate && !timeout;
if (timeout !== null) {
clearTimeout(timeout);
}
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
function add_product_to_category(id: string): void {
$('#status_' + id).html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Đang xử lý..</span>');
setTimeout(() => {
$('#status_' + id).html('');
}, 1000);
}
function run_search(holder: string): void {
$(holder).keyup(debounce(function (this: HTMLInputElement) { // Ensure 'this' context is of type HTMLInputElement
//const inputString = $(this).val();
$('#js-show-search').show();
}, 300, false) as any); // Cast debounce to any to avoid type inference issues
$('body').click(function () {
$("#js-show-search").hide();
});
}
function update_product_hot(id: string): void {
$('#js-status-hottype-' + id).html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Đang xử lý..</span>');
setTimeout(() => {
$('#js-status-hottype-' + id).html('');
}, 1000);
}
function searchSelect(holder: string): void {
$(holder).select2();
}
return {
capNhatTrangThaiMenu,
add_product_to_category,
run_search,
searchSelect,
update_product_hot
};
})();