const ELEMENT_ID = 'loader'; import { delay } from "./utils.js"; export function showLoader() { const container = $('
').attr('id', ELEMENT_ID); const loader = $('
').attr('id', 'load-spinner').addClass('fa-solid fa-gear fa-spin fa-3x'); container.append(loader); $('body').append(container); } //placeholder user data const user1 = { handle: 'user0', avatarSrc: 'https://cdn-icons-png.flaticon.com/256/147/147144.png', name: 'Admin', password: true } const user2 = { handle: 'user1', avatarSrc: 'https://cdn.iconscout.com/icon/free/png-256/free-avatar-370-456322.png', name: 'Guest', password: true } const userSelectMessage = `

Select User

This is merely a test.
Click a user, and then click Login to proceed.
` export async function hideLoader() { //Sets up a 2-step animation. Spinner blurs/fades out, and then the loader shadow does the same. $('#load-spinner').on('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function () { //$('#loader-spinner') $(`#${ELEMENT_ID}`) //only fade out the spinner and replace with login screen .animate({ opacity: 0 }, 300, function () { //dont remove the loader container just yet $(`#${ELEMENT_ID}`).remove(); }); }); //console.log('BLURRING SPINNER') $('#load-spinner') .css({ 'filter': 'blur(15px)', 'opacity': '0', }); //add login screen //$('#loader').append(userSelectMessage) $(".userSelect").on("click", function () { let selectedUserName = $(this).data('foruser') $('.userSelect').removeClass('avatar-container selected') $(this).addClass('avatar-container selected') console.log(selectedUserName) $("#passwordHeaderText").text(`Enter password for ${selectedUserName}`) $("#passwordEntryBlock").show() }) $("#loginButton").on('click', function () { $('#loader') .animate({ opacity: 0 }, 300, function () { //insert user handle/password verification code here //.finally: $('#loader').remove(); }); }) }