From 6ee294d14b4ac2c9895c785f84d69474269004b3 Mon Sep 17 00:00:00 2001 From: Tieptk Date: Wed, 15 May 2024 08:42:10 +0700 Subject: [PATCH] ts --- assets/typescript/main.js | 62 ++++++++++++++++---------------- assets/typescript/main.ts | 76 ++++++++++++++++++++------------------- 2 files changed, 70 insertions(+), 68 deletions(-) diff --git a/assets/typescript/main.js b/assets/typescript/main.js index cf31a0c..c906d75 100644 --- a/assets/typescript/main.js +++ b/assets/typescript/main.js @@ -1,17 +1,16 @@ "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'); +const AdminFunctions = (() => { + function toggleMenuVisibility(hideLargeMenu) { + const contentContainer = $('#js-admin-content-container'); + const largeMenu = $('#js-menu-big'); + const smallMenu = $('#js-menu-small'); + const searchForm = $('#js-form-search'); + contentContainer.toggleClass('show-large-menu', !hideLargeMenu); + largeMenu.toggleClass('hidden', hideLargeMenu); + smallMenu.toggleClass('hidden', !hideLargeMenu); + searchForm.toggleClass('menu-hide', hideLargeMenu); + localStorage.setItem(hideLargeMenu ? 'menu_big' : 'menu_small', 'hidden'); + localStorage.removeItem(hideLargeMenu ? 'menu_small' : 'menu_big'); } function debounce(func, wait, immediate) { let timeout = null; @@ -31,35 +30,36 @@ const AdminFunction = (() => { func.apply(context, args); }; } - function add_product_to_category(id) { - $('#status_' + id).html('Đang xử lý..'); + function addProductToCategory(productId) { + const statusElement = $('#status_' + productId); + statusElement.html('Processing...'); setTimeout(() => { - $('#status_' + id).html(''); + statusElement.html(''); }, 1000); } - function run_search(holder) { - $(holder).keyup(debounce(function () { - //const inputString = $(this).val(); + function searchSuggestions(inputSelector) { + $(inputSelector).keyup(debounce(function () { $('#js-show-search').show(); - }, 300, false)); // Cast debounce to any to avoid type inference issues + }, 300, false)); $('body').click(function () { - $("#js-show-search").hide(); + $('#js-show-search').hide(); }); } - function update_product_hot(id) { - $('#js-status-hottype-' + id).html('Đang xử lý..'); + function markProductAsHot(productId) { + const statusElement = $('#js-status-hottype-' + productId); + statusElement.html('Processing...'); setTimeout(() => { - $('#js-status-hottype-' + id).html(''); + statusElement.html(''); }, 1000); } - function searchSelect(holder) { - $(holder).select2(); + function initializeSearchDropdown(selector) { + $(selector).select2(); } return { - capNhatTrangThaiMenu, - add_product_to_category, - run_search, - searchSelect, - update_product_hot + toggleMenuVisibility, + addProductToCategory, + searchSuggestions, + initializeSearchDropdown, + markProductAsHot }; })(); diff --git a/assets/typescript/main.ts b/assets/typescript/main.ts index 934d8de..fbc7a26 100644 --- a/assets/typescript/main.ts +++ b/assets/typescript/main.ts @@ -1,26 +1,28 @@ "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; +interface AdminFunctions { + toggleMenuVisibility(hideLargeMenu: boolean): void; + addProductToCategory(productId: string): void; + searchSuggestions(inputSelector: string): void; + initializeSearchDropdown(selector: string): void; + markProductAsHot(productId: 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'); - } +const AdminFunctions: AdminFunctions = (() => { - $('#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 toggleMenuVisibility(hideLargeMenu: boolean): void { + const contentContainer = $('#js-admin-content-container'); + const largeMenu = $('#js-menu-big'); + const smallMenu = $('#js-menu-small'); + const searchForm = $('#js-form-search'); + + contentContainer.toggleClass('show-large-menu', !hideLargeMenu); + largeMenu.toggleClass('hidden', hideLargeMenu); + smallMenu.toggleClass('hidden', !hideLargeMenu); + searchForm.toggleClass('menu-hide', hideLargeMenu); + + localStorage.setItem(hideLargeMenu ? 'menu_big' : 'menu_small', 'hidden'); + localStorage.removeItem(hideLargeMenu ? 'menu_small' : 'menu_big'); } function debounce(func: (...args: any[]) => void, wait: number, immediate: boolean) { @@ -40,41 +42,41 @@ const AdminFunction: AdminFunction = (() => { }; } - - function add_product_to_category(id: string): void { - $('#status_' + id).html('Đang xử lý..'); + function addProductToCategory(productId: string): void { + const statusElement = $('#status_' + productId); + statusElement.html('Processing...'); setTimeout(() => { - $('#status_' + id).html(''); + statusElement.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(); + function searchSuggestions(inputSelector: string): void { + $(inputSelector).keyup(debounce(function (this: HTMLInputElement) { $('#js-show-search').show(); - }, 300, false) as any); // Cast debounce to any to avoid type inference issues + }, 300, false) as any); $('body').click(function () { - $("#js-show-search").hide(); + $('#js-show-search').hide(); }); } - function update_product_hot(id: string): void { - $('#js-status-hottype-' + id).html('Đang xử lý..'); + function markProductAsHot(productId: string): void { + const statusElement = $('#js-status-hottype-' + productId); + statusElement.html('Processing...'); setTimeout(() => { - $('#js-status-hottype-' + id).html(''); + statusElement.html(''); }, 1000); } - function searchSelect(holder: string): void { - $(holder).select2(); + function initializeSearchDropdown(selector: string): void { + $(selector).select2(); } return { - capNhatTrangThaiMenu, - add_product_to_category, - run_search, - searchSelect, - update_product_hot + toggleMenuVisibility, + addProductToCategory, + searchSuggestions, + initializeSearchDropdown, + markProductAsHot }; })();