summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-actionscript.min.js
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-07-23 15:31:45 +0200
committerArmand Philippot <git@armandphilippot.com>2022-07-23 15:31:45 +0200
commitbaac7d6eeaf522ff5faa28906cb1200e60a19c07 (patch)
tree1fd9f74eb0cdbabaae24a88406d82dfb9b589ba5 /public/prism/prism-actionscript.min.js
parentde9a9eac060974a7878f2bb5577f2b135596a555 (diff)
fix(article): prevent TypeError on build
By switching to custom hooks for revalidating articles and comments, everything was working on development mode but articles failed to build for production.
Diffstat (limited to 'public/prism/prism-actionscript.min.js')
0 files changed, 0 insertions, 0 deletions
eyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
import { useIntl } from 'react-intl';

/**
 * Retrieve the estimated reading time by words count.
 *
 * @param {number} wordsCount - The number of words.
 * @returns {string} The estimated reading time.
 */
const useReadingTime = (
  wordsCount: number,
  onlyMinutes: boolean = false
): string => {
  const intl = useIntl();
  const wordsPerMinute = 245;
  const wordsPerSecond = wordsPerMinute / 60;
  const estimatedTimeInSeconds = wordsCount / wordsPerSecond;

  if (onlyMinutes) {
    const estimatedTimeInMinutes = Math.round(estimatedTimeInSeconds / 60);

    return intl.formatMessage(
      {
        defaultMessage: '{minutesCount} minutes',
        description: 'useReadingTime: rounded minutes count',
        id: 's1i43J',
      },
      { minutesCount: estimatedTimeInMinutes }
    );
  } else {
    const estimatedTimeInMinutes = Math.floor(estimatedTimeInSeconds / 60);

    if (estimatedTimeInMinutes <= 0) {
      return intl.formatMessage(
        {
          defaultMessage: '{count} seconds',
          description: 'useReadingTime: seconds count',
          id: 'i7Wq3G',
        },
        { count: estimatedTimeInSeconds.toFixed(0) }
      );
    }

    const remainingSeconds = Math.round(
      estimatedTimeInSeconds - estimatedTimeInMinutes * 60
    ).toFixed(0);

    return intl.formatMessage(
      {
        defaultMessage: '{minutesCount} minutes {secondsCount} seconds',
        description: 'useReadingTime: minutes + seconds count',
        id: 'OevMeU',
      },
      { minutesCount: estimatedTimeInMinutes, secondsCount: remainingSeconds }
    );
  }
};

export default useReadingTime;