expo-image 2.1.3 → 2.1.5

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 (72) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/android/build.gradle +2 -2
  3. package/build/ExpoImage.d.ts +2 -0
  4. package/build/ExpoImage.d.ts.map +1 -1
  5. package/build/ExpoImage.web.d.ts.map +1 -1
  6. package/build/Image.d.ts +6 -4
  7. package/build/Image.d.ts.map +1 -1
  8. package/build/Image.types.d.ts +4 -4
  9. package/build/Image.types.d.ts.map +1 -1
  10. package/build/ImageModule.web.d.ts +1 -1
  11. package/build/ImageModule.web.d.ts.map +1 -1
  12. package/build/utils/blurhash/useBlurhash.d.ts +2 -2
  13. package/build/utils/blurhash/useBlurhash.d.ts.map +1 -1
  14. package/build/web/AnimationManager.d.ts.map +1 -1
  15. package/build/web/getImageWrapperEventHandler.d.ts +4 -3
  16. package/build/web/getImageWrapperEventHandler.d.ts.map +1 -1
  17. package/expo-module.config.json +1 -1
  18. package/ios/ImageView.swift +1 -1
  19. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.aar +0 -0
  20. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.aar.md5 +1 -0
  21. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.aar.sha1 +1 -0
  22. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.aar.sha256 +1 -0
  23. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.aar.sha512 +1 -0
  24. package/local-maven-repo/BareExpo/expo.modules.image/{2.1.3/expo.modules.image-2.1.3.module → 2.1.5/expo.modules.image-2.1.5.module} +18 -18
  25. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.module.md5 +1 -0
  26. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.module.sha1 +1 -0
  27. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.module.sha256 +1 -0
  28. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.module.sha512 +1 -0
  29. package/local-maven-repo/BareExpo/expo.modules.image/{2.1.3/expo.modules.image-2.1.3.pom → 2.1.5/expo.modules.image-2.1.5.pom} +2 -2
  30. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.pom.md5 +1 -0
  31. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.pom.sha1 +1 -0
  32. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.pom.sha256 +1 -0
  33. package/local-maven-repo/BareExpo/expo.modules.image/2.1.5/expo.modules.image-2.1.5.pom.sha512 +1 -0
  34. package/local-maven-repo/BareExpo/expo.modules.image/maven-metadata.xml +4 -4
  35. package/local-maven-repo/BareExpo/expo.modules.image/maven-metadata.xml.md5 +1 -1
  36. package/local-maven-repo/BareExpo/expo.modules.image/maven-metadata.xml.sha1 +1 -1
  37. package/local-maven-repo/BareExpo/expo.modules.image/maven-metadata.xml.sha256 +1 -1
  38. package/local-maven-repo/BareExpo/expo.modules.image/maven-metadata.xml.sha512 +1 -1
  39. package/package.json +3 -3
  40. package/src/ExpoImage.tsx +4 -0
  41. package/src/ExpoImage.web.tsx +12 -6
  42. package/src/Image.tsx +7 -6
  43. package/src/Image.types.ts +4 -4
  44. package/src/ImageModule.web.ts +1 -1
  45. package/src/ts-declarations/react-native-assets.d.ts +1 -0
  46. package/src/ts-declarations/react-native-web.d.ts +3 -0
  47. package/src/utils/AssetSourceResolver.web.ts +1 -1
  48. package/src/utils/blurhash/decode.ts +1 -1
  49. package/src/utils/blurhash/useBlurhash.tsx +1 -1
  50. package/src/utils/resolveAssetSource.web.ts +1 -1
  51. package/src/utils/thumbhash/thumbhash.ts +4 -4
  52. package/src/web/AnimationManager.tsx +12 -5
  53. package/src/web/getImageWrapperEventHandler.ts +5 -3
  54. package/src/web/positioning.ts +1 -1
  55. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.aar +0 -0
  56. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.aar.md5 +0 -1
  57. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.aar.sha1 +0 -1
  58. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.aar.sha256 +0 -1
  59. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.aar.sha512 +0 -1
  60. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.module.md5 +0 -1
  61. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.module.sha1 +0 -1
  62. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.module.sha256 +0 -1
  63. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.module.sha512 +0 -1
  64. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.pom.md5 +0 -1
  65. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.pom.sha1 +0 -1
  66. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.pom.sha256 +0 -1
  67. package/local-maven-repo/BareExpo/expo.modules.image/2.1.3/expo.modules.image-2.1.3.pom.sha512 +0 -1
  68. /package/local-maven-repo/BareExpo/expo.modules.image/{2.1.3/expo.modules.image-2.1.3-sources.jar → 2.1.5/expo.modules.image-2.1.5-sources.jar} +0 -0
  69. /package/local-maven-repo/BareExpo/expo.modules.image/{2.1.3/expo.modules.image-2.1.3-sources.jar.md5 → 2.1.5/expo.modules.image-2.1.5-sources.jar.md5} +0 -0
  70. /package/local-maven-repo/BareExpo/expo.modules.image/{2.1.3/expo.modules.image-2.1.3-sources.jar.sha1 → 2.1.5/expo.modules.image-2.1.5-sources.jar.sha1} +0 -0
  71. /package/local-maven-repo/BareExpo/expo.modules.image/{2.1.3/expo.modules.image-2.1.3-sources.jar.sha256 → 2.1.5/expo.modules.image-2.1.5-sources.jar.sha256} +0 -0
  72. /package/local-maven-repo/BareExpo/expo.modules.image/{2.1.3/expo.modules.image-2.1.3-sources.jar.sha512 → 2.1.5/expo.modules.image-2.1.5-sources.jar.sha512} +0 -0
