@react-native-vector-icons/common 12.4.1 → 12.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/create-icon-set.js +2 -3
- package/lib/commonjs/create-icon-set.js.map +1 -1
- package/lib/commonjs/create-icon-source-cache.js +3 -26
- package/lib/commonjs/create-icon-source-cache.js.map +1 -1
- package/lib/commonjs/dynamicLoading/dynamic-loading-setting.js +3 -0
- package/lib/commonjs/dynamicLoading/dynamic-loading-setting.js.map +1 -1
- package/lib/commonjs/get-image-library.js +9 -6
- package/lib/commonjs/get-image-library.js.map +1 -1
- package/lib/commonjs/get-image-source.js +15 -28
- package/lib/commonjs/get-image-source.js.map +1 -1
- package/lib/module/create-icon-set.js +1 -1
- package/lib/module/create-icon-set.js.map +1 -1
- package/lib/module/create-icon-source-cache.js +3 -26
- package/lib/module/create-icon-source-cache.js.map +1 -1
- package/lib/module/dynamicLoading/dynamic-loading-setting.js +3 -0
- package/lib/module/dynamicLoading/dynamic-loading-setting.js.map +1 -1
- package/lib/module/get-image-library.js +9 -6
- package/lib/module/get-image-library.js.map +1 -1
- package/lib/module/get-image-source.js +15 -28
- package/lib/module/get-image-source.js.map +1 -1
- package/lib/typescript/commonjs/src/create-icon-source-cache.d.ts +2 -12
- package/lib/typescript/commonjs/src/create-icon-source-cache.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/dynamicLoading/dynamic-loading-setting.d.ts +19 -1
- package/lib/typescript/commonjs/src/dynamicLoading/dynamic-loading-setting.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/get-image-library.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/get-image-source.d.ts +1 -1
- package/lib/typescript/commonjs/src/get-image-source.d.ts.map +1 -1
- package/lib/typescript/module/src/create-icon-source-cache.d.ts +2 -12
- package/lib/typescript/module/src/create-icon-source-cache.d.ts.map +1 -1
- package/lib/typescript/module/src/dynamicLoading/dynamic-loading-setting.d.ts +19 -1
- package/lib/typescript/module/src/dynamicLoading/dynamic-loading-setting.d.ts.map +1 -1
- package/lib/typescript/module/src/get-image-library.d.ts.map +1 -1
- package/lib/typescript/module/src/get-image-source.d.ts +1 -1
- package/lib/typescript/module/src/get-image-source.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/create-icon-set.tsx +1 -1
- package/src/create-icon-source-cache.ts +5 -23
- package/src/dynamicLoading/dynamic-loading-setting.ts +23 -1
- package/src/get-image-library.ts +6 -4
- package/src/get-image-source.ts +14 -31
|
@@ -6,13 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.createIconSet = createIconSet;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
-
var _createIconSourceCache =
|
|
9
|
+
var _createIconSourceCache = require("./create-icon-source-cache.js");
|
|
10
10
|
var _defaults = require("./defaults.js");
|
|
11
11
|
var _dynamicFontLoading = require("./dynamicLoading/dynamic-font-loading.js");
|
|
12
12
|
var _dynamicLoadingSetting = require("./dynamicLoading/dynamic-loading-setting.js");
|
|
13
13
|
var _getImageSource = require("./get-image-source.js");
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
17
16
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
18
17
|
|
|
@@ -94,7 +93,7 @@ function createIconSet(glyphMap, postScriptNameOrOptions, fontFileNameParam, fon
|
|
|
94
93
|
...props
|
|
95
94
|
}));
|
|
96
95
|
WrappedIcon.displayName = `Icon(${postScriptName})`;
|
|
97
|
-
const imageSourceCache = (0, _createIconSourceCache.
|
|
96
|
+
const imageSourceCache = (0, _createIconSourceCache.createIconSourceCache)();
|
|
98
97
|
const getImageSource = async (name, size, color) => {
|
|
99
98
|
if (typeof postScriptNameOrOptions === 'object' && typeof postScriptNameOrOptions.fontSource !== 'undefined') {
|
|
100
99
|
await _dynamicFontLoading.dynamicLoader.loadFontAsync(fontReference, postScriptNameOrOptions.fontSource);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createIconSourceCache","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createIconSourceCache","_defaults","_dynamicFontLoading","_dynamicLoadingSetting","_getImageSource","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createIconSet","glyphMap","postScriptNameOrOptions","fontFileNameParam","fontStyleParam","postScriptName","fontFileName","fontStyle","fontBasename","replace","fontReference","Platform","select","windows","android","styleOverrides","fontFamily","fontWeight","resolveGlyph","name","glyph","String","fromCodePoint","Icon","size","DEFAULT_ICON_SIZE","color","DEFAULT_ICON_COLOR","style","children","allowFontScaling","innerRef","props","isFontLoaded","setIsFontLoaded","React","useState","isDynamicLoadingEnabled","dynamicLoader","isLoaded","useEffect","isMounted","fontSource","loadFontAsync","finally","styleDefaults","fontSize","newProps","jsxs","Text","ref","selectable","WrappedIcon","forwardRef","jsx","displayName","imageSourceCache","createIconSourceCache","getImageSource","getImageSourceImpl","getImageSourceSync","getImageSourceSyncImpl","IconNamespace","assign"],"sourceRoot":"../../src","sources":["create-icon-set.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,sBAAA,GAAAL,OAAA;AAEA,IAAAM,eAAA,GAAAN,OAAA;AAAwH,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAVxH;;AAEA;;AAqDO,SAASkB,aAAaA,CAC3BC,QAAY,EACZC,uBAAsD,EACtDC,iBAA0B,EAC1BC,cAAmC,EAChB;EACnB,MAAM;IAAEC,cAAc;IAAEC,YAAY;IAAEC;EAAU,CAAC,GAC/C,OAAOL,uBAAuB,KAAK,QAAQ,GACvC;IACEG,cAAc,EAAEH,uBAAuB;IACvCI,YAAY,EAAEH,iBAAiB;IAC/BI,SAAS,EAAEH;EACb,CAAC,GACDF,uBAAuB;EAE7B,MAAMM,YAAY,GAAGF,YAAY,GAAGA,YAAY,CAACG,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,GAAGJ,cAAc;EAE7F,MAAMK,aAAa,GAAGC,qBAAQ,CAACC,MAAM,CAAC;IACpCC,OAAO,EAAE,WAAWP,YAAY,IAAID,cAAc,EAAE;IACpDS,OAAO,EAAEN,YAAY;IACrBjB,OAAO,EAAEc;EACX,CAAC,CAAC;EAEF,MAAMU,cAAkC,GAAG;IACzCC,UAAU,EAAEN,aAAa;IACzBO,UAAU,EAAE,QAAQ;IACpBV,SAAS,EAAE;EACb,CAAC;EAED,MAAMW,YAAY,GAAIC,IAAc,IAAa;IAC/C,MAAMC,KAAK,GAAGnB,QAAQ,CAACkB,IAAI,CAAC,IAAI,GAAG;IAEnC,IAAI,OAAOC,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAOC,MAAM,CAACC,aAAa,CAACF,KAAK,CAAC;IACpC;IAEA,OAAOA,KAAK;EACd,CAAC;EAED,MAAMG,IAAI,GAAGA,CAAC;IACZJ,IAAI;IACJK,IAAI,GAAGC,2BAAiB;IACxBC,KAAK,GAAGC,4BAAkB;IAC1BC,KAAK;IACLC,QAAQ;IACRC,gBAAgB,GAAG,KAAK;IACxBC,QAAQ;IACR,GAAGC;EACgB,CAAC,KAAK;IACzB,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGC,cAAK,CAACC,QAAQ,CACpD,IAAAC,8CAAuB,EAAC,CAAC,GAAGC,iCAAa,CAACC,QAAQ,CAAC7B,aAAa,CAAC,GAAG,IACtE,CAAC;IACD,MAAMU,KAAK,GAAGa,YAAY,IAAId,IAAI,GAAGD,YAAY,CAACC,IAAI,CAAC,GAAG,EAAE;;IAE5D;IACA,IAAAqB,gBAAS,EAAC,MAAM;MACd,IAAIC,SAAS,GAAG,IAAI;MAEpB,IACE,CAACR,YAAY,IACb,OAAO/B,uBAAuB,KAAK,QAAQ,IAC3C,OAAOA,uBAAuB,CAACwC,UAAU,KAAK,WAAW,EACzD;QACAJ,iCAAa,CAACK,aAAa,CAACjC,aAAa,EAAER,uBAAuB,CAACwC,UAAU,CAAC,CAACE,OAAO,CAAC,MAAM;UAC3F,IAAIH,SAAS,EAAE;YACbP,eAAe,CAAC,IAAI,CAAC;UACvB;QACF,CAAC,CAAC;MACJ;MACA,OAAO,MAAM;QACXO,SAAS,GAAG,KAAK;MACnB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMI,aAAa,GAAG;MACpBC,QAAQ,EAAEtB,IAAI;MACdE;IACF,CAAC;IAED,MAAMqB,QAAmB,GAAG;MAC1B,GAAGf,KAAK;MACRJ,KAAK,EAAE,CAACiB,aAAa,EAAEjB,KAAK,EAAEb,cAAc,EAAER,SAAS,IAAI,CAAC,CAAC,CAAC;MAC9DuB;IACF,CAAC;IAED,oBACE,IAAAlD,WAAA,CAAAoE,IAAA,EAAC1E,YAAA,CAAA2E,IAAI;MAACC,GAAG,EAAEnB,QAAS;MAACoB,UAAU,EAAE,KAAM;MAAA,GAAKJ,QAAQ;MAAAlB,QAAA,GACjDT,KAAK,EACLS,QAAQ;IAAA,CACL,CAAC;EAEX,CAAC;EAED,MAAMuB,WAAW,gBAAG,IAAAC,iBAAU,EAAyC,CAACrB,KAAK,EAAEkB,GAAG,kBAChF,IAAAtE,WAAA,CAAA0E,GAAA,EAAC/B,IAAI;IAACQ,QAAQ,EAAEmB,GAAI;IAAA,GAAKlB;EAAK,CAAG,CAClC,CAAC;EACFoB,WAAW,CAACG,WAAW,GAAG,QAAQlD,cAAc,GAAG;EAEnD,MAAMmD,gBAAgB,GAAG,IAAAC,4CAAqB,EAAC,CAAC;EAEhD,MAAMC,cAAgD,GAAG,MAAAA,CAAOvC,IAAI,EAAEK,IAAI,EAAEE,KAAK,KAAK;IACpF,IAAI,OAAOxB,uBAAuB,KAAK,QAAQ,IAAI,OAAOA,uBAAuB,CAACwC,UAAU,KAAK,WAAW,EAAE;MAC5G,MAAMJ,iCAAa,CAACK,aAAa,CAACjC,aAAa,EAAER,uBAAuB,CAACwC,UAAU,CAAC;IACtF;IACA,OAAO,IAAAiB,8BAAkB,EAACH,gBAAgB,EAAE9C,aAAa,EAAEQ,YAAY,CAACC,IAAI,CAAC,EAAEK,IAAI,EAAEE,KAAK,CAAC;EAC7F,CAAC;EAED,MAAMkC,kBAAwD,GAAGA,CAACzC,IAAI,EAAEK,IAAI,EAAEE,KAAK,KACjF,IAAAmC,kCAAsB,EAACL,gBAAgB,EAAE9C,aAAa,EAAEQ,YAAY,CAACC,IAAI,CAAC,EAAEK,IAAI,EAAEE,KAAK,CAAC;EAE1F,MAAMoC,aAAa,GAAGjE,MAAM,CAACkE,MAAM,CAACX,WAAW,EAAE;IAC/CM,cAAc;IACdE;EACF,CAAC,CAAC;EAEF,OAAOE,aAAa;AACtB","ignoreList":[]}
|
|
@@ -3,36 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
const TYPE_VALUE = 'value';
|
|
8
|
-
const TYPE_ERROR = 'error';
|
|
6
|
+
exports.createIconSourceCache = createIconSourceCache;
|
|
9
7
|
function createIconSourceCache() {
|
|
10
8
|
const cache = new Map();
|
|
11
|
-
const setValue = (key, value) => cache.set(key,
|
|
12
|
-
|
|
13
|
-
data: value
|
|
14
|
-
});
|
|
15
|
-
const setError = (key, error) => cache.set(key, {
|
|
16
|
-
type: TYPE_ERROR,
|
|
17
|
-
data: error
|
|
18
|
-
});
|
|
19
|
-
const get = key => {
|
|
20
|
-
const value = cache.get(key);
|
|
21
|
-
if (!value) {
|
|
22
|
-
return undefined;
|
|
23
|
-
}
|
|
24
|
-
const {
|
|
25
|
-
type,
|
|
26
|
-
data
|
|
27
|
-
} = value;
|
|
28
|
-
if (type === TYPE_ERROR) {
|
|
29
|
-
throw data;
|
|
30
|
-
}
|
|
31
|
-
return data;
|
|
32
|
-
};
|
|
9
|
+
const setValue = (key, value) => cache.set(key, value);
|
|
10
|
+
const get = key => cache.get(key);
|
|
33
11
|
return {
|
|
34
12
|
setValue,
|
|
35
|
-
setError,
|
|
36
13
|
get
|
|
37
14
|
};
|
|
38
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createIconSourceCache","cache","Map","setValue","key","value","set","get"],"sourceRoot":"../../src","sources":["create-icon-source-cache.ts"],"mappings":";;;;;;AAEO,SAASA,qBAAqBA,CAAA,EAAG;EACtC,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAAoB,CAAC;EAE1C,MAAMC,QAAQ,GAAGA,CAACC,GAAW,EAAEC,KAAgB,KAAKJ,KAAK,CAACK,GAAG,CAACF,GAAG,EAAEC,KAAK,CAAC;EAEzE,MAAME,GAAG,GAAIH,GAAW,IAAKH,KAAK,CAACM,GAAG,CAACH,GAAG,CAAC;EAE3C,OAAO;IAAED,QAAQ;IAAEI;EAAI,CAAC;AAC1B","ignoreList":[]}
|
|
@@ -10,6 +10,9 @@ exports.setDynamicLoadingErrorCallback = exports.setDynamicLoadingEnabled = expo
|
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
11
|
// this is a file:// uri on native, or an object with uri and display on web
|
|
12
12
|
|
|
13
|
+
// RenderToImageResult needs to be usable as the `source` prop for image,
|
|
14
|
+
// so it must stay compatible with ImageURISource type
|
|
15
|
+
|
|
13
16
|
// biome-ignore lint/suspicious/noExplicitAny: this is used internally with globalThis
|
|
14
17
|
function getIsDynamicLoadingSupported(globalObj) {
|
|
15
18
|
return globalObj?.expo && (_reactNative.Platform.OS === 'web' || typeof globalObj.expo.modules?.ExpoAsset?.downloadAsync === 'function') && typeof globalObj.expo.modules?.ExpoFontLoader?.getLoadedFonts === 'function' && typeof globalObj.expo.modules?.ExpoFontLoader?.loadAsync === 'function';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","getIsDynamicLoadingSupported","globalObj","expo","Platform","OS","modules","ExpoAsset","downloadAsync","ExpoFontLoader","getLoadedFonts","loadAsync","getIsRenderToImageSupported","ExpoFontUtils","renderToImageAsync","assertExpoModulesPresent","Error","dynamicFontLoadingOverride","isDynamicLoadingSupported","globalThis","exports","setDynamicLoadingEnabled","value","process","env","NODE_ENV","hasNecessaryExpoModules","message","console","error","isDynamicLoadingEnabled","dynamicLoadingErrorCallback","setDynamicLoadingErrorCallback","callback","getErrorCallback"],"sourceRoot":"../../../src","sources":["dynamicLoading/dynamic-loading-setting.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAUA;;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","getIsDynamicLoadingSupported","globalObj","expo","Platform","OS","modules","ExpoAsset","downloadAsync","ExpoFontLoader","getLoadedFonts","loadAsync","getIsRenderToImageSupported","ExpoFontUtils","renderToImageAsync","assertExpoModulesPresent","Error","dynamicFontLoadingOverride","isDynamicLoadingSupported","globalThis","exports","setDynamicLoadingEnabled","value","process","env","NODE_ENV","hasNecessaryExpoModules","message","console","error","isDynamicLoadingEnabled","dynamicLoadingErrorCallback","setDynamicLoadingErrorCallback","callback","getErrorCallback"],"sourceRoot":"../../../src","sources":["dynamicLoading/dynamic-loading-setting.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAUA;;AAUA;AACA;;AAoDA;AACA,SAASC,4BAA4BA,CAACC,SAAc,EAElD;EACA,OACEA,SAAS,EAAEC,IAAI,KACdC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,OAAOH,SAAS,CAACC,IAAI,CAACG,OAAO,EAAEC,SAAS,EAAEC,aAAa,KAAK,UAAU,CAAC,IACjG,OAAON,SAAS,CAACC,IAAI,CAACG,OAAO,EAAEG,cAAc,EAAEC,cAAc,KAAK,UAAU,IAC5E,OAAOR,SAAS,CAACC,IAAI,CAACG,OAAO,EAAEG,cAAc,EAAEE,SAAS,KAAK,UAAU;AAE3E;;AAEA;AACO,SAASC,2BAA2BA,CAACV,SAAc,EAMxD;EACA,OAAOA,SAAS,EAAEC,IAAI,IAAI,OAAOD,SAAS,CAACC,IAAI,CAACG,OAAO,EAAEO,aAAa,EAAEC,kBAAkB,KAAK,UAAU;AAC3G;AAEO,SAASC,wBAAwBA,CAACb,SAAkB,EAAiD;EAC1G,IAAI,CAACD,4BAA4B,CAACC,SAAS,CAAC,EAAE;IAC5C,MAAM,IAAIc,KAAK,CAAC,2EAA2E,CAAC;EAC9F;AACF;;AAEA;AACA;AACA;;AAEA,IAAIC,0BAA0C,GAAG,IAAI;AAE9C,MAAMC,yBAAyB,GAAGA,CAAA,KAAMjB,4BAA4B,CAACkB,UAAU,CAAC;;AAEvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAC,OAAA,CAAAF,yBAAA,GAAAA,yBAAA;AAQO,MAAMG,wBAAwB,GAAIC,KAAc,IAAc;EACnE,IAAI,CAACrB,4BAA4B,CAACkB,UAAU,CAAC,EAAE;IAC7C,IAAII,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAI,CAAC,CAACH,KAAK,EAAE;MACpD,MAAMI,uBAAuB,GAC3B,CAACtB,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,CAAC,CAACc,UAAU,CAAChB,IAAI,EAAEG,OAAO,EAAEC,SAAS,KAAK,CAAC,CAACY,UAAU,CAAChB,IAAI,EAAEG,OAAO,EAAEG,cAAc;MAChH,MAAMkB,OAAO,GAAGD,uBAAuB,GACnC,sGAAsG,GACtG,sHAAsH;MAC1HE,OAAO,CAACC,KAAK,CAACF,OAAO,CAAC,CAAC,CAAC;IAC1B;IACA,OAAO,KAAK;EACd;EAEAV,0BAA0B,GAAG,CAAC,CAACK,KAAK;EAEpC,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AAFAF,OAAA,CAAAC,wBAAA,GAAAA,wBAAA;AAGO,MAAMS,uBAAuB,GAAGA,CAAA,KACrCb,0BAA0B,IAAIhB,4BAA4B,CAACkB,UAAU,CAAC;AAACC,OAAA,CAAAU,uBAAA,GAAAA,uBAAA;AAIzE,IAAIC,2BAAsD;;AAE1D;AACA;AACA;AACO,MAAMC,8BAA8B,GAAIC,QAAuB,IAAK;EACzEF,2BAA2B,GAAGE,QAAQ;AACxC,CAAC;AAACb,OAAA,CAAAY,8BAAA,GAAAA,8BAAA;AAEK,MAAME,gBAAgB,GAAGA,CAAA,KAAMH,2BAA2B;AAACX,OAAA,CAAAc,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -27,17 +27,20 @@ const ensureGetImageAvailable = () => {
|
|
|
27
27
|
ExpoFontUtils
|
|
28
28
|
} = globalRef.expo.modules;
|
|
29
29
|
return {
|
|
30
|
-
getImageForFont: async (fontReference, glyph, size, color) =>
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
getImageForFont: async (fontReference, glyph, size, color) => {
|
|
31
|
+
const result = await ExpoFontUtils.renderToImageAsync(glyph, {
|
|
32
|
+
fontFamily: fontReference,
|
|
33
|
+
size,
|
|
34
|
+
color
|
|
35
|
+
});
|
|
36
|
+
return result.uri;
|
|
37
|
+
},
|
|
35
38
|
getImageForFontSync: () => {
|
|
36
39
|
throw new Error('You attempted to call `getImageForFontSync`. Expo dev client with `@react-native-vector-icons/get-image` installed is required for this. Alternatively, call `getImageForFont` or generate the image yourself and bundle it with the app.');
|
|
37
40
|
}
|
|
38
41
|
};
|
|
39
42
|
}
|
|
40
|
-
throw new Error('Error in getImageSource / getImageSourceSync: You need to either (1) install `@react-native-vector-icons/get-image` or (2) use Expo SDK
|
|
43
|
+
throw new Error('Error in getImageSource / getImageSourceSync: You need to either (1) install `@react-native-vector-icons/get-image` or (2) use Expo SDK 54+ (Expo dev client or Expo Go). Check your setup and rebuild the app.');
|
|
41
44
|
};
|
|
42
45
|
exports.ensureGetImageAvailable = ensureGetImageAvailable;
|
|
43
46
|
//# sourceMappingURL=get-image-library.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dynamicLoadingSetting","require","NativeIconAPI","globalRef","globalThis","hasExpoRenderToImage","getIsRenderToImageSupported","ensureGetImageAvailable","ensureNativeModuleAvailable","ExpoFontUtils","expo","modules","getImageForFont","fontReference","glyph","size","color","renderToImageAsync","fontFamily","getImageForFontSync","Error","exports"],"sourceRoot":"../../src","sources":["get-image-library.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAEA;AACA,IAAIC,aAA2E,GAAG,IAAI;AAEtF,IAAI;EACF;EACAA,aAAa,GAAGD,OAAO,CAAC,sCAAsC,CAAC;AACjE,CAAC,CAAC,MAAM;EACN;EACA;EACA;AAAA;AAGF,MAAME,SAAS,GAAGC,UAAU;AAC5B,MAAMC,oBAAoB,GAAG,IAAAC,kDAA2B,EAACH,SAAS,CAAC;AAE5D,MAAMI,uBAAuB,GAAGA,CAAA,KAAM;EAC3C,IAAIL,aAAa,EAAE;IACjBA,aAAa,CAACM,2BAA2B,CAAC,CAAC;IAC3C,OAAON,aAAa;EACtB;EACA,IAAIG,oBAAoB,EAAE;IACxB,MAAM;MAAEI;IAAc,CAAC,GAAGN,SAAS,CAACO,IAAI,CAACC,OAAO;IAChD,OAAO;MACLC,eAAe,EAAE,MAAAA,CAAOC,aAAqB,EAAEC,KAAa,EAAEC,IAAY,EAAEC,KAAa,
|
|
1
|
+
{"version":3,"names":["_dynamicLoadingSetting","require","NativeIconAPI","globalRef","globalThis","hasExpoRenderToImage","getIsRenderToImageSupported","ensureGetImageAvailable","ensureNativeModuleAvailable","ExpoFontUtils","expo","modules","getImageForFont","fontReference","glyph","size","color","result","renderToImageAsync","fontFamily","uri","getImageForFontSync","Error","exports"],"sourceRoot":"../../src","sources":["get-image-library.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAEA;AACA,IAAIC,aAA2E,GAAG,IAAI;AAEtF,IAAI;EACF;EACAA,aAAa,GAAGD,OAAO,CAAC,sCAAsC,CAAC;AACjE,CAAC,CAAC,MAAM;EACN;EACA;EACA;AAAA;AAGF,MAAME,SAAS,GAAGC,UAAU;AAC5B,MAAMC,oBAAoB,GAAG,IAAAC,kDAA2B,EAACH,SAAS,CAAC;AAE5D,MAAMI,uBAAuB,GAAGA,CAAA,KAAM;EAC3C,IAAIL,aAAa,EAAE;IACjBA,aAAa,CAACM,2BAA2B,CAAC,CAAC;IAC3C,OAAON,aAAa;EACtB;EACA,IAAIG,oBAAoB,EAAE;IACxB,MAAM;MAAEI;IAAc,CAAC,GAAGN,SAAS,CAACO,IAAI,CAACC,OAAO;IAChD,OAAO;MACLC,eAAe,EAAE,MAAAA,CAAOC,aAAqB,EAAEC,KAAa,EAAEC,IAAY,EAAEC,KAAa,KAAK;QAC5F,MAAMC,MAAM,GAAG,MAAMR,aAAa,CAACS,kBAAkB,CAACJ,KAAK,EAAE;UAC3DK,UAAU,EAAEN,aAAa;UACzBE,IAAI;UACJC;QACF,CAAC,CAAC;QACF,OAAOC,MAAM,CAACG,GAAG;MACnB,CAAC;MACDC,mBAAmB,EAAEA,CAAA,KAAM;QACzB,MAAM,IAAIC,KAAK,CACb,2OACF,CAAC;MACH;IACF,CAAC;EACH;EACA,MAAM,IAAIA,KAAK,CACb,iNACF,CAAC;AACH,CAAC;AAACC,OAAA,CAAAhB,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -13,22 +13,16 @@ const getImageSourceSync = (imageSourceCache, fontReference, glyph, size = _defa
|
|
|
13
13
|
const cacheKey = `${glyph}:${size}:${String(processedColor)}`;
|
|
14
14
|
const maybeCachedValue = imageSourceCache.get(cacheKey);
|
|
15
15
|
if (maybeCachedValue !== undefined) {
|
|
16
|
-
// FIXME: Should this check if it's an error and throw it again?
|
|
17
16
|
return maybeCachedValue;
|
|
18
17
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return value;
|
|
28
|
-
} catch (error) {
|
|
29
|
-
imageSourceCache.setError(cacheKey, error);
|
|
30
|
-
throw error;
|
|
31
|
-
}
|
|
18
|
+
const imagePath = NativeIconAPI.getImageForFontSync(fontReference, glyph, size, processedColor // FIXME what if a non existent colour was passed in?,
|
|
19
|
+
);
|
|
20
|
+
const value = {
|
|
21
|
+
uri: imagePath,
|
|
22
|
+
scale: _reactNative.PixelRatio.get()
|
|
23
|
+
};
|
|
24
|
+
imageSourceCache.setValue(cacheKey, value);
|
|
25
|
+
return value;
|
|
32
26
|
};
|
|
33
27
|
exports.getImageSourceSync = getImageSourceSync;
|
|
34
28
|
const getImageSource = async (imageSourceCache, fontReference, glyph, size = _defaults.DEFAULT_ICON_SIZE, color = _defaults.DEFAULT_ICON_COLOR) => {
|
|
@@ -37,22 +31,15 @@ const getImageSource = async (imageSourceCache, fontReference, glyph, size = _de
|
|
|
37
31
|
const cacheKey = `${glyph}:${size}:${String(processedColor)}`;
|
|
38
32
|
const maybeCachedValue = imageSourceCache.get(cacheKey);
|
|
39
33
|
if (maybeCachedValue !== undefined) {
|
|
40
|
-
// FIXME: Should this check if it's an error and throw it again?
|
|
41
34
|
return maybeCachedValue;
|
|
42
35
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
imageSourceCache.setValue(cacheKey, value);
|
|
51
|
-
return value;
|
|
52
|
-
} catch (error) {
|
|
53
|
-
imageSourceCache.setError(cacheKey, error);
|
|
54
|
-
throw error;
|
|
55
|
-
}
|
|
36
|
+
const imagePath = await NativeIconAPI.getImageForFont(fontReference, glyph, size, processedColor);
|
|
37
|
+
const value = {
|
|
38
|
+
uri: imagePath,
|
|
39
|
+
scale: _reactNative.PixelRatio.get()
|
|
40
|
+
};
|
|
41
|
+
imageSourceCache.setValue(cacheKey, value);
|
|
42
|
+
return value;
|
|
56
43
|
};
|
|
57
44
|
exports.getImageSource = getImageSource;
|
|
58
45
|
//# sourceMappingURL=get-image-source.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_defaults","_getImageLibrary","getImageSourceSync","imageSourceCache","fontReference","glyph","size","DEFAULT_ICON_SIZE","color","DEFAULT_ICON_COLOR","NativeIconAPI","ensureGetImageAvailable","processedColor","processColor","cacheKey","String","maybeCachedValue","get","undefined","imagePath","getImageForFontSync","value","uri","scale","PixelRatio","setValue","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_defaults","_getImageLibrary","getImageSourceSync","imageSourceCache","fontReference","glyph","size","DEFAULT_ICON_SIZE","color","DEFAULT_ICON_COLOR","NativeIconAPI","ensureGetImageAvailable","processedColor","processColor","cacheKey","String","maybeCachedValue","get","undefined","imagePath","getImageForFontSync","value","uri","scale","PixelRatio","setValue","exports","getImageSource","getImageForFont"],"sourceRoot":"../../src","sources":["get-image-source.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAGA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAEO,MAAMG,kBAAkB,GAAGA,CAChCC,gBAA0D,EAC1DC,aAAqB,EACrBC,KAAa,EACbC,IAAI,GAAGC,2BAAiB,EACxBC,KAAyB,GAAGC,4BAAkB,KAC3C;EACH,MAAMC,aAAa,GAAG,IAAAC,wCAAuB,EAAC,CAAC;EAE/C,MAAMC,cAAc,GAAG,IAAAC,yBAAY,EAACL,KAAK,CAAC;EAC1C,MAAMM,QAAQ,GAAG,GAAGT,KAAK,IAAIC,IAAI,IAAIS,MAAM,CAACH,cAAc,CAAC,EAAE;EAE7D,MAAMI,gBAAgB,GAAGb,gBAAgB,CAACc,GAAG,CAACH,QAAQ,CAAC;EACvD,IAAIE,gBAAgB,KAAKE,SAAS,EAAE;IAClC,OAAOF,gBAAgB;EACzB;EAEA,MAAMG,SAAS,GAAGT,aAAa,CAACU,mBAAmB,CACjDhB,aAAa,EACbC,KAAK,EACLC,IAAI,EACJM,cAAc,CAAY;EAC5B,CAAC;EACD,MAAMS,KAAK,GAAG;IAAEC,GAAG,EAAEH,SAAS;IAAEI,KAAK,EAAEC,uBAAU,CAACP,GAAG,CAAC;EAAE,CAAC;EACzDd,gBAAgB,CAACsB,QAAQ,CAACX,QAAQ,EAAEO,KAAK,CAAC;EAC1C,OAAOA,KAAK;AACd,CAAC;AAACK,OAAA,CAAAxB,kBAAA,GAAAA,kBAAA;AAEK,MAAMyB,cAAc,GAAG,MAAAA,CAC5BxB,gBAA0D,EAC1DC,aAAqB,EACrBC,KAAa,EACbC,IAAI,GAAGC,2BAAiB,EACxBC,KAAyB,GAAGC,4BAAkB,KAC3C;EACH,MAAMC,aAAa,GAAG,IAAAC,wCAAuB,EAAC,CAAC;EAE/C,MAAMC,cAAc,GAAG,IAAAC,yBAAY,EAACL,KAAK,CAAC;EAC1C,MAAMM,QAAQ,GAAG,GAAGT,KAAK,IAAIC,IAAI,IAAIS,MAAM,CAACH,cAAc,CAAC,EAAE;EAE7D,MAAMI,gBAAgB,GAAGb,gBAAgB,CAACc,GAAG,CAACH,QAAQ,CAAC;EACvD,IAAIE,gBAAgB,KAAKE,SAAS,EAAE;IAClC,OAAOF,gBAAgB;EACzB;EAEA,MAAMG,SAAS,GAAG,MAAMT,aAAa,CAACkB,eAAe,CAACxB,aAAa,EAAEC,KAAK,EAAEC,IAAI,EAAEM,cAAwB,CAAC;EAC3G,MAAMS,KAAK,GAAG;IAAEC,GAAG,EAAEH,SAAS;IAAEI,KAAK,EAAEC,uBAAU,CAACP,GAAG,CAAC;EAAE,CAAC;EACzDd,gBAAgB,CAACsB,QAAQ,CAACX,QAAQ,EAAEO,KAAK,CAAC;EAC1C,OAAOA,KAAK;AACd,CAAC;AAACK,OAAA,CAAAC,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import React, { forwardRef, useEffect } from 'react';
|
|
5
5
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
6
6
|
import { Platform, Text } from 'react-native';
|
|
7
|
-
import createIconSourceCache from "./create-icon-source-cache.js";
|
|
7
|
+
import { createIconSourceCache } from "./create-icon-source-cache.js";
|
|
8
8
|
import { DEFAULT_ICON_COLOR, DEFAULT_ICON_SIZE } from "./defaults.js";
|
|
9
9
|
import { dynamicLoader } from "./dynamicLoading/dynamic-font-loading.js";
|
|
10
10
|
import { isDynamicLoadingEnabled } from "./dynamicLoading/dynamic-loading-setting.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useEffect","Platform","Text","createIconSourceCache","DEFAULT_ICON_COLOR","DEFAULT_ICON_SIZE","dynamicLoader","isDynamicLoadingEnabled","getImageSource","getImageSourceImpl","getImageSourceSync","getImageSourceSyncImpl","jsxs","_jsxs","jsx","_jsx","createIconSet","glyphMap","postScriptNameOrOptions","fontFileNameParam","fontStyleParam","postScriptName","fontFileName","fontStyle","fontBasename","replace","fontReference","select","windows","android","default","styleOverrides","fontFamily","fontWeight","resolveGlyph","name","glyph","String","fromCodePoint","Icon","size","color","style","children","allowFontScaling","innerRef","props","isFontLoaded","setIsFontLoaded","useState","isLoaded","isMounted","fontSource","loadFontAsync","finally","styleDefaults","fontSize","newProps","ref","selectable","WrappedIcon","displayName","imageSourceCache","IconNamespace","Object","assign"],"sourceRoot":"../../src","sources":["create-icon-set.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,UAAU,EAAYC,SAAS,QAAQ,OAAO;AAC9D;AACA,SAASC,QAAQ,EAAEC,IAAI,QAAwC,cAAc;AAE7E,
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useEffect","Platform","Text","createIconSourceCache","DEFAULT_ICON_COLOR","DEFAULT_ICON_SIZE","dynamicLoader","isDynamicLoadingEnabled","getImageSource","getImageSourceImpl","getImageSourceSync","getImageSourceSyncImpl","jsxs","_jsxs","jsx","_jsx","createIconSet","glyphMap","postScriptNameOrOptions","fontFileNameParam","fontStyleParam","postScriptName","fontFileName","fontStyle","fontBasename","replace","fontReference","select","windows","android","default","styleOverrides","fontFamily","fontWeight","resolveGlyph","name","glyph","String","fromCodePoint","Icon","size","color","style","children","allowFontScaling","innerRef","props","isFontLoaded","setIsFontLoaded","useState","isLoaded","isMounted","fontSource","loadFontAsync","finally","styleDefaults","fontSize","newProps","ref","selectable","WrappedIcon","displayName","imageSourceCache","IconNamespace","Object","assign"],"sourceRoot":"../../src","sources":["create-icon-set.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,34 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const TYPE_ERROR = 'error';
|
|
5
|
-
export default function createIconSourceCache() {
|
|
3
|
+
export function createIconSourceCache() {
|
|
6
4
|
const cache = new Map();
|
|
7
|
-
const setValue = (key, value) => cache.set(key,
|
|
8
|
-
|
|
9
|
-
data: value
|
|
10
|
-
});
|
|
11
|
-
const setError = (key, error) => cache.set(key, {
|
|
12
|
-
type: TYPE_ERROR,
|
|
13
|
-
data: error
|
|
14
|
-
});
|
|
15
|
-
const get = key => {
|
|
16
|
-
const value = cache.get(key);
|
|
17
|
-
if (!value) {
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
const {
|
|
21
|
-
type,
|
|
22
|
-
data
|
|
23
|
-
} = value;
|
|
24
|
-
if (type === TYPE_ERROR) {
|
|
25
|
-
throw data;
|
|
26
|
-
}
|
|
27
|
-
return data;
|
|
28
|
-
};
|
|
5
|
+
const setValue = (key, value) => cache.set(key, value);
|
|
6
|
+
const get = key => cache.get(key);
|
|
29
7
|
return {
|
|
30
8
|
setValue,
|
|
31
|
-
setError,
|
|
32
9
|
get
|
|
33
10
|
};
|
|
34
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createIconSourceCache","cache","Map","setValue","key","value","set","get"],"sourceRoot":"../../src","sources":["create-icon-source-cache.ts"],"mappings":";;AAEA,OAAO,SAASA,qBAAqBA,CAAA,EAAG;EACtC,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAAoB,CAAC;EAE1C,MAAMC,QAAQ,GAAGA,CAACC,GAAW,EAAEC,KAAgB,KAAKJ,KAAK,CAACK,GAAG,CAACF,GAAG,EAAEC,KAAK,CAAC;EAEzE,MAAME,GAAG,GAAIH,GAAW,IAAKH,KAAK,CAACM,GAAG,CAACH,GAAG,CAAC;EAE3C,OAAO;IAAED,QAAQ;IAAEI;EAAI,CAAC;AAC1B","ignoreList":[]}
|
|
@@ -4,6 +4,9 @@ import { Platform } from 'react-native';
|
|
|
4
4
|
|
|
5
5
|
// this is a file:// uri on native, or an object with uri and display on web
|
|
6
6
|
|
|
7
|
+
// RenderToImageResult needs to be usable as the `source` prop for image,
|
|
8
|
+
// so it must stay compatible with ImageURISource type
|
|
9
|
+
|
|
7
10
|
// biome-ignore lint/suspicious/noExplicitAny: this is used internally with globalThis
|
|
8
11
|
function getIsDynamicLoadingSupported(globalObj) {
|
|
9
12
|
return globalObj?.expo && (Platform.OS === 'web' || typeof globalObj.expo.modules?.ExpoAsset?.downloadAsync === 'function') && typeof globalObj.expo.modules?.ExpoFontLoader?.getLoadedFonts === 'function' && typeof globalObj.expo.modules?.ExpoFontLoader?.loadAsync === 'function';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","getIsDynamicLoadingSupported","globalObj","expo","OS","modules","ExpoAsset","downloadAsync","ExpoFontLoader","getLoadedFonts","loadAsync","getIsRenderToImageSupported","ExpoFontUtils","renderToImageAsync","assertExpoModulesPresent","Error","dynamicFontLoadingOverride","isDynamicLoadingSupported","globalThis","setDynamicLoadingEnabled","value","process","env","NODE_ENV","hasNecessaryExpoModules","message","console","error","isDynamicLoadingEnabled","dynamicLoadingErrorCallback","setDynamicLoadingErrorCallback","callback","getErrorCallback"],"sourceRoot":"../../../src","sources":["dynamicLoading/dynamic-loading-setting.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;;AAUvC;;
|
|
1
|
+
{"version":3,"names":["Platform","getIsDynamicLoadingSupported","globalObj","expo","OS","modules","ExpoAsset","downloadAsync","ExpoFontLoader","getLoadedFonts","loadAsync","getIsRenderToImageSupported","ExpoFontUtils","renderToImageAsync","assertExpoModulesPresent","Error","dynamicFontLoadingOverride","isDynamicLoadingSupported","globalThis","setDynamicLoadingEnabled","value","process","env","NODE_ENV","hasNecessaryExpoModules","message","console","error","isDynamicLoadingEnabled","dynamicLoadingErrorCallback","setDynamicLoadingErrorCallback","callback","getErrorCallback"],"sourceRoot":"../../../src","sources":["dynamicLoading/dynamic-loading-setting.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;;AAUvC;;AAUA;AACA;;AAoDA;AACA,SAASC,4BAA4BA,CAACC,SAAc,EAElD;EACA,OACEA,SAAS,EAAEC,IAAI,KACdH,QAAQ,CAACI,EAAE,KAAK,KAAK,IAAI,OAAOF,SAAS,CAACC,IAAI,CAACE,OAAO,EAAEC,SAAS,EAAEC,aAAa,KAAK,UAAU,CAAC,IACjG,OAAOL,SAAS,CAACC,IAAI,CAACE,OAAO,EAAEG,cAAc,EAAEC,cAAc,KAAK,UAAU,IAC5E,OAAOP,SAAS,CAACC,IAAI,CAACE,OAAO,EAAEG,cAAc,EAAEE,SAAS,KAAK,UAAU;AAE3E;;AAEA;AACA,OAAO,SAASC,2BAA2BA,CAACT,SAAc,EAMxD;EACA,OAAOA,SAAS,EAAEC,IAAI,IAAI,OAAOD,SAAS,CAACC,IAAI,CAACE,OAAO,EAAEO,aAAa,EAAEC,kBAAkB,KAAK,UAAU;AAC3G;AAEA,OAAO,SAASC,wBAAwBA,CAACZ,SAAkB,EAAiD;EAC1G,IAAI,CAACD,4BAA4B,CAACC,SAAS,CAAC,EAAE;IAC5C,MAAM,IAAIa,KAAK,CAAC,2EAA2E,CAAC;EAC9F;AACF;;AAEA;AACA;AACA;;AAEA,IAAIC,0BAA0C,GAAG,IAAI;AAErD,OAAO,MAAMC,yBAAyB,GAAGA,CAAA,KAAMhB,4BAA4B,CAACiB,UAAU,CAAC;;AAEvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GAAIC,KAAc,IAAc;EACnE,IAAI,CAACnB,4BAA4B,CAACiB,UAAU,CAAC,EAAE;IAC7C,IAAIG,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAI,CAAC,CAACH,KAAK,EAAE;MACpD,MAAMI,uBAAuB,GAC3B,CAACxB,QAAQ,CAACI,EAAE,KAAK,KAAK,IAAI,CAAC,CAACc,UAAU,CAACf,IAAI,EAAEE,OAAO,EAAEC,SAAS,KAAK,CAAC,CAACY,UAAU,CAACf,IAAI,EAAEE,OAAO,EAAEG,cAAc;MAChH,MAAMiB,OAAO,GAAGD,uBAAuB,GACnC,sGAAsG,GACtG,sHAAsH;MAC1HE,OAAO,CAACC,KAAK,CAACF,OAAO,CAAC,CAAC,CAAC;IAC1B;IACA,OAAO,KAAK;EACd;EAEAT,0BAA0B,GAAG,CAAC,CAACI,KAAK;EAEpC,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMQ,uBAAuB,GAAGA,CAAA,KACrCZ,0BAA0B,IAAIf,4BAA4B,CAACiB,UAAU,CAAC;AAIxE,IAAIW,2BAAsD;;AAE1D;AACA;AACA;AACA,OAAO,MAAMC,8BAA8B,GAAIC,QAAuB,IAAK;EACzEF,2BAA2B,GAAGE,QAAQ;AACxC,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAMH,2BAA2B","ignoreList":[]}
|
|
@@ -24,16 +24,19 @@ export const ensureGetImageAvailable = () => {
|
|
|
24
24
|
ExpoFontUtils
|
|
25
25
|
} = globalRef.expo.modules;
|
|
26
26
|
return {
|
|
27
|
-
getImageForFont: async (fontReference, glyph, size, color) =>
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
getImageForFont: async (fontReference, glyph, size, color) => {
|
|
28
|
+
const result = await ExpoFontUtils.renderToImageAsync(glyph, {
|
|
29
|
+
fontFamily: fontReference,
|
|
30
|
+
size,
|
|
31
|
+
color
|
|
32
|
+
});
|
|
33
|
+
return result.uri;
|
|
34
|
+
},
|
|
32
35
|
getImageForFontSync: () => {
|
|
33
36
|
throw new Error('You attempted to call `getImageForFontSync`. Expo dev client with `@react-native-vector-icons/get-image` installed is required for this. Alternatively, call `getImageForFont` or generate the image yourself and bundle it with the app.');
|
|
34
37
|
}
|
|
35
38
|
};
|
|
36
39
|
}
|
|
37
|
-
throw new Error('Error in getImageSource / getImageSourceSync: You need to either (1) install `@react-native-vector-icons/get-image` or (2) use Expo SDK
|
|
40
|
+
throw new Error('Error in getImageSource / getImageSourceSync: You need to either (1) install `@react-native-vector-icons/get-image` or (2) use Expo SDK 54+ (Expo dev client or Expo Go). Check your setup and rebuild the app.');
|
|
38
41
|
};
|
|
39
42
|
//# sourceMappingURL=get-image-library.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getIsRenderToImageSupported","NativeIconAPI","require","globalRef","globalThis","hasExpoRenderToImage","ensureGetImageAvailable","ensureNativeModuleAvailable","ExpoFontUtils","expo","modules","getImageForFont","fontReference","glyph","size","color","renderToImageAsync","fontFamily","getImageForFontSync","Error"],"sourceRoot":"../../src","sources":["get-image-library.ts"],"mappings":";;AAAA,SAASA,2BAA2B,QAAQ,6CAA0C;;AAEtF;AACA,IAAIC,aAA2E,GAAG,IAAI;AAEtF,IAAI;EACF;EACAA,aAAa,GAAGC,OAAO,CAAC,sCAAsC,CAAC;AACjE,CAAC,CAAC,MAAM;EACN;EACA;EACA;AAAA;AAGF,MAAMC,SAAS,GAAGC,UAAU;AAC5B,MAAMC,oBAAoB,GAAGL,2BAA2B,CAACG,SAAS,CAAC;AAEnE,OAAO,MAAMG,uBAAuB,GAAGA,CAAA,KAAM;EAC3C,IAAIL,aAAa,EAAE;IACjBA,aAAa,CAACM,2BAA2B,CAAC,CAAC;IAC3C,OAAON,aAAa;EACtB;EACA,IAAII,oBAAoB,EAAE;IACxB,MAAM;MAAEG;IAAc,CAAC,GAAGL,SAAS,CAACM,IAAI,CAACC,OAAO;IAChD,OAAO;MACLC,eAAe,EAAE,MAAAA,CAAOC,aAAqB,EAAEC,KAAa,EAAEC,IAAY,EAAEC,KAAa,
|
|
1
|
+
{"version":3,"names":["getIsRenderToImageSupported","NativeIconAPI","require","globalRef","globalThis","hasExpoRenderToImage","ensureGetImageAvailable","ensureNativeModuleAvailable","ExpoFontUtils","expo","modules","getImageForFont","fontReference","glyph","size","color","result","renderToImageAsync","fontFamily","uri","getImageForFontSync","Error"],"sourceRoot":"../../src","sources":["get-image-library.ts"],"mappings":";;AAAA,SAASA,2BAA2B,QAAQ,6CAA0C;;AAEtF;AACA,IAAIC,aAA2E,GAAG,IAAI;AAEtF,IAAI;EACF;EACAA,aAAa,GAAGC,OAAO,CAAC,sCAAsC,CAAC;AACjE,CAAC,CAAC,MAAM;EACN;EACA;EACA;AAAA;AAGF,MAAMC,SAAS,GAAGC,UAAU;AAC5B,MAAMC,oBAAoB,GAAGL,2BAA2B,CAACG,SAAS,CAAC;AAEnE,OAAO,MAAMG,uBAAuB,GAAGA,CAAA,KAAM;EAC3C,IAAIL,aAAa,EAAE;IACjBA,aAAa,CAACM,2BAA2B,CAAC,CAAC;IAC3C,OAAON,aAAa;EACtB;EACA,IAAII,oBAAoB,EAAE;IACxB,MAAM;MAAEG;IAAc,CAAC,GAAGL,SAAS,CAACM,IAAI,CAACC,OAAO;IAChD,OAAO;MACLC,eAAe,EAAE,MAAAA,CAAOC,aAAqB,EAAEC,KAAa,EAAEC,IAAY,EAAEC,KAAa,KAAK;QAC5F,MAAMC,MAAM,GAAG,MAAMR,aAAa,CAACS,kBAAkB,CAACJ,KAAK,EAAE;UAC3DK,UAAU,EAAEN,aAAa;UACzBE,IAAI;UACJC;QACF,CAAC,CAAC;QACF,OAAOC,MAAM,CAACG,GAAG;MACnB,CAAC;MACDC,mBAAmB,EAAEA,CAAA,KAAM;QACzB,MAAM,IAAIC,KAAK,CACb,2OACF,CAAC;MACH;IACF,CAAC;EACH;EACA,MAAM,IAAIA,KAAK,CACb,iNACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -9,22 +9,16 @@ export const getImageSourceSync = (imageSourceCache, fontReference, glyph, size
|
|
|
9
9
|
const cacheKey = `${glyph}:${size}:${String(processedColor)}`;
|
|
10
10
|
const maybeCachedValue = imageSourceCache.get(cacheKey);
|
|
11
11
|
if (maybeCachedValue !== undefined) {
|
|
12
|
-
// FIXME: Should this check if it's an error and throw it again?
|
|
13
12
|
return maybeCachedValue;
|
|
14
13
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return value;
|
|
24
|
-
} catch (error) {
|
|
25
|
-
imageSourceCache.setError(cacheKey, error);
|
|
26
|
-
throw error;
|
|
27
|
-
}
|
|
14
|
+
const imagePath = NativeIconAPI.getImageForFontSync(fontReference, glyph, size, processedColor // FIXME what if a non existent colour was passed in?,
|
|
15
|
+
);
|
|
16
|
+
const value = {
|
|
17
|
+
uri: imagePath,
|
|
18
|
+
scale: PixelRatio.get()
|
|
19
|
+
};
|
|
20
|
+
imageSourceCache.setValue(cacheKey, value);
|
|
21
|
+
return value;
|
|
28
22
|
};
|
|
29
23
|
export const getImageSource = async (imageSourceCache, fontReference, glyph, size = DEFAULT_ICON_SIZE, color = DEFAULT_ICON_COLOR) => {
|
|
30
24
|
const NativeIconAPI = ensureGetImageAvailable();
|
|
@@ -32,21 +26,14 @@ export const getImageSource = async (imageSourceCache, fontReference, glyph, siz
|
|
|
32
26
|
const cacheKey = `${glyph}:${size}:${String(processedColor)}`;
|
|
33
27
|
const maybeCachedValue = imageSourceCache.get(cacheKey);
|
|
34
28
|
if (maybeCachedValue !== undefined) {
|
|
35
|
-
// FIXME: Should this check if it's an error and throw it again?
|
|
36
29
|
return maybeCachedValue;
|
|
37
30
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
imageSourceCache.setValue(cacheKey, value);
|
|
46
|
-
return value;
|
|
47
|
-
} catch (error) {
|
|
48
|
-
imageSourceCache.setError(cacheKey, error);
|
|
49
|
-
throw error;
|
|
50
|
-
}
|
|
31
|
+
const imagePath = await NativeIconAPI.getImageForFont(fontReference, glyph, size, processedColor);
|
|
32
|
+
const value = {
|
|
33
|
+
uri: imagePath,
|
|
34
|
+
scale: PixelRatio.get()
|
|
35
|
+
};
|
|
36
|
+
imageSourceCache.setValue(cacheKey, value);
|
|
37
|
+
return value;
|
|
51
38
|
};
|
|
52
39
|
//# sourceMappingURL=get-image-source.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PixelRatio","processColor","DEFAULT_ICON_COLOR","DEFAULT_ICON_SIZE","ensureGetImageAvailable","getImageSourceSync","imageSourceCache","fontReference","glyph","size","color","NativeIconAPI","processedColor","cacheKey","String","maybeCachedValue","get","undefined","imagePath","getImageForFontSync","value","uri","scale","setValue","
|
|
1
|
+
{"version":3,"names":["PixelRatio","processColor","DEFAULT_ICON_COLOR","DEFAULT_ICON_SIZE","ensureGetImageAvailable","getImageSourceSync","imageSourceCache","fontReference","glyph","size","color","NativeIconAPI","processedColor","cacheKey","String","maybeCachedValue","get","undefined","imagePath","getImageForFontSync","value","uri","scale","setValue","getImageSource","getImageForFont"],"sourceRoot":"../../src","sources":["get-image-source.ts"],"mappings":";;AACA,SAASA,UAAU,EAAEC,YAAY,QAAQ,cAAc;AAGvD,SAASC,kBAAkB,EAAEC,iBAAiB,QAAQ,eAAY;AAClE,SAASC,uBAAuB,QAAQ,wBAAqB;AAE7D,OAAO,MAAMC,kBAAkB,GAAGA,CAChCC,gBAA0D,EAC1DC,aAAqB,EACrBC,KAAa,EACbC,IAAI,GAAGN,iBAAiB,EACxBO,KAAyB,GAAGR,kBAAkB,KAC3C;EACH,MAAMS,aAAa,GAAGP,uBAAuB,CAAC,CAAC;EAE/C,MAAMQ,cAAc,GAAGX,YAAY,CAACS,KAAK,CAAC;EAC1C,MAAMG,QAAQ,GAAG,GAAGL,KAAK,IAAIC,IAAI,IAAIK,MAAM,CAACF,cAAc,CAAC,EAAE;EAE7D,MAAMG,gBAAgB,GAAGT,gBAAgB,CAACU,GAAG,CAACH,QAAQ,CAAC;EACvD,IAAIE,gBAAgB,KAAKE,SAAS,EAAE;IAClC,OAAOF,gBAAgB;EACzB;EAEA,MAAMG,SAAS,GAAGP,aAAa,CAACQ,mBAAmB,CACjDZ,aAAa,EACbC,KAAK,EACLC,IAAI,EACJG,cAAc,CAAY;EAC5B,CAAC;EACD,MAAMQ,KAAK,GAAG;IAAEC,GAAG,EAAEH,SAAS;IAAEI,KAAK,EAAEtB,UAAU,CAACgB,GAAG,CAAC;EAAE,CAAC;EACzDV,gBAAgB,CAACiB,QAAQ,CAACV,QAAQ,EAAEO,KAAK,CAAC;EAC1C,OAAOA,KAAK;AACd,CAAC;AAED,OAAO,MAAMI,cAAc,GAAG,MAAAA,CAC5BlB,gBAA0D,EAC1DC,aAAqB,EACrBC,KAAa,EACbC,IAAI,GAAGN,iBAAiB,EACxBO,KAAyB,GAAGR,kBAAkB,KAC3C;EACH,MAAMS,aAAa,GAAGP,uBAAuB,CAAC,CAAC;EAE/C,MAAMQ,cAAc,GAAGX,YAAY,CAACS,KAAK,CAAC;EAC1C,MAAMG,QAAQ,GAAG,GAAGL,KAAK,IAAIC,IAAI,IAAIK,MAAM,CAACF,cAAc,CAAC,EAAE;EAE7D,MAAMG,gBAAgB,GAAGT,gBAAgB,CAACU,GAAG,CAACH,QAAQ,CAAC;EACvD,IAAIE,gBAAgB,KAAKE,SAAS,EAAE;IAClC,OAAOF,gBAAgB;EACzB;EAEA,MAAMG,SAAS,GAAG,MAAMP,aAAa,CAACc,eAAe,CAAClB,aAAa,EAAEC,KAAK,EAAEC,IAAI,EAAEG,cAAwB,CAAC;EAC3G,MAAMQ,KAAK,GAAG;IAAEC,GAAG,EAAEH,SAAS;IAAEI,KAAK,EAAEtB,UAAU,CAACgB,GAAG,CAAC;EAAE,CAAC;EACzDV,gBAAgB,CAACiB,QAAQ,CAACV,QAAQ,EAAEO,KAAK,CAAC;EAC1C,OAAOA,KAAK;AACd,CAAC","ignoreList":[]}
|
|
@@ -1,19 +1,9 @@
|
|
|
1
|
-
declare const TYPE_VALUE = "value";
|
|
2
|
-
declare const TYPE_ERROR = "error";
|
|
3
1
|
type ValueData = {
|
|
4
2
|
uri: string;
|
|
5
3
|
scale: number;
|
|
6
4
|
};
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
data: ValueData;
|
|
10
|
-
} | {
|
|
11
|
-
type: typeof TYPE_ERROR;
|
|
12
|
-
data: Error;
|
|
13
|
-
};
|
|
14
|
-
export default function createIconSourceCache(): {
|
|
15
|
-
setValue: (key: string, value: ValueData) => Map<string, Value>;
|
|
16
|
-
setError: (key: string, error: Error) => Map<string, Value>;
|
|
5
|
+
export declare function createIconSourceCache(): {
|
|
6
|
+
setValue: (key: string, value: ValueData) => Map<string, ValueData>;
|
|
17
7
|
get: (key: string) => ValueData | undefined;
|
|
18
8
|
};
|
|
19
9
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-icon-source-cache.d.ts","sourceRoot":"","sources":["../../../../src/create-icon-source-cache.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"create-icon-source-cache.d.ts","sourceRoot":"","sources":["../../../../src/create-icon-source-cache.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD,wBAAgB,qBAAqB;oBAGZ,MAAM,SAAS,SAAS;eAE7B,MAAM;EAGzB"}
|
|
@@ -10,12 +10,30 @@ type ExpoFontLoaderModule = {
|
|
|
10
10
|
getLoadedFonts: () => string[];
|
|
11
11
|
loadAsync: (fontFamilyAlias: string, asset: LoadAsyncAsset) => Promise<void>;
|
|
12
12
|
};
|
|
13
|
+
type RenderToImageResult = {
|
|
14
|
+
/**
|
|
15
|
+
* The file uri to the image.
|
|
16
|
+
*/
|
|
17
|
+
uri: string;
|
|
18
|
+
/**
|
|
19
|
+
* Image width in dp.
|
|
20
|
+
*/
|
|
21
|
+
width: number;
|
|
22
|
+
/**
|
|
23
|
+
* Image height in dp.
|
|
24
|
+
*/
|
|
25
|
+
height: number;
|
|
26
|
+
/**
|
|
27
|
+
* Scale factor of the image. Multiply the dp dimensions by this value to get the dimensions in pixels.
|
|
28
|
+
* */
|
|
29
|
+
scale: number;
|
|
30
|
+
};
|
|
13
31
|
type ExpoFontUtilsModule = {
|
|
14
32
|
renderToImageAsync: (glyph: string, options: {
|
|
15
33
|
fontFamily?: string;
|
|
16
34
|
size?: number;
|
|
17
35
|
color?: number;
|
|
18
|
-
}) => Promise<
|
|
36
|
+
}) => Promise<RenderToImageResult>;
|
|
19
37
|
};
|
|
20
38
|
declare global {
|
|
21
39
|
interface ExpoGlobal {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-loading-setting.d.ts","sourceRoot":"","sources":["../../../../../src/dynamicLoading/dynamic-loading-setting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,KAAK,eAAe,GAAG;IAGrB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACzF,CAAC;AAGF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,KAAK,oBAAoB,GAAG;IAG1B,cAAc,EAAE,MAAM,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,kBAAkB,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KACE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"dynamic-loading-setting.d.ts","sourceRoot":"","sources":["../../../../../src/dynamicLoading/dynamic-loading-setting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,KAAK,eAAe,GAAG;IAGrB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACzF,CAAC;AAGF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,KAAK,oBAAoB,GAAG;IAG1B,cAAc,EAAE,MAAM,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E,CAAC;AAIF,KAAK,mBAAmB,GAAG;IACzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;SAEK;IACL,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,kBAAkB,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KACE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnC,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB,OAAO,EAAE;YACP,SAAS,CAAC,EAAE,eAAe,CAAC;YAC5B,cAAc,CAAC,EAAE,oBAAoB,CAAC;YACtC,aAAa,CAAC,EAAE,mBAAmB,CAAC;SACrC,CAAC;KACH;IAGD,IAAI,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;CAClC;AAED,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE;QACP,SAAS,EAAE,eAAe,CAAC;QAC3B,cAAc,EAAE,oBAAoB,CAAC;KACtC,CAAC;CACH,CAAC;AAeF,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,GAAG,GAAG,SAAS,IAAI;IACxE,IAAI,EAAE;QACJ,OAAO,EAAE;YACP,aAAa,EAAE,mBAAmB,CAAC;SACpC,CAAC;KACH,CAAC;CACH,CAEA;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAI1G;AAQD,eAAO,MAAM,yBAAyB,eAAiD,CAAC;AAExF;;;;;;;KAOK;AACL,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,KAAG,OAgBzD,CAAC;AAEF;;KAEK;AACL,eAAO,MAAM,uBAAuB,QAAO,OAC6B,CAAC;AAEzE,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,KAAK,IAAI,CAAC;AAIlG;;KAEK;AACL,eAAO,MAAM,8BAA8B,GAAI,UAAU,aAAa,SAErE,CAAC;AAEF,eAAO,MAAM,gBAAgB,iCAAoC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-image-library.d.ts","sourceRoot":"","sources":["../../../../src/get-image-library.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,uBAAuB;qCAQS,MAAM,SAAS,MAAM,QAAQ,MAAM,SAAS,MAAM;;
|
|
1
|
+
{"version":3,"file":"get-image-library.d.ts","sourceRoot":"","sources":["../../../../src/get-image-library.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,uBAAuB;qCAQS,MAAM,SAAS,MAAM,QAAQ,MAAM,SAAS,MAAM;;CAkB9F,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TextStyle } from 'react-native';
|
|
2
|
-
import type createIconSourceCache from './create-icon-source-cache';
|
|
2
|
+
import type { createIconSourceCache } from './create-icon-source-cache';
|
|
3
3
|
export declare const getImageSourceSync: (imageSourceCache: ReturnType<typeof createIconSourceCache>, fontReference: string, glyph: string, size?: number, color?: TextStyle["color"]) => {
|
|
4
4
|
uri: string;
|
|
5
5
|
scale: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-image-source.d.ts","sourceRoot":"","sources":["../../../../src/get-image-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"get-image-source.d.ts","sourceRoot":"","sources":["../../../../src/get-image-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAIxE,eAAO,MAAM,kBAAkB,GAC7B,kBAAkB,UAAU,CAAC,OAAO,qBAAqB,CAAC,EAC1D,eAAe,MAAM,EACrB,OAAO,MAAM,EACb,aAAwB,EACxB,QAAO,SAAS,CAAC,OAAO,CAAsB;;;CAqB/C,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,kBAAkB,UAAU,CAAC,OAAO,qBAAqB,CAAC,EAC1D,eAAe,MAAM,EACrB,OAAO,MAAM,EACb,aAAwB,EACxB,QAAO,SAAS,CAAC,OAAO,CAAsB;;;EAgB/C,CAAC"}
|
|
@@ -1,19 +1,9 @@
|
|
|
1
|
-
declare const TYPE_VALUE = "value";
|
|
2
|
-
declare const TYPE_ERROR = "error";
|
|
3
1
|
type ValueData = {
|
|
4
2
|
uri: string;
|
|
5
3
|
scale: number;
|
|
6
4
|
};
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
data: ValueData;
|
|
10
|
-
} | {
|
|
11
|
-
type: typeof TYPE_ERROR;
|
|
12
|
-
data: Error;
|
|
13
|
-
};
|
|
14
|
-
export default function createIconSourceCache(): {
|
|
15
|
-
setValue: (key: string, value: ValueData) => Map<string, Value>;
|
|
16
|
-
setError: (key: string, error: Error) => Map<string, Value>;
|
|
5
|
+
export declare function createIconSourceCache(): {
|
|
6
|
+
setValue: (key: string, value: ValueData) => Map<string, ValueData>;
|
|
17
7
|
get: (key: string) => ValueData | undefined;
|
|
18
8
|
};
|
|
19
9
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-icon-source-cache.d.ts","sourceRoot":"","sources":["../../../../src/create-icon-source-cache.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"create-icon-source-cache.d.ts","sourceRoot":"","sources":["../../../../src/create-icon-source-cache.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD,wBAAgB,qBAAqB;oBAGZ,MAAM,SAAS,SAAS;eAE7B,MAAM;EAGzB"}
|
|
@@ -10,12 +10,30 @@ type ExpoFontLoaderModule = {
|
|
|
10
10
|
getLoadedFonts: () => string[];
|
|
11
11
|
loadAsync: (fontFamilyAlias: string, asset: LoadAsyncAsset) => Promise<void>;
|
|
12
12
|
};
|
|
13
|
+
type RenderToImageResult = {
|
|
14
|
+
/**
|
|
15
|
+
* The file uri to the image.
|
|
16
|
+
*/
|
|
17
|
+
uri: string;
|
|
18
|
+
/**
|
|
19
|
+
* Image width in dp.
|
|
20
|
+
*/
|
|
21
|
+
width: number;
|
|
22
|
+
/**
|
|
23
|
+
* Image height in dp.
|
|
24
|
+
*/
|
|
25
|
+
height: number;
|
|
26
|
+
/**
|
|
27
|
+
* Scale factor of the image. Multiply the dp dimensions by this value to get the dimensions in pixels.
|
|
28
|
+
* */
|
|
29
|
+
scale: number;
|
|
30
|
+
};
|
|
13
31
|
type ExpoFontUtilsModule = {
|
|
14
32
|
renderToImageAsync: (glyph: string, options: {
|
|
15
33
|
fontFamily?: string;
|
|
16
34
|
size?: number;
|
|
17
35
|
color?: number;
|
|
18
|
-
}) => Promise<
|
|
36
|
+
}) => Promise<RenderToImageResult>;
|
|
19
37
|
};
|
|
20
38
|
declare global {
|
|
21
39
|
interface ExpoGlobal {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-loading-setting.d.ts","sourceRoot":"","sources":["../../../../../src/dynamicLoading/dynamic-loading-setting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,KAAK,eAAe,GAAG;IAGrB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACzF,CAAC;AAGF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,KAAK,oBAAoB,GAAG;IAG1B,cAAc,EAAE,MAAM,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,kBAAkB,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KACE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"dynamic-loading-setting.d.ts","sourceRoot":"","sources":["../../../../../src/dynamicLoading/dynamic-loading-setting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,KAAK,eAAe,GAAG;IAGrB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACzF,CAAC;AAGF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,KAAK,oBAAoB,GAAG;IAG1B,cAAc,EAAE,MAAM,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E,CAAC;AAIF,KAAK,mBAAmB,GAAG;IACzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;SAEK;IACL,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,kBAAkB,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KACE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnC,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB,OAAO,EAAE;YACP,SAAS,CAAC,EAAE,eAAe,CAAC;YAC5B,cAAc,CAAC,EAAE,oBAAoB,CAAC;YACtC,aAAa,CAAC,EAAE,mBAAmB,CAAC;SACrC,CAAC;KACH;IAGD,IAAI,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;CAClC;AAED,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE;QACP,SAAS,EAAE,eAAe,CAAC;QAC3B,cAAc,EAAE,oBAAoB,CAAC;KACtC,CAAC;CACH,CAAC;AAeF,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,GAAG,GAAG,SAAS,IAAI;IACxE,IAAI,EAAE;QACJ,OAAO,EAAE;YACP,aAAa,EAAE,mBAAmB,CAAC;SACpC,CAAC;KACH,CAAC;CACH,CAEA;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAI1G;AAQD,eAAO,MAAM,yBAAyB,eAAiD,CAAC;AAExF;;;;;;;KAOK;AACL,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,KAAG,OAgBzD,CAAC;AAEF;;KAEK;AACL,eAAO,MAAM,uBAAuB,QAAO,OAC6B,CAAC;AAEzE,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,KAAK,IAAI,CAAC;AAIlG;;KAEK;AACL,eAAO,MAAM,8BAA8B,GAAI,UAAU,aAAa,SAErE,CAAC;AAEF,eAAO,MAAM,gBAAgB,iCAAoC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-image-library.d.ts","sourceRoot":"","sources":["../../../../src/get-image-library.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,uBAAuB;qCAQS,MAAM,SAAS,MAAM,QAAQ,MAAM,SAAS,MAAM;;
|
|
1
|
+
{"version":3,"file":"get-image-library.d.ts","sourceRoot":"","sources":["../../../../src/get-image-library.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,uBAAuB;qCAQS,MAAM,SAAS,MAAM,QAAQ,MAAM,SAAS,MAAM;;CAkB9F,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TextStyle } from 'react-native';
|
|
2
|
-
import type createIconSourceCache from './create-icon-source-cache';
|
|
2
|
+
import type { createIconSourceCache } from './create-icon-source-cache';
|
|
3
3
|
export declare const getImageSourceSync: (imageSourceCache: ReturnType<typeof createIconSourceCache>, fontReference: string, glyph: string, size?: number, color?: TextStyle["color"]) => {
|
|
4
4
|
uri: string;
|
|
5
5
|
scale: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-image-source.d.ts","sourceRoot":"","sources":["../../../../src/get-image-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"get-image-source.d.ts","sourceRoot":"","sources":["../../../../src/get-image-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAIxE,eAAO,MAAM,kBAAkB,GAC7B,kBAAkB,UAAU,CAAC,OAAO,qBAAqB,CAAC,EAC1D,eAAe,MAAM,EACrB,OAAO,MAAM,EACb,aAAwB,EACxB,QAAO,SAAS,CAAC,OAAO,CAAsB;;;CAqB/C,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,kBAAkB,UAAU,CAAC,OAAO,qBAAqB,CAAC,EAC1D,eAAe,MAAM,EACrB,OAAO,MAAM,EACb,aAAwB,EACxB,QAAO,SAAS,CAAC,OAAO,CAAsB;;;EAgB/C,CAAC"}
|
package/package.json
CHANGED
package/src/create-icon-set.tsx
CHANGED
|
@@ -3,7 +3,7 @@ import React, { forwardRef, type Ref, useEffect } from 'react';
|
|
|
3
3
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
4
4
|
import { Platform, Text, type TextProps, type TextStyle } from 'react-native';
|
|
5
5
|
|
|
6
|
-
import createIconSourceCache from './create-icon-source-cache';
|
|
6
|
+
import { createIconSourceCache } from './create-icon-source-cache';
|
|
7
7
|
import { DEFAULT_ICON_COLOR, DEFAULT_ICON_SIZE } from './defaults';
|
|
8
8
|
import { dynamicLoader } from './dynamicLoading/dynamic-font-loading';
|
|
9
9
|
import { isDynamicLoadingEnabled } from './dynamicLoading/dynamic-loading-setting';
|
|
@@ -1,29 +1,11 @@
|
|
|
1
|
-
const TYPE_VALUE = 'value';
|
|
2
|
-
const TYPE_ERROR = 'error';
|
|
3
|
-
|
|
4
1
|
type ValueData = { uri: string; scale: number };
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export default function createIconSourceCache() {
|
|
9
|
-
const cache = new Map<string, Value>();
|
|
10
|
-
|
|
11
|
-
const setValue = (key: string, value: ValueData) => cache.set(key, { type: TYPE_VALUE, data: value });
|
|
12
|
-
|
|
13
|
-
const setError = (key: string, error: Error) => cache.set(key, { type: TYPE_ERROR, data: error });
|
|
3
|
+
export function createIconSourceCache() {
|
|
4
|
+
const cache = new Map<string, ValueData>();
|
|
14
5
|
|
|
15
|
-
const
|
|
16
|
-
const value = cache.get(key);
|
|
17
|
-
if (!value) {
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
6
|
+
const setValue = (key: string, value: ValueData) => cache.set(key, value);
|
|
20
7
|
|
|
21
|
-
|
|
22
|
-
if (type === TYPE_ERROR) {
|
|
23
|
-
throw data;
|
|
24
|
-
}
|
|
25
|
-
return data;
|
|
26
|
-
};
|
|
8
|
+
const get = (key: string) => cache.get(key);
|
|
27
9
|
|
|
28
|
-
return { setValue,
|
|
10
|
+
return { setValue, get };
|
|
29
11
|
}
|
|
@@ -18,6 +18,28 @@ type ExpoFontLoaderModule = {
|
|
|
18
18
|
loadAsync: (fontFamilyAlias: string, asset: LoadAsyncAsset) => Promise<void>;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
+
// RenderToImageResult needs to be usable as the `source` prop for image,
|
|
22
|
+
// so it must stay compatible with ImageURISource type
|
|
23
|
+
type RenderToImageResult = {
|
|
24
|
+
/**
|
|
25
|
+
* The file uri to the image.
|
|
26
|
+
*/
|
|
27
|
+
uri: string;
|
|
28
|
+
/**
|
|
29
|
+
* Image width in dp.
|
|
30
|
+
*/
|
|
31
|
+
width: number;
|
|
32
|
+
/**
|
|
33
|
+
* Image height in dp.
|
|
34
|
+
*/
|
|
35
|
+
height: number;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Scale factor of the image. Multiply the dp dimensions by this value to get the dimensions in pixels.
|
|
39
|
+
* */
|
|
40
|
+
scale: number;
|
|
41
|
+
};
|
|
42
|
+
|
|
21
43
|
type ExpoFontUtilsModule = {
|
|
22
44
|
renderToImageAsync: (
|
|
23
45
|
glyph: string,
|
|
@@ -26,7 +48,7 @@ type ExpoFontUtilsModule = {
|
|
|
26
48
|
size?: number;
|
|
27
49
|
color?: number;
|
|
28
50
|
},
|
|
29
|
-
) => Promise<
|
|
51
|
+
) => Promise<RenderToImageResult>;
|
|
30
52
|
};
|
|
31
53
|
|
|
32
54
|
declare global {
|
package/src/get-image-library.ts
CHANGED
|
@@ -23,12 +23,14 @@ export const ensureGetImageAvailable = () => {
|
|
|
23
23
|
if (hasExpoRenderToImage) {
|
|
24
24
|
const { ExpoFontUtils } = globalRef.expo.modules;
|
|
25
25
|
return {
|
|
26
|
-
getImageForFont: async (fontReference: string, glyph: string, size: number, color: number) =>
|
|
27
|
-
ExpoFontUtils.renderToImageAsync(glyph, {
|
|
26
|
+
getImageForFont: async (fontReference: string, glyph: string, size: number, color: number) => {
|
|
27
|
+
const result = await ExpoFontUtils.renderToImageAsync(glyph, {
|
|
28
28
|
fontFamily: fontReference,
|
|
29
29
|
size,
|
|
30
30
|
color,
|
|
31
|
-
})
|
|
31
|
+
});
|
|
32
|
+
return result.uri;
|
|
33
|
+
},
|
|
32
34
|
getImageForFontSync: () => {
|
|
33
35
|
throw new Error(
|
|
34
36
|
'You attempted to call `getImageForFontSync`. Expo dev client with `@react-native-vector-icons/get-image` installed is required for this. Alternatively, call `getImageForFont` or generate the image yourself and bundle it with the app.',
|
|
@@ -37,6 +39,6 @@ export const ensureGetImageAvailable = () => {
|
|
|
37
39
|
};
|
|
38
40
|
}
|
|
39
41
|
throw new Error(
|
|
40
|
-
'Error in getImageSource / getImageSourceSync: You need to either (1) install `@react-native-vector-icons/get-image` or (2) use Expo SDK
|
|
42
|
+
'Error in getImageSource / getImageSourceSync: You need to either (1) install `@react-native-vector-icons/get-image` or (2) use Expo SDK 54+ (Expo dev client or Expo Go). Check your setup and rebuild the app.',
|
|
41
43
|
);
|
|
42
44
|
};
|
package/src/get-image-source.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { TextStyle } from 'react-native';
|
|
2
2
|
import { PixelRatio, processColor } from 'react-native';
|
|
3
3
|
|
|
4
|
-
import type createIconSourceCache from './create-icon-source-cache';
|
|
4
|
+
import type { createIconSourceCache } from './create-icon-source-cache';
|
|
5
5
|
import { DEFAULT_ICON_COLOR, DEFAULT_ICON_SIZE } from './defaults';
|
|
6
6
|
import { ensureGetImageAvailable } from './get-image-library';
|
|
7
7
|
|
|
@@ -19,24 +19,18 @@ export const getImageSourceSync = (
|
|
|
19
19
|
|
|
20
20
|
const maybeCachedValue = imageSourceCache.get(cacheKey);
|
|
21
21
|
if (maybeCachedValue !== undefined) {
|
|
22
|
-
// FIXME: Should this check if it's an error and throw it again?
|
|
23
22
|
return maybeCachedValue;
|
|
24
23
|
}
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return value;
|
|
36
|
-
} catch (error) {
|
|
37
|
-
imageSourceCache.setError(cacheKey, error as Error);
|
|
38
|
-
throw error;
|
|
39
|
-
}
|
|
25
|
+
const imagePath = NativeIconAPI.getImageForFontSync(
|
|
26
|
+
fontReference,
|
|
27
|
+
glyph,
|
|
28
|
+
size,
|
|
29
|
+
processedColor as number, // FIXME what if a non existent colour was passed in?,
|
|
30
|
+
);
|
|
31
|
+
const value = { uri: imagePath, scale: PixelRatio.get() };
|
|
32
|
+
imageSourceCache.setValue(cacheKey, value);
|
|
33
|
+
return value;
|
|
40
34
|
};
|
|
41
35
|
|
|
42
36
|
export const getImageSource = async (
|
|
@@ -53,22 +47,11 @@ export const getImageSource = async (
|
|
|
53
47
|
|
|
54
48
|
const maybeCachedValue = imageSourceCache.get(cacheKey);
|
|
55
49
|
if (maybeCachedValue !== undefined) {
|
|
56
|
-
// FIXME: Should this check if it's an error and throw it again?
|
|
57
50
|
return maybeCachedValue;
|
|
58
51
|
}
|
|
59
52
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
size,
|
|
65
|
-
processedColor as number, // FIXME what if a non existent colour was passed in?
|
|
66
|
-
);
|
|
67
|
-
const value = { uri: imagePath, scale: PixelRatio.get() };
|
|
68
|
-
imageSourceCache.setValue(cacheKey, value);
|
|
69
|
-
return value;
|
|
70
|
-
} catch (error) {
|
|
71
|
-
imageSourceCache.setError(cacheKey, error as Error);
|
|
72
|
-
throw error;
|
|
73
|
-
}
|
|
53
|
+
const imagePath = await NativeIconAPI.getImageForFont(fontReference, glyph, size, processedColor as number);
|
|
54
|
+
const value = { uri: imagePath, scale: PixelRatio.get() };
|
|
55
|
+
imageSourceCache.setValue(cacheKey, value);
|
|
56
|
+
return value;
|
|
74
57
|
};
|