react-native-nitro-image-pipeline 1.6.0 → 1.7.0

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.
Files changed (78) hide show
  1. package/README.md +88 -13
  2. package/android/src/main/java/com/margelo/nitro/nitroimagepipeline/HybridNitroImagePipeline.kt +51 -20
  3. package/android/src/main/java/com/margelo/nitro/nitroimagepipeline/PipelineImageLoader.kt +47 -8
  4. package/android/src/main/java/com/margelo/nitro/nitroimagepipeline/transform/FitGeometry.kt +104 -0
  5. package/android/src/main/java/com/margelo/nitro/nitroimagepipeline/transform/PipelineRoundedCornersTransformation.kt +103 -0
  6. package/android/src/main/java/com/margelo/nitro/nitroimagepipeline/transform/ResizeTransformation.kt +69 -16
  7. package/ios/FitResizeProcessor.swift +127 -0
  8. package/ios/HybridNitroImagePipeline.swift +41 -15
  9. package/ios/PipelineImageLoader.swift +107 -17
  10. package/lib/commonjs/NativePipelineImage.js +18 -3
  11. package/lib/commonjs/NativePipelineImage.js.map +1 -1
  12. package/lib/commonjs/PipelineImage.js +13 -1
  13. package/lib/commonjs/PipelineImage.js.map +1 -1
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/resizeForStyle.js +3 -1
  16. package/lib/commonjs/resizeForStyle.js.map +1 -1
  17. package/lib/commonjs/useImage.js +6 -2
  18. package/lib/commonjs/useImage.js.map +1 -1
  19. package/lib/commonjs/usePipelineImageLoader.js +107 -9
  20. package/lib/commonjs/usePipelineImageLoader.js.map +1 -1
  21. package/lib/module/NativePipelineImage.js +18 -3
  22. package/lib/module/NativePipelineImage.js.map +1 -1
  23. package/lib/module/PipelineImage.js +13 -1
  24. package/lib/module/PipelineImage.js.map +1 -1
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/module/resizeForStyle.js +3 -1
  27. package/lib/module/resizeForStyle.js.map +1 -1
  28. package/lib/module/useImage.js +6 -2
  29. package/lib/module/useImage.js.map +1 -1
  30. package/lib/module/usePipelineImageLoader.js +108 -10
  31. package/lib/module/usePipelineImageLoader.js.map +1 -1
  32. package/lib/typescript/src/NativePipelineImage.d.ts +44 -3
  33. package/lib/typescript/src/NativePipelineImage.d.ts.map +1 -1
  34. package/lib/typescript/src/PipelineImage.d.ts +28 -1
  35. package/lib/typescript/src/PipelineImage.d.ts.map +1 -1
  36. package/lib/typescript/src/index.d.ts +1 -1
  37. package/lib/typescript/src/index.d.ts.map +1 -1
  38. package/lib/typescript/src/resizeForStyle.d.ts +3 -1
  39. package/lib/typescript/src/resizeForStyle.d.ts.map +1 -1
  40. package/lib/typescript/src/specs/nitro-image-toolkit.nitro.d.ts +83 -8
  41. package/lib/typescript/src/specs/nitro-image-toolkit.nitro.d.ts.map +1 -1
  42. package/lib/typescript/src/useImage.d.ts +3 -2
  43. package/lib/typescript/src/useImage.d.ts.map +1 -1
  44. package/lib/typescript/src/usePipelineImageLoader.d.ts +3 -1
  45. package/lib/typescript/src/usePipelineImageLoader.d.ts.map +1 -1
  46. package/nitrogen/generated/android/NitroImagePipelineOnLoad.cpp +4 -0
  47. package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +75 -0
  48. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
  49. package/nitrogen/generated/android/c++/JHybridNitroImagePipelineSpec.cpp +8 -0
  50. package/nitrogen/generated/android/c++/JOptions.hpp +2 -0
  51. package/nitrogen/generated/android/c++/JResizeFit.hpp +64 -0
  52. package/nitrogen/generated/android/c++/JResizeOptions.hpp +14 -4
  53. package/nitrogen/generated/android/c++/JViewOptions.hpp +42 -3
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroimagepipeline/Func_void_double_double.kt +78 -0
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroimagepipeline/Func_void_std__string.kt +78 -0
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroimagepipeline/ResizeFit.kt +25 -0
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroimagepipeline/ResizeOptions.kt +14 -4
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroimagepipeline/ViewOptions.kt +29 -5
  59. package/nitrogen/generated/ios/NitroImagePipeline-Swift-Cxx-Bridge.cpp +16 -0
  60. package/nitrogen/generated/ios/NitroImagePipeline-Swift-Cxx-Bridge.hpp +107 -0
  61. package/nitrogen/generated/ios/NitroImagePipeline-Swift-Cxx-Umbrella.hpp +4 -0
  62. package/nitrogen/generated/ios/c++/HybridNitroImagePipelineSpecSwift.hpp +4 -0
  63. package/nitrogen/generated/ios/swift/Func_void_double_double.swift +46 -0
  64. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
  65. package/nitrogen/generated/ios/swift/ResizeFit.swift +48 -0
  66. package/nitrogen/generated/ios/swift/ResizeOptions.swift +31 -2
  67. package/nitrogen/generated/ios/swift/ViewOptions.swift +82 -1
  68. package/nitrogen/generated/shared/c++/ResizeFit.hpp +84 -0
  69. package/nitrogen/generated/shared/c++/ResizeOptions.hpp +14 -4
  70. package/nitrogen/generated/shared/c++/ViewOptions.hpp +24 -3
  71. package/package.json +1 -1
  72. package/src/NativePipelineImage.tsx +67 -3
  73. package/src/PipelineImage.tsx +39 -1
  74. package/src/index.ts +1 -0
  75. package/src/resizeForStyle.ts +3 -1
  76. package/src/specs/nitro-image-toolkit.nitro.ts +84 -8
  77. package/src/useImage.ts +13 -3
  78. package/src/usePipelineImageLoader.ts +115 -8
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_reactNativeNitroImage","_resizeForStyle","_useImage","_jsxRuntime","sameSize","a","b","width","height","scaleRadius","cornerRadius","scale","topLeft","topRight","bottomLeft","bottomRight","PipelineImage","exports","forwardRef","url","blur","cache","onLoad","onError","style","onLayout","viewProps","ref","PixelRatio","get","styleSize","resizeForStyle","layoutSize","setLayoutSize","useState","undefined","resize","effectiveCornerRadius","cornerRadiusForStyle","image","error","useImage","enabled","onLoadRef","useRef","onErrorRef","useEffect","current","handleLayout","event","nativeEvent","layout","next","resizeForLayout","prev","jsx","NativeNitroImage","displayName"],"sourceRoot":"../../src","sources":["PipelineImage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNativeNitroImage","_resizeForStyle","_useImage","_jsxRuntime","sameSize","a","b","width","height","scaleRadius","cornerRadius","scale","topLeft","topRight","bottomLeft","bottomRight","PipelineImage","exports","forwardRef","url","blur","cache","fit","allowUpscale","onLoad","onError","style","onLayout","resizeMode","viewProps","ref","PixelRatio","get","styleSize","resizeForStyle","layoutSize","setLayoutSize","useState","undefined","size","effectiveFit","resize","effectiveCornerRadius","cornerRadiusForStyle","image","error","useImage","enabled","onLoadRef","useRef","onErrorRef","useEffect","current","handleLayout","event","nativeEvent","layout","next","resizeForLayout","prev","jsx","NativeNitroImage","displayName"],"sourceRoot":"../../src","sources":["PipelineImage.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_NativePipelineImage","require","_NitroImagePipeline","_PipelineImage","_resolveImageSource","_resizeForStyle","_useImage","_usePipelineImageLoader"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAKA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAKA,IAAAG,mBAAA,GAAAH,OAAA;AAKA,IAAAI,eAAA,GAAAJ,OAAA;AAYA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,uBAAA,GAAAN,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_NativePipelineImage","require","_NitroImagePipeline","_PipelineImage","_resolveImageSource","_resizeForStyle","_useImage","_usePipelineImageLoader"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAKA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAKA,IAAAG,mBAAA,GAAAH,OAAA;AAKA,IAAAI,eAAA,GAAAJ,OAAA;AAaA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,uBAAA,GAAAN,OAAA","ignoreList":[]}
@@ -10,7 +10,9 @@ var _reactNative = require("react-native");
10
10
  /**
11
11
  * Converts a layout size in points (dp) to the pipeline's `resize` option in
12
12
  * whole bitmap pixels using `PixelRatio.getPixelSizeForLayoutSize`. Returns
13
- * `undefined` unless both values are positive numbers.
13
+ * `undefined` unless both values are positive numbers. Spread a `fit` into
14
+ * the result for the other resize modes — under `contain` and `center` the
15
+ * size is the box the bitmap fits in, not necessarily its final size.
14
16
  */
