Commit 4a8fd03d authored by anuraghazra's avatar anuraghazra
Browse files

feat: added hide_langs_below option

parent 7c104cf8
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ const renderTopLanguages = require("../src/renderTopLanguages");
module.exports = async (req, res) => {
  const {
    username,
    hide_langs_below,
    hide_title,
    card_width,
    title_color,
@@ -42,6 +43,7 @@ module.exports = async (req, res) => {
      theme,
      hide_title: parseBoolean(hide_title),
      card_width: parseInt(card_width, 10),
      hide_langs_below: parseFloat(hide_langs_below, 10),
      title_color,
      text_color,
      bg_color,
+8 −1
Original line number Diff line number Diff line
@@ -30,15 +30,22 @@ const renderTopLanguages = (topLangs, options = {}) => {
    title_color,
    text_color,
    bg_color,
    hide_langs_below,
    theme,
  } = options;

  const langs = Object.values(topLangs);
  let langs = Object.values(topLangs);

  const totalSize = langs.reduce((acc, curr) => {
    return acc + curr.size;
  }, 0);

  // hide langs
  langs = langs.filter((lang) => {
    if (!hide_langs_below) return true;
    return (lang.size / totalSize) * 100 > hide_langs_below;
  });

  // returns theme based colors with proper overrides and defaults
  const { titleColor, textColor, bgColor } = getCardColors({
    title_color,
+14 −0
Original line number Diff line number Diff line
@@ -58,6 +58,20 @@ describe("Test renderTopLanguages", () => {
    );
  });

  it("should hide_langs_below", () => {
    document.body.innerHTML = renderTopLanguages(langs, {
      hide_langs_below: 34,
    });

    expect(queryAllByTestId(document.body, "lang-name")[0]).toBeInTheDocument(
      "HTML"
    );
    expect(queryAllByTestId(document.body, "lang-name")[1]).toBeInTheDocument(
      "javascript"
    );
    expect(queryAllByTestId(document.body, "lang-name")[2]).not.toBeDefined();
  });

  it("should resize the height correctly depending on langs", () => {
    document.body.innerHTML = renderTopLanguages(langs, {});
    expect(document.querySelector("svg")).toHaveAttribute("height", "205");