UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 2.99 kB
{"version":3,"file":"index.js","names":[],"sources":["esm/platform/fonts/index.js"],"sourcesContent":["import { useEffect, useState } from \"react\";\nasync function load(fonts) {\n if (typeof document === \"undefined\") {\n return;\n }\n const entries = Object.entries(fonts).map(([name, source]) => {\n if (typeof source !== \"string\") {\n throw new Error(`Fonts.load: \"${name}\" is not a font asset`);\n }\n return { name, uri: source };\n });\n await Promise.all(\n entries.map(async ({ name, uri }) => {\n try {\n const face = new FontFace(name, `url(${uri})`);\n await face.load();\n document.fonts.add(face);\n } catch (cause) {\n throw new Error(`Fonts.load: \"${name}\" could not be loaded`, { cause });\n }\n })\n );\n}\nfunction isLoaded(name) {\n if (typeof document === \"undefined\") {\n return false;\n }\n let found = false;\n document.fonts.forEach((face) => {\n if (face.family === name && face.status === \"loaded\") {\n found = true;\n }\n });\n return found;\n}\nconst Fonts = {\n load,\n isLoaded\n};\nfunction useFonts(fonts) {\n const [loaded, setLoaded] = useState(() => Object.keys(fonts).every(isLoaded));\n const [error, setError] = useState(null);\n useEffect(() => {\n if (loaded) {\n return;\n }\n let cancelled = false;\n setError(null);\n load(fonts).then(\n () => {\n if (!cancelled) {\n setLoaded(true);\n }\n },\n (reason) => {\n if (!cancelled) {\n setError(reason instanceof Error ? reason : new Error(String(reason)));\n }\n }\n );\n return () => {\n cancelled = true;\n };\n }, []);\n return [loaded, error];\n}\nexport {\n Fonts,\n useFonts\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;AACA,eAAe,KAAK,OAAO;CACzB,IAAI,OAAO,aAAa,aAAa;EACnC;CACF;CACA,MAAM,UAAU,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY;EAC5D,IAAI,OAAO,WAAW,UAAU;GAC9B,MAAM,IAAI,MAAM,gBAAgB,KAAK,sBAAsB;EAC7D;EACA,OAAO;GAAE;GAAM,KAAK;EAAO;CAC7B,CAAC;CACD,MAAM,QAAQ,IACZ,QAAQ,IAAI,OAAO,EAAE,MAAM,UAAU;EACnC,IAAI;GACF,MAAM,OAAO,IAAI,SAAS,MAAM,OAAO,IAAI,EAAE;GAC7C,MAAM,KAAK,KAAK;GAChB,SAAS,MAAM,IAAI,IAAI;EACzB,SAAS,OAAO;GACd,MAAM,IAAI,MAAM,gBAAgB,KAAK,wBAAwB,EAAE,MAAM,CAAC;EACxE;CACF,CAAC,CACH;AACF;AACA,SAAS,SAAS,MAAM;CACtB,IAAI,OAAO,aAAa,aAAa;EACnC,OAAO;CACT;CACA,IAAI,QAAQ;CACZ,SAAS,MAAM,SAAS,SAAS;EAC/B,IAAI,KAAK,WAAW,QAAQ,KAAK,WAAW,UAAU;GACpD,QAAQ;EACV;CACF,CAAC;CACD,OAAO;AACT;AACA,MAAM,QAAQ;CACZ;CACA;AACF;AACA,SAAS,SAAS,OAAO;CACvB,MAAM,CAAC,QAAQ,aAAa,eAAe,OAAO,KAAK,KAAK,CAAC,CAAC,MAAM,QAAQ,CAAC;CAC7E,MAAM,CAAC,OAAO,YAAY,SAAS,IAAI;CACvC,gBAAgB;EACd,IAAI,QAAQ;GACV;EACF;EACA,IAAI,YAAY;EAChB,SAAS,IAAI;EACb,KAAK,KAAK,CAAC,CAAC,WACJ;GACJ,IAAI,CAAC,WAAW;IACd,UAAU,IAAI;GAChB;EACF,IACC,WAAW;GACV,IAAI,CAAC,WAAW;IACd,SAAS,kBAAkB,QAAQ,SAAS,IAAI,MAAM,OAAO,MAAM,CAAC,CAAC;GACvE;EACF,CACF;EACA,aAAa;GACX,YAAY;EACd;CACF,GAAG,CAAC,CAAC;CACL,OAAO,CAAC,QAAQ,KAAK;AACvB"}