15
17
  function resizeForLayout(width, height) {
16
18
  if (typeof width !== 'number' || typeof height !== 'number') {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","resizeForLayout","width","height","undefined","pixelWidth","PixelRatio","getPixelSizeForLayoutSize","pixelHeight","resizeForStyle","style","flat","StyleSheet","flatten","cornerRadiusForStyle","base","borderRadius","topLeft","borderTopLeftRadius","topRight","borderTopRightRadius","bottomLeft","borderBottomLeftRadius","bottomRight","borderBottomRightRadius"],"sourceRoot":"../../src","sources":["resizeForStyle.ts"],"mappings":";;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAYA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAC7BC,KAAc,EACdC,MAAe,EACY;EAC3B,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAI,OAAOC,MAAM,KAAK,QAAQ,EAAE;IAC3D,OAAOC,SAAS;EAClB;EACA,MAAMC,UAAU,GAAGC,uBAAU,CAACC,yBAAyB,CAACL,KAAK,CAAC;EAC9D,MAAMM,WAAW,GAAGF,uBAAU,CAACC,yBAAyB,CAACJ,MAAM,CAAC;EAChE,OAAOE,UAAU,GAAG,CAAC,IAAIG,WAAW,GAAG,CAAC,GACpC;IAAEN,KAAK,EAAEG,UAAU;IAAEF,MAAM,EAAEK;EAAY,CAAC,GAC1CJ,SAAS;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,cAAcA,CAC5BC,KAA2B,EACA;EAC3B,MAAMC,IAAI,GAAGC,uBAAU,CAACC,OAAO,CAACH,KAAK,CAAC;EACtC,OAAOT,eAAe,CAACU,IAAI,EAAET,KAAK,EAAES,IAAI,EAAER,MAAM,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASW,oBAAoBA,CAClCJ,KAA2B,EACO;EAClC,MAAMC,IAAI,GAAGC,uBAAU,CAACC,OAAO,CAACH,KAAK,CAAC;EACtC,MAAMK,IAAI,GACR,OAAOJ,IAAI,EAAEK,YAAY,KAAK,QAAQ,GAAGL,IAAI,CAACK,YAAY,GAAGZ,SAAS;EACxE,MAAMa,OAAO,GACX,OAAON,IAAI,EAAEO,mBAAmB,KAAK,QAAQ,GACzCP,IAAI,CAACO,mBAAmB,GACxBd,SAAS;EACf,MAAMe,QAAQ,GACZ,OAAOR,IAAI,EAAES,oBAAoB,KAAK,QAAQ,GAC1CT,IAAI,CAACS,oBAAoB,GACzBhB,SAAS;EACf,MAAMiB,UAAU,GACd,OAAOV,IAAI,EAAEW,sBAAsB,KAAK,QAAQ,GAC5CX,IAAI,CAACW,sBAAsB,GAC3BlB,SAAS;EACf,MAAMmB,WAAW,GACf,OAAOZ,IAAI,EAAEa,uBAAuB,KAAK,QAAQ,GAC7Cb,IAAI,CAACa,uBAAuB,GAC5BpB,SAAS;EAEf,IACEa,OAAO,KAAKb,SAAS,IACrBe,QAAQ,KAAKf,SAAS,IACtBiB,UAAU,KAAKjB,SAAS,IACxBmB,WAAW,KAAKnB,SAAS,EACzB;IACA,OAAOW,IAAI;EACb;EAEA,OAAO;IACLE,OAAO,EAAEA,OAAO,IAAIF,IAAI;IACxBI,QAAQ,EAAEA,QAAQ,IAAIJ,IAAI;IAC1BM,UAAU,EAAEA,UAAU,IAAIN,IAAI;IAC9BQ,WAAW,EAAEA,WAAW,IAAIR;EAC9B,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","resizeForLayout","width","height","undefined","pixelWidth","PixelRatio","getPixelSizeForLayoutSize","pixelHeight","resizeForStyle","style","flat","StyleSheet","flatten","cornerRadiusForStyle","base","borderRadius","topLeft","borderTopLeftRadius","topRight","borderTopRightRadius","bottomLeft","borderBottomLeftRadius","bottomRight","borderBottomRightRadius"],"sourceRoot":"../../src","sources":["resizeForStyle.ts"],"mappings":";;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAC7BC,KAAc,EACdC,MAAe,EACY;EAC3B,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAI,OAAOC,MAAM,KAAK,QAAQ,EAAE;IAC3D,OAAOC,SAAS;EAClB;EACA,MAAMC,UAAU,GAAGC,uBAAU,CAACC,yBAAyB,CAACL,KAAK,CAAC;EAC9D,MAAMM,WAAW,GAAGF,uBAAU,CAACC,yBAAyB,CAACJ,MAAM,CAAC;EAChE,OAAOE,UAAU,GAAG,CAAC,IAAIG,WAAW,GAAG,CAAC,GACpC;IAAEN,KAAK,EAAEG,UAAU;IAAEF,MAAM,EAAEK;EAAY,CAAC,GAC1CJ,SAAS;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,cAAcA,CAC5BC,KAA2B,EACA;EAC3B,MAAMC,IAAI,GAAGC,uBAAU,CAACC,OAAO,CAACH,KAAK,CAAC;EACtC,OAAOT,eAAe,CAACU,IAAI,EAAET,KAAK,EAAES,IAAI,EAAER,MAAM,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASW,oBAAoBA,CAClCJ,KAA2B,EACO;EAClC,MAAMC,IAAI,GAAGC,uBAAU,CAACC,OAAO,CAACH,KAAK,CAAC;EACtC,MAAMK,IAAI,GACR,OAAOJ,IAAI,EAAEK,YAAY,KAAK,QAAQ,GAAGL,IAAI,CAACK,YAAY,GAAGZ,SAAS;EACxE,MAAMa,OAAO,GACX,OAAON,IAAI,EAAEO,mBAAmB,KAAK,QAAQ,GACzCP,IAAI,CAACO,mBAAmB,GACxBd,SAAS;EACf,MAAMe,QAAQ,GACZ,OAAOR,IAAI,EAAES,oBAAoB,KAAK,QAAQ,GAC1CT,IAAI,CAACS,oBAAoB,GACzBhB,SAAS;EACf,MAAMiB,UAAU,GACd,OAAOV,IAAI,EAAEW,sBAAsB,KAAK,QAAQ,GAC5CX,IAAI,CAACW,sBAAsB,GAC3BlB,SAAS;EACf,MAAMmB,WAAW,GACf,OAAOZ,IAAI,EAAEa,uBAAuB,KAAK,QAAQ,GAC7Cb,IAAI,CAACa,uBAAuB,GAC5BpB,SAAS;EAEf,IACEa,OAAO,KAAKb,SAAS,IACrBe,QAAQ,KAAKf,SAAS,IACtBiB,UAAU,KAAKjB,SAAS,IACxBmB,WAAW,KAAKnB,SAAS,EACzB;IACA,OAAOW,IAAI;EACb;EAEA,OAAO;IACLE,OAAO,EAAEA,OAAO,IAAIF,IAAI;IACxBI,QAAQ,EAAEA,QAAQ,IAAIJ,IAAI;IAC1BM,UAAU,EAAEA,UAAU,IAAIN,IAAI;IAC9BQ,WAAW,EAAEA,WAAW,IAAIR;EAC9B,CAAC;AACH","ignoreList":[]}
@@ -42,6 +42,8 @@ function useImage({
42
42
  } = isUniformRadius ? {} : cornerRadius;
43
43
  const resizeWidth = resize?.width ?? 0;
44
44
  const resizeHeight = resize?.height ?? 0;
45
+ const resizeFit = resize?.fit;
46
+ const resizeAllowUpscale = resize?.allowUpscale;
45
47
  (0, _react.useEffect)(() => {
46
48
  let cancelled = false;
47
49
  // Only reset to the loading state when the URL changes; for same-URL
@@ -69,7 +71,9 @@ function useImage({
69
71
  },
70
72
  resize: resizeWidth > 0 && resizeHeight > 0 ? {
71
73
  width: resizeWidth,
72
- height: resizeHeight
74
+ height: resizeHeight,
75
+ fit: resizeFit,
76
+ allowUpscale: resizeAllowUpscale
73
77
  } : undefined,
74
78
  cache
75
79
  });
@@ -93,7 +97,7 @@ function useImage({
93
97
  return () => {
94
98
  cancelled = true;
95
99
  };
96
- }, [url, blur, isUniformRadius, uniformRadius, topLeft, topRight, bottomLeft, bottomRight, resizeWidth, resizeHeight, cache, enabled]);
100
+ }, [url, blur, isUniformRadius, uniformRadius, topLeft, topRight, bottomLeft, bottomRight, resizeWidth, resizeHeight, resizeFit, resizeAllowUpscale, cache, enabled]);
97
101
  return image;
98
102
  }
99
103
  //# sourceMappingURL=useImage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_NitroImagePipeline","_resolveImageSource","useImage","url","blur","cornerRadius","resize","cache","enabled","image","setImage","useState","undefined","error","loadedUrlRef","useRef","isUniformRadius","uniformRadius","topLeft","topRight","bottomLeft","bottomRight","resizeWidth","width","resizeHeight","height","useEffect","cancelled","current","result","NitroImagePipeline","loadImage","resolveImageUrl","e","Error"],"sourceRoot":"../../src","sources":["useImage.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,QAAQA,CAAC;EACvBC,GAAG;EACHC,IAAI,GAAG,CAAC;EACRC,YAAY,GAAG,CAAC;EAChBC,MAAM;EACNC,KAAK;EACLC,OAAO,GAAG;AAmCZ,CAAC,EAAU;EACT,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,eAAQ,EAAS;IACzCF,KAAK,EAAEG,SAAS;IAChBC,KAAK,EAAED;EACT,CAAC,CAAC;EACF,MAAME,YAAY,GAAG,IAAAC,aAAM,EAACZ,GAAG,CAAC;;EAEhC;EACA;EACA,MAAMa,eAAe,GAAG,OAAOX,YAAY,KAAK,QAAQ;EACxD,MAAMY,aAAa,GAAGD,eAAe,GAAGX,YAAY,GAAG,CAAC;EACxD,MAAM;IACJa,OAAO,GAAG,CAAC;IACXC,QAAQ,GAAG,CAAC;IACZC,UAAU,GAAG,CAAC;IACdC,WAAW,GAAG;EAChB,CAAC,GAAGL,eAAe,GAAG,CAAC,CAAC,GAAGX,YAAY;EACvC,MAAMiB,WAAW,GAAGhB,MAAM,EAAEiB,KAAK,IAAI,CAAC;EACtC,MAAMC,YAAY,GAAGlB,MAAM,EAAEmB,MAAM,IAAI,CAAC;EAExC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIC,SAAS,GAAG,KAAK;IACrB;IACA;IACA;IACA,IAAIb,YAAY,CAACc,OAAO,KAAKzB,GAAG,EAAE;MAChCW,YAAY,CAACc,OAAO,GAAGzB,GAAG;MAC1BO,QAAQ,CAAC;QAAED,KAAK,EAAEG,SAAS;QAAEC,KAAK,EAAED;MAAU,CAAC,CAAC;IAClD;IAEA,IAAIJ,OAAO,EAAE;MACX,CAAC,YAAY;QACX,IAAI;UACF;UACA;UACA,MAAMqB,MAAM,GAAG,MAAMC,sCAAkB,CAACC,SAAS,CAC/C,IAAAC,mCAAe,EAAC7B,GAAG,CAAC,EACpB;YACEC,IAAI;YACJC,YAAY,EAAEW,eAAe,GACzBC,aAAa,GACb;cAAEC,OAAO;cAAEC,QAAQ;cAAEC,UAAU;cAAEC;YAAY,CAAC;YAClDf,MAAM,EACJgB,WAAW,GAAG,CAAC,IAAIE,YAAY,GAAG,CAAC,GAC/B;cAAED,KAAK,EAAED,WAAW;cAAEG,MAAM,EAAED;YAAa,CAAC,GAC5CZ,SAAS;YACfL;UACF,CACF,CAAC;UAED,IAAI,CAACoB,SAAS,EAAE;YACdjB,QAAQ,CAAC;cAAED,KAAK,EAAEoB,MAAM;cAAEhB,KAAK,EAAED;YAAU,CAAC,CAAC;UAC/C;QACF,CAAC,CAAC,OAAOqB,CAAC,EAAE;UACV,MAAMpB,KAAK,GAAGoB,CAAC,YAAYC,KAAK,GAAGD,CAAC,GAAG,IAAIC,KAAK,CAAC,GAAGD,CAAC,EAAE,CAAC;UACxD,IAAI,CAACN,SAAS,EAAE;YACdjB,QAAQ,CAAC;cAAED,KAAK,EAAEG,SAAS;cAAEC,KAAK,EAAEA;YAAM,CAAC,CAAC;UAC9C;QACF;MACF,CAAC,EAAE,CAAC;IACN;IAEA,OAAO,MAAM;MACXc,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CACDxB,GAAG,EACHC,IAAI,EACJY,eAAe,EACfC,aAAa,EACbC,OAAO,EACPC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,WAAW,EACXE,YAAY,EACZjB,KAAK,EACLC,OAAO,CACR,CAAC;EAEF,OAAOC,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_NitroImagePipeline","_resolveImageSource","useImage","url","blur","cornerRadius","resize","cache","enabled","image","setImage","useState","undefined","error","loadedUrlRef","useRef","isUniformRadius","uniformRadius","topLeft","topRight","bottomLeft","bottomRight","resizeWidth","width","resizeHeight","height","resizeFit","fit","resizeAllowUpscale","allowUpscale","useEffect","cancelled","current","result","NitroImagePipeline","loadImage","resolveImageUrl","e","Error"],"sourceRoot":"../../src","sources":["useImage.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,QAAQA,CAAC;EACvBC,GAAG;EACHC,IAAI,GAAG,CAAC;EACRC,YAAY,GAAG,CAAC;EAChBC,MAAM;EACNC,KAAK;EACLC,OAAO,GAAG;AAoCZ,CAAC,EAAU;EACT,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,eAAQ,EAAS;IACzCF,KAAK,EAAEG,SAAS;IAChBC,KAAK,EAAED;EACT,CAAC,CAAC;EACF,MAAME,YAAY,GAAG,IAAAC,aAAM,EAACZ,GAAG,CAAC;;EAEhC;EACA;EACA,MAAMa,eAAe,GAAG,OAAOX,YAAY,KAAK,QAAQ;EACxD,MAAMY,aAAa,GAAGD,eAAe,GAAGX,YAAY,GAAG,CAAC;EACxD,MAAM;IACJa,OAAO,GAAG,CAAC;IACXC,QAAQ,GAAG,CAAC;IACZC,UAAU,GAAG,CAAC;IACdC,WAAW,GAAG;EAChB,CAAC,GAAGL,eAAe,GAAG,CAAC,CAAC,GAAGX,YAAY;EACvC,MAAMiB,WAAW,GAAGhB,MAAM,EAAEiB,KAAK,IAAI,CAAC;EACtC,MAAMC,YAAY,GAAGlB,MAAM,EAAEmB,MAAM,IAAI,CAAC;EACxC,MAAMC,SAAS,GAAGpB,MAAM,EAAEqB,GAAG;EAC7B,MAAMC,kBAAkB,GAAGtB,MAAM,EAAEuB,YAAY;EAE/C,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIC,SAAS,GAAG,KAAK;IACrB;IACA;IACA;IACA,IAAIjB,YAAY,CAACkB,OAAO,KAAK7B,GAAG,EAAE;MAChCW,YAAY,CAACkB,OAAO,GAAG7B,GAAG;MAC1BO,QAAQ,CAAC;QAAED,KAAK,EAAEG,SAAS;QAAEC,KAAK,EAAED;MAAU,CAAC,CAAC;IAClD;IAEA,IAAIJ,OAAO,EAAE;MACX,CAAC,YAAY;QACX,IAAI;UACF;UACA;UACA,MAAMyB,MAAM,GAAG,MAAMC,sCAAkB,CAACC,SAAS,CAC/C,IAAAC,mCAAe,EAACjC,GAAG,CAAC,EACpB;YACEC,IAAI;YACJC,YAAY,EAAEW,eAAe,GACzBC,aAAa,GACb;cAAEC,OAAO;cAAEC,QAAQ;cAAEC,UAAU;cAAEC;YAAY,CAAC;YAClDf,MAAM,EACJgB,WAAW,GAAG,CAAC,IAAIE,YAAY,GAAG,CAAC,GAC/B;cACED,KAAK,EAAED,WAAW;cAClBG,MAAM,EAAED,YAAY;cACpBG,GAAG,EAAED,SAAS;cACdG,YAAY,EAAED;YAChB,CAAC,GACDhB,SAAS;YACfL;UACF,CACF,CAAC;UAED,IAAI,CAACwB,SAAS,EAAE;YACdrB,QAAQ,CAAC;cAAED,KAAK,EAAEwB,MAAM;cAAEpB,KAAK,EAAED;YAAU,CAAC,CAAC;UAC/C;QACF,CAAC,CAAC,OAAOyB,CAAC,EAAE;UACV,MAAMxB,KAAK,GAAGwB,CAAC,YAAYC,KAAK,GAAGD,CAAC,GAAG,IAAIC,KAAK,CAAC,GAAGD,CAAC,EAAE,CAAC;UACxD,IAAI,CAACN,SAAS,EAAE;YACdrB,QAAQ,CAAC;cAAED,KAAK,EAAEG,SAAS;cAAEC,KAAK,EAAEA;YAAM,CAAC,CAAC;UAC9C;QACF;MACF,CAAC,EAAE,CAAC;IACN;IAEA,OAAO,MAAM;MACXkB,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CACD5B,GAAG,EACHC,IAAI,EACJY,eAAe,EACfC,aAAa,EACbC,OAAO,EACPC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,WAAW,EACXE,YAAY,EACZE,SAAS,EACTE,kBAAkB,EAClBrB,KAAK,EACLC,OAAO,CACR,CAAC;EAEF,OAAOC,KAAK;AACd","ignoreList":[]}
@@ -7,6 +7,31 @@ exports.usePipelineImageLoader = usePipelineImageLoader;
7
7
  var _react = require("react");
8
8
  var _NitroImagePipeline = require("./NitroImagePipeline");
9
9
  var _resolveImageSource = require("./resolveImageSource");
10
+ // Identifies a loader in the callbacks below without them capturing it. A
11
+ // callback the native loader owns that captured the loader back would be a
12
+ // cycle across the language boundary — neither side collectable, and the JS
13
+ // runtime left to take it apart at teardown.
14
+ let nextLoaderToken = 0;
15
+ /**
16
+ * The callbacks handed to a native loader. Built out here, where the scope
17
+ * holds nothing but the token and the two refs, so the loader can't end up
18
+ * captured by a callback it owns.
19
+ */
20
+ function makeReporters(token, activeToken, callbacks) {
21
+ return {
22
+ onLoad: (width, height) => {
23
+ if (activeToken.current === token) {
24
+ callbacks.current.onLoad?.(width, height);
25
+ }
26
+ },
27
+ onError: message => {
28
+ if (activeToken.current === token) {
29
+ callbacks.current.onError?.(message);
30
+ }
31
+ }
32
+ };
33
+ }
34
+
10
35
  /**
11
36
  * Creates (and memoizes) an {@linkcode ImageLoader} for `source` — a URL
12
37
  * string or a `require()`d asset, see {@linkcode ImageSource} — to pass to
@@ -17,7 +42,9 @@ var _resolveImageSource = require("./resolveImageSource");
17
42
  *
18
43
  * `blur`/`cornerRadius` are in **points** (unlike `useImage`, where they are
19
44
  * bitmap pixels); the screen scale is applied natively. Inline object
20
- * literals are fine — options are compared by value, not identity.
45
+ * literals are fine — options are compared by value, not identity, and the
46
+ * `onLoad`/`onError` callbacks are read through a ref, so inline arrows don't
47
+ * recreate the loader either.
21
48
  */
22
49
  function usePipelineImageLoader(source, options) {
23
50
  // Split the options into primitives (like useImage does) so an inline
@@ -37,7 +64,42 @@ function usePipelineImageLoader(source, options) {
37
64
  } = isUniformRadius || cornerRadius === undefined ? {} : cornerRadius;
38
65
  const resizeWidth = options?.resize?.width;
39
66
  const resizeHeight = options?.resize?.height;
40
- return (0, _react.useMemo)(() => {
67
+ const resizeFit = options?.resize?.fit;
68
+ const resizeAllowUpscale = options?.resize?.allowUpscale;
69
+ const fit = options?.fit;
70
+ const allowUpscale = options?.allowUpscale;
71
+ const onLoad = options?.onLoad;
72
+ const onError = options?.onError;
73
+ // Only *whether* a callback is set can change the loader: what the native
74
+ // side gets is a wrapper that reads the latest callbacks from a ref (like
75
+ // PipelineImage does). So an inline arrow — a new identity every render —
76
+ // doesn't recreate the loader and re-trigger the native load.
77
+ const hasOnLoad = onLoad !== undefined;
78
+ const hasOnError = onError !== undefined;
79
+ const callbacks = (0, _react.useRef)({
80
+ onLoad,
81
+ onError
82
+ });
83
+ // A layout effect, not a passive one: passive effects are flushed in a later
84
+ // task, so a load reported between the commit and that flush would read the
85
+ // previous render's callbacks — a callback added alongside a new loader
86
+ // could miss its only event. This runs in the same task as the commit, and
87
+ // the view can't reach the loader before the commit installs it, so the ref
88
+ // is always current by the time native calls back. (Assigning it during
89
+ // render instead would mutate on renders React throws away.)
90
+ (0, _react.useLayoutEffect)(() => {
91
+ callbacks.current = {
92
+ onLoad,
93
+ onError
94
+ };
95
+ });
96
+ // The token of the loader the view is currently on. Swapping loaders (a
97
+ // changed url or options) never drops the old one — the view just stops
98
+ // referring to it — so a load it already had in flight can still report.
99
+ // Without this check the wrappers, which read the latest callbacks, would
100
+ // hand the previous image's size to the current `onLoad`.
101
+ const activeToken = (0, _react.useRef)(-1);
102
+ const memoized = (0, _react.useMemo)(() => {
41
103
  // Runs during render, so an unregistered `require()` id must not throw:
42
104
  // it becomes a URL the native loader fails on at load time instead.
43
105
  const url = (0, _resolveImageSource.resolveImageUrlOrFallback)(source);
@@ -47,28 +109,64 @@ function usePipelineImageLoader(source, options) {
47
109
  bottomLeft,
48
110
  bottomRight
49
111
  } : undefined;
112
+ // What is loaded — the callbacks are deliberately not part of it, so two
113
+ // loaders that differ only in them are the same image.
50
114
  const stableOptions = {
51
115
  blur,
52
116
  cache,
53
117
  cornerRadius: cornerRadiusOption,
54
118
  resize: resizeWidth !== undefined && resizeHeight !== undefined ? {
55
119
  width: resizeWidth,
56
- height: resizeHeight
57
- } : undefined
120
+ height: resizeHeight,
121
+ fit: resizeFit,
122
+ allowUpscale: resizeAllowUpscale
123
+ } : undefined,
124
+ fit,
125
+ allowUpscale
58
126
  };
59
- const loader = _NitroImagePipeline.NitroImagePipeline.createImageLoader(url, stableOptions);
127
+ const token = nextLoaderToken++;
128
+ // The reporters read the refs, but only when the native side calls them —
129
+ // the rule can't see that they aren't called here.
130
+ // oxlint-disable-next-line react/refs
131
+ const reporters = makeReporters(token, activeToken, callbacks);
132
+ const loader = _NitroImagePipeline.NitroImagePipeline.createImageLoader(url, {
133
+ ...stableOptions,
134
+ // Passed only when the caller wants them: without a callback nothing
135
+ // ever crosses into JS, which is the point of the native path.
136
+ onLoad: hasOnLoad ? reporters.onLoad : undefined,
137
+ onError: hasOnError ? reporters.onError : undefined
138
+ });
60
139
  // `NativeNitroImage` needs a way to tell two loader instances apart when
61
140
  // diffing its `image` prop; tag the loader with what it will load (the
62
- // same convention react-native-nitro-image's own loaders use).
141
+ // same convention react-native-nitro-image's own loaders use). Toggling a
142
+ // callback on or off makes a different loader, so the tag has to say so —
143
+ // otherwise the view keeps the old one installed. Their identities stay
144
+ // out of it: those don't change what is loaded, or which loader this is.
63
145
  Object.defineProperty(loader, '__source', {
64
146
  enumerable: true,
65
147
  configurable: true,
66
148
  value: {
67
149
  url,
68
- options: stableOptions
150
+ options: stableOptions,
151
+ callbacks: {
152
+ onLoad: hasOnLoad,
153
+ onError: hasOnError
154
+ }
69
155
  }
70
156
  });
71
- return loader;
72
- }, [source, blur, cache, isUniformRadius, uniformRadius, hasCornerObject, topLeft, topRight, bottomLeft, bottomRight, resizeWidth, resizeHeight]);
157
+ return {
158
+ loader,
159
+ token
160
+ };
161
+ }, [source, blur, cache, isUniformRadius, uniformRadius, hasCornerObject, topLeft, topRight, bottomLeft, bottomRight, resizeWidth, resizeHeight, resizeFit, resizeAllowUpscale, fit, allowUpscale, hasOnLoad, hasOnError,
162
+ // Stable ref objects; listed to satisfy the exhaustive-deps rules.
163
+ activeToken, callbacks]);
164
+
165
+ // Same reasoning as the callbacks ref: a layout effect is current before the
166
+ // view — which the commit has only just handed this loader — can report.
167
+ (0, _react.useLayoutEffect)(() => {
168
+ activeToken.current = memoized.token;
169
+ }, [memoized, activeToken]);
170
+ return memoized.loader;
73
171
  }
