Pewarta Proxy

📋 Server Request & Proxy Logs

Loading active proxy settings...
Developed by Khairul Adha (adhexa.id)
Mengambil log server...

⚙️ Pengaturan Proxy Target

Skip to content

Upgrade to react-native 0.85, Animated improvements, missing APIs and props - #857

Open
Freddy03h wants to merge 11 commits into
mainfrom
react-native-85
Open

Freddy03h wants to merge 11 commits into
mainfrom
react-native-85

Conversation

@Freddy03h

Copy link
Copy Markdown
Member

Upgrade the bindings to react-native@0.85 (and rescript@12.3.1 as dev dependency), plus a pass on Animated, missing APIs/props and deprecations. Bindings were checked against the generated types (types_generated) and runtime deprecation warnings of react-native@0.85.3. One commit per topic, each commit builds on its own.

React Native 0.85

  • Breaking: remove StyleSheet.absoluteFillObject (removed upstream)
  • Add Animated.useAnimatedValueXY / Animated.useAnimatedColor, EventEmitter
  • Add selection to TextInput.ChangeEvent payload (facebook/react-native@c1f5445), Pressable onPressMove, ScrollView scrollsChildToFocus
  • peerDependencies: react-native >= 0.85.0; dev dependency rescript@~12.3.1

Animated

  • Fix: Animated.Color listener / stopAnimation / resetAnimation callbacks receive a color string, not an rgba object
  • Fix: StyleProp.color returned Animated.Color.t instead of Color.t (it could not be used in a style); add StyleProp.animatedColor
  • Breaking: Animated.Color.create(~initialValue=?, ~config=?) with Animated.Color.input (Rgba({r, g, b, a}) / String("red")), replaces create / createFromString / rgbaValue; setValue takes input
  • Breaking: Animated.parallel(anims, ~config=?), stopTogether optional
  • Add ~config to Value.create / ValueXY.create, ValueXY.createFromValues, Timing/Spring.fromInterpolation, hasListeners, attachNativeEvent, forkEvent, unforkEvent
  • Zero-cost Animated.timing / spring / decay / start / stop / reset / Value.interpolate: they were let aliases compiled to JS wrapper functions

Fixes

  • Color.hsla generated hsl(h, s%, l%, a), which React Native's color parser rejects
  • Breaking: ScrollView StickyHeaderComponent is a React.component<ScrollView.stickyHeaderProps> (was typed as React.element, which RN can't render), add Animated.Value.fromStickyHeaderScrollValue
  • Breaking: VirtualizedList.cellRendererComponentProps is typed (was {.})

New APIs and globals

  • I18nManager, DeviceEventEmitter, ReactNativeVersion, ErrorUtils
  • Global.requestIdleCallback / cancelIdleCallback / setImmediate / clearImmediate / queueMicrotask

New props

  • aria-* accessibility props (ariaLabel, ariaChecked with Mixed, ariaHidden, ariaLive, …) on all components using Accessibility props
  • View: touch events (onTouchStart… and Capture variants), onFocusCapture / onBlurCapture, nextFocus* (Android), experimental_accessibilityOrder
  • Pressable cancelable, TouchableWithoutFeedback rejectResponderTermination, TextInput inputAccessoryViewButtonLabel, Image src
  • Style.matrix transform, all fontVariant values (ligatures, contextual, stylistic-*)

Deprecations

  • InteractionManager (deprecated by RN, points to Global.requestIdleCallback)
  • ProgressBarAndroid, Clipboard (extracted from core), StatusBar.setNetworkActivityIndicatorVisible
  • TextInput blurOnSubmit, hasTVPreferredFocus on Button / TouchableHighlight / TouchableOpacity: note that ReScript doesn't warn on deprecated record fields, so these are documentation only

Notes for reviewers

  • npm test passes (clean build, warnings as errors). New/changed bindings were checked by compiling throwaway usage files and reading the generated JS; nothing was run in a real React Native app.
  • Left for later: replacing functors (NativeElement.Impl, Event.SyntheticEvent…) to make the generated JS fully side-effect free, Text ariaLevel (not a RN prop), TurboModuleRegistry, unstable_batchedUpdates.
  • package.json version is still 0.84.0, to be bumped in the release commit.

🤖 Generated with Claude Code

Freddy03h and others added 10 commits October 25, 2026 11:57
- remove StyleSheet.absoluteFillObject (removed upstream)
- add Animated.useAnimatedValueXY and Animated.useAnimatedColor
- add EventEmitter module
- add selection to TextInput.ChangeEvent payload
- add onPressMove prop to Pressable
- add scrollsChildToFocus android prop to ScrollView

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…on, optional parallel config

- Color listener/stopAnimation/resetAnimation callbacks receive a color string
- fix StyleProp.color returning Animated.Color.t instead of Color.t
- add StyleProp.animatedColor
- unify Color.create(~initialValue=?, ~config=?) with Color.input, Color.setValue takes input
- add ~config to Value.create and ValueXY.create, add ValueXY.createFromValues
- add Timing/Spring fromInterpolation
- add hasListeners, attachNativeEvent, forkEvent, unforkEvent
- parallel takes an optional ~config

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsla() produced `hsl(h, s%, l%, a)`, which React Native's color parser rejects.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nctions

timing, spring, decay, start, stop, reset and Value.interpolate were `let`
aliases of externals, compiled to wrapper functions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Image props, fix StickyHeaderComponent type

- View: touch events, onFocusCapture/onBlurCapture, nextFocus* (Android),
  experimental_accessibilityOrder
- Pressable: cancelable
- TouchableWithoutFeedback: rejectResponderTermination
- TextInput: inputAccessoryViewButtonLabel
- Image: src
- ScrollView: StickyHeaderComponent is a component, not an element
  (+ Animated.Value.fromStickyHeaderScrollValue)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…precate InteractionManager

- InteractionManager is deprecated by React Native; runAfterInteractions
  returns a cancellable task

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- aria-busy, aria-checked (true/false/mixed), aria-disabled, aria-expanded,
  aria-hidden, aria-label, aria-selected, aria-value*, aria-modal (iOS),
  aria-labelledby and aria-live (Android)
- fontVariant: ligatures, contextual and stylistic-one..twenty

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- ProgressBarAndroid, Clipboard (extracted from core)
- StatusBar.setNetworkActivityIndicatorVisible
- TextInput blurOnSubmit, hasTVPreferredFocus on Button/TouchableHighlight/
  TouchableOpacity

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…orUtils

- Global: requestIdleCallback / cancelIdleCallback, setImmediate /
  clearImmediate, queueMicrotask
- ErrorUtils: setGlobalHandler, getGlobalHandler, reportError,
  reportFatalError
- InteractionManager deprecation points to Global.requestIdleCallback

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-25T13:46:20.477596Z a65d9cf PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a65d9cf49d

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread src/components/Image.res
referrerPolicy?: referrerPolicy,
resizeMode?: Style.resizeMode,
source: Source.t,
src?: string,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Make source optional when using src

Adding src does not make the new API usable by itself because source remains a required field immediately above. A valid React Native <Image src="…" /> therefore fails ReScript type-checking unless callers also provide a redundant source; make source optional so either image-source prop can be used.

Useful? React with 👍 / 👎.

Matches React Native, where source is optional (source?: ImageSource).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants