utterances-react-component
Version:
Type safety react component for utterances
2 lines (1 loc) • 788 B
JavaScript
import e,{useRef as t,useEffect as r}from"react";const s=({repo:s,label:u,theme:i,issueTerm:n,issueNumber:o})=>{const m=t(null);return r((()=>{if(!m.current)return;const e=(({repo:e,label:t,theme:r,issueTerm:s,issueNumber:u})=>{const i=document.createElement("script");if(i.src="https://utteranc.es/client.js",i.async=!0,i.setAttribute("repo",e),s){const e=Array.isArray(s)?s.join(" "):s;i.setAttribute("issue-term",e)}else"number"==typeof u&&i.setAttribute("issue-number",String(u));return i.setAttribute("crossorigin","anonymous"),i.setAttribute("theme",r),t&&i.setAttribute("label",t),i})({repo:s,label:u,theme:i,issueTerm:n,issueNumber:o});var t,r;t=m.current,r=e,t.childNodes.forEach((e=>{e.remove()})),t.appendChild(r)}),[]),e.createElement("div",{ref:m})};export{s as Utterances};