74
172
  //# sourceMappingURL=usePipelineImageLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_NitroImagePipeline","_resolveImageSource","usePipelineImageLoader","source","options","blur","cache","cornerRadius","isUniformRadius","uniformRadius","hasCornerObject","undefined","topLeft","topRight","bottomLeft","bottomRight","resizeWidth","resize","width","resizeHeight","height","useMemo","url","resolveImageUrlOrFallback","cornerRadiusOption","stableOptions","loader","NitroImagePipeline","createImageLoader","Object","defineProperty","enumerable","configurable","value"],"sourceRoot":"../../src","sources":["usePipelineImageLoader.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,sBAAsBA,CACpCC,MAAmB,EACnBC,OAAqB,EACR;EACb;EACA;EACA;EACA,MAAMC,IAAI,GAAGD,OAAO,EAAEC,IAAI;EAC1B,MAAMC,KAAK,GAAGF,OAAO,EAAEE,KAAK;EAC5B,MAAMC,YAAY,GAAGH,OAAO,EAAEG,YAAY;EAC1C,MAAMC,eAAe,GAAG,OAAOD,YAAY,KAAK,QAAQ;EACxD,MAAME,aAAa,GAAGD,eAAe,GAAGD,YAAY,GAAG,CAAC;EACxD,MAAMG,eAAe,GAAG,CAACF,eAAe,IAAID,YAAY,KAAKI,SAAS;EACtE,MAAM;IACJC,OAAO,GAAG,CAAC;IACXC,QAAQ,GAAG,CAAC;IACZC,UAAU,GAAG,CAAC;IACdC,WAAW,GAAG;EAChB,CAAC,GAAGP,eAAe,IAAID,YAAY,KAAKI,SAAS,GAAG,CAAC,CAAC,GAAGJ,YAAY;EACrE,MAAMS,WAAW,GAAGZ,OAAO,EAAEa,MAAM,EAAEC,KAAK;EAC1C,MAAMC,YAAY,GAAGf,OAAO,EAAEa,MAAM,EAAEG,MAAM;EAE5C,OAAO,IAAAC,cAAO,EAAC,MAAM;IACnB;IACA;IACA,MAAMC,GAAG,GAAG,IAAAC,6CAAyB,EAACpB,MAAM,CAAC;IAC7C,MAAMqB,kBAAoD,GAAGhB,eAAe,GACxEC,aAAa,GACbC,eAAe,GACb;MAAEE,OAAO;MAAEC,QAAQ;MAAEC,UAAU;MAAEC;IAAY,CAAC,GAC9CJ,SAAS;IACf,MAAMc,aAA0B,GAAG;MACjCpB,IAAI;MACJC,KAAK;MACLC,YAAY,EAAEiB,kBAAkB;MAChCP,MAAM,EACJD,WAAW,KAAKL,SAAS,IAAIQ,YAAY,KAAKR,SAAS,GACnD;QAAEO,KAAK,EAAEF,WAAW;QAAEI,MAAM,EAAED;MAAa,CAAC,GAC5CR;IACR,CAAC;IACD,MAAMe,MAAM,GAAGC,sCAAkB,CAACC,iBAAiB,CAACN,GAAG,EAAEG,aAAa,CAAC;IACvE;IACA;IACA;IACAI,MAAM,CAACC,cAAc,CAACJ,MAAM,EAAE,UAAU,EAAE;MACxCK,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,KAAK,EAAE;QAAEX,GAAG;QAAElB,OAAO,EAAEqB;MAAc;IACvC,CAAC,CAAC;IACF,OAAOC,MAAM;EACf,CAAC,EAAE,CACDvB,MAAM,EACNE,IAAI,EACJC,KAAK,EACLE,eAAe,EACfC,aAAa,EACbC,eAAe,EACfE,OAAO,EACPC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,WAAW,EACXG,YAAY,CACb,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_NitroImagePipeline","_resolveImageSource","nextLoaderToken","makeReporters","token","activeToken","callbacks","onLoad","width","height","current","onError","message","usePipelineImageLoader","source","options","blur","cache","cornerRadius","isUniformRadius","uniformRadius","hasCornerObject","undefined","topLeft","topRight","bottomLeft","bottomRight","resizeWidth","resize","resizeHeight","resizeFit","fit","resizeAllowUpscale","allowUpscale","hasOnLoad","hasOnError","useRef","useLayoutEffect","memoized","useMemo","url","resolveImageUrlOrFallback","cornerRadiusOption","stableOptions","reporters","loader","NitroImagePipeline","createImageLoader","Object","defineProperty","enumerable","configurable","value"],"sourceRoot":"../../src","sources":["usePipelineImageLoader.ts"],"mappings":"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","ignoreList":[]}
