import React from "react"; import { css, cx } from "@emotion/css"; import { useEffect, useState } from "react"; import Container from "../../components/Container"; import { setupCursorTracking } from "../../util"; import { ReactComponent as Logo } from "../../assets/logo.svg"; import { DraggableButton } from "../../components/DraggableButton"; const A = css` text-decoration: none; `; type Contact = { [k: string]: { value: string; link?: string; replacer?: Record; }; }; const CONTACT: Contact = { "Email": { value: "һі@mκr.рw", link: "mailto:һі@mκr.рw", replacer: { һ: "h", і: "i", κ: "k", р: "p", }, }, "GitHub": { value: "MKRhere", link: "https://github.com/MKRhere" }, "Twitter/𝕏": { value: "MKRhere", link: "https://twitter.com/MKRhere" }, "Phone": { value: "+9Ι Γ8Δ5 Γ9 8Δ88", link: "tel:+91Γ8Δ5Γ98Δ88", replacer: { Ι: "1", Δ: "4", Γ: "7", }, }, "Blog": { value: "→", link: "https://MKRhere.com" }, }; const Home: React.FC = () => { const [contact, setContact] = useState(CONTACT); useEffect(() => { const deob = () => { Object.keys(contact).forEach(key => { const sect = contact[key]; const replacers = sect.replacer; if (replacers) { sect.value = sect.value.replace( new RegExp(Object.keys(replacers).join("|"), "g"), r => replacers[r] || r, ); if (sect.link) sect.link = sect.link.replace( new RegExp(Object.keys(replacers).join("|"), "g"), r => replacers[r] || r, ); } }); setContact({ ...contact }); }; document.addEventListener("mousemove", deob, { once: true }); document.addEventListener("scroll", deob, { once: true }); document.addEventListener("click", deob, { once: true }); document.addEventListener("touchstart", deob, { once: true }); return () => { document.removeEventListener("mousemove", deob); document.removeEventListener("scroll", deob); document.removeEventListener("click", deob); document.removeEventListener("touchstart", deob); }; }, []); return (

MKRhere

    {Object.keys(contact).map(key => (
  • {key}.
  • ))}
    {Object.keys(contact).map(key => { const value = contact[key]; return (
  • {value.link ? ( {value.value} ) : ( value.value )}
  • ); })}
); }; export default Home;