Skip to content

Commit

Permalink
fix(*):move function
Browse files Browse the repository at this point in the history
  • Loading branch information
HoseaCodes committed Apr 9, 2024
1 parent 1e5e034 commit 13a02e4
Showing 1 changed file with 64 additions and 55 deletions.
119 changes: 64 additions & 55 deletions src/Utils/helperFunctions.js
Original file line number Diff line number Diff line change
@@ -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 };
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 };

0 comments on commit 13a02e4

Please sign in to comment.