Skip to content

loadFlag ​

SVG-иконка флага по коду страны. Модуль tinyval-phone/flags.

Сигнатура ​

ts
function loadFlag(code: string): Promise<string | undefined>
function flagCodes(): string[]
function setFlags(flags: Record<string, FlagSource> | ((code: string) => string | undefined | Promise<string | undefined>)): void
function resetFlags(): void

type FlagSource = string | (() => string | undefined | Promise<string | undefined>) | null

Особенности ​

  • Возвращает SVG-разметку ('<svg …>'); для неизвестного кода — undefined. Регистр кода не важен: 'RU' и 'ru'.
  • Каждый флаг — отдельный модуль, поэтому функция асинхронная: флаг загружается при первом обращении. Сам загрузчик — ~3 kB gzip, флаг — от 150 байт до 1 kB.
  • Флаги в пропорции 3:2, viewBox="0 0 513 342". Размер задаётся CSS.
  • Нужен файл, а не разметка — tinyval-phone/flags/<код>.svg, см. Иконки флагов.
  • setFlags заменяет флаги: объект по кодам (null — флага нет) или функция для всех. Флаг по коду важнее функции; функция вернула undefined — встроенный флаг. См. Свои страны и флаги.

Примеры ​

ts
import { loadFlag, flagCodes } from 'tinyval-phone/flags';

const el = document.querySelector('.flag')!;
el.innerHTML = (await loadFlag('jp')) ?? '';

await loadFlag('zz');  // undefined
flagCodes().length;    // 257

См. также ​