// Pre-fill the textarea with the app ID
linkInput.value = "cGxLMDYK8FMJspCPWRRd";
linkForm.addEventListener('submit', function(event) {
event.preventDefault();
const codes = linkInput.value.split('\n').map(code => code.trim()).filter(code => code !== '');
codes.forEach(code => {
const link = `https://www.literallyanything.io/iterate?id=${code}`;
const aura = getRandomColor();
storedLinks.push({ link, code, aura });
});
updateLinks();
linkInput.value = '';
});
function updateLinks() {
linksContainer.innerHTML = '';
storedLinks.forEach(({ link, code, aura }, index) => {
const linkElement = createCubeElement(link, code, aura);
linkElement.addEventListener('click', function() {
iframeElement.src = link;
iframeContainer.classList.add('active');
pulseOtherCubes(index);
});
linkElement.draggable = true;
linkElement.addEventListener('dragstart', function(event) {
event.dataTransfer.setData('text/plain', index);
});
linksContainer.appendChild(linkElement);
});
}
function createCubeElement(link, code, aura) {
const linkElement = document.createElement('div');
linkElement.classList.add('hyper-cube');
linkElement.style.boxShadow = `0 0 10px 2px ${aura}`;
linkElement.innerHTML = `
<div class="front" style="background-color: ${aura};">🧧</div>
<div class="back" style="background-color: ${aura};">🧧</div>
<div class="right" style="background-color: ${aura};">🧧</div>
<div class="left" style="background-color: ${aura};">🧧</div>
<div class="top" style="background-color: ${aura};">🧧</div>
<div class="bottom" style="background-color: ${aura};">🧧</div>
`;
generateQRCode(code, linkElement);
return linkElement;
}
function generateQRCode(code, element) {
const qr = new QRious({
value: `https://www.Literallyanything.io/iterate?id=${code}`,
size: 50
});
const qrImg = document.createElement('img');
qrImg.src = qr.toDataURL();
qrImg.classList.add('qr-code');
element.appendChild(qrImg);
}
function pulseOtherCubes(clickedIndex) {
storedLinks.forEach((_, index) => {
if (index !== clickedIndex) {
const cube = linksContainer.children[index];
cube.style.animation = 'pulse 1s';
setTimeout(() => cube.style.animation = '', 1000);
}
});
}
function getRandomColor() {
const letters = '0123456789ABCDEF';
let color = '#';
for (let i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
closeIframe.addEventListener('click', function() {
iframeContainer.classList.add('fade-out');
setTimeout(() => {
iframeContainer.classList.remove('active', 'fade-out');
iframeElement.src = '';
}, 500);
});
linksContainer.addEventListener('dragover', function(event) {
event.preventDefault();
});
linksContainer.addEventListener('drop', function(event) {
event.preventDefault();
const index = event.dataTransfer.getData('text/plain');
const draggedElement = linksContainer.children[index];
linksContainer.removeChild(draggedElement);
linksContainer.appendChild(draggedElement);
});
});
</script>
Shared snapshot