@@ -21,8 +21,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
21
21
  * the same pipeline and caches as `useImage`/`preLoadImage`.
22
22
  *
23
23
  * Compared to `PipelineImage`:
24
- * - No `onLoad`/`onError` callbacks the loaded `Image` never crosses into
25
- * JS. Use `PipelineImage` (or `useImage`) when you need them.
24
+ * - `onLoad` reports the bitmap's pixel size rather than the `Image` itself,
25
+ * which never crosses into JS, and can fire more than once for a view. Use
26
+ * `PipelineImage` (or `useImage`) when you need the `Image`.
26
27
  * - The bitmap is loaded once at the size the view first has; if the view is
27
28
  * resized later, the bitmap scales with it instead of reloading.
28
29
  * @example
@@ -40,16 +41,29 @@ export const NativePipelineImage = /*#__PURE__*/forwardRef(function NativePipeli
40
41
  cornerRadius,
41
42
  cache,
42
43
  resize,
44
+ fit,
45
+ allowUpscale,
46
+ onLoad,
47
+ onError,
43
48
  style,
49
+ resizeMode,
44
50
  ...viewProps
45
51
  }, ref) {
46
52
  // Same precedence as PipelineImage: an explicit prop wins over style.
47
53
  const effectiveCornerRadius = cornerRadius ?? cornerRadiusForStyle(style);
54
+ // Inline arrows are fine here — the hook keeps the callbacks in a ref, so a
55
+ // new identity doesn't recreate the loader (which would reload the image).
48
56
  const loader = usePipelineImageLoader(url, {
49
57
  blur,
50
58
  cornerRadius: effectiveCornerRadius,
51
59
  cache,
52
- resize
60
+ resize,
61
+ // Same four values as the view's resizeMode; an explicit `fit` decouples
62
+ // them.
63
+ fit: fit ?? resizeMode,
64
+ allowUpscale,
65
+ onLoad,
66
+ onError
53
67
  });
54
68
  return /*#__PURE__*/_jsx(NativeNitroImage
55
69
  // Before the spread so a caller-provided recyclingKey wins.
@@ -58,6 +72,7 @@ export const NativePipelineImage = /*#__PURE__*/forwardRef(function NativePipeli
58
72
  ...viewProps,
59
73
  ref: ref,
60
74
  style: style,
75
+ resizeMode: resizeMode,
61
76
  image: loader
62
77
  });
63
78
  });
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","NativeNitroImage","cornerRadiusForStyle","recyclingKeyFor","usePipelineImageLoader","jsx","_jsx","NativePipelineImage","url","blur","cornerRadius","cache","resize","style","viewProps","ref","effectiveCornerRadius","loader","recyclingKey","image","displayName"],"sourceRoot":"../../src","sources":["NativePipelineImage.tsx"],"mappings":";;AAAA,SAA4BA,UAAU,QAAQ,OAAO;AAErD,SAASC,gBAAgB,QAAQ,0BAA0B;AAE3D,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,SAA2BC,eAAe,QAAQ,sBAAsB;AAMxE,SAASC,sBAAsB,QAAQ,0BAA0B;;AAKjE;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA;AAuCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,gBAAGP,UAAU,CAG3C,SAASO,mBAAmBA,CAC5B;EAAEC,GAAG;EAAEC,IAAI;EAAEC,YAAY;EAAEC,KAAK;EAAEC,MAAM;EAAEC,KAAK;EAAE,GAAGC;AAAU,CAAC,EAC/DC,GAAG,EACH;EACA;EACA,MAAMC,qBAAqB,GAAGN,YAAY,IAAIR,oBAAoB,CAACW,KAAK,CAAC;EACzE,MAAMI,MAAM,GAAGb,sBAAsB,CAACI,GAAG,EAAE;IACzCC,IAAI;IACJC,YAAY,EAAEM,qBAAqB;IACnCL,KAAK;IACLC;EACF,CAAC,CAAC;EAEF,oBACEN,IAAA,CAACL;EACC;EAAA;IACAiB,YAAY,EAAEf,eAAe,CAACK,GAAG,CAAE;IAAA,GAC/BM,SAAS;IACbC,GAAG,EAAEA,GAAI;IACTF,KAAK,EAAEA,KAAM;IACbM,KAAK,EAAEF;EAAO,CACf,CAAC;AAEN,CAAC,CAAC;;AAEF;AACA;AACAV,mBAAmB,CAACa,WAAW,GAAG,qBAAqB","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","NativeNitroImage","cornerRadiusForStyle","recyclingKeyFor","usePipelineImageLoader","jsx","_jsx","NativePipelineImage","url","blur","cornerRadius","cache","resize","fit","allowUpscale","onLoad","onError","style","resizeMode","viewProps","ref","effectiveCornerRadius","loader","recyclingKey","image","displayName"],"sourceRoot":"../../src","sources":["NativePipelineImage.tsx"],"mappings":";;AAAA,SAA4BA,UAAU,QAAQ,OAAO;AAErD,SAASC,gBAAgB,QAAQ,0BAA0B;AAE3D,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,SAA2BC,eAAe,QAAQ,sBAAsB;AAOxE,SAASC,sBAAsB,QAAQ,0BAA0B;;AAKjE;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA;AA+EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,gBAAGP,UAAU,CAG3C,SAASO,mBAAmBA,CAC5B;EACEC,GAAG;EACHC,IAAI;EACJC,YAAY;EACZC,KAAK;EACLC,MAAM;EACNC,GAAG;EACHC,YAAY;EACZC,MAAM;EACNC,OAAO;EACPC,KAAK;EACLC,UAAU;EACV,GAAGC;AACL,CAAC,EACDC,GAAG,EACH;EACA;EACA,MAAMC,qBAAqB,GAAGX,YAAY,IAAIR,oBAAoB,CAACe,KAAK,CAAC;EACzE;EACA;EACA,MAAMK,MAAM,GAAGlB,sBAAsB,CAACI,GAAG,EAAE;IACzCC,IAAI;IACJC,YAAY,EAAEW,qBAAqB;IACnCV,KAAK;IACLC,MAAM;IACN;IACA;IACAC,GAAG,EAAEA,GAAG,IAAIK,UAAU;IACtBJ,YAAY;IACZC,MAAM;IACNC;EACF,CAAC,CAAC;EAEF,oBACEV,IAAA,CAACL;EACC;EAAA;IACAsB,YAAY,EAAEpB,eAAe,CAACK,GAAG,CAAE;IAAA,GAC/BW,SAAS;IACbC,GAAG,EAAEA,GAAI;IACTH,KAAK,EAAEA,KAAM;IACbC,UAAU,EAAEA,UAAW;IACvBM,KAAK,EAAEF;EAAO,CACf,CAAC;AAEN,CAAC,CAAC;;AAEF;AACA;AACAf,mBAAmB,CAACkB,WAAW,GAAG,qBAAqB","ignoreList":[]}
@@ -57,10 +57,13 @@ export const PipelineImage = /*#__PURE__*/forwardRef(function PipelineImage({
57
57
  blur = 0,
58
58
  cornerRadius,
59
59
  cache,
60
+ fit,
61
+ allowUpscale,
60
62
  onLoad,
61
63
  onError,
62
64
  style,
63
65
  onLayout,
66
+ resizeMode,
64
67
  ...viewProps
65
68
  }, ref) {
66
69
  const scale = PixelRatio.get();
@@ -68,7 +71,15 @@ export const PipelineImage = /*#__PURE__*/forwardRef(function PipelineImage({
68
71
  const [layoutSize, setLayoutSize] = useState(undefined);
69
72
  // A numeric style is what the caller declared, so it wins and starts the
70
73
  // request a frame earlier; the measured layout is the fallback.
71
- const resize = styleSize ?? layoutSize;
74
+ const size = styleSize ?? layoutSize;
75
+ // The view's resizeMode and the bitmap's fit are the same four values;
76
+ // an explicit `fit` decouples them.
77
+ const effectiveFit = fit ?? resizeMode;
78
+ const resize = size ? {
79
+ ...size,
80
+ fit: effectiveFit,
81
+ allowUpscale
82
+ } : undefined;
72
83
  // Same precedence: an explicit prop wins over what style implies.
73
84
  const effectiveCornerRadius = cornerRadius ?? cornerRadiusForStyle(style) ?? 0;
74
85
  const {
@@ -111,6 +122,7 @@ export const PipelineImage = /*#__PURE__*/forwardRef(function PipelineImage({
111
122
  ...viewProps,
112
123
  ref: ref,
113
124
  style: style,
125
+ resizeMode: resizeMode,
114
126
  onLayout: handleLayout,
115
127
  image: image
116
128
  });
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useEffect","useRef","useState","PixelRatio","NativeNitroImage","cornerRadiusForStyle","resizeForLayout","resizeForStyle","useImage","jsx","_jsx","sameSize","a","b","width","height","scaleRadius","cornerRadius","scale","topLeft","topRight","bottomLeft","bottomRight","PipelineImage","url","blur","cache","onLoad","onError","style","onLayout","viewProps","ref","get","styleSize","layoutSize","setLayoutSize","undefined","resize","effectiveCornerRadius","image","error","enabled","onLoadRef","onErrorRef","current","handleLayout","event","nativeEvent","layout","next","prev","displayName"],"sourceRoot":"../../src","sources":["PipelineImage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useEffect","useRef","useState","PixelRatio","NativeNitroImage","cornerRadiusForStyle","resizeForLayout","resizeForStyle","useImage","jsx","_jsx","sameSize","a","b","width","height","scaleRadius","cornerRadius","scale","topLeft","topRight","bottomLeft","bottomRight","PipelineImage","url","blur","cache","fit","allowUpscale","onLoad","onError","style","onLayout","resizeMode","viewProps","ref","get","styleSize","layoutSize","setLayoutSize","undefined","size","effectiveFit","resize","effectiveCornerRadius","image","error","enabled","onLoadRef","onErrorRef","current","handleLayout","event","nativeEvent","layout","next","prev","displayName"],"sourceRoot":"../../src","sources":["PipelineImage.tsx"],"mappings":";;AAAA,SAEEA,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SAGEC,UAAU,QACL,cAAc;AACrB,SAAqBC,gBAAgB,QAAQ,0BAA0B;AAEvE,SACEC,oBAAoB,EACpBC,eAAe,EACfC,cAAc,QACT,kBAAkB;AAQzB,SAASC,QAAQ,QAAQ,YAAY;;AAKrC;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA;AAmEA,SAASC,QAAQA,CAACC,CAAiB,EAAEC,CAAiB,EAAW;EAC/D,OAAOD,CAAC,EAAEE,KAAK,KAAKD,CAAC,EAAEC,KAAK,IAAIF,CAAC,EAAEG,MAAM,KAAKF,CAAC,EAAEE,MAAM;AACzD;AAEA,SAASC,WAAWA,CAClBC,YAAkC,EAClCC,KAAa,EACS;EACtB,IAAI,OAAOD,YAAY,KAAK,QAAQ,EAAE;IACpC,OAAOA,YAAY,GAAGC,KAAK;EAC7B;EACA,OAAO;IACLC,OAAO,EAAE,CAACF,YAAY,CAACE,OAAO,IAAI,CAAC,IAAID,KAAK;IAC5CE,QAAQ,EAAE,CAACH,YAAY,CAACG,QAAQ,IAAI,CAAC,IAAIF,KAAK;IAC9CG,UAAU,EAAE,CAACJ,YAAY,CAACI,UAAU,IAAI,CAAC,IAAIH,KAAK;IAClDI,WAAW,EAAE,CAACL,YAAY,CAACK,WAAW,IAAI,CAAC,IAAIJ;EACjD,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMK,aAAa,gBAAGxB,UAAU,CACrC,SAASwB,aAAaA,CACpB;EACEC,GAAG;EACHC,IAAI,GAAG,CAAC;EACRR,YAAY;EACZS,KAAK;EACLC,GAAG;EACHC,YAAY;EACZC,MAAM;EACNC,OAAO;EACPC,KAAK;EACLC,QAAQ;EACRC,UAAU;EACV,GAAGC;AACL,CAAC,EACDC,GAAG,EACH;EACA,MAAMjB,KAAK,GAAGf,UAAU,CAACiC,GAAG,CAAC,CAAC;EAC9B,MAAMC,SAAS,GAAG9B,cAAc,CAACwB,KAAK,CAAC;EACvC,MAAM,CAACO,UAAU,EAAEC,aAAa,CAAC,GAAGrC,QAAQ,CAC1CsC,SACF,CAAC;EACD;EACA;EACA,MAAMC,IAAI,GAAGJ,SAAS,IAAIC,UAAU;EACpC;EACA;EACA,MAAMI,YAAY,GAAGf,GAAG,IAAIM,UAAU;EACtC,MAAMU,MAAiC,GAAGF,IAAI,GAC1C;IAAE,GAAGA,IAAI;IAAEd,GAAG,EAAEe,YAAY;IAAEd;EAAa,CAAC,GAC5CY,SAAS;EACb;EACA,MAAMI,qBAAqB,GACzB3B,YAAY,IAAIZ,oBAAoB,CAAC0B,KAAK,CAAC,IAAI,CAAC;EAElD,MAAM;IAAEc,KAAK;IAAEC;EAAM,CAAC,GAAGtC,QAAQ,CAAC;IAChCgB,GAAG;IACHC,IAAI,EAAEA,IAAI,GAAGP,KAAK;IAClBD,YAAY,EAAED,WAAW,CAAC4B,qBAAqB,EAAE1B,KAAK,CAAC;IACvDQ,KAAK;IACLiB,MAAM;IACNI,OAAO,EAAEJ,MAAM,KAAKH;EACtB,CAAC,CAAC;;EAEF;EACA,MAAMQ,SAAS,GAAG/C,MAAM,CAAC4B,MAAM,CAAC;EAChC,MAAMoB,UAAU,GAAGhD,MAAM,CAAC6B,OAAO,CAAC;EAClC9B,SAAS,CAAC,MAAM;IACdgD,SAAS,CAACE,OAAO,GAAGrB,MAAM;IAC1BoB,UAAU,CAACC,OAAO,GAAGpB,OAAO;EAC9B,CAAC,CAAC;EACF9B,SAAS,CAAC,MAAM;IACd,IAAI6C,KAAK,EAAEG,SAAS,CAACE,OAAO,GAAGL,KAAK,CAAC;EACvC,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EACX7C,SAAS,CAAC,MAAM;IACd,IAAI8C,KAAK,EAAEG,UAAU,CAACC,OAAO,GAAGJ,KAAK,CAAC;EACxC,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,MAAMK,YAAY,GAAIC,KAAwB,IAAK;IACjDpB,QAAQ,GAAGoB,KAAK,CAAC;IACjB,MAAM;MAAEtC,KAAK;MAAEC;IAAO,CAAC,GAAGqC,KAAK,CAACC,WAAW,CAACC,MAAM;IAClD,MAAMC,IAAI,GAAGjD,eAAe,CAACQ,KAAK,EAAEC,MAAM,CAAC;IAC3C;IACA;IACAwB,aAAa,CAAEiB,IAAI,IAAM7C,QAAQ,CAAC6C,IAAI,EAAED,IAAI,CAAC,GAAGC,IAAI,GAAGD,IAAK,CAAC;EAC/D,CAAC;EAED,oBACE7C,IAAA,CAACN,gBAAgB;IAAA,GACX8B,SAAS;IACbC,GAAG,EAAEA,GAAI;IACTJ,KAAK,EAAEA,KAAM;IACbE,UAAU,EAAEA,UAAW;IACvBD,QAAQ,EAAEmB,YAAa;IACvBN,KAAK,EAAEA;EAAM,CACd,CAAC;AAEN,CACF,CAAC;;AAED;AACA;AACAtB,aAAa,CAACkC,WAAW,GAAG,eAAe","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["NativePipelineImage","NitroImagePipeline","PipelineImage","resolveImageUrl","UNREGISTERED_ASSET_URL","cornerRadiusForStyle","resizeForLayout","resizeForStyle","useImage","usePipelineImageLoader"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,mBAAmB,QAGd,uBAAuB;AAC9B,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SACEC,aAAa,QAGR,iBAAiB;AACxB,SAEEC,eAAe,EACfC,sBAAsB,QACjB,sBAAsB;AAC7B,SACEC,oBAAoB,EACpBC,eAAe,EACfC,cAAc,QACT,kBAAkB;AAQzB,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,sBAAsB,QAAQ,0BAA0B","ignoreList":[]}
1
+ {"version":3,"names":["NativePipelineImage","NitroImagePipeline","PipelineImage","resolveImageUrl","UNREGISTERED_ASSET_URL","cornerRadiusForStyle","resizeForLayout","resizeForStyle","useImage","usePipelineImageLoader"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,mBAAmB,QAGd,uBAAuB;AAC9B,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SACEC,aAAa,QAGR,iBAAiB;AACxB,SAEEC,eAAe,EACfC,sBAAsB,QACjB,sBAAsB;AAC7B,SACEC,oBAAoB,EACpBC,eAAe,EACfC,cAAc,QACT,kBAAkB;AASzB,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,sBAAsB,QAAQ,0BAA0B","ignoreList":[]}
@@ -4,7 +4,9 @@ import { PixelRatio, StyleSheet } from 'react-native';
4
4
  /**
5
5
  * Converts a layout size in points (dp) to the pipeline's `resize` option in
6
6
  * whole bitmap pixels using `PixelRatio.getPixelSizeForLayoutSize`. Returns
7
- * `undefined` unless both values are positive numbers.
7
+ * `undefined` unless both values are positive numbers. Spread a `fit` into
8
+ * the result for the other resize modes — under `contain` and `center` the
9
+ * size is the box the bitmap fits in, not necessarily its final size.
8
10
  */
9
11
  export function resizeForLayout(width, height) {
10
12
  if (typeof width !== 'number' || typeof height !== 'number') {
@@ -1 +1 @@
1
- {"version":3,"names":["PixelRatio","StyleSheet","resizeForLayout","width","height","undefined","pixelWidth","getPixelSizeForLayoutSize","pixelHeight","resizeForStyle","style","flat","flatten","cornerRadiusForStyle","base","borderRadius","topLeft","borderTopLeftRadius","topRight","borderTopRightRadius","bottomLeft","borderBottomLeftRadius","bottomRight","borderBottomRightRadius"],"sourceRoot":"../../src","sources":["resizeForStyle.ts"],"mappings":";;AAAA,SACEA,UAAU,EAEVC,UAAU,QAEL,cAAc;AAOrB;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAC7BC,KAAc,EACdC,MAAe,EACY;EAC3B,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAI,OAAOC,MAAM,KAAK,QAAQ,EAAE;IAC3D,OAAOC,SAAS;EAClB;EACA,MAAMC,UAAU,GAAGN,UAAU,CAACO,yBAAyB,CAACJ,KAAK,CAAC;EAC9D,MAAMK,WAAW,GAAGR,UAAU,CAACO,yBAAyB,CAACH,MAAM,CAAC;EAChE,OAAOE,UAAU,GAAG,CAAC,IAAIE,WAAW,GAAG,CAAC,GACpC;IAAEL,KAAK,EAAEG,UAAU;IAAEF,MAAM,EAAEI;EAAY,CAAC,GAC1CH,SAAS;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,cAAcA,CAC5BC,KAA2B,EACA;EAC3B,MAAMC,IAAI,GAAGV,UAAU,CAACW,OAAO,CAACF,KAAK,CAAC;EACtC,OAAOR,eAAe,CAACS,IAAI,EAAER,KAAK,EAAEQ,IAAI,EAAEP,MAAM,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASS,oBAAoBA,CAClCH,KAA2B,EACO;EAClC,MAAMC,IAAI,GAAGV,UAAU,CAACW,OAAO,CAACF,KAAK,CAAC;EACtC,MAAMI,IAAI,GACR,OAAOH,IAAI,EAAEI,YAAY,KAAK,QAAQ,GAAGJ,IAAI,CAACI,YAAY,GAAGV,SAAS;EACxE,MAAMW,OAAO,GACX,OAAOL,IAAI,EAAEM,mBAAmB,KAAK,QAAQ,GACzCN,IAAI,CAACM,mBAAmB,GACxBZ,SAAS;EACf,MAAMa,QAAQ,GACZ,OAAOP,IAAI,EAAEQ,oBAAoB,KAAK,QAAQ,GAC1CR,IAAI,CAACQ,oBAAoB,GACzBd,SAAS;EACf,MAAMe,UAAU,GACd,OAAOT,IAAI,EAAEU,sBAAsB,KAAK,QAAQ,GAC5CV,IAAI,CAACU,sBAAsB,GAC3BhB,SAAS;EACf,MAAMiB,WAAW,GACf,OAAOX,IAAI,EAAEY,uBAAuB,KAAK,QAAQ,GAC7CZ,IAAI,CAACY,uBAAuB,GAC5BlB,SAAS;EAEf,IACEW,OAAO,KAAKX,SAAS,IACrBa,QAAQ,KAAKb,SAAS,IACtBe,UAAU,KAAKf,SAAS,IACxBiB,WAAW,KAAKjB,SAAS,EACzB;IACA,OAAOS,IAAI;EACb;EAEA,OAAO;IACLE,OAAO,EAAEA,OAAO,IAAIF,IAAI;IACxBI,QAAQ,EAAEA,QAAQ,IAAIJ,IAAI;IAC1BM,UAAU,EAAEA,UAAU,IAAIN,IAAI;IAC9BQ,WAAW,EAAEA,WAAW,IAAIR;EAC9B,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["PixelRatio","StyleSheet","resizeForLayout","width","height","undefined","pixelWidth","getPixelSizeForLayoutSize","pixelHeight","resizeForStyle","style","flat","flatten","cornerRadiusForStyle","base","borderRadius","topLeft","borderTopLeftRadius","topRight","borderTopRightRadius","bottomLeft","borderBottomLeftRadius","bottomRight","borderBottomRightRadius"],"sourceRoot":"../../src","sources":["resizeForStyle.ts"],"mappings":";;AAAA,SACEA,UAAU,EAEVC,UAAU,QAEL,cAAc;AAOrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAC7BC,KAAc,EACdC,MAAe,EACY;EAC3B,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAI,OAAOC,MAAM,KAAK,QAAQ,EAAE;IAC3D,OAAOC,SAAS;EAClB;EACA,MAAMC,UAAU,GAAGN,UAAU,CAACO,yBAAyB,CAACJ,KAAK,CAAC;EAC9D,MAAMK,WAAW,GAAGR,UAAU,CAACO,yBAAyB,CAACH,MAAM,CAAC;EAChE,OAAOE,UAAU,GAAG,CAAC,IAAIE,WAAW,GAAG,CAAC,GACpC;IAAEL,KAAK,EAAEG,UAAU;IAAEF,MAAM,EAAEI;EAAY,CAAC,GAC1CH,SAAS;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,cAAcA,CAC5BC,KAA2B,EACA;EAC3B,MAAMC,IAAI,GAAGV,UAAU,CAACW,OAAO,CAACF,KAAK,CAAC;EACtC,OAAOR,eAAe,CAACS,IAAI,EAAER,KAAK,EAAEQ,IAAI,EAAEP,MAAM,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASS,oBAAoBA,CAClCH,KAA2B,EACO;EAClC,MAAMC,IAAI,GAAGV,UAAU,CAACW,OAAO,CAACF,KAAK,CAAC;EACtC,MAAMI,IAAI,GACR,OAAOH,IAAI,EAAEI,YAAY,KAAK,QAAQ,GAAGJ,IAAI,CAACI,YAAY,GAAGV,SAAS;EACxE,MAAMW,OAAO,GACX,OAAOL,IAAI,EAAEM,mBAAmB,KAAK,QAAQ,GACzCN,IAAI,CAACM,mBAAmB,GACxBZ,SAAS;EACf,MAAMa,QAAQ,GACZ,OAAOP,IAAI,EAAEQ,oBAAoB,KAAK,QAAQ,GAC1CR,IAAI,CAACQ,oBAAoB,GACzBd,SAAS;EACf,MAAMe,UAAU,GACd,OAAOT,IAAI,EAAEU,sBAAsB,KAAK,QAAQ,GAC5CV,IAAI,CAACU,sBAAsB,GAC3BhB,SAAS;EACf,MAAMiB,WAAW,GACf,OAAOX,IAAI,EAAEY,uBAAuB,KAAK,QAAQ,GAC7CZ,IAAI,CAACY,uBAAuB,GAC5BlB,SAAS;EAEf,IACEW,OAAO,KAAKX,SAAS,IACrBa,QAAQ,KAAKb,SAAS,IACtBe,UAAU,KAAKf,SAAS,IACxBiB,WAAW,KAAKjB,SAAS,EACzB;IACA,OAAOS,IAAI;EACb;EAEA,OAAO;IACLE,OAAO,EAAEA,OAAO,IAAIF,IAAI;IACxBI,QAAQ,EAAEA,QAAQ,IAAIJ,IAAI;IAC1BM,UAAU,EAAEA,UAAU,IAAIN,IAAI;IAC9BQ,WAAW,EAAEA,WAAW,IAAIR;EAC9B,CAAC;AACH","ignoreList":[]}
@@ -38,6 +38,8 @@ export function useImage({
38
38
  } = isUniformRadius ? {} : cornerRadius;
39
39
  const resizeWidth = resize?.width ?? 0;
40
40
  const resizeHeight = resize?.height ?? 0;
41
+ const resizeFit = resize?.fit;
42
+ const resizeAllowUpscale = resize?.allowUpscale;
41
43
  useEffect(() => {
42
44
  let cancelled = false;
43
45
  // Only reset to the loading state when the URL changes; for same-URL
@@ -65,7 +67,9 @@ export function useImage({
65
67
  },
66
68
  resize: resizeWidth > 0 && resizeHeight > 0 ? {
67
69
  width: resizeWidth,
68
- height: resizeHeight
70
+ height: resizeHeight,
71
+ fit: resizeFit,
72
+ allowUpscale: resizeAllowUpscale
69
73
  } : undefined,
70
74
  cache
71
75
  });
@@ -89,7 +93,7 @@ export function useImage({
89
93
  return () => {
90
94
  cancelled = true;
91
95
  };
92
- }, [url, blur, isUniformRadius, uniformRadius, topLeft, topRight, bottomLeft, bottomRight, resizeWidth, resizeHeight, cache, enabled]);
96
+ }, [url, blur, isUniformRadius, uniformRadius, topLeft, topRight, bottomLeft, bottomRight, resizeWidth, resizeHeight, resizeFit, resizeAllowUpscale, cache, enabled]);
93
97
  return image;
94
98
  }
95
99
  //# sourceMappingURL=useImage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","NitroImagePipeline","resolveImageUrl","useImage","url","blur","cornerRadius","resize","cache","enabled","image","setImage","undefined","error","loadedUrlRef","isUniformRadius","uniformRadius","topLeft","topRight","bottomLeft","bottomRight","resizeWidth","width","resizeHeight","height","cancelled","current","result","loadImage","e","Error"],"sourceRoot":"../../src","sources":["useImage.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAGnD,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAA2BC,eAAe,QAAQ,sBAAsB;AAwBxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAAC;EACvBC,GAAG;EACHC,IAAI,GAAG,CAAC;EACRC,YAAY,GAAG,CAAC;EAChBC,MAAM;EACNC,KAAK;EACLC,OAAO,GAAG;AAmCZ,CAAC,EAAU;EACT,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAAS;IACzCU,KAAK,EAAEE,SAAS;IAChBC,KAAK,EAAED;EACT,CAAC,CAAC;EACF,MAAME,YAAY,GAAGf,MAAM,CAACK,GAAG,CAAC;;EAEhC;EACA;EACA,MAAMW,eAAe,GAAG,OAAOT,YAAY,KAAK,QAAQ;EACxD,MAAMU,aAAa,GAAGD,eAAe,GAAGT,YAAY,GAAG,CAAC;EACxD,MAAM;IACJW,OAAO,GAAG,CAAC;IACXC,QAAQ,GAAG,CAAC;IACZC,UAAU,GAAG,CAAC;IACdC,WAAW,GAAG;EAChB,CAAC,GAAGL,eAAe,GAAG,CAAC,CAAC,GAAGT,YAAY;EACvC,MAAMe,WAAW,GAAGd,MAAM,EAAEe,KAAK,IAAI,CAAC;EACtC,MAAMC,YAAY,GAAGhB,MAAM,EAAEiB,MAAM,IAAI,CAAC;EAExC1B,SAAS,CAAC,MAAM;IACd,IAAI2B,SAAS,GAAG,KAAK;IACrB;IACA;IACA;IACA,IAAIX,YAAY,CAACY,OAAO,KAAKtB,GAAG,EAAE;MAChCU,YAAY,CAACY,OAAO,GAAGtB,GAAG;MAC1BO,QAAQ,CAAC;QAAED,KAAK,EAAEE,SAAS;QAAEC,KAAK,EAAED;MAAU,CAAC,CAAC;IAClD;IAEA,IAAIH,OAAO,EAAE;MACX,CAAC,YAAY;QACX,IAAI;UACF;UACA;UACA,MAAMkB,MAAM,GAAG,MAAM1B,kBAAkB,CAAC2B,SAAS,CAC/C1B,eAAe,CAACE,GAAG,CAAC,EACpB;YACEC,IAAI;YACJC,YAAY,EAAES,eAAe,GACzBC,aAAa,GACb;cAAEC,OAAO;cAAEC,QAAQ;cAAEC,UAAU;cAAEC;YAAY,CAAC;YAClDb,MAAM,EACJc,WAAW,GAAG,CAAC,IAAIE,YAAY,GAAG,CAAC,GAC/B;cAAED,KAAK,EAAED,WAAW;cAAEG,MAAM,EAAED;YAAa,CAAC,GAC5CX,SAAS;YACfJ;UACF,CACF,CAAC;UAED,IAAI,CAACiB,SAAS,EAAE;YACdd,QAAQ,CAAC;cAAED,KAAK,EAAEiB,MAAM;cAAEd,KAAK,EAAED;YAAU,CAAC,CAAC;UAC/C;QACF,CAAC,CAAC,OAAOiB,CAAC,EAAE;UACV,MAAMhB,KAAK,GAAGgB,CAAC,YAAYC,KAAK,GAAGD,CAAC,GAAG,IAAIC,KAAK,CAAC,GAAGD,CAAC,EAAE,CAAC;UACxD,IAAI,CAACJ,SAAS,EAAE;YACdd,QAAQ,CAAC;cAAED,KAAK,EAAEE,SAAS;cAAEC,KAAK,EAAEA;YAAM,CAAC,CAAC;UAC9C;QACF;MACF,CAAC,EAAE,CAAC;IACN;IAEA,OAAO,MAAM;MACXY,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CACDrB,GAAG,EACHC,IAAI,EACJU,eAAe,EACfC,aAAa,EACbC,OAAO,EACPC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,WAAW,EACXE,YAAY,EACZf,KAAK,EACLC,OAAO,CACR,CAAC;EAEF,OAAOC,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useState","NitroImagePipeline","resolveImageUrl","useImage","url","blur","cornerRadius","resize","cache","enabled","image","setImage","undefined","error","loadedUrlRef","isUniformRadius","uniformRadius","topLeft","topRight","bottomLeft","bottomRight","resizeWidth","width","resizeHeight","height","resizeFit","fit","resizeAllowUpscale","allowUpscale","cancelled","current","result","loadImage","e","Error"],"sourceRoot":"../../src","sources":["useImage.ts"],"mappings":"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","ignoreList":[]}