JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr{ gilour

File "use-collator.ts"

Full Path: /home/markqprx/iniasli.pro/client/i18n/use-collator.ts
File size: 571 bytes
MIME-type: text/plain
Charset: utf-8

import {useSelectedLocale} from './selected-locale';

const cache = new Map<string, Intl.Collator>();

export function useCollator(options?: Intl.CollatorOptions): Intl.Collator {
  const {localeCode} = useSelectedLocale();

  const cacheKey =
    localeCode +
    (options
      ? Object.entries(options)
          .sort((a, b) => (a[0] < b[0] ? -1 : 1))
          .join()
      : '');

  if (cache.has(cacheKey)) {
    return cache.get(cacheKey)!;
  }

  const formatter = new Intl.Collator(localeCode, options);
  cache.set(cacheKey, formatter);
  return formatter;
}