#260: static button width during copy feedback (fix attempt 1) #268
@@ -199,8 +199,11 @@ function finishCreate(data) {
|
|||||||
try {
|
try {
|
||||||
navigator.clipboard.writeText(url);
|
navigator.clipboard.writeText(url);
|
||||||
copyBtn.classList.add('ok'); // in-place success feedback (#53)
|
copyBtn.classList.add('ok'); // in-place success feedback (#53)
|
||||||
|
// #260: pin the pre-swap width so the wider/narrower glyph never
|
||||||
|
// shifts neighbouring elements; release it when the label restores.
|
||||||
|
copyBtn.style.minWidth = Math.ceil(copyBtn.getBoundingClientRect().width) + 'px';
|
||||||
copyBtn.textContent = '✓';
|
copyBtn.textContent = '✓';
|
||||||
setTimeout(() => { copyBtn.classList.remove('ok'); copyBtn.textContent = '⧉'; }, 2000);
|
setTimeout(() => { copyBtn.classList.remove('ok'); copyBtn.textContent = '⧉'; copyBtn.style.minWidth = ''; }, 2000);
|
||||||
} catch(e) { toast('Copy failed', 'error'); }
|
} catch(e) { toast('Copy failed', 'error'); }
|
||||||
});
|
});
|
||||||
// token carried via sessionStorage, never in the URL (#143)
|
// token carried via sessionStorage, never in the URL (#143)
|
||||||
|
|||||||
@@ -19,6 +19,12 @@ function toggleStats() {
|
|||||||
function copyFeedback(btn) {
|
function copyFeedback(btn) {
|
||||||
if (!btn) return;
|
if (!btn) return;
|
||||||
if (!btn.dataset.label) btn.dataset.label = btn.textContent; // remember the original label (Copy/Link)
|
if (!btn.dataset.label) btn.dataset.label = btn.textContent; // remember the original label (Copy/Link)
|
||||||
|
// #260: keep the button width static during the feedback so surrounding
|
||||||
|
// elements never jump. Pin the pre-swap width, release it on restore.
|
||||||
|
if (!btn.dataset.pinned) {
|
||||||
|
btn.style.minWidth = Math.ceil(btn.getBoundingClientRect().width) + 'px';
|
||||||
|
btn.dataset.pinned = '1';
|
||||||
|
}
|
||||||
btn.classList.add('ok');
|
btn.classList.add('ok');
|
||||||
btn.textContent = '✓';
|
btn.textContent = '✓';
|
||||||
clearTimeout(btn._okh);
|
clearTimeout(btn._okh);
|
||||||
|
|||||||
Reference in New Issue
Block a user