All files / src/components/Gitalk index.tsx

100% Statements 10/10
50% Branches 1/2
100% Functions 3/3
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53      1x 1x                             1x 1x 1x 1x 1x     1x                       1x     1x                      
import React, { Component } from "react";
import "gitalk/dist/gitalk.css";
import * as style from "./index.module.scss";
const isBrowser = typeof window !== "undefined";
const Gitalk = isBrowser ? require("gitalk") : undefined;
 
type Props = {
  id: string;
  title: string;
  clientId: string;
  clientSecret: string;
};
 
class GitalkFC extends Component<Props> {
  readonly id: string;
  readonly title: string;
  readonly clientId: string;
  readonly clientSecret: string;
  constructor(props: Props) {
    super(props);
    this.id = this.props.id;
    this.title = this.props.title;
    this.clientId = this.props.clientId;
    this.clientSecret = this.props.clientSecret;
  }
  componentDidMount() {
    const GitTalkInstance = new Gitalk({
      clientID: this.clientId,
      clientSecret: this.clientSecret,
      title: this.title,
      repo: "blog",
      admin: ["tubone24"],
      owner: "tubone24",
      pagerDirection: "first",
      proxy:
        "https://tubone-project24.xyz/.netlify/functions/cors-proxy-github",
      id: this.id,
    });
    GitTalkInstance.render("gitalk-container");
  }
  render() {
    return (
      <div
        className={style.gitalkContainer}
        id="gitalk-container"
        data-testid="gitalk-container"
      />
    );
  }
}
 
export default GitalkFC;