Music streaming on ATProto!
1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta charset="utf-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <meta name="csrf-token" content={get_csrf_token()} /> 7 <.live_title default="Comet" suffix=" · Phoenix Framework"> 8 {assigns[:page_title]} 9 </.live_title> 10 <link phx-track-static rel="stylesheet" href={~p"/assets/css/app.css"} /> 11 <script defer phx-track-static type="text/javascript" src={~p"/assets/js/app.js"}> 12 </script> 13 <script> 14 (() => { 15 const setTheme = (theme) => { 16 if (theme === "system") { 17 localStorage.removeItem("phx:theme"); 18 document.documentElement.removeAttribute("data-theme"); 19 } else { 20 localStorage.setItem("phx:theme", theme); 21 document.documentElement.setAttribute("data-theme", theme); 22 } 23 }; 24 if (!document.documentElement.hasAttribute("data-theme")) { 25 setTheme(localStorage.getItem("phx:theme") || "system"); 26 } 27 window.addEventListener("storage", (e) => e.key === "phx:theme" && setTheme(e.newValue || "system")); 28 29 window.addEventListener("phx:set-theme", (e) => setTheme(e.target.dataset.phxTheme)); 30 })(); 31 </script> 32 </head> 33 <body> 34 {@inner_content} 35 </body> 36</html>