package/CHANGELOG.md CHANGED
@@ -10,6 +10,19 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 2.1.5 — 2025-04-25
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - Fixed `CUICatalog: Invalid asset name supplied: ''` error on iOS when the path is empty. ([#36294](https://github.com/expo/expo/pull/36294) by [@Innei](https://github.com/Innei))
18
+
19
+ ## 2.1.4 — 2025-04-14
20
+
21
+ ### 🐛 Bug fixes
22
+
23
+ - Fixed SVG image tinting on iOS. ([#35927](https://github.com/expo/expo/pull/35927) by [@kudo](https://github.com/kudo))
24
+ - [Android] Fixed OutOfMemoryError crash when displaying some gif images ([#36097](https://github.com/expo/expo/pull/36097) by [@rahimrahman](https://github.com/rahimrahman))
25
+
13
26
  ## 2.1.3 — 2025-04-11
14
27
 
15
28
  _This version does not introduce any user-facing changes._
@@ -8,7 +8,7 @@ android {
8
8
  namespace "expo.modules.image"
9
9
  defaultConfig {
10
10
  versionCode 1
11
- versionName "2.1.3"
11
+ versionName "2.1.5"
12
12
  consumerProguardFiles("proguard-rules.pro")
13
13
 
14
14
  buildConfigField("boolean", "ALLOW_GLIDE_LOGS", project.properties.get("EXPO_ALLOW_GLIDE_LOGS", "false"))
@@ -34,7 +34,7 @@ dependencies {
34
34
  kapt "com.github.bumptech.glide:compiler:${GLIDE_VERSION}"
35
35
  api 'com.caverock:androidsvg-aar:1.4'
36
36
 
37
- implementation "com.github.penfeizhou.android.animation:glide-plugin:3.0.2"
37
+ implementation "com.github.penfeizhou.android.animation:glide-plugin:3.0.3"
38
38
  implementation "com.github.bumptech.glide:avif-integration:${GLIDE_VERSION}"
39
39
 
40
40
  api 'com.github.bumptech.glide:okhttp3-integration:4.11.0'
@@ -2,6 +2,8 @@ import React from 'react';
2
2
  import { NativeSyntheticEvent } from 'react-native';
3
3
  import { ImageErrorEventData, ImageLoadEventData, ImageNativeProps, ImageProgressEventData } from './Image.types';
4
4
  declare class ExpoImage extends React.PureComponent<ImageNativeProps> {
5
+ startAnimating: () => Promise<unknown> | unknown;
6
+ stopAnimating: () => Promise<unknown> | unknown;
5
7
  onLoadStart: () => void;
6
8
  onLoad: (event: NativeSyntheticEvent<ImageLoadEventData>) => void;
7
9
  onProgress: (event: NativeSyntheticEvent<ImageProgressEventData>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoImage.d.ts","sourceRoot":"","sources":["../src/ExpoImage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAsC,MAAM,cAAc,CAAC;AAExF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AAkBvB,cAAM,SAAU,SAAQ,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC;IAC3D,WAAW,aAET;IAEF,MAAM,GAAI,OAAO,oBAAoB,CAAC,kBAAkB,CAAC,UAGvD;IAEF,UAAU,GAAI,OAAO,oBAAoB,CAAC,sBAAsB,CAAC,UAE/D;IAEF,OAAO,GAAI,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,UAGzD;IAEF,SAAS,aAEP;IAEF,MAAM;CAgEP;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"ExpoImage.d.ts","sourceRoot":"","sources":["../src/ExpoImage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAsC,MAAM,cAAc,CAAC;AAExF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AAkBvB,cAAM,SAAU,SAAQ,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC;IAE3D,cAAc,EAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAClD,aAAa,EAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAEjD,WAAW,aAET;IAEF,MAAM,GAAI,OAAO,oBAAoB,CAAC,kBAAkB,CAAC,UAGvD;IAEF,UAAU,GAAI,OAAO,oBAAoB,CAAC,sBAAsB,CAAC,UAE/D;IAEF,OAAO,GAAI,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,UAGzD;IAEF,SAAS,aAEP;IAEF,MAAM;CAgEP;AAED,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoImage.web.d.ts","sourceRoot":"","sources":["../src/ExpoImage.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,gBAAgB,EAA6C,MAAM,eAAe,CAAC;AAsDjG,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,WAAW,EACX,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,MAAM,EACN,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,gBAAgB,qBAqFlB"}
1
+ {"version":3,"file":"ExpoImage.web.d.ts","sourceRoot":"","sources":["../src/ExpoImage.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,gBAAgB,EAA6C,MAAM,eAAe,CAAC;AAsDjG,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,WAAW,EACX,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,MAAM,EACN,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,gBAAgB,qBA0FlB"}
package/build/Image.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  import React from 'react';
2
+ import { type View } from 'react-native';
3
+ import ExpoImage from './ExpoImage';
2
4
  import { ImageLoadOptions, ImagePrefetchOptions, ImageProps, ImageRef, ImageSource } from './Image.types';
3
5
  export declare class Image extends React.PureComponent<ImageProps> {
4
- nativeViewRef: any;
5
- containerViewRef: any;
6
- constructor(props: any);
7
- getAnimatableRef: () => any;
6
+ nativeViewRef: React.RefObject<ExpoImage | null>;
7
+ containerViewRef: React.RefObject<View | null>;
8
+ constructor(props: ImageProps);
9
+ getAnimatableRef: () => View | this | null;
8
10
  /**
9
11
  * @hidden
10
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../src/Image.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,QAAQ,EACR,WAAW,EACZ,MAAM,eAAe,CAAC;AAQvB,qBAAa,KAAM,SAAQ,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;IACxD,aAAa,MAAC;IACd,gBAAgB,MAAC;gBACL,KAAK,KAAA;IAOjB,gBAAgB,YAMd;IAEF;;OAEG;IACH,MAAM,CAAC,KAAK,kBAAqB;IAEjC;;;;;;;;;;OAUG;WACU,QAAQ,CACnB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,WAAW,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,GAChD,OAAO,CAAC,OAAO,CAAC;IACnB;;;;;;;;;;OAUG;WACU,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBhG;;;;;;;OAOG;WACU,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjD;;;;;;;OAOG;WACU,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/C;;;;;;;;;OASG;WACU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxE;;;;;;;OAOG;WACU,qBAAqB,CAChC,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACvE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzB;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;;;;;OAMG;WACU,SAAS,CACpB,MAAM,EAAE,WAAW,GAAG,MAAM,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,QAAQ,CAAC;IAKpB,MAAM;CA6CP"}
1
+ {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../src/Image.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,QAAQ,EACR,WAAW,EACZ,MAAM,eAAe,CAAC;AAQvB,qBAAa,KAAM,SAAQ,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;IACxD,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACjD,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;gBAEnC,KAAK,EAAE,UAAU;IAO7B,gBAAgB,2BAMd;IAEF;;OAEG;IACH,MAAM,CAAC,KAAK,kBAAqB;IAEjC;;;;;;;;;;OAUG;WACU,QAAQ,CACnB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,WAAW,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,GAChD,OAAO,CAAC,OAAO,CAAC;IACnB;;;;;;;;;;OAUG;WACU,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBhG;;;;;;;OAOG;WACU,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjD;;;;;;;OAOG;WACU,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/C;;;;;;;;;OASG;WACU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxE;;;;;;;OAOG;WACU,qBAAqB,CAChC,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACvE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzB;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;;;;;OAMG;WACU,SAAS,CACpB,MAAM,EAAE,WAAW,GAAG,MAAM,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,QAAQ,CAAC;IAKpB,MAAM;CA6CP"}
@@ -16,12 +16,12 @@ export type ImageSource = {
16
16
  * Can be specified if known at build time, in which case the value
17
17
  * will be used to set the default `<Image/>` component dimension.
18
18
  */
19
- width?: number;
19
+ width?: number | null;
20
20
  /**
21
21
  * Can be specified if known at build time, in which case the value
22
22
  * will be used to set the default `<Image/>` component dimension.
23
23
  */
24
- height?: number;
24
+ height?: number | null;
25
25
  /**
26
26
  * A string used to generate the image [`placeholder`](#placeholder). For example,
27
27
  * `placeholder={blurhash}`. If `uri` is provided as the value of the `source` prop,
@@ -326,8 +326,8 @@ export interface ImageNativeProps extends ImageProps {
326
326
  contentPosition?: ImageContentPositionObject;
327
327
  transition?: ImageTransition | null;
328
328
  autoplay?: boolean;
329
- nativeViewRef?: React.RefObject<ExpoImage>;
330
- containerViewRef?: React.RefObject<View>;
329
+ nativeViewRef?: React.RefObject<ExpoImage | null>;
330
+ containerViewRef?: React.RefObject<View | null>;
331
331
  }
332
332
  /**
333
333
  * A value that represents the relative position of a single axis.
@@ -1 +1 @@
1
- {"version":3,"file":"Image.types.d.ts","sourceRoot":"","sources":["../src/Image.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Image.types.d.ts","sourceRoot":"","sources":["../src/Image.types.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { ImageNativeModule, ImageRef, ImageSource } from './Image.types';
3
3
  declare class ImageModule extends NativeModule implements ImageNativeModule {
4
4
  static name: string;
5
5
  Image: typeof ImageRef;
6
- prefetch(urls: string | string[], _: any, __: any): Promise<boolean>;
6
+ prefetch(urls: string | string[], _: unknown, __: unknown): Promise<boolean>;
7
7
  clearMemoryCache(): Promise<boolean>;
8
8
  clearDiskCache(): Promise<boolean>;
9
9
  loadAsync(source: ImageSource): Promise<ImageRef>;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageModule.web.d.ts","sourceRoot":"","sources":["../src/ImageModule.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG9E,cAAM,WAAY,SAAQ,YAAa,YAAW,iBAAiB;IAGjE,MAAM,CAAC,IAAI,SAAe;IAE1B,KAAK,EAAE,OAAO,QAAQ,CAAe;IAE/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC,KAAA,EAAE,EAAE,KAAA,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB1D,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;CAuBxD;;AAeD,wBAA2D"}
1
+ {"version":3,"file":"ImageModule.web.d.ts","sourceRoot":"","sources":["../src/ImageModule.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG9E,cAAM,WAAY,SAAQ,YAAa,YAAW,iBAAiB;IAGjE,MAAM,CAAC,IAAI,SAAe;IAE1B,KAAK,EAAE,OAAO,QAAQ,CAAe;IAE/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB5E,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;CAuBxD;;AAeD,wBAA2D"}
@@ -1,7 +1,7 @@
1
1
  export declare function useBlurhash(blurhash: {
2
2
  uri?: string;
3
- width?: number;
4
- height?: number;
3
+ width?: number | null;
4
+ height?: number | null;
5
5
  } | undefined | null, punch?: number): readonly [{
6
6
  uri: string;
7
7
  } | null, boolean | ""];
@@ -1 +1 @@
1
- {"version":3,"file":"useBlurhash.d.ts","sourceRoot":"","sources":["../../../src/utils/blurhash/useBlurhash.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,WAAW,CACzB,QAAQ,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,IAAI,EAC9E,KAAK,GAAE,MAAU;;wBAiElB"}
1
+ {"version":3,"file":"useBlurhash.d.ts","sourceRoot":"","sources":["../../../src/utils/blurhash/useBlurhash.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,WAAW,CACzB,QAAQ,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,GAAG,IAAI,EAC5F,KAAK,GAAE,MAAU;;wBAiElB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationManager.d.ts","sourceRoot":"","sources":["../../src/web/AnimationManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,KAAK,SAAS,GAAG;IACf,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM;IACX,cAAc,EAAE,CACd,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,KAChC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY;CAC3E,CAAC;AAgDF,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS;;;;;;;;;;;;;;;;SA+BvF;AAUD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,QAAQ,EAAE,cAAc,EACxB,OAAO,EACP,UAAU,EACV,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrC,UAAU,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C,qBA4GA"}
1
+ {"version":3,"file":"AnimationManager.d.ts","sourceRoot":"","sources":["../../src/web/AnimationManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,KAAK,SAAS,GAAG;IACf,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM;IACX,cAAc,EAAE,CACd,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,KAChC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY;CAC3E,CAAC;AAgDF,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS;;;;;;;;;;;;;;;;SA+BvF;AAUD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,QAAQ,EAAE,cAAc,EACxB,OAAO,EACP,UAAU,EACV,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrC,UAAU,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C,qBAmHA"}
@@ -1,7 +1,8 @@
1
- import { ImageWrapperEvents } from './ImageWrapper.types';
2
- import { ImageSource } from '../Image.types';
1
+ import type { SyntheticEvent } from 'react';
2
+ import type { ImageWrapperEvents } from './ImageWrapper.types';
3
+ import type { ImageSource } from '../Image.types';
3
4
  export declare function getImageWrapperEventHandler(events: ImageWrapperEvents | undefined, source: ImageSource): {
4
- onLoad: (event: any) => void;
5
+ onLoad: (event: SyntheticEvent<HTMLImageElement, Event>) => void;
5
6
  onTransitionEnd: () => void | undefined;
6
7
  onError: () => void;
7
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getImageWrapperEventHandler.d.ts","sourceRoot":"","sources":["../../src/web/getImageWrapperEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,MAAM,EAAE,WAAW;;;;EAsBpB"}
1
+ {"version":3,"file":"getImageWrapperEventHandler.d.ts","sourceRoot":"","sources":["../../src/web/getImageWrapperEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,MAAM,EAAE,WAAW;oBAGD,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC;;;EAmB1D"}
@@ -8,7 +8,7 @@
8
8
  "publication": {
9
9
  "groupId": "BareExpo",
10
10
  "artifactId": "expo.modules.image",
11
- "version": "2.1.3",
11
+ "version": "2.1.5",
12
12
  "repository": "local-maven-repo"
13
13
  }
14
14
  }
@@ -244,7 +244,7 @@ public final class ImageView: ExpoView {
244
244
  return nil
245
245
  }()
246
246
 
247
- if let path, let local = UIImage(named: path) {
247
+ if let path, !path.isEmpty, let local = UIImage(named: path) {
248
248
  renderSourceImage(local)
249
249
  return true
250
250
  }
@@ -0,0 +1 @@
1
+ 91591dd86536326bb3cc2e4011cc0d97
@@ -0,0 +1 @@
1
+ 75a972e62c1b3c0a6f1065a97261eac02fc7caa4
@@ -0,0 +1 @@
1
+ e18ad974ea696b59696d44c3f9c6b328603f0642b083018b787168d27c0e8368
@@ -0,0 +1 @@
1
+ 13c0bf84a9a4bc09dc5f80ff226aa6af2144bfa46c8da2537da763d961ecdc65c88eac63c26505f8333b31b0058f0dc800821cc5a9eac2c5e22164895f63f4ef
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "BareExpo",
5
5
  "module": "expo.modules.image",
6
- "version": "2.1.3",
6
+ "version": "2.1.5",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -54,13 +54,13 @@
54
54
  ],
55
55
  "files": [
56
56
  {
57
- "name": "expo.modules.image-2.1.3.aar",
58
- "url": "expo.modules.image-2.1.3.aar",
59
- "size": 269853,
60
- "sha512": "f89e12c83f5e72e6f289f678337bd632294e6263e447e5a48bfccc820e0ef237c52134d73c76835decc8056aae3f183f4408d70cebf4464f936eb2ccabd8db7c",
61
- "sha256": "2c7805e9fe5e7ad9251aab7616edc054fef760eb75b55fe1422ed1f0ffb7f00c",
62
- "sha1": "a2f1da08d08f53e03ef4075b114185b81327a54b",
63
- "md5": "1c5e019a28220710d692fa0be82237f1"
57
+ "name": "expo.modules.image-2.1.5.aar",
58
+ "url": "expo.modules.image-2.1.5.aar",
59
+ "size": 269998,
60
+ "sha512": "13c0bf84a9a4bc09dc5f80ff226aa6af2144bfa46c8da2537da763d961ecdc65c88eac63c26505f8333b31b0058f0dc800821cc5a9eac2c5e22164895f63f4ef",
61
+ "sha256": "e18ad974ea696b59696d44c3f9c6b328603f0642b083018b787168d27c0e8368",
62
+ "sha1": "75a972e62c1b3c0a6f1065a97261eac02fc7caa4",
63
+ "md5": "91591dd86536326bb3cc2e4011cc0d97"
64
64
  }
65
65
  ]
66
66
  },
@@ -88,7 +88,7 @@
88
88
  "group": "com.github.penfeizhou.android.animation",
89
89
  "module": "glide-plugin",
90
90
  "version": {
91
- "requires": "3.0.2"
91
+ "requires": "3.0.3"
92
92
  }
93
93
  },
94
94
  {
@@ -143,13 +143,13 @@
143
143
  ],
144
144
  "files": [
145
145
  {
146
- "name": "expo.modules.image-2.1.3.aar",
147
- "url": "expo.modules.image-2.1.3.aar",
148
- "size": 269853,
149
- "sha512": "f89e12c83f5e72e6f289f678337bd632294e6263e447e5a48bfccc820e0ef237c52134d73c76835decc8056aae3f183f4408d70cebf4464f936eb2ccabd8db7c",
150
- "sha256": "2c7805e9fe5e7ad9251aab7616edc054fef760eb75b55fe1422ed1f0ffb7f00c",
151
- "sha1": "a2f1da08d08f53e03ef4075b114185b81327a54b",
152
- "md5": "1c5e019a28220710d692fa0be82237f1"
146
+ "name": "expo.modules.image-2.1.5.aar",
147
+ "url": "expo.modules.image-2.1.5.aar",
148
+ "size": 269998,
149
+ "sha512": "13c0bf84a9a4bc09dc5f80ff226aa6af2144bfa46c8da2537da763d961ecdc65c88eac63c26505f8333b31b0058f0dc800821cc5a9eac2c5e22164895f63f4ef",
150
+ "sha256": "e18ad974ea696b59696d44c3f9c6b328603f0642b083018b787168d27c0e8368",
151
+ "sha1": "75a972e62c1b3c0a6f1065a97261eac02fc7caa4",
152
+ "md5": "91591dd86536326bb3cc2e4011cc0d97"
153
153
  }
154
154
  ]
155
155
  },
@@ -163,8 +163,8 @@
163
163
  },
164
164
  "files": [
165
165
  {
166
- "name": "expo.modules.image-2.1.3-sources.jar",
167
- "url": "expo.modules.image-2.1.3-sources.jar",
166
+ "name": "expo.modules.image-2.1.5-sources.jar",
167
+ "url": "expo.modules.image-2.1.5-sources.jar",
168
168
  "size": 64110,
169
169
  "sha512": "5d1fc9c3a00f43d3618f1f48a268405ba6409a77afea3d453662a4b4e2713bc06671498dedf70d47c558dc5bfd0aeff36960522d62c4c568321a270b978b9530",
170
170
  "sha256": "b10d135169587ddca802d9c2d5ce8cc9f0aec39651d011c335fc7fae0724d4cc",
@@ -0,0 +1 @@
1
+ 574ba1c843285385d916188900b662d6bf42ae5b
@@ -0,0 +1 @@
1
+ b28a748bd58b7d2a940e0046baf230f00893908871eb54cdc7f4841f1a6dca22
@@ -0,0 +1 @@
1
+ ac46c8784016765774c10a73e3716dadda312f66e3cbad348148a5a5af3d51534464743c35186c96e95d9ee776929fee87f98986a21895d21e336079d5cccd18
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>BareExpo</groupId>
11
11
  <artifactId>expo.modules.image</artifactId>
12
- <version>2.1.3</version>
12
+ <version>2.1.5</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.image</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -63,7 +63,7 @@
63
63
  <dependency>
64
64
  <groupId>com.github.penfeizhou.android.animation</groupId>
65
65
  <artifactId>glide-plugin</artifactId>
66
- <version>3.0.2</version>
66
+ <version>3.0.3</version>
67
67
  <scope>runtime</scope>
68
68
  </dependency>
69
69
  <dependency>
@@ -0,0 +1 @@
1
+ 16ac0188a9f3daa6d84aefb62b03c005
@@ -0,0 +1 @@
1
+ 77a2a2e5773c4c39e18398f954d4fda463ab6748
@@ -0,0 +1 @@
1
+ e1e60a6c17bd189697f2a86906757ce1451663973a0deba707c2729f28d4c174
@@ -0,0 +1 @@
1
+ d1a923f16224113f6db3db25589d7851757390e67454379fe18c8cd8af0898a98b03429a9dd6a8d0d86ed36613f2cb9de8373de774058098943ce5643a37ac18
@@ -3,11 +3,11 @@
3
3
  <groupId>BareExpo</groupId>
4
4
  <artifactId>expo.modules.image</artifactId>
5
5
  <versioning>
6
- <latest>2.1.3</latest>
7
- <release>2.1.3</release>
6
+ <latest>2.1.5</latest>
7
+ <release>2.1.5</release>
8
8
  <versions>
9
- <version>2.1.3</version>
9
+ <version>2.1.5</version>
10
10
  </versions>
11
- <lastUpdated>20250411190927</lastUpdated>
11
+ <lastUpdated>20250425210750</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 3390c55350912002ca60099545a7eef4
1
+ bdd8054c151a47d39ddd0932e658d795
@@ -1 +1 @@
1
- 2813fca7d79c466544058efd44108fa69469a872
1
+ 97912d0b41c5cea2925c93699e1f1a7028ec3910
@@ -1 +1 @@
1
- 591a071331d4fc2776ca834ca4b9c8937dfa400efd1daa549e6baaed4a1f14af
1
+ ca83cad2b8022af1ee70c92c6a731de3cf883f8ecbe4b5cf0f789dad39b7acec
@@ -1 +1 @@
1
- 1195964ac690f6a1c7c68190bccbb334213a24623683cc1614b9490bbfa4e35e8472adb6c6a3e2ea5647e4fc3f6d14b20079b6e3ffa081bf350e5f345108a399
1
+ b5f0daa2788027a687ffcad0bcf5b2e2d1f9fcff633b58ca34c8671f5fd3dce1eddd0d224d6aa56186d85ea5afa74a94fc5af83a86d3eeb591bdba1ed626c5eb
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "expo-image",
3
3
  "title": "Expo Image",
4
- "version": "2.1.3",
4
+ "version": "2.1.5",
5
5
  "description": "A cross-platform, performant image component for React Native and Expo with Web support",
6
6
  "main": "src/index.ts",
7
7
  "types": "build/index.d.ts",
@@ -28,7 +28,7 @@
28
28
  "license": "MIT",
29
29
  "dependencies": {},
30
30
  "devDependencies": {
31
- "expo-module-scripts": "^4.1.1"
31
+ "expo-module-scripts": "^4.1.5"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "expo": "*",
@@ -41,5 +41,5 @@
41
41
  "optional": true
42
42
  }
43
43
  },
44
- "gitHead": "dd2c7150fd75c56505aa6d3f805c14e255649c5d"
44
+ "gitHead": "3cd208465df78e385ca9380531bbbfe33ca68e81"
45
45
  }
package/src/ExpoImage.tsx CHANGED
@@ -26,6 +26,10 @@ function withDeprecatedNativeEvent<NativeEvent>(
26
26
  }
27
27
 
28
28
  class ExpoImage extends React.PureComponent<ImageNativeProps> {
29
+ // NOTE(@kitten): native methods
30
+ startAnimating!: () => Promise<unknown> | unknown;
31
+ stopAnimating!: () => Promise<unknown> | unknown;
32
+
29
33
  onLoadStart = () => {
30
34
  this.props.onLoadStart?.();
31
35
  };
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ // TODO(@kitten): We shouldn't be importing all of react-native-web or rely on it for a web module in this way optimally
2
3
  import { View } from 'react-native-web';
3
4
 
4
5
  import type { ImageNativeProps, ImageSource, ImageLoadEventData, ImageRef } from './Image.types';
@@ -85,20 +86,22 @@ export default function ExpoImage({
85
86
  const selectedSource = useSourceSelection(
86
87
  source,
87
88
  responsivePolicy,
88
- // @ts-expect-error: vonovak this cast is a workaround
89
+ // TODO(@vonovak): this cast is a workaround
89
90
  containerViewRef as React.RefObject<HTMLDivElement | null>,
90
91
  isFlipTransition(transition) ? setCssVariablesForFlipTransitions : null
91
92
  );
92
93
 
93
- const initialNodeAnimationKey = getAnimationKey(placeholder?.[0], recyclingKey);
94
- const initialNode: AnimationManagerNode | null = placeholder?.[0]?.uri
94
+ // TODO(@kitten): This should narrow before accessing `placeholder?.[0]`
95
+ const firstPlaceholder = (placeholder as (typeof placeholder & ImageSource[]) | undefined)?.[0];
96
+ const initialNodeAnimationKey = getAnimationKey(firstPlaceholder, recyclingKey);
97
+ const initialNode: AnimationManagerNode | null = firstPlaceholder?.uri
95
98
  ? [
96
99
  initialNodeAnimationKey,
97
100
  ({ onAnimationFinished }) =>
98
101
  (className, style) => (
99
102
  <ImageWrapper
100
103
  ref={nativeViewRef as React.Ref<HTMLImageElement> | undefined}
101
- source={placeholder?.[0]}
104
+ source={firstPlaceholder}
102
105
  style={{
103
106
  objectFit: imagePlaceholderContentFit,
104
107
  ...(blurRadius ? { filter: `blur(${blurRadius}px)` } : {}),
@@ -120,14 +123,16 @@ export default function ExpoImage({
120
123
  ]
121
124
  : null;
122
125
 
123
- const currentNodeAnimationKey = getAnimationKey(selectedSource ?? placeholder?.[0], recyclingKey);
126
+ // @ts-expect-error: TODO(@kitten): This was implicitly cast to `any`, but with correct types this is now a mismatch
127
+ const currentNodeAnimationKey = getAnimationKey(selectedSource ?? firstPlaceholder, recyclingKey);
124
128
  const currentNode: AnimationManagerNode = [
125
129
  currentNodeAnimationKey,
126
130
  ({ onAnimationFinished, onReady, onMount, onError: onErrorInner }) =>
127
131
  (className, style) => (
128
132
  <ImageWrapper
129
133
  ref={nativeViewRef as React.Ref<HTMLImageElement> | undefined}
130
- source={selectedSource || placeholder?.[0]}
134
+ // @ts-expect-error: TODO(@kitten): This was implicitly cast to `any`, but with correct types this is now a mismatch
135
+ source={selectedSource || firstPlaceholder}
131
136
  events={{
132
137
  onError: [onErrorAdapter(onError), onLoadEnd, onErrorInner],
133
138
  onLoad: [onLoadAdapter(onLoad), onLoadEnd, onReady],
@@ -154,6 +159,7 @@ export default function ExpoImage({
154
159
  return (
155
160
  <View
156
161
  ref={containerViewRef}
162
+ // @ts-expect-error: TODO(@kitten): This is related to react-native-web presumably
157
163
  dataSet={{ expoimage: true }}
158
164
  style={[{ overflow: 'hidden' }, style]}
159
165
  {...props}>
package/src/Image.tsx CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { Platform, createSnapshotFriendlyRef } from 'expo-modules-core';
4
4
  import React from 'react';
5
- import { StyleSheet } from 'react-native';
5
+ import { StyleSheet, type View } from 'react-native';
6
6
 
7
7
  import ExpoImage from './ExpoImage';
8
8
  import {
@@ -20,9 +20,10 @@ let loggedDefaultSourceDeprecationWarning = false;
20
20
  let loggedRenderingChildrenWarning = false;
21
21
 
22
22
  export class Image extends React.PureComponent<ImageProps> {
23
- nativeViewRef;
24
- containerViewRef;
25
- constructor(props) {
23
+ nativeViewRef: React.RefObject<ExpoImage | null>;
24
+ containerViewRef: React.RefObject<View | null>;
25
+
26
+ constructor(props: ImageProps) {
26
27
  super(props);
27
28
  this.nativeViewRef = createSnapshotFriendlyRef();
28
29
  this.containerViewRef = createSnapshotFriendlyRef();
@@ -147,7 +148,7 @@ export class Image extends React.PureComponent<ImageProps> {
147
148
  * @platform ios
148
149
  */
149
150
  async startAnimating(): Promise<void> {
150
- await this.nativeViewRef.current.startAnimating();
151
+ await this.nativeViewRef.current?.startAnimating();
151
152
  }
152
153
 
153
154
  /**
@@ -156,7 +157,7 @@ export class Image extends React.PureComponent<ImageProps> {
156
157
  * @platform ios
157
158
  */
158
159
  async stopAnimating(): Promise<void> {
159
- await this.nativeViewRef.current.stopAnimating();
160
+ await this.nativeViewRef.current?.stopAnimating();
160
161
  }
161
162
 
162
163
  /**
@@ -18,12 +18,12 @@ export type ImageSource = {
18
18
  * Can be specified if known at build time, in which case the value
19
19
  * will be used to set the default `<Image/>` component dimension.
20
20
  */
21
- width?: number;
21
+ width?: number | null;
22
22
  /**
23
23
  * Can be specified if known at build time, in which case the value
24
24
  * will be used to set the default `<Image/>` component dimension.
25
25
  */
26
- height?: number;
26
+ height?: number | null;
27
27
 
28
28
  /**
29
29
  * A string used to generate the image [`placeholder`](#placeholder). For example,
@@ -376,8 +376,8 @@ export interface ImageNativeProps extends ImageProps {
376
376
  contentPosition?: ImageContentPositionObject;
377
377
  transition?: ImageTransition | null;
378
378
  autoplay?: boolean;
379
- nativeViewRef?: React.RefObject<ExpoImage>;
380
- containerViewRef?: React.RefObject<View>;
379
+ nativeViewRef?: React.RefObject<ExpoImage | null>;
380
+ containerViewRef?: React.RefObject<View | null>;
381
381
  }
382
382
 
383
383
  /**
@@ -10,7 +10,7 @@ class ImageModule extends NativeModule implements ImageNativeModule {
10
10
 
11
11
  Image: typeof ImageRef = ImageRefWeb;
12
12
 
13
- async prefetch(urls: string | string[], _, __): Promise<boolean> {
13
+ async prefetch(urls: string | string[], _: unknown, __: unknown): Promise<boolean> {
14
14
  const urlsArray = Array.isArray(urls) ? urls : [urls];
15
15
 
16
16
  return new Promise<boolean>((resolve) => {
@@ -0,0 +1 @@
1
+ /// <reference path="../../../expo-asset/src/ts-declarations/react-native-assets.d.ts" />
@@ -0,0 +1,3 @@
1
+ declare module 'react-native-web' {
2
+ export { View } from 'react-native';
3
+ }
@@ -11,7 +11,7 @@ export type ResolvedAssetSource = {
11
11
  };
12
12
 
13
13
  // Returns the Metro dev server-specific asset location.
14
- function getScaledAssetPath(asset): string {
14
+ function getScaledAssetPath(asset: PackagerAsset): string {
15
15
  const scale = AssetSourceResolver.pickScale(asset.scales, PixelRatio.get());
16
16
  const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';
17
17
  const type = !asset.type ? '' : `.${asset.type}`;
@@ -27,7 +27,7 @@ const validateBlurhash = (blurhash: string) => {
27
27
  export const isBlurhashValid = (blurhash: string): { result: boolean; errorReason?: string } => {
28
28
  try {
29
29
  validateBlurhash(blurhash);
30
- } catch (error) {
30
+ } catch (error: any) {
31
31
  return { result: false, errorReason: error.message };
32
32
  }
33
33
 
@@ -16,7 +16,7 @@ const DEFAULT_SIZE = {
16
16
  const scaleRatio = 10;
17
17
 
18
18
  export function useBlurhash(
19
- blurhash: { uri?: string; width?: number; height?: number } | undefined | null,
19
+ blurhash: { uri?: string; width?: number | null; height?: number | null } | undefined | null,
20
20
  punch: number = 1
21
21
  ) {
22
22
  punch = punch || 1;
@@ -2,7 +2,7 @@ import { getAssetByID } from '@react-native/assets-registry/registry';
2
2
 
3
3
  import AssetSourceResolver, { ResolvedAssetSource } from './AssetSourceResolver.web';
4
4
 
5
- let _customSourceTransformer;
5
+ let _customSourceTransformer: undefined | ((resolver: AssetSourceResolver) => ResolvedAssetSource);
6
6
 
7
7
  export function setCustomSourceTransformer(
8
8
  transformer: (resolver: AssetSourceResolver) => ResolvedAssetSource
@@ -54,7 +54,7 @@ export function rgbaToThumbHash(w: number, h: number, rgba: Uint8Array) {
54
54
  }
55
55
 
56
56
  // Encode using the DCT into DC (constant) and normalized AC (varying) terms
57
- const encodeChannel = (channel, nx, ny) => {
57
+ const encodeChannel = (channel: number[], nx: number, ny: number) => {
58
58
  let dc = 0;
59
59
  const ac: number[] = [];
60
60
  let scale = 0;
@@ -142,7 +142,7 @@ export function thumbHashToRGBA(hash: Uint8Array) {
142
142
  // Read the varying factors (boost saturation by 1.25x to compensate for quantization)
143
143
  const ac_start = hasAlpha ? 6 : 5;
144
144
  let ac_index = 0;
145
- const decodeChannel = (nx, ny, scale) => {
145
+ const decodeChannel = (nx: number, ny: number, scale: number) => {
146
146
  const ac: number[] = [];
147
147
  for (let cy = 0; cy < ny; cy++)
148
148
  for (let cx = cy ? 0 : 1; cx * ny < nx * (ny - cy); cx++)
@@ -154,7 +154,7 @@ export function thumbHashToRGBA(hash: Uint8Array) {
154
154
  const l_ac = decodeChannel(lx, ly, l_scale);
155
155
  const p_ac = decodeChannel(3, 3, p_scale * 1.25);
156
156
  const q_ac = decodeChannel(3, 3, q_scale * 1.25);
157
- const a_ac = hasAlpha && decodeChannel(5, 5, a_scale);
157
+ const a_ac = hasAlpha ? decodeChannel(5, 5, a_scale) : null;
158
158
 
159
159
  // Decode using the DCT into RGB
160
160
  const ratio = thumbHashToApproximateAspectRatio(hash);
@@ -194,7 +194,7 @@ export function thumbHashToRGBA(hash: Uint8Array) {
194
194
  if (hasAlpha)
195
195
  for (let cy = 0, j = 0; cy < 5; cy++)
196
196
  for (let cx = cy ? 0 : 1, fy2 = fy[cy] * 2; cx < 5 - cy; cx++, j++)
197
- a += a_ac[j] * fx[cx] * fy2;
197
+ a += a_ac![j] * fx[cx] * fy2;
198
198
 
199
199
  // Convert to RGB
200
200
  const b = l - (2 / 3) * p;
@@ -214,11 +214,18 @@ export default function AnimationManager({
214
214
  <>
215
215
  {[...nodes]
216
216
  .filter((n) => n.status !== 'errored')
217
- .map((n) => (
218
- <div className={animation?.containerClass} key={n.animationKey}>
219
- {wrapNodeWithCallbacks(n)(classes[n.status], styles)}
220
- </div>
221
- ))}
217
+ .map((n) => {
218
+ const status = n.status as keyof typeof classes & NodeStatus;
219
+ // TODO(@kitten): This creates impossible states!
220
+ // Ensure that the above type is either exhaustively reflected in this `map` so `className` sheds `undefined`,
221
+ // or retype the `MountedAnimationNode` function to accept `className: string | undefined`
222
+ const className = classes[status]!;
223
+ return (
224
+ <div className={animation?.containerClass} key={n.animationKey}>
225
+ {wrapNodeWithCallbacks(n)(className, styles)}
226
+ </div>
227
+ );
228
+ })}
222
229
  </>
223
230
  );
224
231
  }
@@ -1,5 +1,7 @@
1
- import { ImageWrapperEvents } from './ImageWrapper.types';
2
- import { ImageSource } from '../Image.types';
1
+ import type { SyntheticEvent } from 'react';
2
+
3
+ import type { ImageWrapperEvents } from './ImageWrapper.types';
4
+ import type { ImageSource } from '../Image.types';
3
5
  import { isBlurhashString } from '../utils/resolveSources';
4
6
 
5
7
  export function getImageWrapperEventHandler(
@@ -7,7 +9,7 @@ export function getImageWrapperEventHandler(
7
9
  source: ImageSource
8
10
  ) {
9
11
  return {
10
- onLoad: (event) => {
12
+ onLoad: (event: SyntheticEvent<HTMLImageElement, Event>) => {
11
13
  events?.onLoad?.forEach((e) => e?.(event));
12
14
 
13
15
  if (typeof window !== 'undefined') {
@@ -36,7 +36,7 @@ export function getObjectPositionFromContentPositionObject(
36
36
  }
37
37
 
38
38
  return (
39
- ['top', 'bottom', 'left', 'right']
39
+ (['top', 'bottom', 'left', 'right'] as const)
40
40
  .map((key) => {
41
41
  if (key in resolvedPosition) {
42
42
  return `${key} ${ensureValueIsWebUnits(resolvedPosition[key])}`;
@@ -1 +0,0 @@
1
- 1c5e019a28220710d692fa0be82237f1
@@ -1 +0,0 @@
1
- a2f1da08d08f53e03ef4075b114185b81327a54b
@@ -1 +0,0 @@
1
- 2c7805e9fe5e7ad9251aab7616edc054fef760eb75b55fe1422ed1f0ffb7f00c
@@ -1 +0,0 @@
1
- f89e12c83f5e72e6f289f678337bd632294e6263e447e5a48bfccc820e0ef237c52134d73c76835decc8056aae3f183f4408d70cebf4464f936eb2ccabd8db7c
@@ -1 +0,0 @@
1
- a38d2b61c6087af435c760c9f6a5266b
@@ -1 +0,0 @@
1
- 2bbef2087f091fd9e8ff8a612caa148efa613ea1
@@ -1 +0,0 @@
1
- 1b47fb921b1a39c94ce91c9676fda5f2834b809414209ad398efe967d09627e9
@@ -1 +0,0 @@
1
- 6c6b9f17419ef21959b1d62226f6df8c348df9d8deb636aa0200adf10349dfc04375ff19a063549cf21fe6a3d25dbc2d5809300300a9f95a4e16e3ca44838ca9
@@ -1 +0,0 @@
1
- 3eb30e665a3ea4b34418028a97bf010d
@@ -1 +0,0 @@
1
- f2bd499bfcecd3ec2d3621075ff54e5e67d98319
@@ -1 +0,0 @@
1
- 6c0a230707ef8e62ded3290aa527173b90ec8716e0ff80a5d8892a562ad83521
@@ -1 +0,0 @@
1
- f240db9030b2c3d46935a98e3a91f4c8543df3d881e86ea27feebe1500e83c8cdb94594e5537da02bfc2ad93053f021d2cdaed4122a3c06c72dc3ca3b0dca793