Permet de basculer du partage en base64 à un partage normal

This commit is contained in:
Tom Hubrecht 2022-07-27 01:09:07 +02:00
parent 29bce486d2
commit 4a7414cb11

View file

@ -8,12 +8,24 @@
let isOpen = false; let isOpen = false;
let isToastOpen = false; let isToastOpen = false;
let isBinary = false;
let toastText = ''; let toastText = '';
const toggle = () => { const toggle = () => {
isOpen = !isOpen; isOpen = !isOpen;
updateShareLink();
};
const doShare = () => {
navigator.clipboard
.writeText(share)
.then(() => (toastText = '<b>Lien de partage copié dans le presse-papier.</b>'))
.catch(() => (toastText = 'Erreur de copie automatique.'))
.finally((isToastOpen = true));
};
const updateShareLink = () => {
const loc = document.location; const loc = document.location;
const search = new URLSearchParams(); const search = new URLSearchParams();
const api = calendar.getAPI(); const api = calendar.getAPI();
@ -26,18 +38,21 @@
search.append('d', api.getDate().toISOString()); search.append('d', api.getDate().toISOString());
} }
if (isBinary) {
const b64 = window.btoa(search.toString()); const b64 = window.btoa(search.toString());
share = `${loc.origin}${loc.pathname}?b64=${b64}`; share = `${loc.origin}${loc.pathname}?b64=${b64}`;
} else {
share = `${loc.origin}${loc.pathname}${search.toString()}`;
}
}; };
const doShare = () => { const toggleBinary = () => {
navigator.clipboard isBinary = !isBinary;
.writeText(share) updateShareLink();
.then(() => (toastText = '<b>Lien de partage copié dans le presse-papier.</b>'))
.catch(() => (toastText = 'Erreur de copie automatique.'))
.finally((isToastOpen = true));
}; };
$: shareDataIcon = isBinary ? 'code-square' : 'code';
</script> </script>
<div class="share-toast"> <div class="share-toast">
@ -63,6 +78,10 @@
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<span on:click={toggleBinary} class="flex-grow-1" title="Partager en base64">
<Icon name={shareDataIcon} class="fs-5" />
</span>
<Icon name="balloon-heart" class="text-danger fs-5" /> <Icon name="balloon-heart" class="text-danger fs-5" />
<span class="fs-7">Propulsé par le Club Réseau de l'ENS</span> <span class="fs-7">Propulsé par le Club Réseau de l'ENS</span>
</ModalFooter> </ModalFooter>