expo-gl 16.0.0 → 16.0.1

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 (41) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/android/build.gradle +2 -2
  3. package/build/Canvas.d.ts.map +1 -1
  4. package/build/Canvas.js +1 -10
  5. package/build/Canvas.js.map +1 -1
  6. package/expo-module.config.json +1 -1
  7. package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0.module → 16.0.1/expo.modules.gl-16.0.1.module} +7 -7
  8. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.1/expo.modules.gl-16.0.1.module.md5 +1 -0
  9. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.1/expo.modules.gl-16.0.1.module.sha1 +1 -0
  10. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.1/expo.modules.gl-16.0.1.module.sha256 +1 -0
  11. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.1/expo.modules.gl-16.0.1.module.sha512 +1 -0
  12. package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0.pom → 16.0.1/expo.modules.gl-16.0.1.pom} +1 -1
  13. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.1/expo.modules.gl-16.0.1.pom.md5 +1 -0
  14. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.1/expo.modules.gl-16.0.1.pom.sha1 +1 -0
  15. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.1/expo.modules.gl-16.0.1.pom.sha256 +1 -0
  16. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.1/expo.modules.gl-16.0.1.pom.sha512 +1 -0
  17. package/local-maven-repo/host/exp/exponent/expo.modules.gl/maven-metadata.xml +4 -4
  18. package/local-maven-repo/host/exp/exponent/expo.modules.gl/maven-metadata.xml.md5 +1 -1
  19. package/local-maven-repo/host/exp/exponent/expo.modules.gl/maven-metadata.xml.sha1 +1 -1
  20. package/local-maven-repo/host/exp/exponent/expo.modules.gl/maven-metadata.xml.sha256 +1 -1
  21. package/local-maven-repo/host/exp/exponent/expo.modules.gl/maven-metadata.xml.sha512 +1 -1
  22. package/package.json +3 -3
  23. package/src/Canvas.tsx +2 -11
  24. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.0/expo.modules.gl-16.0.0.module.md5 +0 -1
  25. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.0/expo.modules.gl-16.0.0.module.sha1 +0 -1
  26. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.0/expo.modules.gl-16.0.0.module.sha256 +0 -1
  27. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.0/expo.modules.gl-16.0.0.module.sha512 +0 -1
  28. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.0/expo.modules.gl-16.0.0.pom.md5 +0 -1
  29. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.0/expo.modules.gl-16.0.0.pom.sha1 +0 -1
  30. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.0/expo.modules.gl-16.0.0.pom.sha256 +0 -1
  31. package/local-maven-repo/host/exp/exponent/expo.modules.gl/16.0.0/expo.modules.gl-16.0.0.pom.sha512 +0 -1
  32. /package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0-sources.jar → 16.0.1/expo.modules.gl-16.0.1-sources.jar} +0 -0
  33. /package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0-sources.jar.md5 → 16.0.1/expo.modules.gl-16.0.1-sources.jar.md5} +0 -0
  34. /package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0-sources.jar.sha1 → 16.0.1/expo.modules.gl-16.0.1-sources.jar.sha1} +0 -0
  35. /package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0-sources.jar.sha256 → 16.0.1/expo.modules.gl-16.0.1-sources.jar.sha256} +0 -0
  36. /package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0-sources.jar.sha512 → 16.0.1/expo.modules.gl-16.0.1-sources.jar.sha512} +0 -0
  37. /package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0.aar → 16.0.1/expo.modules.gl-16.0.1.aar} +0 -0
  38. /package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0.aar.md5 → 16.0.1/expo.modules.gl-16.0.1.aar.md5} +0 -0
  39. /package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0.aar.sha1 → 16.0.1/expo.modules.gl-16.0.1.aar.sha1} +0 -0
  40. /package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0.aar.sha256 → 16.0.1/expo.modules.gl-16.0.1.aar.sha256} +0 -0
  41. /package/local-maven-repo/host/exp/exponent/expo.modules.gl/{16.0.0/expo.modules.gl-16.0.0.aar.sha512 → 16.0.1/expo.modules.gl-16.0.1.aar.sha512} +0 -0
