callstack / callstack/react-native-slider
iOS: negative min value and 0 as maximum value turns maximum to 1
- Dominant language
- TypeScript
- Stars
- 1.4k
- Forks
- 295
- Avg merge
- 5m
- Merged PRs (30d)
- 1
Description
## Environment
* react-native info output:
```
System:
OS: macOS 26.3
CPU: (12) arm64 Apple M2 Pro
Memory: 109.70 MB / 16.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 20.19.5 // also tried node 24
path: /Users/.../.nvm/versions/node/v20.19.5/bin/node
npm:
version: 10.9.4
path: /Users/.../node_modules/.bin/npm
Watchman: Not Found
Managers:
CocoaPods:
version: 1.16.2
path: /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 25.2
- iOS 26.2
- macOS 26.2
- tvOS 26.2
- visionOS 26.2
- watchOS 26.2
Android SDK: Not Found
IDEs:
Android Studio: 2025.1 AI-251.26094.121.2513.14007798
Xcode:
version: 26.3/17C529
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.17
path: /Users/.../Library/Java/JavaVirtualMachines/corretto-17.0.17/Contents/Home/bin/javac
Ruby:
version: 2.6.10
path: /usr/bin/ruby
npmPackages:
"@react-native-community/cli":
installed: 15.1.3
wanted: 15.1.3
react:
installed: 19.1.0
wanted: 19.1.0
react-native:
installed: 0.81.5
wanted: 0.81.5
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: true
newArchEnabled: true
```
## Description
When creating a slider with minimumValue = -10 and maximumValue = 0, the application in android works as expected, but on iOS the maximumValue gets overwritten to 1.
## Reproducible Demo
```
{console.log('CURENTLY AT: ', value)}}
onSlidingComplete=={(value) => {console.log('COMPLETE AT: ', value)}}
tapToSeek={false}
/>
```
Using this slider the logs will show `CURRENTLY AT 1` when sliding fully to the right on iOS and 0 on Android
## My current workaround
I set maximum to 0.1 and for my business logic in `onSlidingComplete` I do `Math.min(value, 0)`
Contributor guide
Research direction
Start by reproducing the reported slider configuration on iOS and compare it with Android. Trace the iOS Slider implementation for how minimumValue and maximumValue are handled when maximumValue is 0, then add or update coverage for the negative-minimum, zero-maximum case. Done means the slider reaches 0 on iOS without changing the supplied maximum value.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, react-native
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100