Changelog of rescript-react-native
0.77.3 - 2025-04-28
- Add missing props for ScrollView #834 by @Freddy03h
automaticallyAdjustKeyboardInsets
automaticallyAdjustsScrollIndicatorInsets
onScrollAnimationEnd
onScrollToTop
persistentScrollbar
invertStickyHeaders
disableIntervalMomentum
disableScrollViewPanResponder
StickyHeaderComponent
0.77.2 - 2025-03-14
- Add missing props for Image and Modal #831 by @namenu
- add
resizeMultiplier
Image prop
- add
backdropColor
and navigationBarTranslucent
Modal props
0.77.1 - 2025-03-05
- Use record for separatorComponentProps #829 by @cknitt
0.77.0 - 2025-02-20
- 0.77 changes #828 by @Freddy03h
- add
display: contents
style
- add
mixBlendMode
and isolation
styles
- add
boxSizing
style
- add
outlineColor
, outlineOffset
, outlineStyle
and outlineWidth
styles
0.76.0 - 2025-02-02
- 0.76 changes #826 by @Freddy03h
- add
boxShadow
and filter
styles
- update to rescript 11.1
- remove unnecessary trailing unit
0.75.0 - 2025-01-17
- 0.75 changes #818 by Freddy03h
- change
gap
, columnGap
and rowGap
type to size
- change
translateX
and translateY
transform type to size
- remove
UIManager
showPopupMenu
and dismissPopupMenu
- remove
PushNotificationIOS
- Js.Promise.t -> promise #819 by @cknitt
- Js.Dict.t -> dict #822 by @cknitt
- Get rid of Js.t #823 by @cknitt
- Remove deprecated functions #824 by @cknitt
- deprecate other @obj #825 by Freddy03h
0.74.2 - 2024-12-10
- Fix transformOrigin #821 by Freddy03h
- more precise type for transformOrigin
- fix transformOrigin keywords not handled on array syntax
0.74.1 - 2024-10-31
- UIManager showPopupMenu and dismissPopupMenu are deprecated 6538dbb by Freddy03h
0.74.0 - 2024-10-20
- 0.74 changes #815 by Freddy03h
- add
space-evenly
to align-content
- add
static
to position
PushNotificationIOS
is deprecated
- Fix onScrollToIndexFailedParams #814 by @cknitt
0.73.1 - 2024-08-16
- fix : rescript.json instead of bsconfig.json for files release config dec45bd by Freddy03h
0.73.0 - 2024-08-15
- Upgrade to rescript 11 38cc49d by Freddy03h
- upgrade to rescript 11, @rescript/react 12 and jsx 4
- use record props for component to avoid repetition
@obj
functions as deprecated
edgeInsets
as deprecated
- convert ActivityIndicator Size type to variant
- binding to Animated components instead of recreating them
- Fix Keyboard bindings 9380611 by ashishsingh101
- Remove deprecated stuff from PlatformColors 8daff8b by @cknitt
- Remove modules that were removed from React Native 1153b72 by @cknitt
- add transformOrigin 1d00148 by Freddy03h
- add maintainVisibleContentPosition in scrollview ba62517 by Yummy-sk
0.72.0 - 2023-08-04
- Remove deprecated Slider, DatePickerIOS & ProgressViewIOS 82dc6e1 by @MoOx
- Add VirtualizedList
onStartReached
/ onStartReachedThreshold
props d69aa1e by @MoOx
- Add Appearance
setColorScheme
method 878f426 by @MoOx
- Add Style
borderBlockColor
borderBlockEndColor
`borderBlockStartCo… a12bade by @MoOx
- Add Style
borderEndEndRadius`
borderEndStartRadius
borderStartEndRadi… 66b5cbd by @MoOx
- Add Style margin & padding CSS logical props c91f345 by @MoOx
- Add various Android accessibility roles values 7057d79 by @MoOx
0.71.1 - 2023-04-24
Remove package.json
engine
section to avoid Yarn installation issue.
0.71.0 - 2023-04-24
This release requires @rescript/react 0.11.0 or later.
It contains various breaking changes to match React Native 0.71.
You can see changelog by comparing 0.71 to 0.70
Contributors
0.70.0 - 2022-11-01
This release requires ReScript 10.0.0 or later.
It contains various breaking changes.
Breaking Changes
_end
is now end
(not a reserved word anymore) 92e3c6f by @cknitt
- Camel cased polymorphic variants &
_
prefixed props when possible have been changed to reflect React Native original naming convention. Things like #plainText
, #boxNone
etc have been changed to what they should be (#"plain-text"
, #"box-none"
etc) 6495093 & 6495093 by @cknitt & 4360933 by @MoOx
- Because a limitation with ReScript that doesn't handle correctly numeric string as polymorphic variant,
fontWeight
is now an abstract type. This means that style(~fontWeight=#_600, ())
now becomes style(~fontWeight=FontWeight._600, ())
44885db by @cknitt
@string
usage have been removed when possible. This means types that were inlined in bindings are now common. 6495093 by @cknitt
Platform.os
now use polymorphic variant. if Platform.os === Platform.android
becomes if Platform.os === #android
. Be careful: if used in a switch, you will lose metro bundler optimisation ! b189fbc & 9964b13 by @cknitt
PlatformColor
have been rewritten. Lots of deprecation & polymorphic variants changes (eg: for android, instead of #background_dark
use #"@android:color/background_dark"
) 036566e by @MoOx
Appearance
now returns option<t>
instead of Js.Null.t<t>
thanks to @nullable
91f0a67 by @cknitt
- Deprecated
Style.pt
unit as been removed (use dp
instead (density pixel)) 3df0fcf by @cknitt
Others changes
- Most object types created using externals can now be created using objects with optional fields. This means that things like
ActionSheetIOS.showActionSheetWithOptions(ActionSheetIOS.shareOptions(~url,(), /*...*/)
can be written ActionSheetIOS.showActionSheetWithOptions({url}, /*...*/)
. Previous @obj
external helpers will be deprecated in the future, and then removed. Note that Style.style()
now have a replacement Style.s()
that accepts an object with optional keys ! e606a03 by @cknitt
- Lots of `react-native-web@0.17` View props have been added bee39e5 by @MoOx
- Added
Style.empty
to avoid Style.arrayOption
(so you can write things like Style.array([style1, condition ? style2 : Style.empty])
) 762049d by @cknitt
0.69.1 - 2022-10-05
0.69.0 - 2022-10-04
Breaking changes
- Update
PushNotificationIOS.checkPermissions
to include iOS 10+ notification settings 14212c0 by @MoOx
New bindings
- Add
dismissActionSheet
method to ActionSheetIOS
7e42b63 by @MoOx
- Add
accessibilityLanguage
prop to all the available components a210356 by @MoOx
- Add
soundName
option for local push notifications in PushNotificationIOS
4f04d77 by @MoOx
- Create
HitSlop
& Rect
module (don't use them directly yet, wait for 0.70 release...) 394bd60 by @MoOx
0.68.1 - 2022-04-20
- Fix
Animated
eventOptions
(platformConfig
is optional) 8d128b9 by @MoOx
0.68.0 - 2022-04-16
0.67.1 - 2022-04-16
0.67.0 - 2022-03-08
This changes are just to follow React Native 0.67 changes.
- Add
ACCESS_MEDIA_LOCATION
permission to PermisionsAndroid library 5338327 by @MoOx
- Added
cancelButtonTintColor
prop for ActionSheetIOS
to change only the text color of the cancel button 42dd7ee by @MoOx
- Add missing
Keyboard.removeListener
05a5656 by @MoOx
- Remove
#high
and #balanced
as values for android_hyphenationFrequency
on Text
d73c6d7 by @MoOx
- Remove
DatePickerAndroid
31549b1 by @MoOx
0.66.1 - 2021-12-06
0.66.0 - 2021-10-25
Breaking changes
New features
- Add
#togglebutton
to accessibilityRole
prop 0b4688b by @MoOx
- Add
accessibilityRole
#tabbar
value 7c8f283 by @MoOx
- Add
Button
accessible
, accessibilityActions
& onAccessibilityAction
props 484e344 by @MoOx
- Add
PermissionsAndroid
bluetoothAdvertise
permission e1ca5e5 by @MoOx
- Add
PlatformColor
iOS missing standard colors 92e7d77 by @MoOx
- Add
Pressable
foreground
option for ripple config for Android 9bd7499 by @MoOx
- Add
Text
accessibilityActions
& onAccessibilityActions
props 9b52e53 by @MoOx
0.65.0 - 2021-10-18
Notable changes
rescript
package is now replacing bs-platform
.
- Several
removeEventListener
calls were removed or deprecated in React Native 0.65.
You might have to update your code to reflect this. Check the full list below (or just follow compilation warnings/errors).
Breaking changes
- Use
rescript@^9.1.4
instead of bs-platform@
as a peerDependency a2ae907 by @MoOx
- Replace
EventSubscription.t
so you can call .remove()
on EventSubscription.t
instead of ->EventSubscription.remove()
71399ce by @MoOx
- Remove
NativeEventEmitter.removeSubscription
in favor of remove()
on subscription itself df060f9 by @MoOx
- Remove
Keyboard
removeAllListeners
and removeListener
(you should use remove
on listener itself) 2091cb3 by @MoOx
- Remove
AppState.removeEventListener
. Instead, use the remove()
method on the listener itself 84284e8 by @MoOx
- Remove
NativeEventEmitter.Subscription
in favor of just calling .remove()
method on listeners. 0e4bb2d by @MoOx
- Change
Dimensions.addEventListener
(now returns an EventSubscription.t
so you can call remove()
on listener directly ) 1131382 by @MoOx
Deprecations
- Deprecate
AccessibilityInfo.removeEventListener
in favor of remove
method on the listener itself 44f4465 by @MoOx
- Deprecate
EventEmitter#removeSubscription
in favor of remove()
on subscription itself a771dc8 by @MoOx
- Deprecate
Linking.removeEventListener
. Instead, call remove()
on the listener itself 4b98e2b by @MoOx
New features
- Add
AccessibilityInfo.getRecommendedTimeoutMillis
a90fe94 by @MoOx
- Add
Appearance.addChangeListener
2cda177 by @MoOx
- Add
Button
accessibilityState
prop 7573c50 by @MoOx
- Add
Color.processColor
method 0c880f8 by @MoOx
- Add
DynamicColorIOS
highContrastLight
& highContrastDark
optional values (with new DynamicColorIOS.dynamicColor()
since they are optional) cc4132b by @MoOx
- Add
Pressable
onBlur
and onFocus
props 575a634 by @MoOx
- Add
Pressable
onHoverIn
and onHoverOut
react-native-web 0.16 props e625be2 by @jfrolich
- Add
Pressable
unstable_pressDelay
prop 3d3bf2b & 0117e3e by @jfrolich
- Add
PushNotificationIOS.getAuthorizationStatus
method ffc2f0c by @MoOx
- Add
RefreshControl
size
option 5678d16 by @MoOx
- Add
stickyHeaderHiddenOnScroll
props to ScrollView
& friends d981203 by @MoOx
- Add
Text
onPressIn
& onPressOut
props 536ea0e by @MoOx
- Add
TouchableHighlight
& TouchableOpacity
react-native-web 0.16 View prop fbf9571 by @jfrolich
0.64.3 - 2021-05-02
🚨 Minor Breaking changes for React Native Web users only
- Remove
rel
& target
View props
- Add React Native Web
hrefAttrs
prop for 0.16
0.64.2 - 2021-03-20
Ooopsy. Actually this release contains .res/.resi files.
0.64.1 - 2021-03-20
reason-react-native
-> rescript-react-native
peerDependencies
changed to
"@rescript/react": "^0.10.0"
"bs-platform": "^9.0.0"
0.64.0 - 2021-03-19
Breaking Changes
- Removed
CheckBox
76ef45c by @MoOx
ImageLoadEvent.source.url
is now ImageLoadEvent.source.uri
ce21b74 by @MoOx
- Remove
UIManager.playTouchSound
(use SoundManager.playTouchSound
instead) cd03cfb by @MoOx
Pressable_
is now Pressable
(to benefit of the full benefit of Pressable, following deprecation notice in 0.63.3) 421962f by @MoOx
- Changed
ActionSheetIOS
destructiveButtonIndex
to accept array instead of just int (as RN accepts int | array<int>
) 81f4f18 by @MoOx
- Changed
Image
uriSource
headers
to be Js.Dict.t(string)
ca786f9 by @MoOx
Added
0.63.5 - 2021-03-10
Fix & change Android PlatformColor binding to use built-in selector #737 by @diaozheng999
- Fixed
PlatformColor.Android.getAttr
: now use "?android:attr/*
instead of "?attr/*
- Added
PlatformColor.Android.get{x}
(x being an integer from 2 to 7) so you can use @android:color
& @?android:attr
in the same call, as PlatformColor
accepts multiple arguments as fallbacks.
- Added
PlatformColor.unsafeGet{x}
(x being an integer from 2 to 7) that allow you to pass unsafe values (string, which can be useful for user defined values).
Also:
- Added
PlatformColor.Android.get
- Added
PlatformColor.Ios.get{x}
like Android
PlatformColor.IOS
is deprecated in favor of PlatformColor.Ios
PlatformColor.Android.unsafeGet
is deprecated in favor of PlatformColor.unsafeGet
0.63.4 - 2021-02-24
Fixed measure
& measureInWindow
functions types #736 by @Freddy03h
0.63.3 - 2021-02-19
Added Pressable with child function and interaction states (as Pressable_
) #735 by @Freddy03h
0.63.2 - 2020-11-20
Breaking change, sorry: Reverting ActivityIndicator size as polymorphic variant so we can keep the exact option.
0.63.1 - 2020-11-17
Fix npm description
0.63.0 - 2020-11-06
Breaking changes
- ⚠️ Changed minimal versions required #722 by @cknitt
- ReScript / bs-platform 8.2
- rescript-react 0.9.1
- Switched solution to avoid warnings being throw as errors b5038e9 by @MoOx with the help of @Freddy03h and @bobzhang in #718
This will help to avoid issue if ReScript introduce new warning that caused in the past impossibility to use our bindings (eg: ReScript 8.2 bs.string annontations).
- Switch to polymorphic variants instead of abstract types where possible
#724 #727 by @cknitt
- Removed superfluous bs.string attributes #723 by @cknitt
This change shouldn't impact your code if you are using ReScript 8.2 as required.
- Accessibility changes for react-native 0.63 #728 by @cknitt
- Removed
accessibilityComponentType
- Removed
accessibilityTraits
.
- Added
AccessibilityActionEvent
- Added
onAccessibilityAction
.
- Added
Accessibility.actionInfo
(already there, but broken - missing unit to terminate argument list).
- Note that
Accessibility.role
was actually already up to date (except for the value "switch" which we can't add because it's a keyword). Feel free to open an issue if you need switch
value.
- Removed
Global.unstable_enableLogBox
#718 by @gedeagas
This is now enabled by default in React Native 0.63. See added LogBox
bindings for more options.
- Removed
tintColor
prop from Switch component #714 by @gedeagas
Fixes
- Fixed
VirtualizedListMethods.scrollToItemParams
#715 by @cknitt
New Features
- Added
DynamicColorIOS
#717 by @celsobonutti
Note that there is only 2 keys (light
and dark
) but React Native documentation mention they might be more in the future, without saying if they will be mandatory or not. If you want to protect yourself, you might want to make your own factory. In any case, we can still deprecate the make
binding & create a new external binding with optional keys. So don't worry too much.
- Added
PlatformColor
binding #730 by @rifaldhiaw
- Added
PermissionsAndroid.accessBackgroundLocation
#729 by @cknitt + b8392e3 by @MoOx
- Added
LogBox
#711 by @idkjs
- Added
accessibilityActions
prop #713 by @gedeagas
- Added
Pressable
#712 by @gedeagas
- Added
AppState
values unknown
and extension
(iOS) #726 by @cknitt
Misc
- ReScript branding has been adopted in various places in all the repos of our organisation.
- More futur proof "files" patterns for npm (in case of interop files) 1a3b677 by @MoOx
- Simplify package.json files section a9cacbd by @MoOx
0.62.3 - 2020-08-07
- Stop blocking compilation because of ReScript warnings (emitted as errors) #708 by @jfrolich
This is to ensure ReScript 8.2 compatibility & avoid similar problem in the future.
0.62.2 - 2020-07-27
0.62.1 - 2020-07-27
- Fixed View props for all components that use them (stay in sync) e5adee0 by @MoOx
- Removed TabBarIOS (removed since RN 0.59) 13991e0 by @MoOx
- Internal: removed duplicated code source in md files (website will produce the same result - no manual syncing required) 1524b87 by @MoOx
0.62.0 - 2020-07-20
The release we all have been waiting for (thanks for you patience)!
Huge thanks to @sgny which handled most of the
changes directly related to react-native 0.62.
tl;dr: this release includes
- breaking changes related to `rescript-react@0.8`
- breaking changes related to
bs-platform@7
(say bye to most ##
accessors in
favor of .
)
- breaking changes related to `react-native@0.62` (say bye to removed
components)
So in order to upgrade to this release you need to upgrade all this dependencies
at the same time. Be sure to respect
peerDependencies
before reporting issue.
🚀 Upgrades & 💥 Breaking changes
- Upgraded rescript-react to 0.8.0 (#689) by @jfrolich
See https://rescript-lang.org/blog/rescript-react-0-8-0 for more informations
- Upgraded to bs-platform 7.3.0 (#631) by @idkjs (#666) by @Arnarkari93 (#674) (#693) (#690) (#694) by @sgny (#695) by @cknitt
We have converted Js.t
objects to records where possible (we had to skipped objects that rely on [@bs.meth]
). This means ou will have to change a lot of ##
notation to just a dot (.
) to access properties.
See https://rescript-lang.org/blog/whats-new-in-7-pt1 for more informations
- Removed some methods for FlatList, ScrollView, SectionList, VirtualizedList and VirtualizedSectionList (#680) by @sgny
These components are interrelated in the sense of being based on each other and inheriting props, however, applicable methods are not inherited quite so consistently. We removed unavailable methods from each component.
- Removed
accessibilityStates
prop (#656) by @sgny
- Removed
TextInput
onTextInput
and selectionState
props (#658) by @sgny
- Animated: setting
useNativeDriver
prop is required (#655) by @sgny
- Handle deprecated or removed components and APIs (#668) by @sgny
- Removed components:
ToolbarAndroid
, ViewPagerAndroid
, WebView
- Removed APIs:
AlertIOS
, CameraRoll
, GeoLocation
, ImageEditor
,
NetInfo
, TimePickerAndroid
- Some others components that have been deprecated in RN regarding "Lean Core" initiative have been documented as such and will be removed in future releases.
- Deprecated
Style.list
& Style.listOption
for future bs-platform 8.0.0
compatibility (#700) by @MoOx
⛑ Fixes
- Fixed
DatePickerIOS
minuteInterval
type (int, not string) (#648) by @idkjs
- Fixed
Animated.ValueXY.getTranslateTransform(value)
binding (#675) by @benadamstyles
- Fixed
Global.hermesInternal
(#703) by @fa7ad
- Fixed
TouchableNativeFeedback.Background.canUseNativeForeground
type (#704) by @phamhoaivu911
🚀 Additions
- Added support for callback refs (#684) by @cknitt
- Added
unstable_enableLogBox
(#692) by @MoOx
- Added
Appearance
module (#654) (#662) (#677) by @sgny
- Added Modal
statusBarTranslucent
prop (#660) by @sgny
- Added missing accessibility props to
Touchable*
components (#659) by @sgny
- Added
accessibilityState
prop and constructor for related object (#657) by @sgny
- Added
DevSettings
module (#661) (#664) by @sgny
- Added
fadingEdgeLength
prop to FlatList, ScrollView, SectionList etc (#663) by @sgny
- Added
accessibilityValue
prop (#665)
- Added mouse event for
react-native-web
(#646) by @Naturalclar
- Added
onMouseEnter
, onMouseLeave
props for View, Text, TextInput and more
web props, press-event, href and target (#650) by @jfrolich
- Updated Linking documentation (#673) by @sgny
- Updated Event documentation (#672) by @sgny
0.61.1 - 2020-01-26
🚀 Additions
⛑ Fixes
- Fix
autoCompleteType
prop for TextInput
component (previously incorrectly
named autoComplete
) (#639 by @Naturalclar
- Resolves all ReScript / BuckleScript inferred name warnings (#628 by @idkjs
0.61.0 - 2019-11-20
💥 Breaking change
- Change type for
DrawerLayoutAndroid
drawerPosition
prop #626 by @sgny.
You need to replace DrawerLayoutAndroid.left
& DrawerLayoutAndroid.right
by
left `
& `right
.
🚀 New bindings
- Add
SoundManager
+ deprecate UIManager.playTouchSound
#616 by @sgny
- Add
useWindowDimensions
hook #615 by @sgny
- Add
touchSoundDisabled
prop to Button
and all Touchable components #627 by @stuartkeith
0.60.1 - 2019-10-28
Probably the latest release for React Native 0.60. We will focus on 0.61.
💥 Breaking changes (minor)
Sorry, a mix of bugfixes & changes! This should be easy to handle for you.
- Add constructor for section type in
VirtualizedSectionList
#614 by @sgny
- Add
SectionList
/VirtualizedSectionList
section data as parameterized type #618 by @jfrolich
⛑ Fixes
- Fix
AppState
(now return unit
) #568 by @cknitt
- Fix
Animated.event
type so it can be used in Animated.ScrollView
onScroll
props (& similar) #584 by @MoOx
- Fix missing
[@bs.meth]
in methods of Event
, BackHandler
& NetInfo
#621 by @cknitt
- Fix
ScrollView
scrollToItem
, scrollToIndex
and scrollToOffset
#569 by @benadamstyles
- Fix
Webview
contentInset
prop #607 by @cem2ran
- Fix
WebView
event types & add missing fields #608 by @cem2ran
🚀 New bindings
📖 Documentation
We improved some part of the missing docs, thanks to contributions of @sgny,
@idkjs, @fhammerschmidt & @MoOx and maybe others we forgot to mention (but
git log
doesn't)
0.60.0 - 2019-06-17
✨ Initial release for this new React Native bindings!
See
https://rescript-react-native.github.io/en/blog/2019-06-17-hello-reason-react-native/
for more information.