package/CHANGELOG.md CHANGED
@@ -10,6 +10,12 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 16.0.1 — 2025-08-15
14
+
15
+ ### 💡 Others
16
+
17
+ - [Web] Remove `findDOMNode` usage. ([#38800](https://github.com/expo/expo/pull/38800) by [@alanjhughes](https://github.com/alanjhughes))
18
+
13
19
  ## 16.0.0 — 2025-08-13
14
20
 
15
21
  ### 💡 Others
@@ -9,7 +9,7 @@ def reactNativeArchitectures() {
9
9
  }
10
10
 
11
11
  group = 'host.exp.exponent'
12
- version = '16.0.0'
12
+ version = '16.0.1'
13
13
 
14
14
  android {
15
15
  if (rootProject.hasProperty("ndkPath")) {
@@ -22,7 +22,7 @@ android {
22
22
  namespace "expo.modules.gl"
23
23
  defaultConfig {
24
24
  versionCode 31
25
- versionName "16.0.0"
25
+ versionName "16.0.1"
26
26
 
27
27
  externalNativeBuild {
28
28
  cmake {
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAmD,SAAS,EAAE,MAAM,cAAc,CAAC;AAiD1F,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAC1C,SAAS,GAAG;IACV,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;CACzC,CAmEF,CAAC;AAQF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAmD,SAAS,EAAE,MAAM,cAAc,CAAC;AAyC1F,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAC1C,SAAS,GAAG;IACV,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;CACzC,CAmEF,CAAC;AAQF,eAAe,aAAa,CAAC"}
package/build/Canvas.js CHANGED
@@ -1,15 +1,6 @@
1
1
  import * as React from 'react';
2
- import { findDOMNode } from 'react-dom';
3
2
  import { PixelRatio, StyleSheet, View } from 'react-native';
4
3
  import createElement from 'react-native-web/dist/exports/createElement';
5
- function getElement(component) {
6
- try {
7
- return findDOMNode(component);
8
- }
9
- catch {
10
- return component;
11
- }
12
- }
13
4
  function setRef(refProp, ref) {
14
5
  if (!refProp)
15
6
  return;
@@ -28,7 +19,7 @@ function getSize({ size, ref }) {
28
19
  else if (!ref.current || typeof window === 'undefined') {
29
20
  return { width: 0, height: 0 };
30
21
  }
31
- const element = getElement(ref.current);
22
+ const element = ref.current;
32
23
  const { offsetWidth: width = 0, offsetHeight: height = 0 } = element;
33
24
  return { width, height };
34
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.js","sourceRoot":"","sources":["../src/Canvas.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport { LayoutChangeEvent, PixelRatio, StyleSheet, View, ViewProps } from 'react-native';\nimport createElement from 'react-native-web/dist/exports/createElement';\n\ninterface Size {\n width: number;\n height: number;\n}\n\ninterface GetSizeParams {\n size: Size | null;\n ref: React.RefObject<View | null>;\n}\n\nfunction getElement(component: React.ReactInstance): React.ReactInstance | Element | null | Text {\n try {\n return findDOMNode(component);\n } catch {\n return component;\n }\n}\n\nfunction setRef<T>(refProp: React.Ref<T>, ref: T | null) {\n if (!refProp) return;\n\n if (typeof refProp === 'function') {\n refProp(ref);\n } else if ('current' in refProp) {\n // @ts-ignore\n refProp.current = ref;\n }\n}\n\nfunction getSize({ size, ref }: GetSizeParams): Size {\n if (size) {\n return size;\n } else if (!ref.current || typeof window === 'undefined') {\n return { width: 0, height: 0 };\n }\n const element = getElement(ref.current);\n const { offsetWidth: width = 0, offsetHeight: height = 0 } = element as HTMLElement;\n return { width, height };\n}\n\nconst Canvas = (\n props: React.ComponentProps<typeof View> & {\n ref?: React.Ref<HTMLCanvasElement>;\n }\n) => createElement('canvas', props);\n\nconst CanvasWrapper: React.FunctionComponent<\n ViewProps & {\n canvasRef: React.Ref<HTMLCanvasElement>;\n }\n> = ({ pointerEvents, children, style, ...props }) => {\n const [size, setSize] = React.useState<Size | null>(null);\n\n const ref = React.useRef<View>(null);\n const _canvasRef = React.useRef<HTMLCanvasElement>(null);\n\n const updateCanvasSize = React.useCallback(() => {\n const canvas = _canvasRef.current;\n if (typeof HTMLCanvasElement !== 'undefined' && canvas instanceof HTMLCanvasElement) {\n const currentSize = getSize({\n size,\n ref,\n });\n const scale = PixelRatio.get();\n\n canvas.style.width = `${currentSize.width}px`;\n canvas.style.height = `${currentSize.height}px`;\n\n canvas.width = currentSize.width * scale;\n canvas.height = currentSize.height * scale;\n }\n }, [size?.width, size?.height]);\n\n const onLayout = React.useCallback(\n (event: LayoutChangeEvent) => {\n const {\n nativeEvent: {\n layout: { width, height },\n },\n } = event;\n\n if (width !== size?.width || height !== size?.height) {\n setSize({ width, height });\n\n if (props.onLayout) {\n props.onLayout(event);\n }\n }\n },\n [size?.width, size?.height, props.onLayout]\n );\n\n React.useEffect(() => {\n if (ref.current != null) {\n setSize(getSize({ size, ref }));\n }\n }, [ref]);\n\n React.useEffect(() => {\n updateCanvasSize();\n }, [size]);\n\n React.useEffect(() => {\n const canvas = _canvasRef.current;\n if (canvas) {\n updateCanvasSize();\n }\n setRef(props.canvasRef, canvas);\n }, [_canvasRef]);\n\n return (\n <View {...props} style={[styles.wrapper, style]} ref={ref} onLayout={onLayout}>\n <Canvas ref={_canvasRef} style={[StyleSheet.absoluteFill, { pointerEvents }]} />\n {children}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrapper: {\n pointerEvents: 'box-none',\n },\n});\n\nexport default CanvasWrapper;\n"]}
1
+ {"version":3,"file":"Canvas.js","sourceRoot":"","sources":["../src/Canvas.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { LayoutChangeEvent, PixelRatio, StyleSheet, View, ViewProps } from 'react-native';\nimport createElement from 'react-native-web/dist/exports/createElement';\n\ninterface Size {\n width: number;\n height: number;\n}\n\ninterface GetSizeParams {\n size: Size | null;\n ref: React.RefObject<View | null>;\n}\n\nfunction setRef<T>(refProp: React.Ref<T>, ref: T | null) {\n if (!refProp) return;\n\n if (typeof refProp === 'function') {\n refProp(ref);\n } else if ('current' in refProp) {\n // @ts-ignore\n refProp.current = ref;\n }\n}\n\nfunction getSize({ size, ref }: GetSizeParams): Size {\n if (size) {\n return size;\n } else if (!ref.current || typeof window === 'undefined') {\n return { width: 0, height: 0 };\n }\n const element = ref.current as unknown as HTMLElement;\n const { offsetWidth: width = 0, offsetHeight: height = 0 } = element;\n return { width, height };\n}\n\nconst Canvas = (\n props: React.ComponentProps<typeof View> & {\n ref?: React.Ref<HTMLCanvasElement>;\n }\n) => createElement('canvas', props);\n\nconst CanvasWrapper: React.FunctionComponent<\n ViewProps & {\n canvasRef: React.Ref<HTMLCanvasElement>;\n }\n> = ({ pointerEvents, children, style, ...props }) => {\n const [size, setSize] = React.useState<Size | null>(null);\n\n const ref = React.useRef<View>(null);\n const _canvasRef = React.useRef<HTMLCanvasElement>(null);\n\n const updateCanvasSize = React.useCallback(() => {\n const canvas = _canvasRef.current;\n if (typeof HTMLCanvasElement !== 'undefined' && canvas instanceof HTMLCanvasElement) {\n const currentSize = getSize({\n size,\n ref,\n });\n const scale = PixelRatio.get();\n\n canvas.style.width = `${currentSize.width}px`;\n canvas.style.height = `${currentSize.height}px`;\n\n canvas.width = currentSize.width * scale;\n canvas.height = currentSize.height * scale;\n }\n }, [size?.width, size?.height]);\n\n const onLayout = React.useCallback(\n (event: LayoutChangeEvent) => {\n const {\n nativeEvent: {\n layout: { width, height },\n },\n } = event;\n\n if (width !== size?.width || height !== size?.height) {\n setSize({ width, height });\n\n if (props.onLayout) {\n props.onLayout(event);\n }\n }\n },\n [size?.width, size?.height, props.onLayout]\n );\n\n React.useEffect(() => {\n if (ref.current != null) {\n setSize(getSize({ size, ref }));\n }\n }, [ref]);\n\n React.useEffect(() => {\n updateCanvasSize();\n }, [size]);\n\n React.useEffect(() => {\n const canvas = _canvasRef.current;\n if (canvas) {\n updateCanvasSize();\n }\n setRef(props.canvasRef, canvas);\n }, [_canvasRef]);\n\n return (\n <View {...props} style={[styles.wrapper, style]} ref={ref} onLayout={onLayout}>\n <Canvas ref={_canvasRef} style={[StyleSheet.absoluteFill, { pointerEvents }]} />\n {children}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrapper: {\n pointerEvents: 'box-none',\n },\n});\n\nexport default CanvasWrapper;\n"]}
@@ -9,7 +9,7 @@
9
9
  "publication": {
10
10
  "groupId": "host.exp.exponent",
11
11
  "artifactId": "expo.modules.gl",
12
- "version": "16.0.0",
12
+ "version": "16.0.1",
13
13
  "repository": "local-maven-repo"
14
14
  }
15
15
  }
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "host.exp.exponent",
5
5
  "module": "expo.modules.gl",
6
- "version": "16.0.0",
6
+ "version": "16.0.1",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -24,8 +24,8 @@
24
24
  },
25
25
  "files": [
26
26
  {
27
- "name": "expo.modules.gl-16.0.0.aar",
28
- "url": "expo.modules.gl-16.0.0.aar",
27
+ "name": "expo.modules.gl-16.0.1.aar",
28
+ "url": "expo.modules.gl-16.0.1.aar",
29
29
  "size": 1044289,
30
30
  "sha512": "05bd268063d7428790aa814d3e3076718303dd42464c5292669dccd06873a57486f974841fe763f1fb2246f24303f4c83e08b1471663a1e0d70bd580e2bf91a8",
31
31
  "sha256": "a46cbc0f425c2ec6158987dc4df5fc2b27a828a86b6c9a33d237bc6f4e0af6f4",
@@ -53,8 +53,8 @@
53
53
  ],
54
54
  "files": [
55
55
  {
56
- "name": "expo.modules.gl-16.0.0.aar",
57
- "url": "expo.modules.gl-16.0.0.aar",
56
+ "name": "expo.modules.gl-16.0.1.aar",
57
+ "url": "expo.modules.gl-16.0.1.aar",
58
58
  "size": 1044289,
59
59
  "sha512": "05bd268063d7428790aa814d3e3076718303dd42464c5292669dccd06873a57486f974841fe763f1fb2246f24303f4c83e08b1471663a1e0d70bd580e2bf91a8",
60
60
  "sha256": "a46cbc0f425c2ec6158987dc4df5fc2b27a828a86b6c9a33d237bc6f4e0af6f4",
@@ -73,8 +73,8 @@
73
73
  },
74
74
  "files": [
75
75
  {
76
- "name": "expo.modules.gl-16.0.0-sources.jar",
77
- "url": "expo.modules.gl-16.0.0-sources.jar",
76
+ "name": "expo.modules.gl-16.0.1-sources.jar",
77
+ "url": "expo.modules.gl-16.0.1-sources.jar",
78
78
  "size": 12381,
79
79
  "sha512": "1cab724074b050f7459a884ac9e98fbf2d009d8239810ca6384c5113f52dd33e5ac40a72ec7174b297e1b10521e56682d73f533715316be5be66ce0e482356d8",
80
80
  "sha256": "e8892c6837d1eb5093b2c3b063883d7511799b0e246940c5b70f1515cb4451cd",
@@ -0,0 +1 @@
1
+ ceecab4e002db070a19bc5d4b565f1367ce681aa
@@ -0,0 +1 @@
1
+ 2a5dd799e5afe494b33c394f496a7a1a4e974f9c25f258b07b35e11ca1198d4c
@@ -0,0 +1 @@
1
+ d86b52128a0c457c6e3dea1ef1a9e281ca675250d030536480a8eb06871999c4f7ccb6f9cf0ea3b3cf98e67fa73ca6d734498006e155d5825a42168ab44e614c
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.gl</artifactId>
12
- <version>16.0.0</version>
12
+ <version>16.0.1</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.gl</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ 2de75cdc8bf742d849891db7418cc45de736213d
@@ -0,0 +1 @@
1
+ 74821176bb514a49274fdc894273e753ec847eed9fbf790ea98ecc2fdf38812c
@@ -0,0 +1 @@
1
+ 75925d5ace9a70b78d3fd2d0d64b073fd884a9e6b4c23b28cb50fbe1bb37a672f1c2446b23addfdb4cb8a93a4af2b666a74d1d3f2c1fd4f8c62ccf02cde132f6
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.gl</artifactId>
5
5
  <versioning>
6
- <latest>16.0.0</latest>
7
- <release>16.0.0</release>
6
+ <latest>16.0.1</latest>
7
+ <release>16.0.1</release>
8
8
  <versions>
9
- <version>16.0.0</version>
9
+ <version>16.0.1</version>
10
10
  </versions>
11
- <lastUpdated>20250813165925</lastUpdated>
11
+ <lastUpdated>20250815180456</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 0d007e998bed63329283bb1cce37c517
1
+ 15ada902f3ba053730a13b0312df496c
@@ -1 +1 @@
1
- f05c233cfb34f1f4683d482b0e94ae19e13d1d1d
1
+ ce7802f528e49b4ddb1633c207593843ed724dd6
@@ -1 +1 @@
1
- 87923b63b72fc37dffc5e325ec050230f0daffaf2b86bff6ab635f4b9fe298eb
1
+ ddf5910902689e077fcb90609440d3734934ebb637510c4e59e826d15ac26d35
@@ -1 +1 @@
1
- f0304b315578ba8c9503822073acf199fc3208368a6bf52df686a57f950a5f552b4630647654c2f6a14e0196d8332b2495ccc544876ccd01227d93d39b44842f
1
+ 8251efc6680a7d3adb9be2e119d6bdd24ff3de61a36fdab9a90e41646ff618e6584add198f04caa4333c05b27f3c2cdf136fa1ffd7e4f6e80f5a36650c64b377
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-gl",
3
- "version": "16.0.0",
3
+ "version": "16.0.1",
4
4
  "description": "Provides GLView that acts as OpenGL ES render target and gives GL context object implementing WebGL 2.0 specification.",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -43,7 +43,7 @@
43
43
  "@types/invariant": "^2.2.33",
44
44
  "@types/offscreencanvas": "2019.6.4",
45
45
  "@types/webgl2": "^0.0.6",
46
- "expo-module-scripts": "^5.0.0",
46
+ "expo-module-scripts": "^5.0.1",
47
47
  "react-test-renderer": "19.1.0"
48
48
  },
49
49
  "peerDependencies": {
@@ -65,5 +65,5 @@
65
65
  "optional": true
66
66
  }
67
67
  },
68
- "gitHead": "cb7062e2c17d1fb09522834aaaac0e19b766df62"
68
+ "gitHead": "2f7f90d0736af48cb542ccbc8addb836e330693a"
69
69
  }
package/src/Canvas.tsx CHANGED
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import { findDOMNode } from 'react-dom';
3
2
  import { LayoutChangeEvent, PixelRatio, StyleSheet, View, ViewProps } from 'react-native';
4
3
  import createElement from 'react-native-web/dist/exports/createElement';
5
4
 
@@ -13,14 +12,6 @@ interface GetSizeParams {
13
12
  ref: React.RefObject<View | null>;
14
13
  }
15
14
 
16
- function getElement(component: React.ReactInstance): React.ReactInstance | Element | null | Text {
17
- try {
18
- return findDOMNode(component);
19
- } catch {
20
- return component;
21
- }
22
- }
23
-
24
15
  function setRef<T>(refProp: React.Ref<T>, ref: T | null) {
25
16
  if (!refProp) return;
26
17
 
@@ -38,8 +29,8 @@ function getSize({ size, ref }: GetSizeParams): Size {
38
29
  } else if (!ref.current || typeof window === 'undefined') {
39
30
  return { width: 0, height: 0 };
40
31
  }
41
- const element = getElement(ref.current);
42
- const { offsetWidth: width = 0, offsetHeight: height = 0 } = element as HTMLElement;
32
+ const element = ref.current as unknown as HTMLElement;
33
+ const { offsetWidth: width = 0, offsetHeight: height = 0 } = element;
43
34
  return { width, height };
44
35
  }
45
36
 
@@ -1 +0,0 @@
1
- 4282c4ad1284641075ad0e0f78b1b656d0d68ce2
@@ -1 +0,0 @@
1
- 83e79a9886f100f90537491d47a832fc02beef233bf67d9364548a41c1fb56f5
@@ -1 +0,0 @@
1
- 608dc19339e04002d2650b36b77bc46e09f3388f87d87debfaa478e2e2361f443895edb75f1dbb852e091ef88d7db4c14c9f594d29cc76d8298b32305ae6e47e
@@ -1 +0,0 @@
1
- 17344c9bf7ee67e5c4eccee8ff5b8098a03f004a
@@ -1 +0,0 @@
1
- bd5106969467562824b6d3208e671bf4283bb9b5300994def80bc23d6742aca9
@@ -1 +0,0 @@
1
- 74159503bbdbb9a22b75c10e0247b7f61bd691bf057e73daaf1d44e2c4dcca20fcf2e47d38a316aa867701fc07ceda7ab07df1a8938a984a96b9e622686a7c93