From 13a02e4b5dc398204ea7574c86ef0175d72697f7 Mon Sep 17 00:00:00 2001 From: hoseacodes Date: Tue, 9 Apr 2024 16:24:17 -0500 Subject: [PATCH] fix(*):move function --- src/Utils/helperFunctions.js | 119 +++++++++++++++++++---------------- 1 file changed, 64 insertions(+), 55 deletions(-) diff --git a/src/Utils/helperFunctions.js b/src/Utils/helperFunctions.js index e635b42d..f4dc82fb 100644 --- a/src/Utils/helperFunctions.js +++ b/src/Utils/helperFunctions.js @@ -1,77 +1,86 @@ function copyTextToClipboard(text) { -var textArea = document.createElement("textarea"); + var textArea = document.createElement("textarea"); -// -// *** This styling is an extra step which is likely not required. *** -// -// Why is it here? To ensure: -// 1. the element is able to have focus and selection. -// 2. if element was to flash render it has minimal visual impact. -// 3. less flakyness with selection and copying which **might** occur if -// the textarea element is not visible. -// -// The likelihood is the element won't even render, not even a flash, -// so some of these are just precautions. However in IE the element -// is visible whilst the popup box asking the user for permission for -// the web page to copy to the clipboard. -// + // + // *** This styling is an extra step which is likely not required. *** + // + // Why is it here? To ensure: + // 1. the element is able to have focus and selection. + // 2. if element was to flash render it has minimal visual impact. + // 3. less flakyness with selection and copying which **might** occur if + // the textarea element is not visible. + // + // The likelihood is the element won't even render, not even a flash, + // so some of these are just precautions. However in IE the element + // is visible whilst the popup box asking the user for permission for + // the web page to copy to the clipboard. + // -// Place in top-left corner of screen regardless of scroll position. -textArea.style.position = "fixed"; -textArea.style.top = 0; -textArea.style.left = 0; + // Place in top-left corner of screen regardless of scroll position. + textArea.style.position = "fixed"; + textArea.style.top = 0; + textArea.style.left = 0; -// Ensure it has a small width and height. Setting to 1px / 1em -// doesn't work as this gives a negative w/h on some browsers. -textArea.style.width = "2em"; -textArea.style.height = "2em"; + // Ensure it has a small width and height. Setting to 1px / 1em + // doesn't work as this gives a negative w/h on some browsers. + textArea.style.width = "2em"; + textArea.style.height = "2em"; -// We don't need padding, reducing the size if it does flash render. -textArea.style.padding = 0; + // We don't need padding, reducing the size if it does flash render. + textArea.style.padding = 0; -// Clean up any borders. -textArea.style.border = "none"; -textArea.style.outline = "none"; -textArea.style.boxShadow = "none"; + // Clean up any borders. + textArea.style.border = "none"; + textArea.style.outline = "none"; + textArea.style.boxShadow = "none"; -// Avoid flash of white box if rendered for any reason. -textArea.style.background = "transparent"; + // Avoid flash of white box if rendered for any reason. + textArea.style.background = "transparent"; -textArea.value = text; + textArea.value = text; -document.body.appendChild(textArea); + document.body.appendChild(textArea); -textArea.select(); + textArea.select(); -try { + try { var successful = document.execCommand("copy"); var msg = successful ? "successful" : "unsuccessful"; // console.log("Copying text command was " + msg); alert("Link copied to clipboard!"); -} catch (err) { + } catch (err) { console.log("Oops, unable to copy"); -} + } -document.body.removeChild(textArea); + document.body.removeChild(textArea); } const responsive = { - superLargeDesktop: { - breakpoint: { max: 4000, min: 3000 }, - items: 1, - }, - desktop: { - breakpoint: { max: 3000, min: 1024 }, - items: 1, - }, - tablet: { - breakpoint: { max: 1024, min: 464 }, - items: 1, - }, - mobile: { - breakpoint: { max: 464, min: 0 }, - items: 1, - } + superLargeDesktop: { + breakpoint: { max: 4000, min: 3000 }, + items: 1, + }, + desktop: { + breakpoint: { max: 3000, min: 1024 }, + items: 1, + }, + tablet: { + breakpoint: { max: 1024, min: 464 }, + items: 1, + }, + mobile: { + breakpoint: { max: 464, min: 0 }, + items: 1, + }, }; -export { copyTextToClipboard, responsive }; \ No newline at end of file +function sleep(num) { + let now = new Date(); + const stop = now.getTime() + num; + while (true) { + now = new Date(); + if (now.getTime() > stop) return; + } +} + +export { copyTextToClipboard, responsive, sleep };