expo-widgets 57.0.13 → 57.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,18 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 57.0.15 — 2026-08-28
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - Add `createContext`/`useContext` to the widget bundle React stub, so widget layouts using `@expo/ui` stop failing with `createContext is not a function`. ([#49507](https://github.com/expo/expo/pull/49507) by [@usmsam](https://github.com/usmsam))
18
+
19
+ ## 57.0.14 — 2026-08-28
20
+
21
+ ### 🐛 Bug fixes
22
+
23
+ - Resolve deep `react-native/*` imports as empty modules when bundling widget layouts, fixing every widget failing with "Could not create context for layout evaluation" after `@expo/ui` 57.0.14 introduced such an import. ([#49491](https://github.com/expo/expo/pull/49491) by [@usmsam](https://github.com/usmsam))
24
+
13
25
  ## 57.0.13 — 2026-08-26
14
26
 
15
27
  _This version does not introduce any user-facing changes._
@@ -13,7 +13,7 @@ apply plugin: 'expo-module-gradle-plugin'
13
13
  apply plugin: 'org.jetbrains.kotlin.plugin.compose'
14
14
 
15
15
  group = 'expo.modules.widgets'
16
- version = '57.0.13'
16
+ version = '57.0.15'
17
17
 
18
18
  expoModule {
19
19
  canBePublished false
@@ -23,7 +23,7 @@ android {
23
23
  namespace "expo.modules.widgets"
24
24
  defaultConfig {
25
25
  versionCode 1
26
- versionName '57.0.13'
26
+ versionName '57.0.15'
27
27
  }
28
28
 
29
29
  buildFeatures {
@@ -11,3 +11,18 @@ export const Children = {
11
11
  export const isValidElement = (value: unknown) => {
12
12
  return Boolean(value) && typeof value === 'object' && 'type' in (value as object);
13
13
  };
14
+
15
+ // TODO(@jakex7): Make this a proper React reconciler in the future. For now, we just need a stub to allow the widget bundle to compile with @expo/ui/jetpack-compose.
16
+ type StubContext<T> = {
17
+ Provider: string;
18
+ Consumer: string;
19
+ _currentValue: T;
20
+ };
21
+
22
+ export const createContext = <T>(defaultValue: T): StubContext<T> => ({
23
+ Provider: 'react.provider',
24
+ Consumer: 'react.consumer',
25
+ _currentValue: defaultValue,
26
+ });
27
+
28
+ export const useContext = <T>(context: StubContext<T>): T => context._currentValue;
package/metro.config.js CHANGED
@@ -40,6 +40,9 @@ const buildConfig = {
40
40
  if (fileSpecifierRe.test(moduleName)) {
41
41
  return context.resolveRequest(context, moduleName, platform);
42
42
  }
43
+ if (moduleName.startsWith('react-native/')) {
44
+ return { type: 'empty' };
45
+ }
43
46
  switch (moduleName) {
44
47
  case 'expo':
45
48
  return { type: 'sourceFile', filePath: expoStubPath };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-widgets",
3
- "version": "57.0.13",
3
+ "version": "57.0.15",
4
4
  "description": "Widgets.",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -30,7 +30,7 @@
30
30
  "@types/react": "~19.2.0",
31
31
  "react-native": "0.86.3",
32
32
  "resolve-workspace-root": "^2.0.0",
33
- "expo": "57.0.17",
33
+ "expo": "57.0.18",
34
34
  "expo-module-scripts": "56.0.3"
35
35
  },
36
36
  "peerDependencies": {
@@ -44,7 +44,7 @@
44
44
  "./scripts/xcode-build-bundle.sh"
45
45
  ]
46
46
  },
47
- "gitHead": "c300d2cc60c9e684e64f48d9bc90ea18a571d01d",
47
+ "gitHead": "8100877c7d3943491f5bf2004fbbad8de6a452da",
48
48
  "scripts": {
49
49
  "build": "expo-module build",
50
50
  "build:plugin": "expo-module build plugin",