Skip to content

Commit d034c0d

Browse files
committed
Example customization
1 parent 58b8819 commit d034c0d

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
//
2+
//
3+
// https://rcverse.recurse.com/?reset
4+
// https://rcverse.recurse.com/?reset&personalize=https://cdn.jsdelivr.net/gh/izzee/rcverse-customizations/styles.html
5+
6+
// 0. Run a local server like `npx local-web-server`
7+
// 1. Start with a check to see our personalization
8+
// http://127.0.0.1:8000/add-room-name-copy-to-clipboard-button.js
9+
// https://rcverse.recurse.com?personalize=http://127.0.0.1:8000/add-room-name-copy-to-clipboard-button.js
10+
// alert("It's alive!");
11+
if (true) {
12+
const customize = (roomElement) => {
13+
// NEW
14+
const zoomLink = roomElement.querySelector("a[href*=zoom]");
15+
if (!zoomLink) return;
16+
const textToCopy = `[${zoomLink.innerText}](${zoomLink.getAttribute("href")})`;
17+
zoomLink.insertAdjacentHTML(
18+
"afterend",
19+
`<button onclick="navigator.clipboard.writeText('${textToCopy}')">
20+
Copy markdown link
21+
</button>`,
22+
);
23+
// END NEW
24+
};
25+
document.body.addEventListener("htmx:afterSwap", (event) => {
26+
const roomElement = event.detail.target;
27+
if (!roomElement.matches(".room")) return;
28+
console.log("htmx after swap room", roomElement);
29+
customize(roomElement);
30+
});
31+
document.body.addEventListener("htmx:wsAfterMessage", ({ detail }) => {
32+
const roomElement = document.querySelector(
33+
`#${detail.message.match(/id="([^"]+)"/)[1]}`,
34+
);
35+
if (!roomElement) return;
36+
console.log("htmx wsaftermessage", roomElement);
37+
customize(roomElement);
38+
});
39+
window.addEventListener("DOMContentLoaded", () => {
40+
document.querySelectorAll(".room").forEach(customize);
41+
});
42+
}
43+
44+
// Finally, push to GitHub and Add personalization link via jsDelivr
45+
// https://cdn.jsdelivr.net/gh/reedspool/rcverse/public/personalizations/add-room-name-copy-to-clipboard-button.js

0 commit comments

Comments
 (0)