├── .babelrc ├── .github ├── FUNDING.yml └── workflows │ └── stale.yml ├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── Swipeable ├── SwipeableFlatList.js └── SwipeableRow.js ├── examples └── SwipeableListExampleApp │ ├── .bundle │ └── config │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc.js │ ├── .watchmanconfig │ ├── .yarn │ └── releases │ │ └── yarn-stable-temp.cjs │ ├── App.tsx │ ├── Gemfile │ ├── Gemfile.lock │ ├── README.md │ ├── __tests__ │ └── App.test.tsx │ ├── android │ ├── app │ │ ├── build.gradle │ │ ├── debug.keystore │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── swipeablelistexampleapp │ │ │ │ ├── MainActivity.kt │ │ │ │ └── MainApplication.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ └── rn_edit_text_material.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle │ ├── app.json │ ├── babel.config.js │ ├── data │ └── dummyData.ts │ ├── index.js │ ├── ios │ ├── .xcode.env │ ├── Podfile │ ├── Podfile.lock │ ├── SwipeableListExampleApp.xcodeproj │ │ ├── project.pbxproj │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── SwipeableListExampleApp.xcscheme │ ├── SwipeableListExampleApp.xcworkspace │ │ └── contents.xcworkspacedata │ ├── SwipeableListExampleApp │ │ ├── AppDelegate.h │ │ ├── AppDelegate.mm │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── LaunchScreen.storyboard │ │ ├── PrivacyInfo.xcprivacy │ │ └── main.m │ └── SwipeableListExampleAppTests │ │ ├── Info.plist │ │ └── SwipeableListExampleAppTests.m │ ├── jest.config.js │ ├── metro.config.js │ ├── package.json │ ├── tsconfig.json │ └── yarn.lock ├── images ├── react-native-swipeable-list-demo1.gif └── react-native-swipeable-list-demo2.gif ├── index.js ├── package-lock.json └── package.json /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["module:metro-react-native-babel-preset"] 3 | } 4 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [esthor] 4 | # patreon: esthor 5 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: Mark stale issues and pull requests 2 | 3 | on: 4 | schedule: 5 | - cron: "0 0 * * *" 6 | 7 | jobs: 8 | stale: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/stale@v3 14 | with: 15 | repo-token: ${{ secrets.GITHUB_TOKEN }} 16 | stale-issue-message: 'This issue has not had activity for 45 days. It will be closed in 10 days if there continues to be no activity.' 17 | stale-pr-message: 'This PR has not had activity for 45 days. It will be closed in 10 days if there continues to be no activity.' 18 | stale-issue-label: 'no-issue-activity' 19 | stale-pr-label: 'no-pr-activity' 20 | exempt-issue-labels: 'enhancement' 21 | exempt-pr-labels: 'enhancement' 22 | days-before-stale: 45 23 | days-before-close: 10 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | *.log 3 | npm-debug.log 4 | 5 | # Runtime data 6 | tmp 7 | build 8 | dist 9 | 10 | # Dependency directory 11 | node_modules 12 | 13 | # macOS being a macOS 14 | .DS_Store 15 | 16 | # Xcode 17 | examples/SwipeableListExampleApp/ios/.xcode.env.local 18 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | *.log 3 | npm-debug.log 4 | 5 | # Dependency directory 6 | node_modules 7 | 8 | # Runtime data 9 | tmp 10 | 11 | # Examples 12 | examples 13 | images 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Erik Thorelli 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-native-swipeable-list 2 | 3 | [![npm version](https://img.shields.io/npm/v/react-native-swipeable-list?color=brightgreen)](https://www.npmjs.com/package/react-native-swipeable-list) 4 | [![Downloads](https://img.shields.io/npm/dm/react-native-swipeable-list.svg?sanitize=true)](https://npmcharts.com/compare/react-native-swipeable-list?minimal=true) 5 | ![License](https://img.shields.io/npm/l/react-native-swipeable-list?color=brightgreen) 6 | ![PRs](https://img.shields.io/badge/PRs-welcome-brightgreen.svg) 7 | [![Build status](https://build.appcenter.ms/v0.1/apps/13534511-14df-4ea0-b460-22eb6d84e8fe/branches/main/badge)](https://appcenter.ms) 8 | 9 | A zero-dependency, Swipeable FlatList for React-Native with Quick Actions, Gestures, and Animations. 10 | 11 | ![animated screenshot of a swipeable flatlist email inbox mockup using react-native-swipeable-list](images/react-native-swipeable-list-demo2.gif) 12 | 13 | ## Usage 14 | 15 | 1. Install the package in your project: `npm install react-native-swipeable-list` or `yarn add react-native-swipeable-list` 16 | 17 | 2. Import the component into your component: `import SwipeableFlatList from 'react-native-swipeable-list';` 18 | 19 | 3. Pass it a data array. It inherits [FlatListProps from the standard `FlatList` component from react-native](https://facebook.github.io/react-native/docs/flatlist). 20 | 21 | It can be passed additional props: 22 | 23 | - `shouldBounceOnMount` (default = `true`) - To alert the user that swiping is possible, the first row can bounce on component mount. Type `boolean` 24 | 25 | - `maxSwipeDistance` - Maximum distance to open to after a swipe. Type `number || (Object => number)` 26 | 27 | - `renderQuickActions` - Callback method to render the view that will be unveiled on swipe. Type `renderItemType` (which provides `index` and `item`, which will be very useful for performing actions on your items) 28 | 29 | ## Example 30 | 31 | Check out the example in the `/examples` folder. Clone this repo, then `cd examples && yarn install && yarn start` and then either `react-native run-ios` or `react-native run-android` to get the app up and running locally. Play with the code and see what you can do! 😎 32 | 33 | ## History & Shoutouts 34 | 35 | Started from the `SwipeableFlatList` component that was removed from react-native's experimental libraries. (See: ) 36 | -------------------------------------------------------------------------------- /Swipeable/SwipeableFlatList.js: -------------------------------------------------------------------------------- 1 | // @ts-nocheck 2 | 3 | 'use strict'; 4 | 5 | import React from 'react'; 6 | import { FlatList } from 'react-native'; 7 | import SwipeableRow from './SwipeableRow'; 8 | 9 | // import type { Props as FlatListProps } from 'react-native'; 10 | // import type { renderItemType } from 'VirtualizedList'; 11 | 12 | // TODO: Make this $ReadOnly and Exact. Will require doing the same to the props in 13 | // Libraries/Lists/* 14 | // type SwipableListProps = { 15 | // /** 16 | // * To alert the user that swiping is possible, the first row can bounce 17 | // * on component mount. 18 | // */ 19 | // bounceFirstRowOnMount: boolean, 20 | 21 | // /** 22 | // * Maximum distance to open to after a swipe 23 | // */ 24 | // maxSwipeDistance: number | (Object => number), 25 | 26 | // /** 27 | // * Callback method to render the view that will be unveiled on swipe 28 | // */ 29 | // renderQuickActions: renderItemType, 30 | // }; 31 | 32 | // type Props = SwipableListProps & FlatListProps; 33 | 34 | // type State = {| 35 | // openRowKey: ?string, 36 | // |}; 37 | 38 | /** 39 | * A container component that renders multiple SwipeableRow's in a FlatList 40 | * implementation. This is designed to be a drop-in replacement for the 41 | * standard React Native `FlatList`, so use it as if it were a FlatList, but 42 | * with extra props, i.e. 43 | * 44 | * 45 | * 46 | * SwipeableRow can be used independently of this component, but the main 47 | * benefit of using this component is 48 | * 49 | * - It ensures that at most 1 row is swiped open (auto closes others) 50 | * - It can bounce the 1st row of the list so users know it's swipeable 51 | * - Increase performance on iOS by locking list swiping when row swiping is occurring 52 | * - More to come 53 | */ 54 | 55 | class SwipeableFlatList extends React.Component { 56 | _flatListRef = null; 57 | _shouldBounceFirstRowOnMount = false; 58 | 59 | static defaultProps = { 60 | ...FlatList.defaultProps, 61 | bounceFirstRowOnMount: true, 62 | renderQuickActions: () => null, 63 | }; 64 | 65 | constructor(props, context) { 66 | super(props, context); 67 | this.state = { 68 | openRowKey: null, 69 | }; 70 | 71 | this._shouldBounceFirstRowOnMount = this.props.bounceFirstRowOnMount; 72 | } 73 | 74 | render() { 75 | return ( 76 | { 79 | this._flatListRef = ref; 80 | }} 81 | onScroll={this._onScroll} 82 | renderItem={this._renderItem} 83 | extraData={this.state} 84 | /> 85 | ); 86 | } 87 | 88 | _onScroll = e => { 89 | // Close any opens rows on ListView scroll 90 | if (this.state.openRowKey) { 91 | this.setState({ 92 | openRowKey: null, 93 | }); 94 | } 95 | 96 | this.props.onScroll && this.props.onScroll(e); 97 | }; 98 | 99 | _renderItem = info => { 100 | const slideoutView = this.props.renderQuickActions(info); 101 | const key = this.props.keyExtractor(info.item, info.index); 102 | 103 | // If renderQuickActions is unspecified or returns falsey, don't allow swipe 104 | if (!slideoutView) { 105 | return this.props.renderItem(info); 106 | } 107 | 108 | let shouldBounceOnMount = false; 109 | if (this._shouldBounceFirstRowOnMount) { 110 | this._shouldBounceFirstRowOnMount = false; 111 | shouldBounceOnMount = true; 112 | } 113 | 114 | return ( 115 | this._onOpen(key)} 120 | onClose={() => this._onClose(key)} 121 | shouldBounceOnMount={shouldBounceOnMount} 122 | onSwipeEnd={this._setListViewScrollable} 123 | onSwipeStart={this._setListViewNotScrollable} 124 | > 125 | {this.props.renderItem(info)} 126 | 127 | ); 128 | }; 129 | 130 | // This enables rows having variable width slideoutView. 131 | _getMaxSwipeDistance(info) { 132 | if (typeof this.props.maxSwipeDistance === 'function') { 133 | return this.props.maxSwipeDistance(info); 134 | } 135 | 136 | return this.props.maxSwipeDistance; 137 | } 138 | 139 | _setListViewScrollableTo(value) { 140 | if (this._flatListRef) { 141 | this._flatListRef.setNativeProps({ 142 | scrollEnabled: value, 143 | }); 144 | } 145 | } 146 | 147 | _setListViewScrollable = () => { 148 | this._setListViewScrollableTo(true); 149 | }; 150 | 151 | _setListViewNotScrollable = () => { 152 | this._setListViewScrollableTo(false); 153 | }; 154 | 155 | _onOpen(key) { 156 | this.setState({ 157 | openRowKey: key, 158 | }); 159 | } 160 | 161 | _onClose(key) { 162 | this.setState({ 163 | openRowKey: null, 164 | }); 165 | } 166 | } 167 | 168 | export default SwipeableFlatList; 169 | -------------------------------------------------------------------------------- /Swipeable/SwipeableRow.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import React from 'react'; 4 | import { Animated, I18nManager, PanResponder, StyleSheet, View } from 'react-native'; 5 | 6 | // import type { LayoutEvent, PressEvent } from 'CoreEventTypes'; 7 | // import type { GestureState } from 'PanResponder'; 8 | 9 | const IS_RTL = I18nManager.isRTL; 10 | 11 | // NOTE: Eventually convert these consts to an input object of configurations 12 | 13 | // Position of the left of the swipable item when closed 14 | const CLOSED_LEFT_POSITION = 0; 15 | // Minimum swipe distance before we recognize it as such 16 | const HORIZONTAL_SWIPE_DISTANCE_THRESHOLD = 10; 17 | // Minimum swipe speed before we fully animate the user's action (open/close) 18 | const HORIZONTAL_FULL_SWIPE_SPEED_THRESHOLD = 0.3; 19 | // Factor to divide by to get slow speed; i.e. 4 means 1/4 of full speed 20 | const SLOW_SPEED_SWIPE_FACTOR = 4; 21 | // Time, in milliseconds, of how long the animated swipe should be 22 | const SWIPE_DURATION = 300; 23 | 24 | /** 25 | * On SwipeableListView mount, the 1st item will bounce to show users it's 26 | * possible to swipe 27 | */ 28 | const ON_MOUNT_BOUNCE_DELAY = 700; 29 | const ON_MOUNT_BOUNCE_DURATION = 400; 30 | 31 | // Distance left of closed position to bounce back when right-swiping from closed 32 | const RIGHT_SWIPE_BOUNCE_BACK_DISTANCE = 30; 33 | const RIGHT_SWIPE_BOUNCE_BACK_DURATION = 300; 34 | /** 35 | * Max distance of right swipe to allow (right swipes do functionally nothing). 36 | * Must be multiplied by SLOW_SPEED_SWIPE_FACTOR because gestureState.dx tracks 37 | * how far the finger swipes, and not the actual animation distance. 38 | */ 39 | const RIGHT_SWIPE_THRESHOLD = 30 * SLOW_SPEED_SWIPE_FACTOR; 40 | const DEFAULT_SWIPE_THRESHOLD = 30; 41 | 42 | const emptyFunction = () => {}; 43 | 44 | // type Props = $ReadOnly<{| 45 | // children?: ?React.Node, 46 | // isOpen?: ?boolean, 47 | // maxSwipeDistance?: ?number, 48 | // onClose?: ?() => void, 49 | // onOpen?: ?() => void, 50 | // onSwipeEnd?: ?() => void, 51 | // onSwipeStart?: ?() => void, 52 | // preventSwipeRight?: ?boolean, 53 | // shouldBounceOnMount?: ?boolean, 54 | // slideoutView?: ?React.Node, 55 | // swipeThreshold?: ?number, 56 | // |}>; 57 | 58 | // type State = { 59 | // currentLeft: Animated.Value, 60 | // isSwipeableViewRendered: boolean, 61 | // rowHeight: ?number, 62 | // }; 63 | 64 | /** 65 | * Creates a swipable row that allows taps on the main item and a custom View 66 | * on the item hidden behind the row. Typically this should be used in 67 | * conjunction with SwipeableListView for additional functionality, but can be 68 | * used in a normal ListView. See the renderRow for SwipeableListView to see how 69 | * to use this component separately. 70 | */ 71 | class SwipeableRow extends React.Component { 72 | _handleMoveShouldSetPanResponderCapture = (event, gestureState) => { 73 | // Decides whether a swipe is responded to by this component or its child 74 | return gestureState.dy < 10 && this._isValidSwipe(gestureState); 75 | }; 76 | 77 | _handlePanResponderGrant = (event, gestureState) => {}; 78 | 79 | _handlePanResponderMove = (event, gestureState) => { 80 | if (this._isSwipingExcessivelyRightFromClosedPosition(gestureState)) { 81 | return; 82 | } 83 | 84 | this.props.onSwipeStart && this.props.onSwipeStart(); 85 | 86 | if (this._isSwipingRightFromClosed(gestureState)) { 87 | this._swipeSlowSpeed(gestureState); 88 | } else { 89 | this._swipeFullSpeed(gestureState); 90 | } 91 | }; 92 | 93 | _onPanResponderTerminationRequest = (event, gestureState) => { 94 | return false; 95 | }; 96 | 97 | _handlePanResponderEnd = (event, gestureState) => { 98 | const horizontalDistance = IS_RTL ? -gestureState.dx : gestureState.dx; 99 | if (this._isSwipingRightFromClosed(gestureState)) { 100 | this.props.onOpen && this.props.onOpen(); 101 | this._animateBounceBack(RIGHT_SWIPE_BOUNCE_BACK_DURATION); 102 | } else if (this._shouldAnimateRemainder(gestureState)) { 103 | if (horizontalDistance < 0) { 104 | // Swiped left 105 | this.props.onOpen && this.props.onOpen(); 106 | this._animateToOpenPositionWith(gestureState.vx, horizontalDistance); 107 | } else { 108 | // Swiped right 109 | this.props.onClose && this.props.onClose(); 110 | this._animateToClosedPosition(); 111 | } 112 | } else { 113 | if (this._previousLeft === CLOSED_LEFT_POSITION) { 114 | this._animateToClosedPosition(); 115 | } else { 116 | this._animateToOpenPosition(); 117 | } 118 | } 119 | 120 | this.props.onSwipeEnd && this.props.onSwipeEnd(); 121 | }; 122 | 123 | _panResponder = PanResponder.create({ 124 | onMoveShouldSetPanResponderCapture: this._handleMoveShouldSetPanResponderCapture, 125 | onPanResponderGrant: this._handlePanResponderGrant, 126 | onPanResponderMove: this._handlePanResponderMove, 127 | onPanResponderRelease: this._handlePanResponderEnd, 128 | onPanResponderTerminationRequest: this._onPanResponderTerminationRequest, 129 | onPanResponderTerminate: this._handlePanResponderEnd, 130 | onShouldBlockNativeResponder: (event, gestureState) => false, 131 | }); 132 | 133 | _previousLeft = CLOSED_LEFT_POSITION; 134 | _timeoutID = null; 135 | 136 | state = { 137 | currentLeft: new Animated.Value(this._previousLeft), 138 | /** 139 | * In order to render component A beneath component B, A must be rendered 140 | * before B. However, this will cause "flickering", aka we see A briefly 141 | * then B. To counter this, _isSwipeableViewRendered flag is used to set 142 | * component A to be transparent until component B is loaded. 143 | */ 144 | isSwipeableViewRendered: false, 145 | rowHeight: null, 146 | }; 147 | 148 | componentDidMount() { 149 | if (this.props.shouldBounceOnMount) { 150 | /** 151 | * Do the on mount bounce after a delay because if we animate when other 152 | * components are loading, the animation will be laggy 153 | */ 154 | this._timeoutID = setTimeout(() => { 155 | this._animateBounceBack(ON_MOUNT_BOUNCE_DURATION); 156 | }, ON_MOUNT_BOUNCE_DELAY); 157 | } 158 | } 159 | 160 | UNSAFE_componentWillReceiveProps(nextProps) { 161 | /** 162 | * We do not need an "animateOpen(noCallback)" because this animation is 163 | * handled internally by this component. 164 | */ 165 | const isOpen = this.props.isOpen ?? false; 166 | const nextIsOpen = nextProps.isOpen ?? false; 167 | 168 | if (isOpen && !nextIsOpen) { 169 | this._animateToClosedPosition(); 170 | } 171 | } 172 | 173 | componentWillUnmount() { 174 | if (this._timeoutID != null) { 175 | clearTimeout(this._timeoutID); 176 | } 177 | } 178 | 179 | render() { 180 | // The view hidden behind the main view 181 | let slideOutView; 182 | if (this.state.isSwipeableViewRendered && this.state.rowHeight) { 183 | slideOutView = ( 184 | 185 | {this.props.slideoutView} 186 | 187 | ); 188 | } 189 | 190 | // The swipeable item 191 | const swipeableView = ( 192 | 196 | {this.props.children} 197 | 198 | ); 199 | 200 | return ( 201 | 202 | {slideOutView} 203 | {swipeableView} 204 | 205 | ); 206 | } 207 | 208 | close() { 209 | this.props.onClose && this.props.onClose(); 210 | this._animateToClosedPosition(); 211 | } 212 | 213 | _onSwipeableViewLayout = event => { 214 | this.setState({ 215 | isSwipeableViewRendered: true, 216 | rowHeight: event.nativeEvent.layout.height, 217 | }); 218 | }; 219 | 220 | _isSwipingRightFromClosed(gestureState) { 221 | const gestureStateDx = IS_RTL ? -gestureState.dx : gestureState.dx; 222 | return this._previousLeft === CLOSED_LEFT_POSITION && gestureStateDx > 0; 223 | } 224 | 225 | _swipeFullSpeed(gestureState) { 226 | this.state.currentLeft.setValue(this._previousLeft + gestureState.dx); 227 | } 228 | 229 | _swipeSlowSpeed(gestureState) { 230 | this.state.currentLeft.setValue( 231 | this._previousLeft + gestureState.dx / SLOW_SPEED_SWIPE_FACTOR 232 | ); 233 | } 234 | 235 | _isSwipingExcessivelyRightFromClosedPosition(gestureState) { 236 | /** 237 | * We want to allow a BIT of right swipe, to allow users to know that 238 | * swiping is available, but swiping right does not do anything 239 | * functionally. 240 | */ 241 | const gestureStateDx = IS_RTL ? -gestureState.dx : gestureState.dx; 242 | return ( 243 | this._isSwipingRightFromClosed(gestureState) && gestureStateDx > RIGHT_SWIPE_THRESHOLD 244 | ); 245 | } 246 | 247 | _animateTo(toValue, duration = SWIPE_DURATION, callback = emptyFunction) { 248 | Animated.timing(this.state.currentLeft, { 249 | duration, 250 | toValue, 251 | useNativeDriver: true, 252 | }).start(() => { 253 | this._previousLeft = toValue; 254 | callback(); 255 | }); 256 | } 257 | 258 | _animateToOpenPosition() { 259 | const maxSwipeDistance = this.props.maxSwipeDistance ?? 0; 260 | const directionAwareMaxSwipeDistance = IS_RTL ? -maxSwipeDistance : maxSwipeDistance; 261 | this._animateTo(-directionAwareMaxSwipeDistance); 262 | } 263 | 264 | _animateToOpenPositionWith(speed, distMoved) { 265 | /** 266 | * Ensure the speed is at least the set speed threshold to prevent a slow 267 | * swiping animation 268 | */ 269 | speed = 270 | speed > HORIZONTAL_FULL_SWIPE_SPEED_THRESHOLD 271 | ? speed 272 | : HORIZONTAL_FULL_SWIPE_SPEED_THRESHOLD; 273 | const maxSwipeDistance = this.props.maxSwipeDistance ?? 0; 274 | /** 275 | * Calculate the duration the row should take to swipe the remaining distance 276 | * at the same speed the user swiped (or the speed threshold) 277 | */ 278 | const duration = Math.abs((maxSwipeDistance - Math.abs(distMoved)) / speed); 279 | const directionAwareMaxSwipeDistance = IS_RTL ? -maxSwipeDistance : maxSwipeDistance; 280 | this._animateTo(-directionAwareMaxSwipeDistance, duration); 281 | } 282 | 283 | _animateToClosedPosition(duration = SWIPE_DURATION) { 284 | this._animateTo(CLOSED_LEFT_POSITION, duration); 285 | } 286 | 287 | _animateToClosedPositionDuringBounce = () => { 288 | this._animateToClosedPosition(RIGHT_SWIPE_BOUNCE_BACK_DURATION); 289 | }; 290 | 291 | _animateBounceBack(duration) { 292 | /** 293 | * When swiping right, we want to bounce back past closed position on release 294 | * so users know they should swipe right to get content. 295 | */ 296 | const swipeBounceBackDistance = IS_RTL 297 | ? -RIGHT_SWIPE_BOUNCE_BACK_DISTANCE 298 | : RIGHT_SWIPE_BOUNCE_BACK_DISTANCE; 299 | this._animateTo( 300 | -swipeBounceBackDistance, 301 | duration, 302 | this._animateToClosedPositionDuringBounce 303 | ); 304 | } 305 | 306 | // Ignore swipes due to user's finger moving slightly when tapping 307 | _isValidSwipe(gestureState) { 308 | const preventSwipeRight = this.props.preventSwipeRight ?? false; 309 | if ( 310 | preventSwipeRight && 311 | this._previousLeft === CLOSED_LEFT_POSITION && 312 | gestureState.dx > 0 313 | ) { 314 | return false; 315 | } 316 | 317 | return Math.abs(gestureState.dx) > HORIZONTAL_SWIPE_DISTANCE_THRESHOLD; 318 | } 319 | 320 | _shouldAnimateRemainder(gestureState) { 321 | /** 322 | * If user has swiped past a certain distance, animate the rest of the way 323 | * if they let go 324 | */ 325 | const swipeThreshold = this.props.swipeThreshold ?? DEFAULT_SWIPE_THRESHOLD; 326 | return ( 327 | Math.abs(gestureState.dx) > swipeThreshold || 328 | gestureState.vx > HORIZONTAL_FULL_SWIPE_SPEED_THRESHOLD 329 | ); 330 | } 331 | } 332 | 333 | const styles = StyleSheet.create({ 334 | slideOutContainer: { 335 | bottom: 0, 336 | left: 0, 337 | position: 'absolute', 338 | right: 0, 339 | top: 0, 340 | }, 341 | }); 342 | 343 | export default SwipeableRow; 344 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/.bundle/config: -------------------------------------------------------------------------------- 1 | BUNDLE_PATH: "vendor/bundle" 2 | BUNDLE_FORCE_RUBY_PLATFORM: 1 3 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: '@react-native', 4 | }; 5 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | **/.xcode.env.local 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | *.hprof 33 | .cxx/ 34 | *.keystore 35 | !debug.keystore 36 | 37 | # node.js 38 | # 39 | node_modules/ 40 | npm-debug.log 41 | yarn-error.log 42 | 43 | # fastlane 44 | # 45 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 46 | # screenshots whenever they are needed. 47 | # For more information about the recommended setup visit: 48 | # https://docs.fastlane.tools/best-practices/source-control/ 49 | 50 | **/fastlane/report.xml 51 | **/fastlane/Preview.html 52 | **/fastlane/screenshots 53 | **/fastlane/test_output 54 | 55 | # Bundle artifact 56 | *.jsbundle 57 | 58 | # Ruby / CocoaPods 59 | **/Pods/ 60 | /vendor/bundle/ 61 | 62 | # Temporary files created by Metro to check the health of the file watcher 63 | .metro-health-check* 64 | 65 | # testing 66 | /coverage 67 | 68 | # Yarn 69 | .yarn/* 70 | !.yarn/patches 71 | !.yarn/plugins 72 | !.yarn/releases 73 | !.yarn/sdks 74 | !.yarn/versions 75 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | arrowParens: 'avoid', 3 | bracketSameLine: true, 4 | bracketSpacing: false, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/App.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState} from 'react'; 2 | import { 3 | SafeAreaView, 4 | StyleSheet, 5 | View, 6 | Text, 7 | StatusBar, 8 | Pressable, 9 | Alert, 10 | } from 'react-native'; 11 | 12 | // @ts-ignore-next-line 13 | import SwipeableFlatList from 'react-native-swipeable-list'; 14 | 15 | import {dummyData} from './data/dummyData'; 16 | 17 | const darkColors = { 18 | background: '#121212', 19 | primary: '#BB86FC', 20 | primary2: '#3700b3', 21 | secondary: '#03DAC6', 22 | onBackground: '#FFFFFF', 23 | error: '#CF6679', 24 | }; 25 | 26 | const colorEmphasis = { 27 | high: 0.87, 28 | medium: 0.6, 29 | disabled: 0.38, 30 | }; 31 | 32 | const extractItemKey = (item: Item) => { 33 | return item.id.toString(); 34 | }; 35 | 36 | interface RenderItemProps { 37 | item: { 38 | id: number; 39 | name: string; 40 | subject: string; 41 | text: string; 42 | }; 43 | deleteItem: (itemId: Item['id']) => void; 44 | } 45 | 46 | type Item = { 47 | id: number; 48 | name: string; 49 | subject: string; 50 | text: string; 51 | }; 52 | 53 | const RenderItem = ({item}: RenderItemProps) => { 54 | return ( 55 | <> 56 | 57 | 58 | 59 | 60 | {item.name} 61 | 62 | 63 | Subject: {item.subject} 64 | 65 | 66 | {item.text} 67 | 68 | 69 | 70 | 71 | 72 | ); 73 | }; 74 | 75 | interface QuickActionsProps { 76 | index: number; 77 | item: Item; 78 | archiveItem: (itemId: Item['id']) => void; 79 | snoozeItem: (itemId: Item['id']) => void; 80 | deleteItem: (itemId: Item['id']) => void; 81 | } 82 | 83 | const QuickActions = ({ 84 | item, 85 | archiveItem, 86 | snoozeItem, 87 | deleteItem, 88 | }: QuickActionsProps) => { 89 | return ( 90 | 91 | 92 | archiveItem(item.id)}> 93 | Archive 94 | 95 | 96 | 97 | snoozeItem(item.id)}> 98 | Snooze 99 | 100 | 101 | 102 | deleteItem(item.id)}> 103 | Delete 104 | 105 | 106 | 107 | ); 108 | }; 109 | 110 | function renderItemSeparator() { 111 | return ; 112 | } 113 | 114 | const App = () => { 115 | const [data, setData] = useState(dummyData); 116 | 117 | const deleteItem = (itemId: Item['id']) => { 118 | // ! Please don't do something like this in production. Use proper state management. 119 | const newState = [...data]; 120 | const filteredState = newState.filter(item => item.id !== itemId); 121 | return setData(filteredState); 122 | }; 123 | 124 | const archiveItem = (itemId: Item['id']) => { 125 | Alert.alert( 126 | 'DISHONESTY ALERT', 127 | "Not gonna Archive it. We're actually are gonna just delete it.", 128 | [ 129 | { 130 | text: 'Just delete it?', 131 | onPress: () => deleteItem(itemId), 132 | style: 'destructive', 133 | }, 134 | { 135 | text: 'Cancel', 136 | onPress: () => console.log('Cancel Pressed'), 137 | style: 'cancel', 138 | }, 139 | ], 140 | ); 141 | }; 142 | 143 | const snoozeItem = (itemId: Item['id']) => { 144 | Alert.alert( 145 | 'DISHONESTY ALERT', 146 | "Not gonna Snooze it. We're actually are gonna just delete it.", 147 | [ 148 | { 149 | text: 'Just delete it?', 150 | onPress: () => deleteItem(itemId), 151 | style: 'destructive', 152 | }, 153 | { 154 | text: 'Cancel', 155 | onPress: () => console.log('Cancel Pressed'), 156 | style: 'cancel', 157 | }, 158 | ], 159 | ); 160 | }; 161 | 162 | return ( 163 | <> 164 | 165 | 166 | 167 | Inbox 168 | 169 | ( 173 | deleteItem} /> 174 | )} 175 | maxSwipeDistance={240} 176 | renderQuickActions={({index, item}: {index: number; item: Item}) => 177 | QuickActions({index, item, archiveItem, snoozeItem, deleteItem}) 178 | } 179 | contentContainerStyle={styles.contentContainerStyle} 180 | // shouldBounceOnMount={false} -- This is not working on 0.74+ React Native 181 | bounceFirstRowOnMount={false} // THIS IS THE WORKAROUND 182 | ItemSeparatorComponent={renderItemSeparator} 183 | /> 184 | 185 | 186 | ); 187 | }; 188 | 189 | const styles = StyleSheet.create({ 190 | container: { 191 | backgroundColor: '#121212', 192 | }, 193 | headerContainer: { 194 | height: 80, 195 | justifyContent: 'center', 196 | alignItems: 'center', 197 | paddingTop: 10, 198 | }, 199 | headerText: { 200 | fontSize: 30, 201 | fontWeight: '800', 202 | color: darkColors.onBackground, 203 | opacity: colorEmphasis.high, 204 | }, 205 | item: { 206 | backgroundColor: '#121212', 207 | height: 80, 208 | flexDirection: 'row', 209 | padding: 10, 210 | }, 211 | messageContainer: { 212 | backgroundColor: darkColors.background, 213 | maxWidth: 300, 214 | }, 215 | name: { 216 | fontSize: 16, 217 | color: darkColors.primary, 218 | opacity: colorEmphasis.high, 219 | fontWeight: '800', 220 | }, 221 | subject: { 222 | fontSize: 14, 223 | color: darkColors.onBackground, 224 | opacity: colorEmphasis.high, 225 | fontWeight: 'bold', 226 | textShadowColor: darkColors.secondary, 227 | textShadowOffset: {width: 1, height: 1}, 228 | textShadowRadius: 4, 229 | }, 230 | text: { 231 | fontSize: 10, 232 | color: darkColors.onBackground, 233 | opacity: colorEmphasis.medium, 234 | }, 235 | avatar: { 236 | width: 40, 237 | height: 40, 238 | backgroundColor: darkColors.onBackground, 239 | opacity: colorEmphasis.high, 240 | borderColor: darkColors.primary, 241 | borderWidth: 1, 242 | borderRadius: 20, 243 | marginRight: 7, 244 | alignSelf: 'center', 245 | shadowColor: darkColors.secondary, 246 | shadowOffset: {width: 1, height: 1}, 247 | shadowRadius: 2, 248 | shadowOpacity: colorEmphasis.high, 249 | }, 250 | itemSeparator: { 251 | height: StyleSheet.hairlineWidth, 252 | backgroundColor: darkColors.onBackground, 253 | opacity: colorEmphasis.medium, 254 | }, 255 | qaContainer: { 256 | flex: 1, 257 | flexDirection: 'row', 258 | justifyContent: 'flex-end', 259 | }, 260 | button: { 261 | width: 80, 262 | alignItems: 'center', 263 | justifyContent: 'center', 264 | }, 265 | button1: { 266 | backgroundColor: darkColors.primary, 267 | }, 268 | button2: { 269 | backgroundColor: darkColors.secondary, 270 | }, 271 | button3: { 272 | backgroundColor: darkColors.error, 273 | }, 274 | buttonText: { 275 | fontWeight: 'bold', 276 | opacity: colorEmphasis.high, 277 | color: darkColors.onBackground, 278 | fontSize: 16, 279 | }, 280 | contentContainerStyle: { 281 | flexGrow: 1, 282 | backgroundColor: darkColors.background, 283 | }, 284 | }); 285 | 286 | export default App; 287 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version 4 | ruby ">= 2.6.10" 5 | 6 | # Exclude problematic versions of cocoapods and activesupport that causes build failures. 7 | gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' 8 | gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' 9 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | CFPropertyList (3.0.5) 5 | rexml 6 | activesupport (6.1.7.1) 7 | concurrent-ruby (~> 1.0, >= 1.0.2) 8 | i18n (>= 1.6, < 2) 9 | minitest (>= 5.1) 10 | tzinfo (~> 2.0) 11 | zeitwerk (~> 2.3) 12 | addressable (2.8.0) 13 | public_suffix (>= 2.0.2, < 5.0) 14 | algoliasearch (1.27.5) 15 | httpclient (~> 2.8, >= 2.8.3) 16 | json (>= 1.5.1) 17 | atomos (0.1.3) 18 | claide (1.1.0) 19 | cocoapods (1.11.3) 20 | addressable (~> 2.8) 21 | claide (>= 1.0.2, < 2.0) 22 | cocoapods-core (= 1.11.3) 23 | cocoapods-deintegrate (>= 1.0.3, < 2.0) 24 | cocoapods-downloader (>= 1.4.0, < 2.0) 25 | cocoapods-plugins (>= 1.0.0, < 2.0) 26 | cocoapods-search (>= 1.0.0, < 2.0) 27 | cocoapods-trunk (>= 1.4.0, < 2.0) 28 | cocoapods-try (>= 1.1.0, < 2.0) 29 | colored2 (~> 3.1) 30 | escape (~> 0.0.4) 31 | fourflusher (>= 2.3.0, < 3.0) 32 | gh_inspector (~> 1.0) 33 | molinillo (~> 0.8.0) 34 | nap (~> 1.0) 35 | ruby-macho (>= 1.0, < 3.0) 36 | xcodeproj (>= 1.21.0, < 2.0) 37 | cocoapods-core (1.11.3) 38 | activesupport (>= 5.0, < 7) 39 | addressable (~> 2.8) 40 | algoliasearch (~> 1.0) 41 | concurrent-ruby (~> 1.1) 42 | fuzzy_match (~> 2.0.4) 43 | nap (~> 1.0) 44 | netrc (~> 0.11) 45 | public_suffix (~> 4.0) 46 | typhoeus (~> 1.0) 47 | cocoapods-deintegrate (1.0.5) 48 | cocoapods-downloader (1.6.3) 49 | cocoapods-plugins (1.0.0) 50 | nap 51 | cocoapods-search (1.0.1) 52 | cocoapods-trunk (1.6.0) 53 | nap (>= 0.8, < 2.0) 54 | netrc (~> 0.11) 55 | cocoapods-try (1.2.0) 56 | colored2 (3.1.2) 57 | concurrent-ruby (1.1.10) 58 | escape (0.0.4) 59 | ethon (0.15.0) 60 | ffi (>= 1.15.0) 61 | ffi (1.15.5) 62 | fourflusher (2.3.1) 63 | fuzzy_match (2.0.4) 64 | gh_inspector (1.1.3) 65 | httpclient (2.8.3) 66 | i18n (1.12.0) 67 | concurrent-ruby (~> 1.0) 68 | json (2.6.1) 69 | minitest (5.17.0) 70 | molinillo (0.8.0) 71 | nanaimo (0.3.0) 72 | nap (1.1.0) 73 | netrc (0.11.0) 74 | public_suffix (4.0.6) 75 | rexml (3.2.5) 76 | ruby-macho (2.5.1) 77 | typhoeus (1.4.0) 78 | ethon (>= 0.9.0) 79 | tzinfo (2.0.5) 80 | concurrent-ruby (~> 1.0) 81 | xcodeproj (1.21.0) 82 | CFPropertyList (>= 2.3.3, < 4.0) 83 | atomos (~> 0.1.3) 84 | claide (>= 1.0.2, < 2.0) 85 | colored2 (~> 3.1) 86 | nanaimo (~> 0.3.0) 87 | rexml (~> 3.2.4) 88 | zeitwerk (2.6.6) 89 | 90 | PLATFORMS 91 | ruby 92 | 93 | DEPENDENCIES 94 | cocoapods (~> 1.11, >= 1.11.2) 95 | RUBY VERSION 96 | ruby 2.7.4p191 97 | BUNDLED WITH 98 | 2.2.27 99 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/README.md: -------------------------------------------------------------------------------- 1 | # React Native Swipeable List Example 2 | 3 | To install and run this example: 4 | ```bash 5 | git clone https://github.com/esthor/react-native-swipeable-list 6 | ``` 7 | 8 | ```bash 9 | cd react-native-swipeable-list/examples/SwipeableFlatListExample 10 | ``` 11 | 12 | ```bash 13 | yarn install 14 | ``` 15 | 16 | Then choose either to to run on iOS: 17 | 18 | Install your iOS native dependencies (Pods) 19 | ```bash 20 | npx pod-install 21 | ``` 22 | 23 | ```bash 24 | yarn ios 25 | ``` 26 | 27 | or Android: 28 | ```bash 29 | yarn android 30 | ``` 31 | 32 | Note: You will of course need XCode to run it in an iOS simualtor or Android Studio to run it in an Android emulator. -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/__tests__/App.test.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import 'react-native'; 6 | import React from 'react'; 7 | import App from '../App'; 8 | 9 | // Note: import explicitly to use the types shipped with jest. 10 | import {it} from '@jest/globals'; 11 | 12 | // Note: test renderer must be required after react-native. 13 | import renderer from 'react-test-renderer'; 14 | 15 | it('renders correctly', () => { 16 | renderer.create(); 17 | }); 18 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: "com.android.application" 2 | apply plugin: "org.jetbrains.kotlin.android" 3 | apply plugin: "com.facebook.react" 4 | 5 | /** 6 | * This is the configuration block to customize your React Native Android app. 7 | * By default you don't need to apply any configuration, just uncomment the lines you need. 8 | */ 9 | react { 10 | /* Folders */ 11 | // The root of your project, i.e. where "package.json" lives. Default is '../..' 12 | // root = file("../../") 13 | // The folder where the react-native NPM package is. Default is ../../node_modules/react-native 14 | // reactNativeDir = file("../../node_modules/react-native") 15 | // The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen 16 | // codegenDir = file("../../node_modules/@react-native/codegen") 17 | // The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js 18 | // cliFile = file("../../node_modules/react-native/cli.js") 19 | 20 | /* Variants */ 21 | // The list of variants to that are debuggable. For those we're going to 22 | // skip the bundling of the JS bundle and the assets. By default is just 'debug'. 23 | // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. 24 | // debuggableVariants = ["liteDebug", "prodDebug"] 25 | 26 | /* Bundling */ 27 | // A list containing the node command and its flags. Default is just 'node'. 28 | // nodeExecutableAndArgs = ["node"] 29 | // 30 | // The command to run when bundling. By default is 'bundle' 31 | // bundleCommand = "ram-bundle" 32 | // 33 | // The path to the CLI configuration file. Default is empty. 34 | // bundleConfig = file(../rn-cli.config.js) 35 | // 36 | // The name of the generated asset file containing your JS bundle 37 | // bundleAssetName = "MyApplication.android.bundle" 38 | // 39 | // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' 40 | // entryFile = file("../js/MyApplication.android.js") 41 | // 42 | // A list of extra flags to pass to the 'bundle' commands. 43 | // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle 44 | // extraPackagerArgs = [] 45 | 46 | /* Hermes Commands */ 47 | // The hermes compiler command to run. By default it is 'hermesc' 48 | // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" 49 | // 50 | // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" 51 | // hermesFlags = ["-O", "-output-source-map"] 52 | 53 | /* Autolinking */ 54 | autolinkLibrariesWithApp() 55 | } 56 | 57 | /** 58 | * Set this to true to Run Proguard on Release builds to minify the Java bytecode. 59 | */ 60 | def enableProguardInReleaseBuilds = false 61 | 62 | /** 63 | * The preferred build flavor of JavaScriptCore (JSC) 64 | * 65 | * For example, to use the international variant, you can use: 66 | * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` 67 | * 68 | * The international variant includes ICU i18n library and necessary data 69 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that 70 | * give correct results when using with locales other than en-US. Note that 71 | * this variant is about 6MiB larger per architecture than default. 72 | */ 73 | def jscFlavor = 'org.webkit:android-jsc:+' 74 | 75 | android { 76 | ndkVersion rootProject.ext.ndkVersion 77 | buildToolsVersion rootProject.ext.buildToolsVersion 78 | compileSdk rootProject.ext.compileSdkVersion 79 | 80 | namespace "com.swipeablelistexampleapp" 81 | defaultConfig { 82 | applicationId "com.swipeablelistexampleapp" 83 | minSdkVersion rootProject.ext.minSdkVersion 84 | targetSdkVersion rootProject.ext.targetSdkVersion 85 | versionCode 1 86 | versionName "1.0" 87 | } 88 | signingConfigs { 89 | debug { 90 | storeFile file('debug.keystore') 91 | storePassword 'android' 92 | keyAlias 'androiddebugkey' 93 | keyPassword 'android' 94 | } 95 | } 96 | buildTypes { 97 | debug { 98 | signingConfig signingConfigs.debug 99 | } 100 | release { 101 | // Caution! In production, you need to generate your own keystore file. 102 | // see https://reactnative.dev/docs/signed-apk-android. 103 | signingConfig signingConfigs.debug 104 | minifyEnabled enableProguardInReleaseBuilds 105 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 106 | } 107 | } 108 | } 109 | 110 | dependencies { 111 | // The version of react-native is set by the React Native Gradle Plugin 112 | implementation("com.facebook.react:react-android") 113 | 114 | if (hermesEnabled.toBoolean()) { 115 | implementation("com.facebook.react:hermes-android") 116 | } else { 117 | implementation jscFlavor 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/app/debug.keystore -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 13 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/java/com/swipeablelistexampleapp/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.swipeablelistexampleapp 2 | 3 | import com.facebook.react.ReactActivity 4 | import com.facebook.react.ReactActivityDelegate 5 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled 6 | import com.facebook.react.defaults.DefaultReactActivityDelegate 7 | 8 | class MainActivity : ReactActivity() { 9 | 10 | /** 11 | * Returns the name of the main component registered from JavaScript. This is used to schedule 12 | * rendering of the component. 13 | */ 14 | override fun getMainComponentName(): String = "SwipeableListExampleApp" 15 | 16 | /** 17 | * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] 18 | * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] 19 | */ 20 | override fun createReactActivityDelegate(): ReactActivityDelegate = 21 | DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) 22 | } 23 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/java/com/swipeablelistexampleapp/MainApplication.kt: -------------------------------------------------------------------------------- 1 | package com.swipeablelistexampleapp 2 | 3 | import android.app.Application 4 | import com.facebook.react.PackageList 5 | import com.facebook.react.ReactApplication 6 | import com.facebook.react.ReactHost 7 | import com.facebook.react.ReactNativeHost 8 | import com.facebook.react.ReactPackage 9 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load 10 | import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost 11 | import com.facebook.react.defaults.DefaultReactNativeHost 12 | import com.facebook.soloader.SoLoader 13 | 14 | class MainApplication : Application(), ReactApplication { 15 | 16 | override val reactNativeHost: ReactNativeHost = 17 | object : DefaultReactNativeHost(this) { 18 | override fun getPackages(): List = 19 | PackageList(this).packages.apply { 20 | // Packages that cannot be autolinked yet can be added manually here, for example: 21 | // add(MyReactNativePackage()) 22 | } 23 | 24 | override fun getJSMainModuleName(): String = "index" 25 | 26 | override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG 27 | 28 | override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED 29 | override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED 30 | } 31 | 32 | override val reactHost: ReactHost 33 | get() = getDefaultReactHost(applicationContext, reactNativeHost) 34 | 35 | override fun onCreate() { 36 | super.onCreate() 37 | SoLoader.init(this, false) 38 | if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { 39 | // If you opted-in for the New Architecture, we load the native entry point for this app. 40 | load() 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/drawable/rn_edit_text_material.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 22 | 23 | 24 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | SwipeableListExampleApp 3 | 4 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext { 3 | buildToolsVersion = "34.0.0" 4 | minSdkVersion = 23 5 | compileSdkVersion = 34 6 | targetSdkVersion = 34 7 | ndkVersion = "26.1.10909125" 8 | kotlinVersion = "1.9.24" 9 | } 10 | repositories { 11 | google() 12 | mavenCentral() 13 | } 14 | dependencies { 15 | classpath("com.android.tools.build:gradle") 16 | classpath("com.facebook.react:react-native-gradle-plugin") 17 | classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") 18 | } 19 | } 20 | 21 | apply plugin: "com.facebook.react.rootproject" 22 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m 13 | org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | 20 | # AndroidX package structure to make it clearer which packages are bundled with the 21 | # Android operating system, and which are packaged with your app's APK 22 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 23 | android.useAndroidX=true 24 | 25 | # Use this property to specify which architecture you want to build. 26 | # You can also override it from the CLI using 27 | # ./gradlew -PreactNativeArchitectures=x86_64 28 | reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 29 | 30 | # Use this property to enable support to the new architecture. 31 | # This will allow you to use TurboModules and the Fabric render in 32 | # your application. You should enable this flag either if you want 33 | # to write custom TurboModules/Fabric components OR use libraries that 34 | # are providing them. 35 | newArchEnabled=false 36 | 37 | # Use this property to enable or disable the Hermes JS engine. 38 | # If set to false, you will be using JSC instead. 39 | hermesEnabled=true 40 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/examples/SwipeableListExampleApp/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/gradlew: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # Copyright © 2015-2021 the original authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | ############################################################################## 20 | # 21 | # Gradle start up script for POSIX generated by Gradle. 22 | # 23 | # Important for running: 24 | # 25 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is 26 | # noncompliant, but you have some other compliant shell such as ksh or 27 | # bash, then to run this script, type that shell name before the whole 28 | # command line, like: 29 | # 30 | # ksh Gradle 31 | # 32 | # Busybox and similar reduced shells will NOT work, because this script 33 | # requires all of these POSIX shell features: 34 | # * functions; 35 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}», 36 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»; 37 | # * compound commands having a testable exit status, especially «case»; 38 | # * various built-in commands including «command», «set», and «ulimit». 39 | # 40 | # Important for patching: 41 | # 42 | # (2) This script targets any POSIX shell, so it avoids extensions provided 43 | # by Bash, Ksh, etc; in particular arrays are avoided. 44 | # 45 | # The "traditional" practice of packing multiple parameters into a 46 | # space-separated string is a well documented source of bugs and security 47 | # problems, so this is (mostly) avoided, by progressively accumulating 48 | # options in "$@", and eventually passing that to Java. 49 | # 50 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, 51 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; 52 | # see the in-line comments for details. 53 | # 54 | # There are tweaks for specific operating systems such as AIX, CygWin, 55 | # Darwin, MinGW, and NonStop. 56 | # 57 | # (3) This script is generated from the Groovy template 58 | # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt 59 | # within the Gradle project. 60 | # 61 | # You can find Gradle at https://github.com/gradle/gradle/. 62 | # 63 | ############################################################################## 64 | 65 | # Attempt to set APP_HOME 66 | 67 | # Resolve links: $0 may be a link 68 | app_path=$0 69 | 70 | # Need this for daisy-chained symlinks. 71 | while 72 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path 73 | [ -h "$app_path" ] 74 | do 75 | ls=$( ls -ld "$app_path" ) 76 | link=${ls#*' -> '} 77 | case $link in #( 78 | /*) app_path=$link ;; #( 79 | *) app_path=$APP_HOME$link ;; 80 | esac 81 | done 82 | 83 | # This is normally unused 84 | # shellcheck disable=SC2034 85 | APP_BASE_NAME=${0##*/} 86 | # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) 87 | APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit 88 | 89 | # Use the maximum available, or set MAX_FD != -1 to use that value. 90 | MAX_FD=maximum 91 | 92 | warn () { 93 | echo "$*" 94 | } >&2 95 | 96 | die () { 97 | echo 98 | echo "$*" 99 | echo 100 | exit 1 101 | } >&2 102 | 103 | # OS specific support (must be 'true' or 'false'). 104 | cygwin=false 105 | msys=false 106 | darwin=false 107 | nonstop=false 108 | case "$( uname )" in #( 109 | CYGWIN* ) cygwin=true ;; #( 110 | Darwin* ) darwin=true ;; #( 111 | MSYS* | MINGW* ) msys=true ;; #( 112 | NONSTOP* ) nonstop=true ;; 113 | esac 114 | 115 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 116 | 117 | 118 | # Determine the Java command to use to start the JVM. 119 | if [ -n "$JAVA_HOME" ] ; then 120 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 121 | # IBM's JDK on AIX uses strange locations for the executables 122 | JAVACMD=$JAVA_HOME/jre/sh/java 123 | else 124 | JAVACMD=$JAVA_HOME/bin/java 125 | fi 126 | if [ ! -x "$JAVACMD" ] ; then 127 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 128 | 129 | Please set the JAVA_HOME variable in your environment to match the 130 | location of your Java installation." 131 | fi 132 | else 133 | JAVACMD=java 134 | if ! command -v java >/dev/null 2>&1 135 | then 136 | die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 137 | 138 | Please set the JAVA_HOME variable in your environment to match the 139 | location of your Java installation." 140 | fi 141 | fi 142 | 143 | # Increase the maximum file descriptors if we can. 144 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then 145 | case $MAX_FD in #( 146 | max*) 147 | # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. 148 | # shellcheck disable=SC2039,SC3045 149 | MAX_FD=$( ulimit -H -n ) || 150 | warn "Could not query maximum file descriptor limit" 151 | esac 152 | case $MAX_FD in #( 153 | '' | soft) :;; #( 154 | *) 155 | # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. 156 | # shellcheck disable=SC2039,SC3045 157 | ulimit -n "$MAX_FD" || 158 | warn "Could not set maximum file descriptor limit to $MAX_FD" 159 | esac 160 | fi 161 | 162 | # Collect all arguments for the java command, stacking in reverse order: 163 | # * args from the command line 164 | # * the main class name 165 | # * -classpath 166 | # * -D...appname settings 167 | # * --module-path (only if needed) 168 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. 169 | 170 | # For Cygwin or MSYS, switch paths to Windows format before running java 171 | if "$cygwin" || "$msys" ; then 172 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) 173 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) 174 | 175 | JAVACMD=$( cygpath --unix "$JAVACMD" ) 176 | 177 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 178 | for arg do 179 | if 180 | case $arg in #( 181 | -*) false ;; # don't mess with options #( 182 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath 183 | [ -e "$t" ] ;; #( 184 | *) false ;; 185 | esac 186 | then 187 | arg=$( cygpath --path --ignore --mixed "$arg" ) 188 | fi 189 | # Roll the args list around exactly as many times as the number of 190 | # args, so each arg winds up back in the position where it started, but 191 | # possibly modified. 192 | # 193 | # NB: a `for` loop captures its iteration list before it begins, so 194 | # changing the positional parameters here affects neither the number of 195 | # iterations, nor the values presented in `arg`. 196 | shift # remove old arg 197 | set -- "$@" "$arg" # push replacement arg 198 | done 199 | fi 200 | 201 | 202 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 203 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 204 | 205 | # Collect all arguments for the java command: 206 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, 207 | # and any embedded shellness will be escaped. 208 | # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be 209 | # treated as '${Hostname}' itself on the command line. 210 | 211 | set -- \ 212 | "-Dorg.gradle.appname=$APP_BASE_NAME" \ 213 | -classpath "$CLASSPATH" \ 214 | org.gradle.wrapper.GradleWrapperMain \ 215 | "$@" 216 | 217 | # Stop when "xargs" is not available. 218 | if ! command -v xargs >/dev/null 2>&1 219 | then 220 | die "xargs is not available" 221 | fi 222 | 223 | # Use "xargs" to parse quoted args. 224 | # 225 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed. 226 | # 227 | # In Bash we could simply go: 228 | # 229 | # readarray ARGS < <( xargs -n1 <<<"$var" ) && 230 | # set -- "${ARGS[@]}" "$@" 231 | # 232 | # but POSIX shell has neither arrays nor command substitution, so instead we 233 | # post-process each arg (as a line of input to sed) to backslash-escape any 234 | # character that might be a shell metacharacter, then use eval to reverse 235 | # that process (while maintaining the separation between arguments), and wrap 236 | # the whole thing up as a single "set" statement. 237 | # 238 | # This will of course break if any of these variables contains a newline or 239 | # an unmatched quote. 240 | # 241 | 242 | eval "set -- $( 243 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | 244 | xargs -n1 | 245 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | 246 | tr '\n' ' ' 247 | )" '"$@"' 248 | 249 | exec "$JAVACMD" "$@" 250 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%"=="" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%"=="" set DIRNAME=. 29 | @rem This is normally unused 30 | set APP_BASE_NAME=%~n0 31 | set APP_HOME=%DIRNAME% 32 | 33 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 34 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 35 | 36 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 37 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 38 | 39 | @rem Find java.exe 40 | if defined JAVA_HOME goto findJavaFromJavaHome 41 | 42 | set JAVA_EXE=java.exe 43 | %JAVA_EXE% -version >NUL 2>&1 44 | if %ERRORLEVEL% equ 0 goto execute 45 | 46 | echo. 1>&2 47 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 48 | echo. 1>&2 49 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 50 | echo location of your Java installation. 1>&2 51 | 52 | goto fail 53 | 54 | :findJavaFromJavaHome 55 | set JAVA_HOME=%JAVA_HOME:"=% 56 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 57 | 58 | if exist "%JAVA_EXE%" goto execute 59 | 60 | echo. 1>&2 61 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 62 | echo. 1>&2 63 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 64 | echo location of your Java installation. 1>&2 65 | 66 | goto fail 67 | 68 | :execute 69 | @rem Setup the command line 70 | 71 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 72 | 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if %ERRORLEVEL% equ 0 goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | set EXIT_CODE=%ERRORLEVEL% 85 | if %EXIT_CODE% equ 0 set EXIT_CODE=1 86 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 87 | exit /b %EXIT_CODE% 88 | 89 | :mainEnd 90 | if "%OS%"=="Windows_NT" endlocal 91 | 92 | :omega 93 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/android/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") } 2 | plugins { id("com.facebook.react.settings") } 3 | extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() } 4 | rootProject.name = 'SwipeableListExampleApp' 5 | include ':app' 6 | includeBuild('../node_modules/@react-native/gradle-plugin') 7 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SwipeableListExampleApp", 3 | "displayName": "SwipeableListExampleApp" 4 | } 5 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:@react-native/babel-preset'], 3 | }; 4 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/data/dummyData.ts: -------------------------------------------------------------------------------- 1 | type DummyDataItem = { 2 | name: String; 3 | subject: String; 4 | date: String; 5 | text: String; 6 | id: Number; 7 | }; 8 | 9 | type DummyDataArray = DummyDataItem[]; 10 | 11 | export const dummyData: DummyDataArray = [ 12 | { 13 | name: 'Raphael', 14 | subject: 'amet lorem semper auctor. Mauris vel turpis.', 15 | date: 'Sun, 17th, 2019', 16 | text: 'mollis dui, in sodales elit erat vitae risus. Duis a mi fringilla mi lacinia mattis. Integer eu lacus. Quisque imperdiet, erat nonummy ultricies ornare, elit elit fermentum risus, at fringilla purus mauris a nunc. In at pede. Cras vulputate velit eu sem. Pellentesque ut ipsum ac mi eleifend egestas. Sed', 17 | id: 1, 18 | }, 19 | { 20 | name: 'Aquila', 21 | subject: 'quis, pede. Praesent', 22 | date: 'Thu, 11th, 2019', 23 | text: 'Nunc quis arcu vel quam dignissim pharetra. Nam ac nulla. In tincidunt congue turpis. In condimentum. Donec at arcu. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec tincidunt. Donec vitae erat vel pede blandit congue. In scelerisque scelerisque dui. Suspendisse ac', 24 | id: 11, 25 | }, 26 | { 27 | name: 'Geraldine', 28 | subject: 'purus sapien, gravida non,', 29 | date: 'Tue, 24th, 2019', 30 | text: 'pede, nonummy ut, molestie in, tempus eu, ligula. Aenean euismod mauris eu elit. Nulla facilisi. Sed neque. Sed eget lacus. Mauris non dui nec urna suscipit nonummy. Fusce fermentum', 31 | id: 21, 32 | }, 33 | { 34 | name: 'Geraldine', 35 | subject: 'nec enim. Nunc ut erat. Sed nunc', 36 | date: 'Thu, 5th, 2020', 37 | text: 'Ut tincidunt vehicula risus. Nulla eget metus eu erat semper rutrum. Fusce dolor quam, elementum at, egestas a, scelerisque sed, sapien. Nunc pulvinar arcu et pede. Nunc sed orci lobortis augue scelerisque mollis. Phasellus libero mauris, aliquam eu, accumsan sed, facilisis vitae, orci. Phasellus dapibus quam quis diam.', 38 | id: 31, 39 | }, 40 | { 41 | name: 'Mariko', 42 | subject: 'lobortis mauris. Suspendisse', 43 | date: 'Sat, 25th, 2019', 44 | text: 'mauris sit amet lorem semper auctor. Mauris vel turpis. Aliquam adipiscing lobortis risus. In mi pede, nonummy ut, molestie in, tempus eu, ligula. Aenean euismod mauris eu elit. Nulla facilisi. Sed neque. Sed', 45 | id: 41, 46 | }, 47 | { 48 | name: 'Nicole', 49 | subject: 'egestas.', 50 | date: 'Tue, 8th, 2020', 51 | text: 'vitae mauris sit amet lorem semper auctor. Mauris vel turpis. Aliquam adipiscing lobortis risus. In mi pede, nonummy ut, molestie in, tempus eu, ligula. Aenean euismod', 52 | id: 51, 53 | }, 54 | { 55 | name: 'Solomon', 56 | subject: 'ac mattis ornare, lectus', 57 | date: 'Fri, 10th, 2019', 58 | text: 'nulla. In tincidunt congue turpis. In condimentum. Donec at arcu. Vestibulum ante ipsum primis in faucibus orci', 59 | id: 61, 60 | }, 61 | { 62 | name: 'Diana', 63 | subject: 'Suspendisse', 64 | date: 'Sun, 16th, 2018', 65 | text: 'dignissim magna a tortor. Nunc commodo auctor velit. Aliquam nisl. Nulla eu neque pellentesque massa lobortis ultrices. Vivamus rhoncus. Donec est. Nunc ullamcorper,', 66 | id: 71, 67 | }, 68 | { 69 | name: 'Hammett', 70 | subject: 'eu enim. Etiam imperdiet dictum', 71 | date: 'Mon, 11th, 2019', 72 | text: 'molestie sodales. Mauris blandit enim consequat purus. Maecenas libero est, congue a, aliquet vel, vulputate eu, odio.', 73 | id: 81, 74 | }, 75 | { 76 | name: 'Brenna', 77 | subject: 'neque. Sed eget lacus. Mauris non', 78 | date: 'Wed, 22nd, 2019', 79 | text: 'sit amet massa. Quisque porttitor eros nec tellus. Nunc lectus pede, ultrices a, auctor non, feugiat nec, diam.', 80 | id: 91, 81 | }, 82 | { 83 | name: 'Zelda', 84 | subject: 'enim non nisi.', 85 | date: 'Sat, 27th, 2020', 86 | text: 'dignissim pharetra. Nam ac nulla. In tincidunt congue turpis. In condimentum. Donec at arcu. Vestibulum ante ipsum primis in faucibus orci luctus et', 87 | id: 101, 88 | }, 89 | { 90 | name: 'Irene', 91 | subject: 'aptent taciti sociosqu ad litora torquent per', 92 | date: 'Wed, 8th, 2020', 93 | text: 'eget metus eu erat semper rutrum. Fusce dolor quam, elementum at, egestas a, scelerisque sed, sapien. Nunc pulvinar arcu et pede. Nunc sed orci lobortis augue scelerisque mollis. Phasellus libero mauris, aliquam eu, accumsan sed, facilisis vitae, orci. Phasellus dapibus quam quis diam.', 94 | id: 111, 95 | }, 96 | { 97 | name: 'Dennis', 98 | subject: 'neque venenatis lacus.', 99 | date: 'Mon, 26th, 2018', 100 | text: 'Mauris blandit enim consequat purus. Maecenas libero est, congue a, aliquet vel, vulputate eu, odio. Phasellus at augue id ante', 101 | id: 121, 102 | }, 103 | { 104 | name: 'Slade', 105 | subject: 'dolor dolor, tempus non, lacinia at,', 106 | date: 'Mon, 29th, 2020', 107 | text: 'aliquet libero. Integer in magna. Phasellus dolor elit, pellentesque a, facilisis non, bibendum sed, est. Nunc laoreet lectus', 108 | id: 131, 109 | }, 110 | { 111 | name: 'Yvonne', 112 | subject: 'enim. Suspendisse aliquet, sem ut', 113 | date: 'Wed, 23rd, 2019', 114 | text: 'lacus. Quisque purus sapien, gravida non, sollicitudin a, malesuada id, erat. Etiam vestibulum massa rutrum magna. Cras convallis convallis dolor.', 115 | id: 141, 116 | }, 117 | { 118 | name: 'Ayanna', 119 | subject: 'Suspendisse dui. Fusce diam', 120 | date: 'Fri, 15th, 2019', 121 | text: 'nec, mollis vitae, posuere at, velit. Cras lorem lorem, luctus ut, pellentesque eget, dictum placerat, augue. Sed molestie. Sed id risus quis diam luctus lobortis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris ut quam vel sapien imperdiet', 122 | id: 151, 123 | }, 124 | { 125 | name: 'Jasmine', 126 | subject: 'Donec fringilla. Donec feugiat metus sit amet', 127 | date: 'Fri, 8th, 2019', 128 | text: 'odio, auctor vitae, aliquet nec, imperdiet nec, leo. Morbi neque tellus, imperdiet non, vestibulum nec, euismod in, dolor. Fusce feugiat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 129 | id: 161, 130 | }, 131 | { 132 | name: 'Halee', 133 | subject: 'id risus quis diam luctus lobortis. Class', 134 | date: 'Thu, 13th, 2020', 135 | text: 'feugiat metus sit amet ante. Vivamus non lorem vitae odio sagittis semper. Nam tempor diam dictum sapien. Aenean massa. Integer vitae nibh. Donec est mauris, rhoncus id, mollis nec, cursus a, enim. Suspendisse aliquet, sem ut cursus luctus, ipsum leo elementum sem, vitae aliquam', 136 | id: 171, 137 | }, 138 | { 139 | name: 'Rooney', 140 | subject: 'egestas nunc sed libero. Proin sed turpis', 141 | date: 'Sat, 24th, 2019', 142 | text: 'lacinia. Sed congue, elit sed consequat auctor, nunc nulla vulputate dui, nec tempus mauris erat eget ipsum. Suspendisse sagittis. Nullam vitae diam. Proin dolor. Nulla semper tellus id nunc interdum', 143 | id: 181, 144 | }, 145 | { 146 | name: 'Ora', 147 | subject: 'nisi', 148 | date: 'Wed, 25th, 2019', 149 | text: 'vulputate, lacus. Cras interdum. Nunc sollicitudin commodo ipsum. Suspendisse non leo. Vivamus nibh dolor, nonummy ac, feugiat non,', 150 | id: 191, 151 | }, 152 | { 153 | name: 'Jada', 154 | subject: 'ridiculus mus. Proin vel nisl. Quisque fringilla', 155 | date: 'Sun, 16th, 2019', 156 | text: 'faucibus orci luctus et ultrices posuere cubilia Curae; Donec tincidunt. Donec vitae erat vel pede blandit congue. In scelerisque scelerisque dui. Suspendisse ac metus vitae', 157 | id: 201, 158 | }, 159 | { 160 | name: 'Belle', 161 | subject: 'nunc est, mollis non, cursus non, egestas', 162 | date: 'Tue, 10th, 2020', 163 | text: 'laoreet ipsum. Curabitur consequat, lectus sit amet luctus vulputate, nisi sem semper erat, in consectetuer ipsum nunc id enim. Curabitur massa. Vestibulum accumsan neque et nunc. Quisque ornare tortor at risus. Nunc ac sem ut dolor dapibus gravida. Aliquam tincidunt, nunc', 164 | id: 211, 165 | }, 166 | { 167 | name: 'Kylynn', 168 | subject: 'neque sed dictum', 169 | date: 'Thu, 5th, 2019', 170 | text: 'molestie in, tempus eu, ligula. Aenean euismod mauris eu elit. Nulla facilisi. Sed neque. Sed eget lacus. Mauris non dui nec urna suscipit nonummy. Fusce', 171 | id: 221, 172 | }, 173 | { 174 | name: 'Dane', 175 | subject: 'tempor, est ac', 176 | date: 'Fri, 16th, 2020', 177 | text: 'Donec luctus aliquet odio. Etiam ligula tortor, dictum eu, placerat eget, venenatis a, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam', 178 | id: 231, 179 | }, 180 | { 181 | name: 'Fuller', 182 | subject: 'a, facilisis', 183 | date: 'Tue, 10th, 2020', 184 | text: 'consequat, lectus sit amet luctus vulputate, nisi sem semper erat, in consectetuer ipsum nunc id enim. Curabitur massa. Vestibulum', 185 | id: 241, 186 | }, 187 | { 188 | name: 'Brenden', 189 | subject: 'vehicula et, rutrum eu, ultrices', 190 | date: 'Thu, 22nd, 2018', 191 | text: 'vestibulum. Mauris magna. Duis dignissim tempor arcu. Vestibulum ut eros non enim commodo hendrerit. Donec', 192 | id: 251, 193 | }, 194 | { 195 | name: 'Martin', 196 | subject: 'ut nisi a odio semper', 197 | date: 'Sat, 8th, 2020', 198 | text: 'felis ullamcorper viverra. Maecenas iaculis aliquet diam. Sed diam lorem, auctor quis, tristique ac, eleifend vitae, erat. Vivamus nisi. Mauris nulla. Integer urna. Vivamus molestie dapibus ligula. Aliquam erat volutpat. Nulla dignissim.', 199 | id: 261, 200 | }, 201 | { 202 | name: 'Michael', 203 | subject: 'eget magna. Suspendisse tristique neque venenatis', 204 | date: 'Thu, 5th, 2020', 205 | text: 'urna. Ut tincidunt vehicula risus. Nulla eget metus eu erat semper rutrum. Fusce dolor quam, elementum at, egestas a, scelerisque sed, sapien. Nunc pulvinar arcu et pede. Nunc sed orci lobortis augue scelerisque mollis. Phasellus libero mauris, aliquam eu, accumsan sed, facilisis', 206 | id: 271, 207 | }, 208 | { 209 | name: 'Phelan', 210 | subject: 'auctor, nunc nulla vulputate dui, nec tempus', 211 | date: 'Sat, 19th, 2019', 212 | text: 'pede ac urna. Ut tincidunt vehicula risus. Nulla eget metus eu erat semper rutrum. Fusce dolor quam, elementum at, egestas a, scelerisque sed, sapien. Nunc pulvinar arcu et pede. Nunc sed orci lobortis augue scelerisque mollis. Phasellus libero mauris, aliquam eu, accumsan sed, facilisis vitae, orci. Phasellus dapibus', 213 | id: 281, 214 | }, 215 | { 216 | name: 'Suki', 217 | subject: 'convallis est, vitae', 218 | date: 'Tue, 19th, 2019', 219 | text: 'Aliquam vulputate ullamcorper magna. Sed eu eros. Nam consequat dolor vitae dolor. Donec fringilla. Donec feugiat metus sit amet ante. Vivamus non lorem vitae odio sagittis semper. Nam', 220 | id: 291, 221 | }, 222 | { 223 | name: 'Jaquelyn', 224 | subject: 'ante, iaculis nec,', 225 | date: 'Sun, 20th, 2020', 226 | text: 'dolor, tempus non, lacinia at, iaculis quis, pede. Praesent eu dui. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean eget magna. Suspendisse tristique neque venenatis lacus. Etiam bibendum fermentum metus. Aenean sed pede nec ante blandit', 227 | id: 301, 228 | }, 229 | { 230 | name: 'Regan', 231 | subject: 'mauris, aliquam eu,', 232 | date: 'Sun, 13th, 2019', 233 | text: 'vehicula aliquet libero. Integer in magna. Phasellus dolor elit, pellentesque a, facilisis non, bibendum sed, est. Nunc laoreet lectus quis massa. Mauris vestibulum, neque sed dictum eleifend, nunc risus varius orci, in consequat enim diam', 234 | id: 311, 235 | }, 236 | { 237 | name: 'Isaac', 238 | subject: 'non', 239 | date: 'Tue, 7th, 2020', 240 | text: 'nunc sed libero. Proin sed turpis nec mauris blandit mattis. Cras eget nisi dictum augue malesuada malesuada. Integer id magna et ipsum cursus vestibulum. Mauris magna. Duis dignissim tempor arcu. Vestibulum ut eros non enim commodo hendrerit. Donec porttitor tellus non magna. Nam ligula elit, pretium et,', 241 | id: 321, 242 | }, 243 | { 244 | name: 'Keegan', 245 | subject: 'magna. Duis dignissim tempor arcu. Vestibulum ut', 246 | date: 'Sun, 29th, 2020', 247 | text: 'diam lorem, auctor quis, tristique ac, eleifend vitae, erat. Vivamus nisi. Mauris nulla. Integer urna. Vivamus molestie dapibus ligula. Aliquam erat volutpat. Nulla dignissim. Maecenas ornare egestas ligula. Nullam feugiat placerat velit. Quisque varius. Nam porttitor scelerisque neque. Nullam nisl. Maecenas', 248 | id: 331, 249 | }, 250 | { 251 | name: 'Desirae', 252 | subject: 'Phasellus dolor', 253 | date: 'Tue, 17th, 2019', 254 | text: 'a, arcu. Sed et libero. Proin mi. Aliquam gravida mauris ut mi. Duis risus odio, auctor', 255 | id: 341, 256 | }, 257 | { 258 | name: 'Upton', 259 | subject: 'at,', 260 | date: 'Fri, 18th, 2019', 261 | text: 'arcu et pede. Nunc sed orci lobortis augue scelerisque mollis. Phasellus libero mauris, aliquam eu, accumsan sed, facilisis vitae, orci. Phasellus dapibus quam quis diam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce aliquet magna a neque. Nullam ut nisi', 262 | id: 351, 263 | }, 264 | { 265 | name: 'Jorden', 266 | subject: 'est mauris, rhoncus id, mollis nec, cursus', 267 | date: 'Thu, 19th, 2019', 268 | text: 'egestas ligula. Nullam feugiat placerat velit. Quisque varius. Nam porttitor scelerisque neque. Nullam nisl. Maecenas malesuada fringilla est.', 269 | id: 361, 270 | }, 271 | { 272 | name: 'Yuli', 273 | subject: 'Duis risus odio, auctor', 274 | date: 'Sun, 23rd, 2019', 275 | text: 'tristique aliquet. Phasellus fermentum convallis ligula. Donec luctus aliquet odio. Etiam ligula tortor, dictum eu, placerat eget, venenatis a, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam laoreet, libero et tristique pellentesque, tellus sem mollis dui, in sodales elit erat vitae risus. Duis a mi fringilla', 276 | id: 371, 277 | }, 278 | { 279 | name: 'Kyle', 280 | subject: 'Integer', 281 | date: 'Sun, 30th, 2019', 282 | text: 'fringilla euismod enim. Etiam gravida molestie arcu. Sed eu nibh vulputate mauris sagittis placerat. Cras dictum ultricies ligula. Nullam enim. Sed nulla ante, iaculis nec, eleifend non, dapibus rutrum, justo. Praesent luctus. Curabitur egestas nunc sed libero. Proin sed turpis nec mauris blandit mattis.', 283 | id: 381, 284 | }, 285 | { 286 | name: 'Alan', 287 | subject: 'felis', 288 | date: 'Sat, 16th, 2019', 289 | text: 'quam dignissim pharetra. Nam ac nulla. In tincidunt congue turpis. In condimentum. Donec at arcu. Vestibulum ante ipsum primis in faucibus', 290 | id: 391, 291 | }, 292 | { 293 | name: 'Micah', 294 | subject: 'a mi', 295 | date: 'Wed, 10th, 2020', 296 | text: 'nulla at sem molestie sodales. Mauris blandit enim consequat purus. Maecenas libero est, congue a, aliquet vel, vulputate eu, odio. Phasellus at augue id ante dictum cursus. Nunc mauris elit, dictum eu,', 297 | id: 401, 298 | }, 299 | { 300 | name: 'Quyn', 301 | subject: 'Phasellus at augue id ante dictum', 302 | date: 'Thu, 14th, 2020', 303 | text: 'elit. Nulla facilisi. Sed neque. Sed eget lacus. Mauris non dui nec urna suscipit nonummy. Fusce fermentum', 304 | id: 411, 305 | }, 306 | { 307 | name: 'Plato', 308 | subject: 'enim', 309 | date: 'Tue, 23rd, 2020', 310 | text: 'congue turpis. In condimentum. Donec at arcu. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices', 311 | id: 421, 312 | }, 313 | { 314 | name: 'Oleg', 315 | subject: 'lorem fringilla ornare', 316 | date: 'Tue, 8th, 2019', 317 | text: 'tellus. Suspendisse sed dolor. Fusce mi lorem, vehicula et, rutrum eu, ultrices sit amet, risus. Donec nibh enim, gravida sit amet, dapibus id, blandit at, nisi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus', 318 | id: 431, 319 | }, 320 | { 321 | name: 'Chiquita', 322 | subject: 'ut, pellentesque eget, dictum', 323 | date: 'Thu, 20th, 2020', 324 | text: 'tincidunt adipiscing. Mauris molestie pharetra nibh. Aliquam ornare, libero at auctor ullamcorper, nisl arcu iaculis enim, sit amet ornare lectus justo eu arcu. Morbi sit amet', 325 | id: 441, 326 | }, 327 | { 328 | name: 'Calista', 329 | subject: 'ligula consectetuer rhoncus. Nullam', 330 | date: 'Sat, 2nd, 2019', 331 | text: 'metus sit amet ante. Vivamus non lorem vitae odio sagittis semper. Nam tempor diam dictum sapien. Aenean massa. Integer vitae nibh. Donec est', 332 | id: 451, 333 | }, 334 | { 335 | name: 'Christopher', 336 | subject: 'elit. Aliquam', 337 | date: 'Sat, 17th, 2020', 338 | text: 'massa rutrum magna. Cras convallis convallis dolor. Quisque tincidunt pede ac urna. Ut tincidunt vehicula risus. Nulla', 339 | id: 461, 340 | }, 341 | { 342 | name: 'Phyllis', 343 | subject: 'lacus. Cras interdum. Nunc sollicitudin commodo ipsum.', 344 | date: 'Wed, 27th, 2019', 345 | text: 'dictum cursus. Nunc mauris elit, dictum eu, eleifend nec, malesuada ut, sem. Nulla interdum. Curabitur dictum. Phasellus in felis. Nulla tempor augue ac ipsum. Phasellus', 346 | id: 471, 347 | }, 348 | { 349 | name: 'Galvin', 350 | subject: 'accumsan neque et nunc. Quisque ornare tortor', 351 | date: 'Sun, 10th, 2019', 352 | text: 'porttitor interdum. Sed auctor odio a purus. Duis elementum, dui quis accumsan convallis, ante lectus convallis est, vitae sodales', 353 | id: 481, 354 | }, 355 | { 356 | name: 'Indira', 357 | subject: 'aliquet. Proin velit.', 358 | date: 'Sun, 15th, 2020', 359 | text: 'penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean eget magna. Suspendisse tristique neque venenatis lacus. Etiam bibendum fermentum metus. Aenean sed pede nec ante blandit viverra. Donec tempus, lorem fringilla ornare placerat, orci lacus vestibulum lorem, sit amet ultricies sem magna nec quam. Curabitur', 360 | id: 491, 361 | }, 362 | { 363 | name: 'Farrah', 364 | subject: 'malesuada fames', 365 | date: 'Tue, 13th, 2018', 366 | text: 'Vivamus euismod urna. Nullam lobortis quam a felis ullamcorper viverra. Maecenas iaculis aliquet diam. Sed diam lorem, auctor quis, tristique ac, eleifend vitae, erat. Vivamus nisi. Mauris nulla. Integer urna. Vivamus molestie', 367 | id: 501, 368 | }, 369 | { 370 | name: 'Yvette', 371 | subject: 'consectetuer rhoncus. Nullam velit', 372 | date: 'Mon, 15th, 2019', 373 | text: 'dolor. Donec fringilla. Donec feugiat metus sit amet ante. Vivamus non lorem vitae odio sagittis semper. Nam tempor diam dictum sapien. Aenean massa. Integer vitae nibh. Donec est mauris, rhoncus', 374 | id: 511, 375 | }, 376 | { 377 | name: 'Lareina', 378 | subject: 'aliquet', 379 | date: 'Mon, 1st, 2019', 380 | text: 'nec, diam. Duis mi enim, condimentum eget, volutpat ornare, facilisis eget, ipsum. Donec sollicitudin adipiscing ligula. Aenean gravida nunc', 381 | id: 521, 382 | }, 383 | { 384 | name: 'Jaden', 385 | subject: 'consectetuer, cursus', 386 | date: 'Tue, 28th, 2019', 387 | text: 'magna. Duis dignissim tempor arcu. Vestibulum ut eros non enim commodo hendrerit. Donec porttitor tellus non magna. Nam ligula elit, pretium et, rutrum non, hendrerit id, ante. Nunc mauris sapien, cursus in, hendrerit consectetuer, cursus et,', 388 | id: 531, 389 | }, 390 | { 391 | name: 'Iola', 392 | subject: 'iaculis', 393 | date: 'Sat, 18th, 2020', 394 | text: 'sagittis augue, eu tempor erat neque non quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam fringilla cursus purus. Nullam scelerisque neque sed sem egestas blandit. Nam nulla magna, malesuada vel,', 395 | id: 541, 396 | }, 397 | { 398 | name: 'Violet', 399 | subject: 'sed dolor. Fusce mi', 400 | date: 'Fri, 2nd, 2020', 401 | text: 'Phasellus nulla. Integer vulputate, risus a ultricies adipiscing, enim mi tempor lorem, eget mollis lectus pede et risus. Quisque libero lacus, varius et, euismod et, commodo at, libero. Morbi accumsan laoreet ipsum. Curabitur consequat, lectus sit amet luctus vulputate, nisi sem semper erat, in', 402 | id: 551, 403 | }, 404 | { 405 | name: 'Carissa', 406 | subject: 'sagittis placerat. Cras dictum ultricies ligula.', 407 | date: 'Mon, 27th, 2020', 408 | text: 'urna et arcu imperdiet ullamcorper. Duis at lacus. Quisque purus sapien, gravida non, sollicitudin a, malesuada', 409 | id: 561, 410 | }, 411 | { 412 | name: 'Orlando', 413 | subject: 'amet, faucibus ut, nulla. Cras eu tellus', 414 | date: 'Tue, 11th, 2018', 415 | text: 'dolor egestas rhoncus. Proin nisl sem, consequat nec, mollis vitae, posuere at, velit. Cras lorem lorem, luctus ut, pellentesque eget, dictum placerat, augue. Sed molestie. Sed id', 416 | id: 571, 417 | }, 418 | { 419 | name: 'Hu', 420 | subject: 'posuere vulputate, lacus. Cras interdum. Nunc', 421 | date: 'Sun, 23rd, 2019', 422 | text: 'vitae mauris sit amet lorem semper auctor. Mauris vel turpis. Aliquam adipiscing lobortis risus. In mi pede, nonummy ut, molestie in, tempus eu, ligula. Aenean euismod mauris eu elit. Nulla facilisi. Sed neque. Sed eget lacus. Mauris non dui nec urna suscipit nonummy. Fusce fermentum fermentum arcu. Vestibulum ante', 423 | id: 581, 424 | }, 425 | { 426 | name: 'Calista', 427 | subject: 'luctus', 428 | date: 'Sun, 6th, 2019', 429 | text: 'In ornare sagittis felis. Donec tempor, est ac mattis semper, dui lectus rutrum urna, nec luctus felis purus ac tellus. Suspendisse sed dolor. Fusce mi lorem, vehicula et, rutrum eu, ultrices sit amet,', 430 | id: 591, 431 | }, 432 | { 433 | name: 'Claudia', 434 | subject: 'vulputate mauris sagittis placerat. Cras dictum', 435 | date: 'Mon, 6th, 2019', 436 | text: 'in molestie tortor nibh sit amet orci. Ut sagittis lobortis mauris. Suspendisse aliquet molestie tellus. Aenean egestas hendrerit neque. In', 437 | id: 601, 438 | }, 439 | { 440 | name: 'Lewis', 441 | subject: 'vitae aliquam eros turpis', 442 | date: 'Wed, 27th, 2019', 443 | text: 'libero mauris, aliquam eu, accumsan sed, facilisis vitae, orci. Phasellus dapibus quam quis diam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce aliquet magna a neque. Nullam ut nisi a odio semper cursus. Integer mollis. Integer tincidunt aliquam arcu. Aliquam ultrices iaculis odio.', 444 | id: 611, 445 | }, 446 | { 447 | name: 'Tad', 448 | subject: 'Suspendisse tristique neque venenatis', 449 | date: 'Wed, 25th, 2019', 450 | text: 'Curabitur massa. Vestibulum accumsan neque et nunc. Quisque ornare tortor at risus. Nunc ac sem ut dolor dapibus gravida. Aliquam tincidunt, nunc ac mattis ornare, lectus ante dictum mi, ac mattis velit justo nec ante. Maecenas mi felis, adipiscing fringilla, porttitor vulputate, posuere vulputate, lacus. Cras interdum. Nunc', 451 | id: 621, 452 | }, 453 | { 454 | name: 'Brandon', 455 | subject: 'vestibulum,', 456 | date: 'Sat, 16th, 2019', 457 | text: 'Suspendisse ac metus vitae velit egestas lacinia. Sed congue, elit sed consequat auctor, nunc nulla vulputate dui, nec tempus mauris erat eget ipsum. Suspendisse sagittis. Nullam vitae diam. Proin dolor. Nulla semper tellus id nunc interdum feugiat. Sed nec metus facilisis lorem tristique aliquet. Phasellus fermentum convallis ligula.', 458 | id: 631, 459 | }, 460 | { 461 | name: 'Ruth', 462 | subject: 'Ut', 463 | date: 'Thu, 26th, 2020', 464 | text: 'pede ac urna. Ut tincidunt vehicula risus. Nulla eget metus eu erat semper rutrum. Fusce dolor quam, elementum at,', 465 | id: 641, 466 | }, 467 | { 468 | name: 'Valentine', 469 | subject: 'sagittis lobortis mauris. Suspendisse aliquet', 470 | date: 'Sun, 8th, 2020', 471 | text: 'consequat purus. Maecenas libero est, congue a, aliquet vel, vulputate eu, odio. Phasellus at augue id ante dictum cursus. Nunc mauris elit, dictum eu, eleifend nec, malesuada ut, sem. Nulla interdum. Curabitur dictum. Phasellus in felis. Nulla tempor augue ac ipsum. Phasellus vitae', 472 | id: 651, 473 | }, 474 | { 475 | name: 'Cecilia', 476 | subject: 'dolor dolor, tempus non, lacinia at,', 477 | date: 'Tue, 20th, 2018', 478 | text: 'mi fringilla mi lacinia mattis. Integer eu lacus. Quisque imperdiet, erat nonummy ultricies ornare, elit elit fermentum risus, at fringilla purus mauris a nunc. In at pede. Cras vulputate velit eu sem. Pellentesque ut ipsum ac', 479 | id: 661, 480 | }, 481 | { 482 | name: 'Keegan', 483 | subject: 'lacus. Ut nec urna', 484 | date: 'Fri, 18th, 2019', 485 | text: 'sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin vel arcu eu odio tristique pharetra. Quisque ac libero nec ligula consectetuer rhoncus. Nullam velit dui, semper et, lacinia vitae, sodales at, velit. Pellentesque ultricies dignissim lacus. Aliquam rutrum lorem ac', 486 | id: 671, 487 | }, 488 | { 489 | name: 'Ila', 490 | subject: 'scelerisque dui. Suspendisse', 491 | date: 'Fri, 17th, 2020', 492 | text: 'magnis dis parturient montes, nascetur ridiculus mus. Donec dignissim magna a tortor. Nunc commodo auctor velit. Aliquam nisl. Nulla eu neque pellentesque massa lobortis ultrices. Vivamus rhoncus. Donec est. Nunc ullamcorper,', 493 | id: 681, 494 | }, 495 | { 496 | name: 'Nero', 497 | subject: 'facilisis', 498 | date: 'Wed, 28th, 2018', 499 | text: 'egestas. Fusce aliquet magna a neque. Nullam ut nisi a odio semper cursus. Integer mollis. Integer tincidunt aliquam arcu. Aliquam ultrices iaculis odio. Nam interdum enim non nisi. Aenean eget metus. In nec orci. Donec nibh. Quisque nonummy ipsum non arcu. Vivamus sit amet risus. Donec egestas.', 500 | id: 691, 501 | }, 502 | { 503 | name: 'Kimberley', 504 | subject: 'Quisque ac libero nec ligula consectetuer rhoncus.', 505 | date: 'Sun, 2nd, 2020', 506 | text: 'enim, condimentum eget, volutpat ornare, facilisis eget, ipsum. Donec sollicitudin adipiscing ligula. Aenean gravida nunc sed pede. Cum sociis', 507 | id: 701, 508 | }, 509 | { 510 | name: 'Lilah', 511 | subject: 'risus.', 512 | date: 'Sat, 6th, 2020', 513 | text: 'penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin vel arcu eu odio tristique pharetra. Quisque ac libero nec ligula consectetuer rhoncus. Nullam velit dui, semper', 514 | id: 711, 515 | }, 516 | { 517 | name: 'Duncan', 518 | subject: 'nibh. Donec est mauris, rhoncus', 519 | date: 'Wed, 15th, 2020', 520 | text: 'Proin eget odio. Aliquam vulputate ullamcorper magna. Sed eu eros. Nam consequat dolor vitae dolor. Donec fringilla. Donec feugiat metus sit amet ante. Vivamus', 521 | id: 721, 522 | }, 523 | { 524 | name: 'Genevieve', 525 | subject: 'nunc id enim. Curabitur massa. Vestibulum accumsan', 526 | date: 'Wed, 11th, 2020', 527 | text: 'urna. Ut tincidunt vehicula risus. Nulla eget metus eu erat semper rutrum. Fusce dolor quam, elementum at, egestas a, scelerisque sed, sapien. Nunc pulvinar arcu et pede. Nunc sed orci lobortis augue scelerisque mollis. Phasellus libero mauris, aliquam eu, accumsan', 528 | id: 731, 529 | }, 530 | { 531 | name: 'Cassidy', 532 | subject: 'Phasellus dapibus quam quis diam.', 533 | date: 'Fri, 23rd, 2019', 534 | text: 'nec ante blandit viverra. Donec tempus, lorem fringilla ornare placerat, orci lacus vestibulum lorem, sit amet ultricies sem magna nec quam. Curabitur vel lectus. Cum sociis natoque penatibus et', 535 | id: 741, 536 | }, 537 | { 538 | name: 'Porter', 539 | subject: 'aliquet odio. Etiam ligula tortor,', 540 | date: 'Wed, 3rd, 2019', 541 | text: 'Sed neque. Sed eget lacus. Mauris non dui nec urna suscipit nonummy. Fusce fermentum fermentum arcu. Vestibulum ante ipsum primis in faucibus orci luctus et', 542 | id: 751, 543 | }, 544 | { 545 | name: 'Hu', 546 | subject: 'posuere cubilia', 547 | date: 'Wed, 15th, 2020', 548 | text: 'mauris. Suspendisse aliquet molestie tellus. Aenean egestas hendrerit neque. In ornare sagittis felis. Donec tempor, est ac mattis semper, dui lectus rutrum urna, nec luctus felis purus ac tellus. Suspendisse sed', 549 | id: 761, 550 | }, 551 | { 552 | name: 'Lucian', 553 | subject: 'eget lacus. Mauris non dui', 554 | date: 'Thu, 9th, 2019', 555 | text: 'eleifend non, dapibus rutrum, justo. Praesent luctus. Curabitur egestas nunc sed libero. Proin sed turpis nec mauris blandit mattis. Cras eget nisi dictum augue malesuada malesuada. Integer id magna et ipsum cursus vestibulum. Mauris magna. Duis dignissim tempor arcu. Vestibulum ut', 556 | id: 771, 557 | }, 558 | { 559 | name: 'Shoshana', 560 | subject: 'enim, condimentum eget,', 561 | date: 'Thu, 13th, 2018', 562 | text: 'leo. Cras vehicula aliquet libero. Integer in magna. Phasellus dolor elit, pellentesque a, facilisis non, bibendum sed, est. Nunc laoreet lectus quis massa. Mauris vestibulum, neque sed dictum eleifend, nunc risus varius orci, in consequat enim diam', 563 | id: 781, 564 | }, 565 | { 566 | name: 'Cade', 567 | subject: 'dolor. Fusce feugiat.', 568 | date: 'Sat, 26th, 2019', 569 | text: 'est, vitae sodales nisi magna sed dui. Fusce aliquam, enim nec tempus scelerisque, lorem ipsum sodales purus, in molestie tortor nibh sit amet orci. Ut', 570 | id: 791, 571 | }, 572 | { 573 | name: 'Madeline', 574 | subject: 'auctor, nunc nulla vulputate', 575 | date: 'Thu, 28th, 2019', 576 | text: 'orci lacus vestibulum lorem, sit amet ultricies sem magna nec quam. Curabitur vel lectus. Cum sociis natoque penatibus et magnis', 577 | id: 801, 578 | }, 579 | { 580 | name: 'Xerxes', 581 | subject: 'Integer eu lacus.', 582 | date: 'Wed, 30th, 2019', 583 | text: 'in, hendrerit consectetuer, cursus et, magna. Praesent interdum ligula eu enim. Etiam imperdiet dictum magna. Ut tincidunt orci quis lectus. Nullam suscipit, est ac facilisis facilisis, magna tellus faucibus leo, in lobortis tellus justo sit amet nulla. Donec non justo. Proin non massa non ante bibendum ullamcorper.', 584 | id: 811, 585 | }, 586 | { 587 | name: 'Alexis', 588 | subject: 'cursus purus. Nullam scelerisque neque', 589 | date: 'Fri, 15th, 2019', 590 | text: 'arcu et pede. Nunc sed orci lobortis augue scelerisque mollis. Phasellus libero mauris, aliquam eu, accumsan sed, facilisis vitae, orci. Phasellus dapibus quam quis diam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce aliquet magna a neque. Nullam ut nisi a odio semper', 591 | id: 821, 592 | }, 593 | { 594 | name: 'Courtney', 595 | subject: 'Nunc sed orci lobortis augue scelerisque', 596 | date: 'Thu, 23rd, 2020', 597 | text: 'est mauris, rhoncus id, mollis nec, cursus a, enim. Suspendisse aliquet, sem ut cursus luctus, ipsum leo elementum sem, vitae aliquam eros turpis non enim. Mauris quis turpis vitae purus gravida sagittis. Duis gravida. Praesent eu nulla at sem molestie sodales. Mauris blandit enim consequat', 598 | id: 831, 599 | }, 600 | { 601 | name: 'Isabella', 602 | subject: 'a odio', 603 | date: 'Fri, 21st, 2020', 604 | text: 'est ac mattis semper, dui lectus rutrum urna, nec luctus felis purus ac tellus. Suspendisse sed dolor. Fusce mi lorem, vehicula et, rutrum eu, ultrices sit amet, risus. Donec nibh enim, gravida sit amet, dapibus id, blandit at, nisi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur', 605 | id: 841, 606 | }, 607 | { 608 | name: 'Ina', 609 | subject: 'Curabitur egestas nunc sed libero. Proin sed', 610 | date: 'Tue, 26th, 2019', 611 | text: 'semper et, lacinia vitae, sodales at, velit. Pellentesque ultricies dignissim lacus. Aliquam rutrum lorem ac risus. Morbi metus. Vivamus euismod urna. Nullam lobortis quam a felis ullamcorper viverra. Maecenas iaculis aliquet diam. Sed diam lorem, auctor quis, tristique ac, eleifend vitae, erat. Vivamus nisi. Mauris nulla. Integer urna. Vivamus', 612 | id: 851, 613 | }, 614 | { 615 | name: 'Jenette', 616 | subject: 'non leo. Vivamus nibh dolor, nonummy', 617 | date: 'Wed, 16th, 2019', 618 | text: 'Fusce diam nunc, ullamcorper eu, euismod ac, fermentum vel, mauris. Integer sem elit, pharetra ut, pharetra sed, hendrerit a, arcu. Sed et libero. Proin mi. Aliquam gravida mauris ut mi. Duis risus odio, auctor vitae, aliquet nec, imperdiet nec, leo.', 619 | id: 861, 620 | }, 621 | { 622 | name: 'Lev', 623 | subject: 'purus. Nullam scelerisque neque sed sem egestas', 624 | date: 'Fri, 22nd, 2020', 625 | text: 'pede. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin vel arcu eu odio tristique pharetra. Quisque ac libero nec ligula consectetuer rhoncus. Nullam velit dui, semper et, lacinia vitae, sodales', 626 | id: 871, 627 | }, 628 | { 629 | name: 'Sharon', 630 | subject: 'ante ipsum primis in faucibus orci', 631 | date: 'Fri, 11th, 2019', 632 | text: 'Aliquam ultrices iaculis odio. Nam interdum enim non nisi. Aenean eget metus. In nec orci. Donec nibh. Quisque nonummy ipsum non arcu. Vivamus sit amet risus. Donec egestas. Aliquam nec enim. Nunc ut', 633 | id: 881, 634 | }, 635 | { 636 | name: 'Rowan', 637 | subject: 'Donec luctus aliquet', 638 | date: 'Thu, 6th, 2019', 639 | text: 'fames ac turpis egestas. Fusce aliquet magna a neque. Nullam ut nisi a odio semper cursus. Integer mollis. Integer tincidunt aliquam arcu. Aliquam ultrices', 640 | id: 891, 641 | }, 642 | { 643 | name: 'Ann', 644 | subject: 'ullamcorper. Duis at lacus.', 645 | date: 'Sun, 10th, 2019', 646 | text: 'cursus et, eros. Proin ultrices. Duis volutpat nunc sit amet metus. Aliquam erat volutpat. Nulla', 647 | id: 901, 648 | }, 649 | { 650 | name: 'Brenda', 651 | subject: 'vulputate velit', 652 | date: 'Sun, 30th, 2019', 653 | text: 'velit. Sed malesuada augue ut lacus. Nulla tincidunt, neque vitae semper egestas, urna justo faucibus lectus, a sollicitudin orci sem eget massa. Suspendisse eleifend. Cras sed leo. Cras vehicula aliquet libero. Integer in magna. Phasellus dolor elit, pellentesque a, facilisis non,', 654 | id: 911, 655 | }, 656 | { 657 | name: 'Brandon', 658 | subject: 'tempor, est ac mattis semper,', 659 | date: 'Wed, 13th, 2019', 660 | text: 'dignissim magna a tortor. Nunc commodo auctor velit. Aliquam nisl. Nulla eu neque pellentesque massa lobortis ultrices. Vivamus rhoncus. Donec est. Nunc', 661 | id: 921, 662 | }, 663 | { 664 | name: 'Joelle', 665 | subject: 'velit dui,', 666 | date: 'Thu, 14th, 2019', 667 | text: 'a tortor. Nunc commodo auctor velit. Aliquam nisl. Nulla eu neque pellentesque massa lobortis ultrices. Vivamus rhoncus. Donec est. Nunc ullamcorper, velit in aliquet lobortis, nisi nibh lacinia orci, consectetuer euismod est arcu ac orci. Ut semper pretium neque. Morbi', 668 | id: 931, 669 | }, 670 | { 671 | name: 'Tasha', 672 | subject: 'consequat purus.', 673 | date: 'Fri, 5th, 2019', 674 | text: 'vitae diam. Proin dolor. Nulla semper tellus id nunc interdum feugiat. Sed nec metus facilisis lorem tristique aliquet. Phasellus fermentum convallis ligula. Donec luctus aliquet odio. Etiam ligula tortor, dictum eu, placerat eget, venenatis a, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam laoreet, libero et tristique pellentesque,', 675 | id: 941, 676 | }, 677 | { 678 | name: 'Hyacinth', 679 | subject: 'vitae purus gravida sagittis.', 680 | date: 'Sat, 21st, 2019', 681 | text: 'purus. Nullam scelerisque neque sed sem egestas blandit. Nam nulla magna, malesuada vel, convallis in, cursus et, eros. Proin ultrices. Duis volutpat nunc sit amet metus. Aliquam erat volutpat. Nulla facilisis. Suspendisse commodo', 682 | id: 951, 683 | }, 684 | { 685 | name: 'Winter', 686 | subject: 'sodales nisi magna sed dui. Fusce', 687 | date: 'Sun, 9th, 2020', 688 | text: 'et magnis dis parturient montes, nascetur ridiculus mus. Aenean eget magna. Suspendisse tristique neque venenatis lacus. Etiam bibendum fermentum metus.', 689 | id: 961, 690 | }, 691 | { 692 | name: 'Chelsea', 693 | subject: 'in faucibus orci', 694 | date: 'Thu, 21st, 2019', 695 | text: 'Donec felis orci, adipiscing non, luctus sit amet, faucibus ut, nulla. Cras eu tellus eu augue porttitor interdum. Sed auctor odio a purus. Duis elementum, dui quis', 696 | id: 971, 697 | }, 698 | { 699 | name: 'Moses', 700 | subject: 'Fusce', 701 | date: 'Wed, 9th, 2019', 702 | text: 'nisi. Mauris nulla. Integer urna. Vivamus molestie dapibus ligula. Aliquam erat volutpat. Nulla dignissim. Maecenas ornare egestas ligula. Nullam feugiat placerat velit. Quisque varius. Nam', 703 | id: 981, 704 | }, 705 | { 706 | name: 'Melvin', 707 | subject: 'ipsum', 708 | date: 'Wed, 26th, 2019', 709 | text: 'velit. Quisque varius. Nam porttitor scelerisque neque. Nullam nisl. Maecenas malesuada fringilla est. Mauris eu turpis. Nulla aliquet. Proin velit. Sed malesuada augue ut lacus. Nulla tincidunt, neque vitae semper egestas, urna justo faucibus lectus, a', 710 | id: 991, 711 | }, 712 | ]; 713 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import {AppRegistry} from 'react-native'; 6 | import App from './App'; 7 | import {name as appName} from './app.json'; 8 | 9 | AppRegistry.registerComponent(appName, () => App); 10 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/.xcode.env: -------------------------------------------------------------------------------- 1 | # This `.xcode.env` file is versioned and is used to source the environment 2 | # used when running script phases inside Xcode. 3 | # To customize your local environment, you can create an `.xcode.env.local` 4 | # file that is not versioned. 5 | 6 | # NODE_BINARY variable contains the PATH to the node executable. 7 | # 8 | # Customize the NODE_BINARY variable here. 9 | # For example, to use nvm with brew, add the following line 10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use 11 | export NODE_BINARY=$(command -v node) 12 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/Podfile: -------------------------------------------------------------------------------- 1 | # Resolve react_native_pods.rb with node to allow for hoisting 2 | require Pod::Executable.execute_command('node', ['-p', 3 | 'require.resolve( 4 | "react-native/scripts/react_native_pods.rb", 5 | {paths: [process.argv[1]]}, 6 | )', __dir__]).strip 7 | 8 | platform :ios, min_ios_version_supported 9 | prepare_react_native_project! 10 | 11 | linkage = ENV['USE_FRAMEWORKS'] 12 | if linkage != nil 13 | Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green 14 | use_frameworks! :linkage => linkage.to_sym 15 | end 16 | 17 | target 'SwipeableListExampleApp' do 18 | config = use_native_modules! 19 | 20 | use_react_native!( 21 | :path => config[:reactNativePath], 22 | # An absolute path to your application root. 23 | :app_path => "#{Pod::Config.instance.installation_root}/.." 24 | ) 25 | 26 | target 'SwipeableListExampleAppTests' do 27 | inherit! :complete 28 | # Pods for testing 29 | end 30 | 31 | post_install do |installer| 32 | # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 33 | react_native_post_install( 34 | installer, 35 | config[:reactNativePath], 36 | :mac_catalyst_enabled => false, 37 | # :ccache_enabled => true 38 | ) 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - boost (1.84.0) 3 | - DoubleConversion (1.1.6) 4 | - FBLazyVector (0.75.2) 5 | - fmt (9.1.0) 6 | - glog (0.3.5) 7 | - hermes-engine (0.75.2): 8 | - hermes-engine/Pre-built (= 0.75.2) 9 | - hermes-engine/Pre-built (0.75.2) 10 | - RCT-Folly (2024.01.01.00): 11 | - boost 12 | - DoubleConversion 13 | - fmt (= 9.1.0) 14 | - glog 15 | - RCT-Folly/Default (= 2024.01.01.00) 16 | - RCT-Folly/Default (2024.01.01.00): 17 | - boost 18 | - DoubleConversion 19 | - fmt (= 9.1.0) 20 | - glog 21 | - RCT-Folly/Fabric (2024.01.01.00): 22 | - boost 23 | - DoubleConversion 24 | - fmt (= 9.1.0) 25 | - glog 26 | - RCTDeprecation (0.75.2) 27 | - RCTRequired (0.75.2) 28 | - RCTTypeSafety (0.75.2): 29 | - FBLazyVector (= 0.75.2) 30 | - RCTRequired (= 0.75.2) 31 | - React-Core (= 0.75.2) 32 | - React (0.75.2): 33 | - React-Core (= 0.75.2) 34 | - React-Core/DevSupport (= 0.75.2) 35 | - React-Core/RCTWebSocket (= 0.75.2) 36 | - React-RCTActionSheet (= 0.75.2) 37 | - React-RCTAnimation (= 0.75.2) 38 | - React-RCTBlob (= 0.75.2) 39 | - React-RCTImage (= 0.75.2) 40 | - React-RCTLinking (= 0.75.2) 41 | - React-RCTNetwork (= 0.75.2) 42 | - React-RCTSettings (= 0.75.2) 43 | - React-RCTText (= 0.75.2) 44 | - React-RCTVibration (= 0.75.2) 45 | - React-callinvoker (0.75.2) 46 | - React-Core (0.75.2): 47 | - glog 48 | - hermes-engine 49 | - RCT-Folly (= 2024.01.01.00) 50 | - RCTDeprecation 51 | - React-Core/Default (= 0.75.2) 52 | - React-cxxreact 53 | - React-featureflags 54 | - React-hermes 55 | - React-jsi 56 | - React-jsiexecutor 57 | - React-jsinspector 58 | - React-perflogger 59 | - React-runtimescheduler 60 | - React-utils 61 | - SocketRocket (= 0.7.0) 62 | - Yoga 63 | - React-Core/CoreModulesHeaders (0.75.2): 64 | - glog 65 | - hermes-engine 66 | - RCT-Folly (= 2024.01.01.00) 67 | - RCTDeprecation 68 | - React-Core/Default 69 | - React-cxxreact 70 | - React-featureflags 71 | - React-hermes 72 | - React-jsi 73 | - React-jsiexecutor 74 | - React-jsinspector 75 | - React-perflogger 76 | - React-runtimescheduler 77 | - React-utils 78 | - SocketRocket (= 0.7.0) 79 | - Yoga 80 | - React-Core/Default (0.75.2): 81 | - glog 82 | - hermes-engine 83 | - RCT-Folly (= 2024.01.01.00) 84 | - RCTDeprecation 85 | - React-cxxreact 86 | - React-featureflags 87 | - React-hermes 88 | - React-jsi 89 | - React-jsiexecutor 90 | - React-jsinspector 91 | - React-perflogger 92 | - React-runtimescheduler 93 | - React-utils 94 | - SocketRocket (= 0.7.0) 95 | - Yoga 96 | - React-Core/DevSupport (0.75.2): 97 | - glog 98 | - hermes-engine 99 | - RCT-Folly (= 2024.01.01.00) 100 | - RCTDeprecation 101 | - React-Core/Default (= 0.75.2) 102 | - React-Core/RCTWebSocket (= 0.75.2) 103 | - React-cxxreact 104 | - React-featureflags 105 | - React-hermes 106 | - React-jsi 107 | - React-jsiexecutor 108 | - React-jsinspector 109 | - React-perflogger 110 | - React-runtimescheduler 111 | - React-utils 112 | - SocketRocket (= 0.7.0) 113 | - Yoga 114 | - React-Core/RCTActionSheetHeaders (0.75.2): 115 | - glog 116 | - hermes-engine 117 | - RCT-Folly (= 2024.01.01.00) 118 | - RCTDeprecation 119 | - React-Core/Default 120 | - React-cxxreact 121 | - React-featureflags 122 | - React-hermes 123 | - React-jsi 124 | - React-jsiexecutor 125 | - React-jsinspector 126 | - React-perflogger 127 | - React-runtimescheduler 128 | - React-utils 129 | - SocketRocket (= 0.7.0) 130 | - Yoga 131 | - React-Core/RCTAnimationHeaders (0.75.2): 132 | - glog 133 | - hermes-engine 134 | - RCT-Folly (= 2024.01.01.00) 135 | - RCTDeprecation 136 | - React-Core/Default 137 | - React-cxxreact 138 | - React-featureflags 139 | - React-hermes 140 | - React-jsi 141 | - React-jsiexecutor 142 | - React-jsinspector 143 | - React-perflogger 144 | - React-runtimescheduler 145 | - React-utils 146 | - SocketRocket (= 0.7.0) 147 | - Yoga 148 | - React-Core/RCTBlobHeaders (0.75.2): 149 | - glog 150 | - hermes-engine 151 | - RCT-Folly (= 2024.01.01.00) 152 | - RCTDeprecation 153 | - React-Core/Default 154 | - React-cxxreact 155 | - React-featureflags 156 | - React-hermes 157 | - React-jsi 158 | - React-jsiexecutor 159 | - React-jsinspector 160 | - React-perflogger 161 | - React-runtimescheduler 162 | - React-utils 163 | - SocketRocket (= 0.7.0) 164 | - Yoga 165 | - React-Core/RCTImageHeaders (0.75.2): 166 | - glog 167 | - hermes-engine 168 | - RCT-Folly (= 2024.01.01.00) 169 | - RCTDeprecation 170 | - React-Core/Default 171 | - React-cxxreact 172 | - React-featureflags 173 | - React-hermes 174 | - React-jsi 175 | - React-jsiexecutor 176 | - React-jsinspector 177 | - React-perflogger 178 | - React-runtimescheduler 179 | - React-utils 180 | - SocketRocket (= 0.7.0) 181 | - Yoga 182 | - React-Core/RCTLinkingHeaders (0.75.2): 183 | - glog 184 | - hermes-engine 185 | - RCT-Folly (= 2024.01.01.00) 186 | - RCTDeprecation 187 | - React-Core/Default 188 | - React-cxxreact 189 | - React-featureflags 190 | - React-hermes 191 | - React-jsi 192 | - React-jsiexecutor 193 | - React-jsinspector 194 | - React-perflogger 195 | - React-runtimescheduler 196 | - React-utils 197 | - SocketRocket (= 0.7.0) 198 | - Yoga 199 | - React-Core/RCTNetworkHeaders (0.75.2): 200 | - glog 201 | - hermes-engine 202 | - RCT-Folly (= 2024.01.01.00) 203 | - RCTDeprecation 204 | - React-Core/Default 205 | - React-cxxreact 206 | - React-featureflags 207 | - React-hermes 208 | - React-jsi 209 | - React-jsiexecutor 210 | - React-jsinspector 211 | - React-perflogger 212 | - React-runtimescheduler 213 | - React-utils 214 | - SocketRocket (= 0.7.0) 215 | - Yoga 216 | - React-Core/RCTSettingsHeaders (0.75.2): 217 | - glog 218 | - hermes-engine 219 | - RCT-Folly (= 2024.01.01.00) 220 | - RCTDeprecation 221 | - React-Core/Default 222 | - React-cxxreact 223 | - React-featureflags 224 | - React-hermes 225 | - React-jsi 226 | - React-jsiexecutor 227 | - React-jsinspector 228 | - React-perflogger 229 | - React-runtimescheduler 230 | - React-utils 231 | - SocketRocket (= 0.7.0) 232 | - Yoga 233 | - React-Core/RCTTextHeaders (0.75.2): 234 | - glog 235 | - hermes-engine 236 | - RCT-Folly (= 2024.01.01.00) 237 | - RCTDeprecation 238 | - React-Core/Default 239 | - React-cxxreact 240 | - React-featureflags 241 | - React-hermes 242 | - React-jsi 243 | - React-jsiexecutor 244 | - React-jsinspector 245 | - React-perflogger 246 | - React-runtimescheduler 247 | - React-utils 248 | - SocketRocket (= 0.7.0) 249 | - Yoga 250 | - React-Core/RCTVibrationHeaders (0.75.2): 251 | - glog 252 | - hermes-engine 253 | - RCT-Folly (= 2024.01.01.00) 254 | - RCTDeprecation 255 | - React-Core/Default 256 | - React-cxxreact 257 | - React-featureflags 258 | - React-hermes 259 | - React-jsi 260 | - React-jsiexecutor 261 | - React-jsinspector 262 | - React-perflogger 263 | - React-runtimescheduler 264 | - React-utils 265 | - SocketRocket (= 0.7.0) 266 | - Yoga 267 | - React-Core/RCTWebSocket (0.75.2): 268 | - glog 269 | - hermes-engine 270 | - RCT-Folly (= 2024.01.01.00) 271 | - RCTDeprecation 272 | - React-Core/Default (= 0.75.2) 273 | - React-cxxreact 274 | - React-featureflags 275 | - React-hermes 276 | - React-jsi 277 | - React-jsiexecutor 278 | - React-jsinspector 279 | - React-perflogger 280 | - React-runtimescheduler 281 | - React-utils 282 | - SocketRocket (= 0.7.0) 283 | - Yoga 284 | - React-CoreModules (0.75.2): 285 | - DoubleConversion 286 | - fmt (= 9.1.0) 287 | - RCT-Folly (= 2024.01.01.00) 288 | - RCTTypeSafety (= 0.75.2) 289 | - React-Core/CoreModulesHeaders (= 0.75.2) 290 | - React-jsi (= 0.75.2) 291 | - React-jsinspector 292 | - React-NativeModulesApple 293 | - React-RCTBlob 294 | - React-RCTImage (= 0.75.2) 295 | - ReactCodegen 296 | - ReactCommon 297 | - SocketRocket (= 0.7.0) 298 | - React-cxxreact (0.75.2): 299 | - boost 300 | - DoubleConversion 301 | - fmt (= 9.1.0) 302 | - glog 303 | - hermes-engine 304 | - RCT-Folly (= 2024.01.01.00) 305 | - React-callinvoker (= 0.75.2) 306 | - React-debug (= 0.75.2) 307 | - React-jsi (= 0.75.2) 308 | - React-jsinspector 309 | - React-logger (= 0.75.2) 310 | - React-perflogger (= 0.75.2) 311 | - React-runtimeexecutor (= 0.75.2) 312 | - React-debug (0.75.2) 313 | - React-defaultsnativemodule (0.75.2): 314 | - DoubleConversion 315 | - glog 316 | - hermes-engine 317 | - RCT-Folly (= 2024.01.01.00) 318 | - RCTRequired 319 | - RCTTypeSafety 320 | - React-Core 321 | - React-debug 322 | - React-domnativemodule 323 | - React-Fabric 324 | - React-featureflags 325 | - React-featureflagsnativemodule 326 | - React-graphics 327 | - React-idlecallbacksnativemodule 328 | - React-ImageManager 329 | - React-microtasksnativemodule 330 | - React-NativeModulesApple 331 | - React-RCTFabric 332 | - React-rendererdebug 333 | - React-utils 334 | - ReactCodegen 335 | - ReactCommon/turbomodule/bridging 336 | - ReactCommon/turbomodule/core 337 | - Yoga 338 | - React-domnativemodule (0.75.2): 339 | - DoubleConversion 340 | - glog 341 | - hermes-engine 342 | - RCT-Folly (= 2024.01.01.00) 343 | - RCTRequired 344 | - RCTTypeSafety 345 | - React-Core 346 | - React-debug 347 | - React-Fabric 348 | - React-FabricComponents 349 | - React-featureflags 350 | - React-graphics 351 | - React-ImageManager 352 | - React-NativeModulesApple 353 | - React-RCTFabric 354 | - React-rendererdebug 355 | - React-utils 356 | - ReactCodegen 357 | - ReactCommon/turbomodule/bridging 358 | - ReactCommon/turbomodule/core 359 | - Yoga 360 | - React-Fabric (0.75.2): 361 | - DoubleConversion 362 | - fmt (= 9.1.0) 363 | - glog 364 | - hermes-engine 365 | - RCT-Folly/Fabric (= 2024.01.01.00) 366 | - RCTRequired 367 | - RCTTypeSafety 368 | - React-Core 369 | - React-cxxreact 370 | - React-debug 371 | - React-Fabric/animations (= 0.75.2) 372 | - React-Fabric/attributedstring (= 0.75.2) 373 | - React-Fabric/componentregistry (= 0.75.2) 374 | - React-Fabric/componentregistrynative (= 0.75.2) 375 | - React-Fabric/components (= 0.75.2) 376 | - React-Fabric/core (= 0.75.2) 377 | - React-Fabric/dom (= 0.75.2) 378 | - React-Fabric/imagemanager (= 0.75.2) 379 | - React-Fabric/leakchecker (= 0.75.2) 380 | - React-Fabric/mounting (= 0.75.2) 381 | - React-Fabric/observers (= 0.75.2) 382 | - React-Fabric/scheduler (= 0.75.2) 383 | - React-Fabric/telemetry (= 0.75.2) 384 | - React-Fabric/templateprocessor (= 0.75.2) 385 | - React-Fabric/uimanager (= 0.75.2) 386 | - React-featureflags 387 | - React-graphics 388 | - React-jsi 389 | - React-jsiexecutor 390 | - React-logger 391 | - React-rendererdebug 392 | - React-runtimescheduler 393 | - React-utils 394 | - ReactCommon/turbomodule/core 395 | - React-Fabric/animations (0.75.2): 396 | - DoubleConversion 397 | - fmt (= 9.1.0) 398 | - glog 399 | - hermes-engine 400 | - RCT-Folly/Fabric (= 2024.01.01.00) 401 | - RCTRequired 402 | - RCTTypeSafety 403 | - React-Core 404 | - React-cxxreact 405 | - React-debug 406 | - React-featureflags 407 | - React-graphics 408 | - React-jsi 409 | - React-jsiexecutor 410 | - React-logger 411 | - React-rendererdebug 412 | - React-runtimescheduler 413 | - React-utils 414 | - ReactCommon/turbomodule/core 415 | - React-Fabric/attributedstring (0.75.2): 416 | - DoubleConversion 417 | - fmt (= 9.1.0) 418 | - glog 419 | - hermes-engine 420 | - RCT-Folly/Fabric (= 2024.01.01.00) 421 | - RCTRequired 422 | - RCTTypeSafety 423 | - React-Core 424 | - React-cxxreact 425 | - React-debug 426 | - React-featureflags 427 | - React-graphics 428 | - React-jsi 429 | - React-jsiexecutor 430 | - React-logger 431 | - React-rendererdebug 432 | - React-runtimescheduler 433 | - React-utils 434 | - ReactCommon/turbomodule/core 435 | - React-Fabric/componentregistry (0.75.2): 436 | - DoubleConversion 437 | - fmt (= 9.1.0) 438 | - glog 439 | - hermes-engine 440 | - RCT-Folly/Fabric (= 2024.01.01.00) 441 | - RCTRequired 442 | - RCTTypeSafety 443 | - React-Core 444 | - React-cxxreact 445 | - React-debug 446 | - React-featureflags 447 | - React-graphics 448 | - React-jsi 449 | - React-jsiexecutor 450 | - React-logger 451 | - React-rendererdebug 452 | - React-runtimescheduler 453 | - React-utils 454 | - ReactCommon/turbomodule/core 455 | - React-Fabric/componentregistrynative (0.75.2): 456 | - DoubleConversion 457 | - fmt (= 9.1.0) 458 | - glog 459 | - hermes-engine 460 | - RCT-Folly/Fabric (= 2024.01.01.00) 461 | - RCTRequired 462 | - RCTTypeSafety 463 | - React-Core 464 | - React-cxxreact 465 | - React-debug 466 | - React-featureflags 467 | - React-graphics 468 | - React-jsi 469 | - React-jsiexecutor 470 | - React-logger 471 | - React-rendererdebug 472 | - React-runtimescheduler 473 | - React-utils 474 | - ReactCommon/turbomodule/core 475 | - React-Fabric/components (0.75.2): 476 | - DoubleConversion 477 | - fmt (= 9.1.0) 478 | - glog 479 | - hermes-engine 480 | - RCT-Folly/Fabric (= 2024.01.01.00) 481 | - RCTRequired 482 | - RCTTypeSafety 483 | - React-Core 484 | - React-cxxreact 485 | - React-debug 486 | - React-Fabric/components/legacyviewmanagerinterop (= 0.75.2) 487 | - React-Fabric/components/root (= 0.75.2) 488 | - React-Fabric/components/view (= 0.75.2) 489 | - React-featureflags 490 | - React-graphics 491 | - React-jsi 492 | - React-jsiexecutor 493 | - React-logger 494 | - React-rendererdebug 495 | - React-runtimescheduler 496 | - React-utils 497 | - ReactCommon/turbomodule/core 498 | - React-Fabric/components/legacyviewmanagerinterop (0.75.2): 499 | - DoubleConversion 500 | - fmt (= 9.1.0) 501 | - glog 502 | - hermes-engine 503 | - RCT-Folly/Fabric (= 2024.01.01.00) 504 | - RCTRequired 505 | - RCTTypeSafety 506 | - React-Core 507 | - React-cxxreact 508 | - React-debug 509 | - React-featureflags 510 | - React-graphics 511 | - React-jsi 512 | - React-jsiexecutor 513 | - React-logger 514 | - React-rendererdebug 515 | - React-runtimescheduler 516 | - React-utils 517 | - ReactCommon/turbomodule/core 518 | - React-Fabric/components/root (0.75.2): 519 | - DoubleConversion 520 | - fmt (= 9.1.0) 521 | - glog 522 | - hermes-engine 523 | - RCT-Folly/Fabric (= 2024.01.01.00) 524 | - RCTRequired 525 | - RCTTypeSafety 526 | - React-Core 527 | - React-cxxreact 528 | - React-debug 529 | - React-featureflags 530 | - React-graphics 531 | - React-jsi 532 | - React-jsiexecutor 533 | - React-logger 534 | - React-rendererdebug 535 | - React-runtimescheduler 536 | - React-utils 537 | - ReactCommon/turbomodule/core 538 | - React-Fabric/components/view (0.75.2): 539 | - DoubleConversion 540 | - fmt (= 9.1.0) 541 | - glog 542 | - hermes-engine 543 | - RCT-Folly/Fabric (= 2024.01.01.00) 544 | - RCTRequired 545 | - RCTTypeSafety 546 | - React-Core 547 | - React-cxxreact 548 | - React-debug 549 | - React-featureflags 550 | - React-graphics 551 | - React-jsi 552 | - React-jsiexecutor 553 | - React-logger 554 | - React-rendererdebug 555 | - React-runtimescheduler 556 | - React-utils 557 | - ReactCommon/turbomodule/core 558 | - Yoga 559 | - React-Fabric/core (0.75.2): 560 | - DoubleConversion 561 | - fmt (= 9.1.0) 562 | - glog 563 | - hermes-engine 564 | - RCT-Folly/Fabric (= 2024.01.01.00) 565 | - RCTRequired 566 | - RCTTypeSafety 567 | - React-Core 568 | - React-cxxreact 569 | - React-debug 570 | - React-featureflags 571 | - React-graphics 572 | - React-jsi 573 | - React-jsiexecutor 574 | - React-logger 575 | - React-rendererdebug 576 | - React-runtimescheduler 577 | - React-utils 578 | - ReactCommon/turbomodule/core 579 | - React-Fabric/dom (0.75.2): 580 | - DoubleConversion 581 | - fmt (= 9.1.0) 582 | - glog 583 | - hermes-engine 584 | - RCT-Folly/Fabric (= 2024.01.01.00) 585 | - RCTRequired 586 | - RCTTypeSafety 587 | - React-Core 588 | - React-cxxreact 589 | - React-debug 590 | - React-featureflags 591 | - React-graphics 592 | - React-jsi 593 | - React-jsiexecutor 594 | - React-logger 595 | - React-rendererdebug 596 | - React-runtimescheduler 597 | - React-utils 598 | - ReactCommon/turbomodule/core 599 | - React-Fabric/imagemanager (0.75.2): 600 | - DoubleConversion 601 | - fmt (= 9.1.0) 602 | - glog 603 | - hermes-engine 604 | - RCT-Folly/Fabric (= 2024.01.01.00) 605 | - RCTRequired 606 | - RCTTypeSafety 607 | - React-Core 608 | - React-cxxreact 609 | - React-debug 610 | - React-featureflags 611 | - React-graphics 612 | - React-jsi 613 | - React-jsiexecutor 614 | - React-logger 615 | - React-rendererdebug 616 | - React-runtimescheduler 617 | - React-utils 618 | - ReactCommon/turbomodule/core 619 | - React-Fabric/leakchecker (0.75.2): 620 | - DoubleConversion 621 | - fmt (= 9.1.0) 622 | - glog 623 | - hermes-engine 624 | - RCT-Folly/Fabric (= 2024.01.01.00) 625 | - RCTRequired 626 | - RCTTypeSafety 627 | - React-Core 628 | - React-cxxreact 629 | - React-debug 630 | - React-featureflags 631 | - React-graphics 632 | - React-jsi 633 | - React-jsiexecutor 634 | - React-logger 635 | - React-rendererdebug 636 | - React-runtimescheduler 637 | - React-utils 638 | - ReactCommon/turbomodule/core 639 | - React-Fabric/mounting (0.75.2): 640 | - DoubleConversion 641 | - fmt (= 9.1.0) 642 | - glog 643 | - hermes-engine 644 | - RCT-Folly/Fabric (= 2024.01.01.00) 645 | - RCTRequired 646 | - RCTTypeSafety 647 | - React-Core 648 | - React-cxxreact 649 | - React-debug 650 | - React-featureflags 651 | - React-graphics 652 | - React-jsi 653 | - React-jsiexecutor 654 | - React-logger 655 | - React-rendererdebug 656 | - React-runtimescheduler 657 | - React-utils 658 | - ReactCommon/turbomodule/core 659 | - React-Fabric/observers (0.75.2): 660 | - DoubleConversion 661 | - fmt (= 9.1.0) 662 | - glog 663 | - hermes-engine 664 | - RCT-Folly/Fabric (= 2024.01.01.00) 665 | - RCTRequired 666 | - RCTTypeSafety 667 | - React-Core 668 | - React-cxxreact 669 | - React-debug 670 | - React-Fabric/observers/events (= 0.75.2) 671 | - React-featureflags 672 | - React-graphics 673 | - React-jsi 674 | - React-jsiexecutor 675 | - React-logger 676 | - React-rendererdebug 677 | - React-runtimescheduler 678 | - React-utils 679 | - ReactCommon/turbomodule/core 680 | - React-Fabric/observers/events (0.75.2): 681 | - DoubleConversion 682 | - fmt (= 9.1.0) 683 | - glog 684 | - hermes-engine 685 | - RCT-Folly/Fabric (= 2024.01.01.00) 686 | - RCTRequired 687 | - RCTTypeSafety 688 | - React-Core 689 | - React-cxxreact 690 | - React-debug 691 | - React-featureflags 692 | - React-graphics 693 | - React-jsi 694 | - React-jsiexecutor 695 | - React-logger 696 | - React-rendererdebug 697 | - React-runtimescheduler 698 | - React-utils 699 | - ReactCommon/turbomodule/core 700 | - React-Fabric/scheduler (0.75.2): 701 | - DoubleConversion 702 | - fmt (= 9.1.0) 703 | - glog 704 | - hermes-engine 705 | - RCT-Folly/Fabric (= 2024.01.01.00) 706 | - RCTRequired 707 | - RCTTypeSafety 708 | - React-Core 709 | - React-cxxreact 710 | - React-debug 711 | - React-Fabric/observers/events 712 | - React-featureflags 713 | - React-graphics 714 | - React-jsi 715 | - React-jsiexecutor 716 | - React-logger 717 | - React-performancetimeline 718 | - React-rendererdebug 719 | - React-runtimescheduler 720 | - React-utils 721 | - ReactCommon/turbomodule/core 722 | - React-Fabric/telemetry (0.75.2): 723 | - DoubleConversion 724 | - fmt (= 9.1.0) 725 | - glog 726 | - hermes-engine 727 | - RCT-Folly/Fabric (= 2024.01.01.00) 728 | - RCTRequired 729 | - RCTTypeSafety 730 | - React-Core 731 | - React-cxxreact 732 | - React-debug 733 | - React-featureflags 734 | - React-graphics 735 | - React-jsi 736 | - React-jsiexecutor 737 | - React-logger 738 | - React-rendererdebug 739 | - React-runtimescheduler 740 | - React-utils 741 | - ReactCommon/turbomodule/core 742 | - React-Fabric/templateprocessor (0.75.2): 743 | - DoubleConversion 744 | - fmt (= 9.1.0) 745 | - glog 746 | - hermes-engine 747 | - RCT-Folly/Fabric (= 2024.01.01.00) 748 | - RCTRequired 749 | - RCTTypeSafety 750 | - React-Core 751 | - React-cxxreact 752 | - React-debug 753 | - React-featureflags 754 | - React-graphics 755 | - React-jsi 756 | - React-jsiexecutor 757 | - React-logger 758 | - React-rendererdebug 759 | - React-runtimescheduler 760 | - React-utils 761 | - ReactCommon/turbomodule/core 762 | - React-Fabric/uimanager (0.75.2): 763 | - DoubleConversion 764 | - fmt (= 9.1.0) 765 | - glog 766 | - hermes-engine 767 | - RCT-Folly/Fabric (= 2024.01.01.00) 768 | - RCTRequired 769 | - RCTTypeSafety 770 | - React-Core 771 | - React-cxxreact 772 | - React-debug 773 | - React-Fabric/uimanager/consistency (= 0.75.2) 774 | - React-featureflags 775 | - React-graphics 776 | - React-jsi 777 | - React-jsiexecutor 778 | - React-logger 779 | - React-rendererconsistency 780 | - React-rendererdebug 781 | - React-runtimescheduler 782 | - React-utils 783 | - ReactCommon/turbomodule/core 784 | - React-Fabric/uimanager/consistency (0.75.2): 785 | - DoubleConversion 786 | - fmt (= 9.1.0) 787 | - glog 788 | - hermes-engine 789 | - RCT-Folly/Fabric (= 2024.01.01.00) 790 | - RCTRequired 791 | - RCTTypeSafety 792 | - React-Core 793 | - React-cxxreact 794 | - React-debug 795 | - React-featureflags 796 | - React-graphics 797 | - React-jsi 798 | - React-jsiexecutor 799 | - React-logger 800 | - React-rendererconsistency 801 | - React-rendererdebug 802 | - React-runtimescheduler 803 | - React-utils 804 | - ReactCommon/turbomodule/core 805 | - React-FabricComponents (0.75.2): 806 | - DoubleConversion 807 | - fmt (= 9.1.0) 808 | - glog 809 | - hermes-engine 810 | - RCT-Folly/Fabric (= 2024.01.01.00) 811 | - RCTRequired 812 | - RCTTypeSafety 813 | - React-Core 814 | - React-cxxreact 815 | - React-debug 816 | - React-Fabric 817 | - React-FabricComponents/components (= 0.75.2) 818 | - React-FabricComponents/textlayoutmanager (= 0.75.2) 819 | - React-featureflags 820 | - React-graphics 821 | - React-jsi 822 | - React-jsiexecutor 823 | - React-logger 824 | - React-rendererdebug 825 | - React-runtimescheduler 826 | - React-utils 827 | - ReactCodegen 828 | - ReactCommon/turbomodule/core 829 | - Yoga 830 | - React-FabricComponents/components (0.75.2): 831 | - DoubleConversion 832 | - fmt (= 9.1.0) 833 | - glog 834 | - hermes-engine 835 | - RCT-Folly/Fabric (= 2024.01.01.00) 836 | - RCTRequired 837 | - RCTTypeSafety 838 | - React-Core 839 | - React-cxxreact 840 | - React-debug 841 | - React-Fabric 842 | - React-FabricComponents/components/inputaccessory (= 0.75.2) 843 | - React-FabricComponents/components/iostextinput (= 0.75.2) 844 | - React-FabricComponents/components/modal (= 0.75.2) 845 | - React-FabricComponents/components/rncore (= 0.75.2) 846 | - React-FabricComponents/components/safeareaview (= 0.75.2) 847 | - React-FabricComponents/components/scrollview (= 0.75.2) 848 | - React-FabricComponents/components/text (= 0.75.2) 849 | - React-FabricComponents/components/textinput (= 0.75.2) 850 | - React-FabricComponents/components/unimplementedview (= 0.75.2) 851 | - React-featureflags 852 | - React-graphics 853 | - React-jsi 854 | - React-jsiexecutor 855 | - React-logger 856 | - React-rendererdebug 857 | - React-runtimescheduler 858 | - React-utils 859 | - ReactCodegen 860 | - ReactCommon/turbomodule/core 861 | - Yoga 862 | - React-FabricComponents/components/inputaccessory (0.75.2): 863 | - DoubleConversion 864 | - fmt (= 9.1.0) 865 | - glog 866 | - hermes-engine 867 | - RCT-Folly/Fabric (= 2024.01.01.00) 868 | - RCTRequired 869 | - RCTTypeSafety 870 | - React-Core 871 | - React-cxxreact 872 | - React-debug 873 | - React-Fabric 874 | - React-featureflags 875 | - React-graphics 876 | - React-jsi 877 | - React-jsiexecutor 878 | - React-logger 879 | - React-rendererdebug 880 | - React-runtimescheduler 881 | - React-utils 882 | - ReactCodegen 883 | - ReactCommon/turbomodule/core 884 | - Yoga 885 | - React-FabricComponents/components/iostextinput (0.75.2): 886 | - DoubleConversion 887 | - fmt (= 9.1.0) 888 | - glog 889 | - hermes-engine 890 | - RCT-Folly/Fabric (= 2024.01.01.00) 891 | - RCTRequired 892 | - RCTTypeSafety 893 | - React-Core 894 | - React-cxxreact 895 | - React-debug 896 | - React-Fabric 897 | - React-featureflags 898 | - React-graphics 899 | - React-jsi 900 | - React-jsiexecutor 901 | - React-logger 902 | - React-rendererdebug 903 | - React-runtimescheduler 904 | - React-utils 905 | - ReactCodegen 906 | - ReactCommon/turbomodule/core 907 | - Yoga 908 | - React-FabricComponents/components/modal (0.75.2): 909 | - DoubleConversion 910 | - fmt (= 9.1.0) 911 | - glog 912 | - hermes-engine 913 | - RCT-Folly/Fabric (= 2024.01.01.00) 914 | - RCTRequired 915 | - RCTTypeSafety 916 | - React-Core 917 | - React-cxxreact 918 | - React-debug 919 | - React-Fabric 920 | - React-featureflags 921 | - React-graphics 922 | - React-jsi 923 | - React-jsiexecutor 924 | - React-logger 925 | - React-rendererdebug 926 | - React-runtimescheduler 927 | - React-utils 928 | - ReactCodegen 929 | - ReactCommon/turbomodule/core 930 | - Yoga 931 | - React-FabricComponents/components/rncore (0.75.2): 932 | - DoubleConversion 933 | - fmt (= 9.1.0) 934 | - glog 935 | - hermes-engine 936 | - RCT-Folly/Fabric (= 2024.01.01.00) 937 | - RCTRequired 938 | - RCTTypeSafety 939 | - React-Core 940 | - React-cxxreact 941 | - React-debug 942 | - React-Fabric 943 | - React-featureflags 944 | - React-graphics 945 | - React-jsi 946 | - React-jsiexecutor 947 | - React-logger 948 | - React-rendererdebug 949 | - React-runtimescheduler 950 | - React-utils 951 | - ReactCodegen 952 | - ReactCommon/turbomodule/core 953 | - Yoga 954 | - React-FabricComponents/components/safeareaview (0.75.2): 955 | - DoubleConversion 956 | - fmt (= 9.1.0) 957 | - glog 958 | - hermes-engine 959 | - RCT-Folly/Fabric (= 2024.01.01.00) 960 | - RCTRequired 961 | - RCTTypeSafety 962 | - React-Core 963 | - React-cxxreact 964 | - React-debug 965 | - React-Fabric 966 | - React-featureflags 967 | - React-graphics 968 | - React-jsi 969 | - React-jsiexecutor 970 | - React-logger 971 | - React-rendererdebug 972 | - React-runtimescheduler 973 | - React-utils 974 | - ReactCodegen 975 | - ReactCommon/turbomodule/core 976 | - Yoga 977 | - React-FabricComponents/components/scrollview (0.75.2): 978 | - DoubleConversion 979 | - fmt (= 9.1.0) 980 | - glog 981 | - hermes-engine 982 | - RCT-Folly/Fabric (= 2024.01.01.00) 983 | - RCTRequired 984 | - RCTTypeSafety 985 | - React-Core 986 | - React-cxxreact 987 | - React-debug 988 | - React-Fabric 989 | - React-featureflags 990 | - React-graphics 991 | - React-jsi 992 | - React-jsiexecutor 993 | - React-logger 994 | - React-rendererdebug 995 | - React-runtimescheduler 996 | - React-utils 997 | - ReactCodegen 998 | - ReactCommon/turbomodule/core 999 | - Yoga 1000 | - React-FabricComponents/components/text (0.75.2): 1001 | - DoubleConversion 1002 | - fmt (= 9.1.0) 1003 | - glog 1004 | - hermes-engine 1005 | - RCT-Folly/Fabric (= 2024.01.01.00) 1006 | - RCTRequired 1007 | - RCTTypeSafety 1008 | - React-Core 1009 | - React-cxxreact 1010 | - React-debug 1011 | - React-Fabric 1012 | - React-featureflags 1013 | - React-graphics 1014 | - React-jsi 1015 | - React-jsiexecutor 1016 | - React-logger 1017 | - React-rendererdebug 1018 | - React-runtimescheduler 1019 | - React-utils 1020 | - ReactCodegen 1021 | - ReactCommon/turbomodule/core 1022 | - Yoga 1023 | - React-FabricComponents/components/textinput (0.75.2): 1024 | - DoubleConversion 1025 | - fmt (= 9.1.0) 1026 | - glog 1027 | - hermes-engine 1028 | - RCT-Folly/Fabric (= 2024.01.01.00) 1029 | - RCTRequired 1030 | - RCTTypeSafety 1031 | - React-Core 1032 | - React-cxxreact 1033 | - React-debug 1034 | - React-Fabric 1035 | - React-featureflags 1036 | - React-graphics 1037 | - React-jsi 1038 | - React-jsiexecutor 1039 | - React-logger 1040 | - React-rendererdebug 1041 | - React-runtimescheduler 1042 | - React-utils 1043 | - ReactCodegen 1044 | - ReactCommon/turbomodule/core 1045 | - Yoga 1046 | - React-FabricComponents/components/unimplementedview (0.75.2): 1047 | - DoubleConversion 1048 | - fmt (= 9.1.0) 1049 | - glog 1050 | - hermes-engine 1051 | - RCT-Folly/Fabric (= 2024.01.01.00) 1052 | - RCTRequired 1053 | - RCTTypeSafety 1054 | - React-Core 1055 | - React-cxxreact 1056 | - React-debug 1057 | - React-Fabric 1058 | - React-featureflags 1059 | - React-graphics 1060 | - React-jsi 1061 | - React-jsiexecutor 1062 | - React-logger 1063 | - React-rendererdebug 1064 | - React-runtimescheduler 1065 | - React-utils 1066 | - ReactCodegen 1067 | - ReactCommon/turbomodule/core 1068 | - Yoga 1069 | - React-FabricComponents/textlayoutmanager (0.75.2): 1070 | - DoubleConversion 1071 | - fmt (= 9.1.0) 1072 | - glog 1073 | - hermes-engine 1074 | - RCT-Folly/Fabric (= 2024.01.01.00) 1075 | - RCTRequired 1076 | - RCTTypeSafety 1077 | - React-Core 1078 | - React-cxxreact 1079 | - React-debug 1080 | - React-Fabric 1081 | - React-featureflags 1082 | - React-graphics 1083 | - React-jsi 1084 | - React-jsiexecutor 1085 | - React-logger 1086 | - React-rendererdebug 1087 | - React-runtimescheduler 1088 | - React-utils 1089 | - ReactCodegen 1090 | - ReactCommon/turbomodule/core 1091 | - Yoga 1092 | - React-FabricImage (0.75.2): 1093 | - DoubleConversion 1094 | - fmt (= 9.1.0) 1095 | - glog 1096 | - hermes-engine 1097 | - RCT-Folly/Fabric (= 2024.01.01.00) 1098 | - RCTRequired (= 0.75.2) 1099 | - RCTTypeSafety (= 0.75.2) 1100 | - React-Fabric 1101 | - React-graphics 1102 | - React-ImageManager 1103 | - React-jsi 1104 | - React-jsiexecutor (= 0.75.2) 1105 | - React-logger 1106 | - React-rendererdebug 1107 | - React-utils 1108 | - ReactCommon 1109 | - Yoga 1110 | - React-featureflags (0.75.2) 1111 | - React-featureflagsnativemodule (0.75.2): 1112 | - DoubleConversion 1113 | - glog 1114 | - hermes-engine 1115 | - RCT-Folly (= 2024.01.01.00) 1116 | - RCTRequired 1117 | - RCTTypeSafety 1118 | - React-Core 1119 | - React-debug 1120 | - React-Fabric 1121 | - React-featureflags 1122 | - React-graphics 1123 | - React-ImageManager 1124 | - React-NativeModulesApple 1125 | - React-RCTFabric 1126 | - React-rendererdebug 1127 | - React-utils 1128 | - ReactCodegen 1129 | - ReactCommon/turbomodule/bridging 1130 | - ReactCommon/turbomodule/core 1131 | - Yoga 1132 | - React-graphics (0.75.2): 1133 | - DoubleConversion 1134 | - fmt (= 9.1.0) 1135 | - glog 1136 | - RCT-Folly/Fabric (= 2024.01.01.00) 1137 | - React-jsi 1138 | - React-jsiexecutor 1139 | - React-utils 1140 | - React-hermes (0.75.2): 1141 | - DoubleConversion 1142 | - fmt (= 9.1.0) 1143 | - glog 1144 | - hermes-engine 1145 | - RCT-Folly (= 2024.01.01.00) 1146 | - React-cxxreact (= 0.75.2) 1147 | - React-jsi 1148 | - React-jsiexecutor (= 0.75.2) 1149 | - React-jsinspector 1150 | - React-perflogger (= 0.75.2) 1151 | - React-runtimeexecutor 1152 | - React-idlecallbacksnativemodule (0.75.2): 1153 | - DoubleConversion 1154 | - glog 1155 | - hermes-engine 1156 | - RCT-Folly (= 2024.01.01.00) 1157 | - RCTRequired 1158 | - RCTTypeSafety 1159 | - React-Core 1160 | - React-debug 1161 | - React-Fabric 1162 | - React-featureflags 1163 | - React-graphics 1164 | - React-ImageManager 1165 | - React-NativeModulesApple 1166 | - React-RCTFabric 1167 | - React-rendererdebug 1168 | - React-runtimescheduler 1169 | - React-utils 1170 | - ReactCodegen 1171 | - ReactCommon/turbomodule/bridging 1172 | - ReactCommon/turbomodule/core 1173 | - Yoga 1174 | - React-ImageManager (0.75.2): 1175 | - glog 1176 | - RCT-Folly/Fabric 1177 | - React-Core/Default 1178 | - React-debug 1179 | - React-Fabric 1180 | - React-graphics 1181 | - React-rendererdebug 1182 | - React-utils 1183 | - React-jserrorhandler (0.75.2): 1184 | - RCT-Folly/Fabric (= 2024.01.01.00) 1185 | - React-debug 1186 | - React-jsi 1187 | - React-jsi (0.75.2): 1188 | - boost 1189 | - DoubleConversion 1190 | - fmt (= 9.1.0) 1191 | - glog 1192 | - hermes-engine 1193 | - RCT-Folly (= 2024.01.01.00) 1194 | - React-jsiexecutor (0.75.2): 1195 | - DoubleConversion 1196 | - fmt (= 9.1.0) 1197 | - glog 1198 | - hermes-engine 1199 | - RCT-Folly (= 2024.01.01.00) 1200 | - React-cxxreact (= 0.75.2) 1201 | - React-jsi (= 0.75.2) 1202 | - React-jsinspector 1203 | - React-perflogger (= 0.75.2) 1204 | - React-jsinspector (0.75.2): 1205 | - DoubleConversion 1206 | - glog 1207 | - hermes-engine 1208 | - RCT-Folly (= 2024.01.01.00) 1209 | - React-featureflags 1210 | - React-jsi 1211 | - React-runtimeexecutor (= 0.75.2) 1212 | - React-jsitracing (0.75.2): 1213 | - React-jsi 1214 | - React-logger (0.75.2): 1215 | - glog 1216 | - React-Mapbuffer (0.75.2): 1217 | - glog 1218 | - React-debug 1219 | - React-microtasksnativemodule (0.75.2): 1220 | - DoubleConversion 1221 | - glog 1222 | - hermes-engine 1223 | - RCT-Folly (= 2024.01.01.00) 1224 | - RCTRequired 1225 | - RCTTypeSafety 1226 | - React-Core 1227 | - React-debug 1228 | - React-Fabric 1229 | - React-featureflags 1230 | - React-graphics 1231 | - React-ImageManager 1232 | - React-NativeModulesApple 1233 | - React-RCTFabric 1234 | - React-rendererdebug 1235 | - React-utils 1236 | - ReactCodegen 1237 | - ReactCommon/turbomodule/bridging 1238 | - ReactCommon/turbomodule/core 1239 | - Yoga 1240 | - React-nativeconfig (0.75.2) 1241 | - React-NativeModulesApple (0.75.2): 1242 | - glog 1243 | - hermes-engine 1244 | - React-callinvoker 1245 | - React-Core 1246 | - React-cxxreact 1247 | - React-jsi 1248 | - React-jsinspector 1249 | - React-runtimeexecutor 1250 | - ReactCommon/turbomodule/bridging 1251 | - ReactCommon/turbomodule/core 1252 | - React-perflogger (0.75.2) 1253 | - React-performancetimeline (0.75.2): 1254 | - RCT-Folly (= 2024.01.01.00) 1255 | - React-cxxreact 1256 | - React-RCTActionSheet (0.75.2): 1257 | - React-Core/RCTActionSheetHeaders (= 0.75.2) 1258 | - React-RCTAnimation (0.75.2): 1259 | - RCT-Folly (= 2024.01.01.00) 1260 | - RCTTypeSafety 1261 | - React-Core/RCTAnimationHeaders 1262 | - React-jsi 1263 | - React-NativeModulesApple 1264 | - ReactCodegen 1265 | - ReactCommon 1266 | - React-RCTAppDelegate (0.75.2): 1267 | - RCT-Folly (= 2024.01.01.00) 1268 | - RCTRequired 1269 | - RCTTypeSafety 1270 | - React-Core 1271 | - React-CoreModules 1272 | - React-debug 1273 | - React-defaultsnativemodule 1274 | - React-Fabric 1275 | - React-featureflags 1276 | - React-graphics 1277 | - React-hermes 1278 | - React-nativeconfig 1279 | - React-NativeModulesApple 1280 | - React-RCTFabric 1281 | - React-RCTImage 1282 | - React-RCTNetwork 1283 | - React-rendererdebug 1284 | - React-RuntimeApple 1285 | - React-RuntimeCore 1286 | - React-RuntimeHermes 1287 | - React-runtimescheduler 1288 | - React-utils 1289 | - ReactCodegen 1290 | - ReactCommon 1291 | - React-RCTBlob (0.75.2): 1292 | - DoubleConversion 1293 | - fmt (= 9.1.0) 1294 | - hermes-engine 1295 | - RCT-Folly (= 2024.01.01.00) 1296 | - React-Core/RCTBlobHeaders 1297 | - React-Core/RCTWebSocket 1298 | - React-jsi 1299 | - React-jsinspector 1300 | - React-NativeModulesApple 1301 | - React-RCTNetwork 1302 | - ReactCodegen 1303 | - ReactCommon 1304 | - React-RCTFabric (0.75.2): 1305 | - glog 1306 | - hermes-engine 1307 | - RCT-Folly/Fabric (= 2024.01.01.00) 1308 | - React-Core 1309 | - React-debug 1310 | - React-Fabric 1311 | - React-FabricComponents 1312 | - React-FabricImage 1313 | - React-featureflags 1314 | - React-graphics 1315 | - React-ImageManager 1316 | - React-jsi 1317 | - React-jsinspector 1318 | - React-nativeconfig 1319 | - React-performancetimeline 1320 | - React-RCTImage 1321 | - React-RCTText 1322 | - React-rendererconsistency 1323 | - React-rendererdebug 1324 | - React-runtimescheduler 1325 | - React-utils 1326 | - Yoga 1327 | - React-RCTImage (0.75.2): 1328 | - RCT-Folly (= 2024.01.01.00) 1329 | - RCTTypeSafety 1330 | - React-Core/RCTImageHeaders 1331 | - React-jsi 1332 | - React-NativeModulesApple 1333 | - React-RCTNetwork 1334 | - ReactCodegen 1335 | - ReactCommon 1336 | - React-RCTLinking (0.75.2): 1337 | - React-Core/RCTLinkingHeaders (= 0.75.2) 1338 | - React-jsi (= 0.75.2) 1339 | - React-NativeModulesApple 1340 | - ReactCodegen 1341 | - ReactCommon 1342 | - ReactCommon/turbomodule/core (= 0.75.2) 1343 | - React-RCTNetwork (0.75.2): 1344 | - RCT-Folly (= 2024.01.01.00) 1345 | - RCTTypeSafety 1346 | - React-Core/RCTNetworkHeaders 1347 | - React-jsi 1348 | - React-NativeModulesApple 1349 | - ReactCodegen 1350 | - ReactCommon 1351 | - React-RCTSettings (0.75.2): 1352 | - RCT-Folly (= 2024.01.01.00) 1353 | - RCTTypeSafety 1354 | - React-Core/RCTSettingsHeaders 1355 | - React-jsi 1356 | - React-NativeModulesApple 1357 | - ReactCodegen 1358 | - ReactCommon 1359 | - React-RCTText (0.75.2): 1360 | - React-Core/RCTTextHeaders (= 0.75.2) 1361 | - Yoga 1362 | - React-RCTVibration (0.75.2): 1363 | - RCT-Folly (= 2024.01.01.00) 1364 | - React-Core/RCTVibrationHeaders 1365 | - React-jsi 1366 | - React-NativeModulesApple 1367 | - ReactCodegen 1368 | - ReactCommon 1369 | - React-rendererconsistency (0.75.2) 1370 | - React-rendererdebug (0.75.2): 1371 | - DoubleConversion 1372 | - fmt (= 9.1.0) 1373 | - RCT-Folly (= 2024.01.01.00) 1374 | - React-debug 1375 | - React-rncore (0.75.2) 1376 | - React-RuntimeApple (0.75.2): 1377 | - hermes-engine 1378 | - RCT-Folly/Fabric (= 2024.01.01.00) 1379 | - React-callinvoker 1380 | - React-Core/Default 1381 | - React-CoreModules 1382 | - React-cxxreact 1383 | - React-jserrorhandler 1384 | - React-jsi 1385 | - React-jsiexecutor 1386 | - React-jsinspector 1387 | - React-Mapbuffer 1388 | - React-NativeModulesApple 1389 | - React-RCTFabric 1390 | - React-RuntimeCore 1391 | - React-runtimeexecutor 1392 | - React-RuntimeHermes 1393 | - React-runtimescheduler 1394 | - React-utils 1395 | - React-RuntimeCore (0.75.2): 1396 | - glog 1397 | - hermes-engine 1398 | - RCT-Folly/Fabric (= 2024.01.01.00) 1399 | - React-cxxreact 1400 | - React-featureflags 1401 | - React-jserrorhandler 1402 | - React-jsi 1403 | - React-jsiexecutor 1404 | - React-jsinspector 1405 | - React-runtimeexecutor 1406 | - React-runtimescheduler 1407 | - React-utils 1408 | - React-runtimeexecutor (0.75.2): 1409 | - React-jsi (= 0.75.2) 1410 | - React-RuntimeHermes (0.75.2): 1411 | - hermes-engine 1412 | - RCT-Folly/Fabric (= 2024.01.01.00) 1413 | - React-featureflags 1414 | - React-hermes 1415 | - React-jsi 1416 | - React-jsinspector 1417 | - React-jsitracing 1418 | - React-nativeconfig 1419 | - React-RuntimeCore 1420 | - React-utils 1421 | - React-runtimescheduler (0.75.2): 1422 | - glog 1423 | - hermes-engine 1424 | - RCT-Folly (= 2024.01.01.00) 1425 | - React-callinvoker 1426 | - React-cxxreact 1427 | - React-debug 1428 | - React-featureflags 1429 | - React-jsi 1430 | - React-rendererconsistency 1431 | - React-rendererdebug 1432 | - React-runtimeexecutor 1433 | - React-utils 1434 | - React-utils (0.75.2): 1435 | - glog 1436 | - hermes-engine 1437 | - RCT-Folly (= 2024.01.01.00) 1438 | - React-debug 1439 | - React-jsi (= 0.75.2) 1440 | - ReactCodegen (0.75.2): 1441 | - DoubleConversion 1442 | - glog 1443 | - hermes-engine 1444 | - RCT-Folly 1445 | - RCTRequired 1446 | - RCTTypeSafety 1447 | - React-Core 1448 | - React-debug 1449 | - React-Fabric 1450 | - React-FabricImage 1451 | - React-featureflags 1452 | - React-graphics 1453 | - React-jsi 1454 | - React-jsiexecutor 1455 | - React-NativeModulesApple 1456 | - React-rendererdebug 1457 | - React-utils 1458 | - ReactCommon/turbomodule/bridging 1459 | - ReactCommon/turbomodule/core 1460 | - ReactCommon (0.75.2): 1461 | - ReactCommon/turbomodule (= 0.75.2) 1462 | - ReactCommon/turbomodule (0.75.2): 1463 | - DoubleConversion 1464 | - fmt (= 9.1.0) 1465 | - glog 1466 | - hermes-engine 1467 | - RCT-Folly (= 2024.01.01.00) 1468 | - React-callinvoker (= 0.75.2) 1469 | - React-cxxreact (= 0.75.2) 1470 | - React-jsi (= 0.75.2) 1471 | - React-logger (= 0.75.2) 1472 | - React-perflogger (= 0.75.2) 1473 | - ReactCommon/turbomodule/bridging (= 0.75.2) 1474 | - ReactCommon/turbomodule/core (= 0.75.2) 1475 | - ReactCommon/turbomodule/bridging (0.75.2): 1476 | - DoubleConversion 1477 | - fmt (= 9.1.0) 1478 | - glog 1479 | - hermes-engine 1480 | - RCT-Folly (= 2024.01.01.00) 1481 | - React-callinvoker (= 0.75.2) 1482 | - React-cxxreact (= 0.75.2) 1483 | - React-jsi (= 0.75.2) 1484 | - React-logger (= 0.75.2) 1485 | - React-perflogger (= 0.75.2) 1486 | - ReactCommon/turbomodule/core (0.75.2): 1487 | - DoubleConversion 1488 | - fmt (= 9.1.0) 1489 | - glog 1490 | - hermes-engine 1491 | - RCT-Folly (= 2024.01.01.00) 1492 | - React-callinvoker (= 0.75.2) 1493 | - React-cxxreact (= 0.75.2) 1494 | - React-debug (= 0.75.2) 1495 | - React-featureflags (= 0.75.2) 1496 | - React-jsi (= 0.75.2) 1497 | - React-logger (= 0.75.2) 1498 | - React-perflogger (= 0.75.2) 1499 | - React-utils (= 0.75.2) 1500 | - SocketRocket (0.7.0) 1501 | - Yoga (0.0.0) 1502 | 1503 | DEPENDENCIES: 1504 | - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) 1505 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) 1506 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) 1507 | - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) 1508 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) 1509 | - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) 1510 | - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) 1511 | - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) 1512 | - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) 1513 | - RCTRequired (from `../node_modules/react-native/Libraries/Required`) 1514 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) 1515 | - React (from `../node_modules/react-native/`) 1516 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) 1517 | - React-Core (from `../node_modules/react-native/`) 1518 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`) 1519 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) 1520 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) 1521 | - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) 1522 | - React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) 1523 | - React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`) 1524 | - React-Fabric (from `../node_modules/react-native/ReactCommon`) 1525 | - React-FabricComponents (from `../node_modules/react-native/ReactCommon`) 1526 | - React-FabricImage (from `../node_modules/react-native/ReactCommon`) 1527 | - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) 1528 | - React-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) 1529 | - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) 1530 | - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) 1531 | - React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) 1532 | - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) 1533 | - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) 1534 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) 1535 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) 1536 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) 1537 | - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) 1538 | - React-logger (from `../node_modules/react-native/ReactCommon/logger`) 1539 | - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) 1540 | - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) 1541 | - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) 1542 | - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) 1543 | - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) 1544 | - React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`) 1545 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) 1546 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) 1547 | - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) 1548 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) 1549 | - React-RCTFabric (from `../node_modules/react-native/React`) 1550 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) 1551 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) 1552 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) 1553 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) 1554 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`) 1555 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) 1556 | - React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) 1557 | - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) 1558 | - React-rncore (from `../node_modules/react-native/ReactCommon`) 1559 | - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) 1560 | - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) 1561 | - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) 1562 | - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) 1563 | - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) 1564 | - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) 1565 | - ReactCodegen (from `build/generated/ios`) 1566 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) 1567 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) 1568 | 1569 | SPEC REPOS: 1570 | trunk: 1571 | - SocketRocket 1572 | 1573 | EXTERNAL SOURCES: 1574 | boost: 1575 | :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" 1576 | DoubleConversion: 1577 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" 1578 | FBLazyVector: 1579 | :path: "../node_modules/react-native/Libraries/FBLazyVector" 1580 | fmt: 1581 | :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" 1582 | glog: 1583 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" 1584 | hermes-engine: 1585 | :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" 1586 | :tag: hermes-2024-08-15-RNv0.75.1-4b3bf912cc0f705b51b71ce1a5b8bd79b93a451b 1587 | RCT-Folly: 1588 | :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" 1589 | RCTDeprecation: 1590 | :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" 1591 | RCTRequired: 1592 | :path: "../node_modules/react-native/Libraries/Required" 1593 | RCTTypeSafety: 1594 | :path: "../node_modules/react-native/Libraries/TypeSafety" 1595 | React: 1596 | :path: "../node_modules/react-native/" 1597 | React-callinvoker: 1598 | :path: "../node_modules/react-native/ReactCommon/callinvoker" 1599 | React-Core: 1600 | :path: "../node_modules/react-native/" 1601 | React-CoreModules: 1602 | :path: "../node_modules/react-native/React/CoreModules" 1603 | React-cxxreact: 1604 | :path: "../node_modules/react-native/ReactCommon/cxxreact" 1605 | React-debug: 1606 | :path: "../node_modules/react-native/ReactCommon/react/debug" 1607 | React-defaultsnativemodule: 1608 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults" 1609 | React-domnativemodule: 1610 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom" 1611 | React-Fabric: 1612 | :path: "../node_modules/react-native/ReactCommon" 1613 | React-FabricComponents: 1614 | :path: "../node_modules/react-native/ReactCommon" 1615 | React-FabricImage: 1616 | :path: "../node_modules/react-native/ReactCommon" 1617 | React-featureflags: 1618 | :path: "../node_modules/react-native/ReactCommon/react/featureflags" 1619 | React-featureflagsnativemodule: 1620 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" 1621 | React-graphics: 1622 | :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" 1623 | React-hermes: 1624 | :path: "../node_modules/react-native/ReactCommon/hermes" 1625 | React-idlecallbacksnativemodule: 1626 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" 1627 | React-ImageManager: 1628 | :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" 1629 | React-jserrorhandler: 1630 | :path: "../node_modules/react-native/ReactCommon/jserrorhandler" 1631 | React-jsi: 1632 | :path: "../node_modules/react-native/ReactCommon/jsi" 1633 | React-jsiexecutor: 1634 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor" 1635 | React-jsinspector: 1636 | :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" 1637 | React-jsitracing: 1638 | :path: "../node_modules/react-native/ReactCommon/hermes/executor/" 1639 | React-logger: 1640 | :path: "../node_modules/react-native/ReactCommon/logger" 1641 | React-Mapbuffer: 1642 | :path: "../node_modules/react-native/ReactCommon" 1643 | React-microtasksnativemodule: 1644 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" 1645 | React-nativeconfig: 1646 | :path: "../node_modules/react-native/ReactCommon" 1647 | React-NativeModulesApple: 1648 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" 1649 | React-perflogger: 1650 | :path: "../node_modules/react-native/ReactCommon/reactperflogger" 1651 | React-performancetimeline: 1652 | :path: "../node_modules/react-native/ReactCommon/react/performance/timeline" 1653 | React-RCTActionSheet: 1654 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS" 1655 | React-RCTAnimation: 1656 | :path: "../node_modules/react-native/Libraries/NativeAnimation" 1657 | React-RCTAppDelegate: 1658 | :path: "../node_modules/react-native/Libraries/AppDelegate" 1659 | React-RCTBlob: 1660 | :path: "../node_modules/react-native/Libraries/Blob" 1661 | React-RCTFabric: 1662 | :path: "../node_modules/react-native/React" 1663 | React-RCTImage: 1664 | :path: "../node_modules/react-native/Libraries/Image" 1665 | React-RCTLinking: 1666 | :path: "../node_modules/react-native/Libraries/LinkingIOS" 1667 | React-RCTNetwork: 1668 | :path: "../node_modules/react-native/Libraries/Network" 1669 | React-RCTSettings: 1670 | :path: "../node_modules/react-native/Libraries/Settings" 1671 | React-RCTText: 1672 | :path: "../node_modules/react-native/Libraries/Text" 1673 | React-RCTVibration: 1674 | :path: "../node_modules/react-native/Libraries/Vibration" 1675 | React-rendererconsistency: 1676 | :path: "../node_modules/react-native/ReactCommon/react/renderer/consistency" 1677 | React-rendererdebug: 1678 | :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" 1679 | React-rncore: 1680 | :path: "../node_modules/react-native/ReactCommon" 1681 | React-RuntimeApple: 1682 | :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" 1683 | React-RuntimeCore: 1684 | :path: "../node_modules/react-native/ReactCommon/react/runtime" 1685 | React-runtimeexecutor: 1686 | :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" 1687 | React-RuntimeHermes: 1688 | :path: "../node_modules/react-native/ReactCommon/react/runtime" 1689 | React-runtimescheduler: 1690 | :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" 1691 | React-utils: 1692 | :path: "../node_modules/react-native/ReactCommon/react/utils" 1693 | ReactCodegen: 1694 | :path: build/generated/ios 1695 | ReactCommon: 1696 | :path: "../node_modules/react-native/ReactCommon" 1697 | Yoga: 1698 | :path: "../node_modules/react-native/ReactCommon/yoga" 1699 | 1700 | SPEC CHECKSUMS: 1701 | boost: 4cb898d0bf20404aab1850c656dcea009429d6c1 1702 | DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 1703 | FBLazyVector: 38bb611218305c3bc61803e287b8a81c6f63b619 1704 | fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 1705 | glog: 69ef571f3de08433d766d614c73a9838a06bf7eb 1706 | hermes-engine: 3b6e0717ca847e2fc90a201e59db36caf04dee88 1707 | RCT-Folly: 4464f4d875961fce86008d45f4ecf6cef6de0740 1708 | RCTDeprecation: 34cbf122b623037ea9facad2e92e53434c5c7422 1709 | RCTRequired: 24c446d7bcd0f517d516b6265d8df04dc3eb1219 1710 | RCTTypeSafety: ef5e91bd791abd3a99b2c75fd565791102a66352 1711 | React: 643f06bc294806d2db2526b424fdf759e107f514 1712 | React-callinvoker: 34d1fa0c340104f324e2521f546196beb44dfad2 1713 | React-Core: facd883836d8d1cc1949d2053c58eab5fb22eb75 1714 | React-CoreModules: f92a2cb11d22f6066823ca547c61e900325dfe44 1715 | React-cxxreact: f5595a4cbfe5a4e9d401dffa2c1c78bbbbbe75e4 1716 | React-debug: 4a91c177b5b2efcc546fb50bc2f676f3f589efab 1717 | React-defaultsnativemodule: bb94c3db425b01c760f41a253de8536b3f5497f0 1718 | React-domnativemodule: 6c581fd39812cafb024171e091c00905b2c3a3e2 1719 | React-Fabric: a33cc1fdc62a3085774783bb30970531589d2028 1720 | React-FabricComponents: 98de5f94cbd35d407f4fc78855298b562d8289cb 1721 | React-FabricImage: 0ce8fd83844d9edef5825116d38f0e208b9ad786 1722 | React-featureflags: 37a78859ad71db758e2efdcbdb7384afefa8701e 1723 | React-featureflagsnativemodule: 52b46e161a151b4653cf1762285e8e899d534e3f 1724 | React-graphics: c16f1bab97a5d473831a79360d84300e93a614e5 1725 | React-hermes: 7801f8c0e12f326524b461dc368d3e74f3d2a385 1726 | React-idlecallbacksnativemodule: 58de2ac968ee80947d19dc8fe20def607e5c2de8 1727 | React-ImageManager: 98a1e5b0b05528dde47ebcd953d916ac66d46c09 1728 | React-jserrorhandler: 08f1c3465a71a6549c27ad82809ce145ad52d4f1 1729 | React-jsi: 161428ab2c706d5fcd9878d260ff1513fdb356ab 1730 | React-jsiexecutor: abfdc7526151c6755f836235bbaa53b267a0803c 1731 | React-jsinspector: f0786053a1a258a4d8dde859d1a820c26ee686f0 1732 | React-jsitracing: 52b849a77d02e2dc262a3031454c23be8dabb4d9 1733 | React-logger: 8db32983d75dc2ad54f278f344ccb9b256e694fc 1734 | React-Mapbuffer: 1c08607305558666fd16678b85ef135e455d5c96 1735 | React-microtasksnativemodule: 87b8de96f937faefece8afd2cb3a518321b2ef99 1736 | React-nativeconfig: 57781b79e11d5af7573e6f77cbf1143b71802a6d 1737 | React-NativeModulesApple: 7ff2e2cfb2e5fa5bdedcecf28ce37e696c6ef1e1 1738 | React-perflogger: 8a360ccf603de6ddbe9ff8f54383146d26e6c936 1739 | React-performancetimeline: 3cfec915adcb3653a5a633b41e711903844c35d8 1740 | React-RCTActionSheet: 1c0e26a88eec41215089cf4436e38188cfe9f01a 1741 | React-RCTAnimation: d87207841b1e2ae1389e684262ea8c73c887cb04 1742 | React-RCTAppDelegate: 4ec7824c0cc9cc4b146ca8ee0fd81b10c316a440 1743 | React-RCTBlob: 79b42cb7db55f34079297687a480dbcf37f023f6 1744 | React-RCTFabric: 1dd1661db93716f8cb116e451bd9c211a8d15716 1745 | React-RCTImage: 0c10a75de59f7384a2a55545d5f36fe783e6ecda 1746 | React-RCTLinking: bf08f4f655bf777af292b8d97449072c8bb196ca 1747 | React-RCTNetwork: 1b690846b40fc5685af58e088720657db6814637 1748 | React-RCTSettings: 097e420926dd44153fb25174835b572aded224d6 1749 | React-RCTText: d8fe2ae9f95b2ccd03b2f534286e938254791992 1750 | React-RCTVibration: 976466dba32c0981a836e45ce38bcd4c8d6d924e 1751 | React-rendererconsistency: ee0d6f1b4420e1ad5bb01c02170e7ecbd278e307 1752 | React-rendererdebug: 7fbf02f30d1e0bb0d96d65cf2548219cb53b29b6 1753 | React-rncore: 7ffc5be03adbf0a5cbf1b654483f487a899cff08 1754 | React-RuntimeApple: e623f002e1871de30a443291171d3f2fb134a6ec 1755 | React-RuntimeCore: a67357d4f073b1dbe6fbefc5273072027f201e1c 1756 | React-runtimeexecutor: 5bb52479abf8081086afb0397dc33dc97202a439 1757 | React-RuntimeHermes: 860cf64708a12a2fa62366fe51fe000121fa031b 1758 | React-runtimescheduler: fff88d51ad2c8815fc75930dbac224d680593e6b 1759 | React-utils: 81a715d9c0a2a49047e77a86f3a2247408540deb 1760 | ReactCodegen: 60973d382704c793c605b9be0fc7f31cb279442f 1761 | ReactCommon: 6ef348087d250257c44c0204461c03f036650e9b 1762 | SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d 1763 | Yoga: a1d7895431387402a674fd0d1c04ec85e87909b8 1764 | 1765 | PODFILE CHECKSUM: 3715201468b0931f082b9015c54218c808097830 1766 | 1767 | COCOAPODS: 1.15.2 1768 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 54; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 00E356F31AD99517003FC87E /* SwipeableListExampleAppTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* SwipeableListExampleAppTests.m */; }; 11 | 0C80B921A6F3F58F76C31292 /* libPods-SwipeableListExampleApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-SwipeableListExampleApp.a */; }; 12 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 13 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 14 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 15 | 20DC846EE388FA563DCBE458 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 11BE147C1BFAD7EAC214669C /* PrivacyInfo.xcprivacy */; }; 16 | 7699B88040F8A987B510C191 /* libPods-SwipeableListExampleApp-SwipeableListExampleAppTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-SwipeableListExampleApp-SwipeableListExampleAppTests.a */; }; 17 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXContainerItemProxy section */ 21 | 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { 22 | isa = PBXContainerItemProxy; 23 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; 24 | proxyType = 1; 25 | remoteGlobalIDString = 13B07F861A680F5B00A75B9A; 26 | remoteInfo = SwipeableListExampleApp; 27 | }; 28 | /* End PBXContainerItemProxy section */ 29 | 30 | /* Begin PBXFileReference section */ 31 | 00E356EE1AD99517003FC87E /* SwipeableListExampleAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwipeableListExampleAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 32 | 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 33 | 00E356F21AD99517003FC87E /* SwipeableListExampleAppTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SwipeableListExampleAppTests.m; sourceTree = ""; }; 34 | 11BE147C1BFAD7EAC214669C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = SwipeableListExampleApp/PrivacyInfo.xcprivacy; sourceTree = ""; }; 35 | 13B07F961A680F5B00A75B9A /* SwipeableListExampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SwipeableListExampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 36 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = SwipeableListExampleApp/AppDelegate.h; sourceTree = ""; }; 37 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = SwipeableListExampleApp/AppDelegate.mm; sourceTree = ""; }; 38 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = SwipeableListExampleApp/Images.xcassets; sourceTree = ""; }; 39 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = SwipeableListExampleApp/Info.plist; sourceTree = ""; }; 40 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = SwipeableListExampleApp/main.m; sourceTree = ""; }; 41 | 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = SwipeableListExampleApp/PrivacyInfo.xcprivacy; sourceTree = ""; }; 42 | 19F6CBCC0A4E27FBF8BF4A61 /* libPods-SwipeableListExampleApp-SwipeableListExampleAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SwipeableListExampleApp-SwipeableListExampleAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 43 | 3B4392A12AC88292D35C810B /* Pods-SwipeableListExampleApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwipeableListExampleApp.debug.xcconfig"; path = "Target Support Files/Pods-SwipeableListExampleApp/Pods-SwipeableListExampleApp.debug.xcconfig"; sourceTree = ""; }; 44 | 5709B34CF0A7D63546082F79 /* Pods-SwipeableListExampleApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwipeableListExampleApp.release.xcconfig"; path = "Target Support Files/Pods-SwipeableListExampleApp/Pods-SwipeableListExampleApp.release.xcconfig"; sourceTree = ""; }; 45 | 5B7EB9410499542E8C5724F5 /* Pods-SwipeableListExampleApp-SwipeableListExampleAppTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwipeableListExampleApp-SwipeableListExampleAppTests.debug.xcconfig"; path = "Target Support Files/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests.debug.xcconfig"; sourceTree = ""; }; 46 | 5DCACB8F33CDC322A6C60F78 /* libPods-SwipeableListExampleApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SwipeableListExampleApp.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 47 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = SwipeableListExampleApp/LaunchScreen.storyboard; sourceTree = ""; }; 48 | 89C6BE57DB24E9ADA2F236DE /* Pods-SwipeableListExampleApp-SwipeableListExampleAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwipeableListExampleApp-SwipeableListExampleAppTests.release.xcconfig"; path = "Target Support Files/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests.release.xcconfig"; sourceTree = ""; }; 49 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; 50 | /* End PBXFileReference section */ 51 | 52 | /* Begin PBXFrameworksBuildPhase section */ 53 | 00E356EB1AD99517003FC87E /* Frameworks */ = { 54 | isa = PBXFrameworksBuildPhase; 55 | buildActionMask = 2147483647; 56 | files = ( 57 | 7699B88040F8A987B510C191 /* libPods-SwipeableListExampleApp-SwipeableListExampleAppTests.a in Frameworks */, 58 | ); 59 | runOnlyForDeploymentPostprocessing = 0; 60 | }; 61 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 62 | isa = PBXFrameworksBuildPhase; 63 | buildActionMask = 2147483647; 64 | files = ( 65 | 0C80B921A6F3F58F76C31292 /* libPods-SwipeableListExampleApp.a in Frameworks */, 66 | ); 67 | runOnlyForDeploymentPostprocessing = 0; 68 | }; 69 | /* End PBXFrameworksBuildPhase section */ 70 | 71 | /* Begin PBXGroup section */ 72 | 00E356EF1AD99517003FC87E /* SwipeableListExampleAppTests */ = { 73 | isa = PBXGroup; 74 | children = ( 75 | 00E356F21AD99517003FC87E /* SwipeableListExampleAppTests.m */, 76 | 00E356F01AD99517003FC87E /* Supporting Files */, 77 | ); 78 | path = SwipeableListExampleAppTests; 79 | sourceTree = ""; 80 | }; 81 | 00E356F01AD99517003FC87E /* Supporting Files */ = { 82 | isa = PBXGroup; 83 | children = ( 84 | 00E356F11AD99517003FC87E /* Info.plist */, 85 | ); 86 | name = "Supporting Files"; 87 | sourceTree = ""; 88 | }; 89 | 13B07FAE1A68108700A75B9A /* SwipeableListExampleApp */ = { 90 | isa = PBXGroup; 91 | children = ( 92 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 93 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */, 94 | 13B07FB51A68108700A75B9A /* Images.xcassets */, 95 | 13B07FB61A68108700A75B9A /* Info.plist */, 96 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 97 | 13B07FB71A68108700A75B9A /* main.m */, 98 | 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */, 99 | 11BE147C1BFAD7EAC214669C /* PrivacyInfo.xcprivacy */, 100 | ); 101 | name = SwipeableListExampleApp; 102 | sourceTree = ""; 103 | }; 104 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { 105 | isa = PBXGroup; 106 | children = ( 107 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */, 108 | 5DCACB8F33CDC322A6C60F78 /* libPods-SwipeableListExampleApp.a */, 109 | 19F6CBCC0A4E27FBF8BF4A61 /* libPods-SwipeableListExampleApp-SwipeableListExampleAppTests.a */, 110 | ); 111 | name = Frameworks; 112 | sourceTree = ""; 113 | }; 114 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 115 | isa = PBXGroup; 116 | children = ( 117 | ); 118 | name = Libraries; 119 | sourceTree = ""; 120 | }; 121 | 83CBB9F61A601CBA00E9B192 = { 122 | isa = PBXGroup; 123 | children = ( 124 | 13B07FAE1A68108700A75B9A /* SwipeableListExampleApp */, 125 | 832341AE1AAA6A7D00B99B32 /* Libraries */, 126 | 00E356EF1AD99517003FC87E /* SwipeableListExampleAppTests */, 127 | 83CBBA001A601CBA00E9B192 /* Products */, 128 | 2D16E6871FA4F8E400B85C8A /* Frameworks */, 129 | BBD78D7AC51CEA395F1C20DB /* Pods */, 130 | ); 131 | indentWidth = 2; 132 | sourceTree = ""; 133 | tabWidth = 2; 134 | usesTabs = 0; 135 | }; 136 | 83CBBA001A601CBA00E9B192 /* Products */ = { 137 | isa = PBXGroup; 138 | children = ( 139 | 13B07F961A680F5B00A75B9A /* SwipeableListExampleApp.app */, 140 | 00E356EE1AD99517003FC87E /* SwipeableListExampleAppTests.xctest */, 141 | ); 142 | name = Products; 143 | sourceTree = ""; 144 | }; 145 | BBD78D7AC51CEA395F1C20DB /* Pods */ = { 146 | isa = PBXGroup; 147 | children = ( 148 | 3B4392A12AC88292D35C810B /* Pods-SwipeableListExampleApp.debug.xcconfig */, 149 | 5709B34CF0A7D63546082F79 /* Pods-SwipeableListExampleApp.release.xcconfig */, 150 | 5B7EB9410499542E8C5724F5 /* Pods-SwipeableListExampleApp-SwipeableListExampleAppTests.debug.xcconfig */, 151 | 89C6BE57DB24E9ADA2F236DE /* Pods-SwipeableListExampleApp-SwipeableListExampleAppTests.release.xcconfig */, 152 | ); 153 | path = Pods; 154 | sourceTree = ""; 155 | }; 156 | /* End PBXGroup section */ 157 | 158 | /* Begin PBXNativeTarget section */ 159 | 00E356ED1AD99517003FC87E /* SwipeableListExampleAppTests */ = { 160 | isa = PBXNativeTarget; 161 | buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "SwipeableListExampleAppTests" */; 162 | buildPhases = ( 163 | A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, 164 | 00E356EA1AD99517003FC87E /* Sources */, 165 | 00E356EB1AD99517003FC87E /* Frameworks */, 166 | 00E356EC1AD99517003FC87E /* Resources */, 167 | C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, 168 | F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, 169 | ); 170 | buildRules = ( 171 | ); 172 | dependencies = ( 173 | 00E356F51AD99517003FC87E /* PBXTargetDependency */, 174 | ); 175 | name = SwipeableListExampleAppTests; 176 | productName = SwipeableListExampleAppTests; 177 | productReference = 00E356EE1AD99517003FC87E /* SwipeableListExampleAppTests.xctest */; 178 | productType = "com.apple.product-type.bundle.unit-test"; 179 | }; 180 | 13B07F861A680F5B00A75B9A /* SwipeableListExampleApp */ = { 181 | isa = PBXNativeTarget; 182 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "SwipeableListExampleApp" */; 183 | buildPhases = ( 184 | C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, 185 | 13B07F871A680F5B00A75B9A /* Sources */, 186 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, 187 | 13B07F8E1A680F5B00A75B9A /* Resources */, 188 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 189 | 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, 190 | E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, 191 | ); 192 | buildRules = ( 193 | ); 194 | dependencies = ( 195 | ); 196 | name = SwipeableListExampleApp; 197 | productName = SwipeableListExampleApp; 198 | productReference = 13B07F961A680F5B00A75B9A /* SwipeableListExampleApp.app */; 199 | productType = "com.apple.product-type.application"; 200 | }; 201 | /* End PBXNativeTarget section */ 202 | 203 | /* Begin PBXProject section */ 204 | 83CBB9F71A601CBA00E9B192 /* Project object */ = { 205 | isa = PBXProject; 206 | attributes = { 207 | LastUpgradeCheck = 1210; 208 | TargetAttributes = { 209 | 00E356ED1AD99517003FC87E = { 210 | CreatedOnToolsVersion = 6.2; 211 | TestTargetID = 13B07F861A680F5B00A75B9A; 212 | }; 213 | 13B07F861A680F5B00A75B9A = { 214 | LastSwiftMigration = 1120; 215 | }; 216 | }; 217 | }; 218 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "SwipeableListExampleApp" */; 219 | compatibilityVersion = "Xcode 12.0"; 220 | developmentRegion = en; 221 | hasScannedForEncodings = 0; 222 | knownRegions = ( 223 | en, 224 | Base, 225 | ); 226 | mainGroup = 83CBB9F61A601CBA00E9B192; 227 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 228 | projectDirPath = ""; 229 | projectRoot = ""; 230 | targets = ( 231 | 13B07F861A680F5B00A75B9A /* SwipeableListExampleApp */, 232 | 00E356ED1AD99517003FC87E /* SwipeableListExampleAppTests */, 233 | ); 234 | }; 235 | /* End PBXProject section */ 236 | 237 | /* Begin PBXResourcesBuildPhase section */ 238 | 00E356EC1AD99517003FC87E /* Resources */ = { 239 | isa = PBXResourcesBuildPhase; 240 | buildActionMask = 2147483647; 241 | files = ( 242 | ); 243 | runOnlyForDeploymentPostprocessing = 0; 244 | }; 245 | 13B07F8E1A680F5B00A75B9A /* Resources */ = { 246 | isa = PBXResourcesBuildPhase; 247 | buildActionMask = 2147483647; 248 | files = ( 249 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, 250 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 251 | 20DC846EE388FA563DCBE458 /* PrivacyInfo.xcprivacy in Resources */, 252 | ); 253 | runOnlyForDeploymentPostprocessing = 0; 254 | }; 255 | /* End PBXResourcesBuildPhase section */ 256 | 257 | /* Begin PBXShellScriptBuildPhase section */ 258 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { 259 | isa = PBXShellScriptBuildPhase; 260 | buildActionMask = 2147483647; 261 | files = ( 262 | ); 263 | inputPaths = ( 264 | "$(SRCROOT)/.xcode.env.local", 265 | "$(SRCROOT)/.xcode.env", 266 | ); 267 | name = "Bundle React Native code and images"; 268 | outputPaths = ( 269 | ); 270 | runOnlyForDeploymentPostprocessing = 0; 271 | shellPath = /bin/sh; 272 | shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; 273 | }; 274 | 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { 275 | isa = PBXShellScriptBuildPhase; 276 | buildActionMask = 2147483647; 277 | files = ( 278 | ); 279 | inputFileListPaths = ( 280 | "${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp/Pods-SwipeableListExampleApp-frameworks-${CONFIGURATION}-input-files.xcfilelist", 281 | ); 282 | name = "[CP] Embed Pods Frameworks"; 283 | outputFileListPaths = ( 284 | "${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp/Pods-SwipeableListExampleApp-frameworks-${CONFIGURATION}-output-files.xcfilelist", 285 | ); 286 | runOnlyForDeploymentPostprocessing = 0; 287 | shellPath = /bin/sh; 288 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp/Pods-SwipeableListExampleApp-frameworks.sh\"\n"; 289 | showEnvVarsInLog = 0; 290 | }; 291 | A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { 292 | isa = PBXShellScriptBuildPhase; 293 | buildActionMask = 2147483647; 294 | files = ( 295 | ); 296 | inputFileListPaths = ( 297 | ); 298 | inputPaths = ( 299 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 300 | "${PODS_ROOT}/Manifest.lock", 301 | ); 302 | name = "[CP] Check Pods Manifest.lock"; 303 | outputFileListPaths = ( 304 | ); 305 | outputPaths = ( 306 | "$(DERIVED_FILE_DIR)/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests-checkManifestLockResult.txt", 307 | ); 308 | runOnlyForDeploymentPostprocessing = 0; 309 | shellPath = /bin/sh; 310 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 311 | showEnvVarsInLog = 0; 312 | }; 313 | C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { 314 | isa = PBXShellScriptBuildPhase; 315 | buildActionMask = 2147483647; 316 | files = ( 317 | ); 318 | inputFileListPaths = ( 319 | ); 320 | inputPaths = ( 321 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 322 | "${PODS_ROOT}/Manifest.lock", 323 | ); 324 | name = "[CP] Check Pods Manifest.lock"; 325 | outputFileListPaths = ( 326 | ); 327 | outputPaths = ( 328 | "$(DERIVED_FILE_DIR)/Pods-SwipeableListExampleApp-checkManifestLockResult.txt", 329 | ); 330 | runOnlyForDeploymentPostprocessing = 0; 331 | shellPath = /bin/sh; 332 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 333 | showEnvVarsInLog = 0; 334 | }; 335 | C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { 336 | isa = PBXShellScriptBuildPhase; 337 | buildActionMask = 2147483647; 338 | files = ( 339 | ); 340 | inputFileListPaths = ( 341 | "${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", 342 | ); 343 | name = "[CP] Embed Pods Frameworks"; 344 | outputFileListPaths = ( 345 | "${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", 346 | ); 347 | runOnlyForDeploymentPostprocessing = 0; 348 | shellPath = /bin/sh; 349 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests-frameworks.sh\"\n"; 350 | showEnvVarsInLog = 0; 351 | }; 352 | E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { 353 | isa = PBXShellScriptBuildPhase; 354 | buildActionMask = 2147483647; 355 | files = ( 356 | ); 357 | inputFileListPaths = ( 358 | "${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp/Pods-SwipeableListExampleApp-resources-${CONFIGURATION}-input-files.xcfilelist", 359 | ); 360 | name = "[CP] Copy Pods Resources"; 361 | outputFileListPaths = ( 362 | "${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp/Pods-SwipeableListExampleApp-resources-${CONFIGURATION}-output-files.xcfilelist", 363 | ); 364 | runOnlyForDeploymentPostprocessing = 0; 365 | shellPath = /bin/sh; 366 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp/Pods-SwipeableListExampleApp-resources.sh\"\n"; 367 | showEnvVarsInLog = 0; 368 | }; 369 | F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { 370 | isa = PBXShellScriptBuildPhase; 371 | buildActionMask = 2147483647; 372 | files = ( 373 | ); 374 | inputFileListPaths = ( 375 | "${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests-resources-${CONFIGURATION}-input-files.xcfilelist", 376 | ); 377 | name = "[CP] Copy Pods Resources"; 378 | outputFileListPaths = ( 379 | "${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests-resources-${CONFIGURATION}-output-files.xcfilelist", 380 | ); 381 | runOnlyForDeploymentPostprocessing = 0; 382 | shellPath = /bin/sh; 383 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests/Pods-SwipeableListExampleApp-SwipeableListExampleAppTests-resources.sh\"\n"; 384 | showEnvVarsInLog = 0; 385 | }; 386 | /* End PBXShellScriptBuildPhase section */ 387 | 388 | /* Begin PBXSourcesBuildPhase section */ 389 | 00E356EA1AD99517003FC87E /* Sources */ = { 390 | isa = PBXSourcesBuildPhase; 391 | buildActionMask = 2147483647; 392 | files = ( 393 | 00E356F31AD99517003FC87E /* SwipeableListExampleAppTests.m in Sources */, 394 | ); 395 | runOnlyForDeploymentPostprocessing = 0; 396 | }; 397 | 13B07F871A680F5B00A75B9A /* Sources */ = { 398 | isa = PBXSourcesBuildPhase; 399 | buildActionMask = 2147483647; 400 | files = ( 401 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, 402 | 13B07FC11A68108700A75B9A /* main.m in Sources */, 403 | ); 404 | runOnlyForDeploymentPostprocessing = 0; 405 | }; 406 | /* End PBXSourcesBuildPhase section */ 407 | 408 | /* Begin PBXTargetDependency section */ 409 | 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { 410 | isa = PBXTargetDependency; 411 | target = 13B07F861A680F5B00A75B9A /* SwipeableListExampleApp */; 412 | targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; 413 | }; 414 | /* End PBXTargetDependency section */ 415 | 416 | /* Begin XCBuildConfiguration section */ 417 | 00E356F61AD99517003FC87E /* Debug */ = { 418 | isa = XCBuildConfiguration; 419 | baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-SwipeableListExampleApp-SwipeableListExampleAppTests.debug.xcconfig */; 420 | buildSettings = { 421 | BUNDLE_LOADER = "$(TEST_HOST)"; 422 | GCC_PREPROCESSOR_DEFINITIONS = ( 423 | "DEBUG=1", 424 | "$(inherited)", 425 | ); 426 | INFOPLIST_FILE = SwipeableListExampleAppTests/Info.plist; 427 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 428 | LD_RUNPATH_SEARCH_PATHS = ( 429 | "$(inherited)", 430 | "@executable_path/Frameworks", 431 | "@loader_path/Frameworks", 432 | ); 433 | OTHER_LDFLAGS = ( 434 | "-ObjC", 435 | "-lc++", 436 | "$(inherited)", 437 | ); 438 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 439 | PRODUCT_NAME = "$(TARGET_NAME)"; 440 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SwipeableListExampleApp.app/SwipeableListExampleApp"; 441 | }; 442 | name = Debug; 443 | }; 444 | 00E356F71AD99517003FC87E /* Release */ = { 445 | isa = XCBuildConfiguration; 446 | baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-SwipeableListExampleApp-SwipeableListExampleAppTests.release.xcconfig */; 447 | buildSettings = { 448 | BUNDLE_LOADER = "$(TEST_HOST)"; 449 | COPY_PHASE_STRIP = NO; 450 | INFOPLIST_FILE = SwipeableListExampleAppTests/Info.plist; 451 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 452 | LD_RUNPATH_SEARCH_PATHS = ( 453 | "$(inherited)", 454 | "@executable_path/Frameworks", 455 | "@loader_path/Frameworks", 456 | ); 457 | OTHER_LDFLAGS = ( 458 | "-ObjC", 459 | "-lc++", 460 | "$(inherited)", 461 | ); 462 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 463 | PRODUCT_NAME = "$(TARGET_NAME)"; 464 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SwipeableListExampleApp.app/SwipeableListExampleApp"; 465 | }; 466 | name = Release; 467 | }; 468 | 13B07F941A680F5B00A75B9A /* Debug */ = { 469 | isa = XCBuildConfiguration; 470 | baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-SwipeableListExampleApp.debug.xcconfig */; 471 | buildSettings = { 472 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 473 | CLANG_ENABLE_MODULES = YES; 474 | CURRENT_PROJECT_VERSION = 1; 475 | ENABLE_BITCODE = NO; 476 | INFOPLIST_FILE = SwipeableListExampleApp/Info.plist; 477 | LD_RUNPATH_SEARCH_PATHS = ( 478 | "$(inherited)", 479 | "@executable_path/Frameworks", 480 | ); 481 | MARKETING_VERSION = 1.0; 482 | OTHER_LDFLAGS = ( 483 | "$(inherited)", 484 | "-ObjC", 485 | "-lc++", 486 | ); 487 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 488 | PRODUCT_NAME = SwipeableListExampleApp; 489 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 490 | SWIFT_VERSION = 5.0; 491 | VERSIONING_SYSTEM = "apple-generic"; 492 | }; 493 | name = Debug; 494 | }; 495 | 13B07F951A680F5B00A75B9A /* Release */ = { 496 | isa = XCBuildConfiguration; 497 | baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-SwipeableListExampleApp.release.xcconfig */; 498 | buildSettings = { 499 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 500 | CLANG_ENABLE_MODULES = YES; 501 | CURRENT_PROJECT_VERSION = 1; 502 | INFOPLIST_FILE = SwipeableListExampleApp/Info.plist; 503 | LD_RUNPATH_SEARCH_PATHS = ( 504 | "$(inherited)", 505 | "@executable_path/Frameworks", 506 | ); 507 | MARKETING_VERSION = 1.0; 508 | OTHER_LDFLAGS = ( 509 | "$(inherited)", 510 | "-ObjC", 511 | "-lc++", 512 | ); 513 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 514 | PRODUCT_NAME = SwipeableListExampleApp; 515 | SWIFT_VERSION = 5.0; 516 | VERSIONING_SYSTEM = "apple-generic"; 517 | }; 518 | name = Release; 519 | }; 520 | 83CBBA201A601CBA00E9B192 /* Debug */ = { 521 | isa = XCBuildConfiguration; 522 | buildSettings = { 523 | ALWAYS_SEARCH_USER_PATHS = NO; 524 | CC = ""; 525 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 526 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 527 | CLANG_CXX_LIBRARY = "libc++"; 528 | CLANG_ENABLE_MODULES = YES; 529 | CLANG_ENABLE_OBJC_ARC = YES; 530 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 531 | CLANG_WARN_BOOL_CONVERSION = YES; 532 | CLANG_WARN_COMMA = YES; 533 | CLANG_WARN_CONSTANT_CONVERSION = YES; 534 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 535 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 536 | CLANG_WARN_EMPTY_BODY = YES; 537 | CLANG_WARN_ENUM_CONVERSION = YES; 538 | CLANG_WARN_INFINITE_RECURSION = YES; 539 | CLANG_WARN_INT_CONVERSION = YES; 540 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 541 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 542 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 543 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 544 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 545 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 546 | CLANG_WARN_STRICT_PROTOTYPES = YES; 547 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 548 | CLANG_WARN_UNREACHABLE_CODE = YES; 549 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 550 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 551 | COPY_PHASE_STRIP = NO; 552 | CXX = ""; 553 | ENABLE_STRICT_OBJC_MSGSEND = YES; 554 | ENABLE_TESTABILITY = YES; 555 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; 556 | GCC_C_LANGUAGE_STANDARD = gnu99; 557 | GCC_DYNAMIC_NO_PIC = NO; 558 | GCC_NO_COMMON_BLOCKS = YES; 559 | GCC_OPTIMIZATION_LEVEL = 0; 560 | GCC_PREPROCESSOR_DEFINITIONS = ( 561 | "DEBUG=1", 562 | "$(inherited)", 563 | ); 564 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 565 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 566 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 567 | GCC_WARN_UNDECLARED_SELECTOR = YES; 568 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 569 | GCC_WARN_UNUSED_FUNCTION = YES; 570 | GCC_WARN_UNUSED_VARIABLE = YES; 571 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 572 | LD = ""; 573 | LDPLUSPLUS = ""; 574 | LD_RUNPATH_SEARCH_PATHS = ( 575 | /usr/lib/swift, 576 | "$(inherited)", 577 | ); 578 | LIBRARY_SEARCH_PATHS = ( 579 | "\"$(SDKROOT)/usr/lib/swift\"", 580 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 581 | "\"$(inherited)\"", 582 | ); 583 | MTL_ENABLE_DEBUG_INFO = YES; 584 | ONLY_ACTIVE_ARCH = YES; 585 | OTHER_CPLUSPLUSFLAGS = ( 586 | "$(OTHER_CFLAGS)", 587 | "-DFOLLY_NO_CONFIG", 588 | "-DFOLLY_MOBILE=1", 589 | "-DFOLLY_USE_LIBCPP=1", 590 | "-DFOLLY_CFG_NO_COROUTINES=1", 591 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 592 | ); 593 | OTHER_LDFLAGS = ( 594 | "$(inherited)", 595 | " ", 596 | ); 597 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 598 | SDKROOT = iphoneos; 599 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; 600 | USE_HERMES = true; 601 | }; 602 | name = Debug; 603 | }; 604 | 83CBBA211A601CBA00E9B192 /* Release */ = { 605 | isa = XCBuildConfiguration; 606 | buildSettings = { 607 | ALWAYS_SEARCH_USER_PATHS = NO; 608 | CC = ""; 609 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 610 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 611 | CLANG_CXX_LIBRARY = "libc++"; 612 | CLANG_ENABLE_MODULES = YES; 613 | CLANG_ENABLE_OBJC_ARC = YES; 614 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 615 | CLANG_WARN_BOOL_CONVERSION = YES; 616 | CLANG_WARN_COMMA = YES; 617 | CLANG_WARN_CONSTANT_CONVERSION = YES; 618 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 619 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 620 | CLANG_WARN_EMPTY_BODY = YES; 621 | CLANG_WARN_ENUM_CONVERSION = YES; 622 | CLANG_WARN_INFINITE_RECURSION = YES; 623 | CLANG_WARN_INT_CONVERSION = YES; 624 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 625 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 626 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 627 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 628 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 629 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 630 | CLANG_WARN_STRICT_PROTOTYPES = YES; 631 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 632 | CLANG_WARN_UNREACHABLE_CODE = YES; 633 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 634 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 635 | COPY_PHASE_STRIP = YES; 636 | CXX = ""; 637 | ENABLE_NS_ASSERTIONS = NO; 638 | ENABLE_STRICT_OBJC_MSGSEND = YES; 639 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; 640 | GCC_C_LANGUAGE_STANDARD = gnu99; 641 | GCC_NO_COMMON_BLOCKS = YES; 642 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 643 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 644 | GCC_WARN_UNDECLARED_SELECTOR = YES; 645 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 646 | GCC_WARN_UNUSED_FUNCTION = YES; 647 | GCC_WARN_UNUSED_VARIABLE = YES; 648 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 649 | LD = ""; 650 | LDPLUSPLUS = ""; 651 | LD_RUNPATH_SEARCH_PATHS = ( 652 | /usr/lib/swift, 653 | "$(inherited)", 654 | ); 655 | LIBRARY_SEARCH_PATHS = ( 656 | "\"$(SDKROOT)/usr/lib/swift\"", 657 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 658 | "\"$(inherited)\"", 659 | ); 660 | MTL_ENABLE_DEBUG_INFO = NO; 661 | OTHER_CPLUSPLUSFLAGS = ( 662 | "$(OTHER_CFLAGS)", 663 | "-DFOLLY_NO_CONFIG", 664 | "-DFOLLY_MOBILE=1", 665 | "-DFOLLY_USE_LIBCPP=1", 666 | "-DFOLLY_CFG_NO_COROUTINES=1", 667 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 668 | ); 669 | OTHER_LDFLAGS = ( 670 | "$(inherited)", 671 | " ", 672 | ); 673 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 674 | SDKROOT = iphoneos; 675 | USE_HERMES = true; 676 | VALIDATE_PRODUCT = YES; 677 | }; 678 | name = Release; 679 | }; 680 | /* End XCBuildConfiguration section */ 681 | 682 | /* Begin XCConfigurationList section */ 683 | 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "SwipeableListExampleAppTests" */ = { 684 | isa = XCConfigurationList; 685 | buildConfigurations = ( 686 | 00E356F61AD99517003FC87E /* Debug */, 687 | 00E356F71AD99517003FC87E /* Release */, 688 | ); 689 | defaultConfigurationIsVisible = 0; 690 | defaultConfigurationName = Release; 691 | }; 692 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "SwipeableListExampleApp" */ = { 693 | isa = XCConfigurationList; 694 | buildConfigurations = ( 695 | 13B07F941A680F5B00A75B9A /* Debug */, 696 | 13B07F951A680F5B00A75B9A /* Release */, 697 | ); 698 | defaultConfigurationIsVisible = 0; 699 | defaultConfigurationName = Release; 700 | }; 701 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "SwipeableListExampleApp" */ = { 702 | isa = XCConfigurationList; 703 | buildConfigurations = ( 704 | 83CBBA201A601CBA00E9B192 /* Debug */, 705 | 83CBBA211A601CBA00E9B192 /* Release */, 706 | ); 707 | defaultConfigurationIsVisible = 0; 708 | defaultConfigurationName = Release; 709 | }; 710 | /* End XCConfigurationList section */ 711 | }; 712 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 713 | } 714 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleApp.xcodeproj/xcshareddata/xcschemes/SwipeableListExampleApp.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 53 | 55 | 61 | 62 | 63 | 64 | 70 | 72 | 78 | 79 | 80 | 81 | 83 | 84 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleApp.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleApp/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : RCTAppDelegate 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleApp/AppDelegate.mm: -------------------------------------------------------------------------------- 1 | #import "AppDelegate.h" 2 | 3 | #import 4 | 5 | @implementation AppDelegate 6 | 7 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 8 | { 9 | self.moduleName = @"SwipeableListExampleApp"; 10 | // You can add your custom initial props in the dictionary below. 11 | // They will be passed down to the ViewController used by React Native. 12 | self.initialProps = @{}; 13 | 14 | return [super application:application didFinishLaunchingWithOptions:launchOptions]; 15 | } 16 | 17 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge 18 | { 19 | return [self bundleURL]; 20 | } 21 | 22 | - (NSURL *)bundleURL 23 | { 24 | #if DEBUG 25 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; 26 | #else 27 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 28 | #endif 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleApp/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ios-marketing", 45 | "scale" : "1x", 46 | "size" : "1024x1024" 47 | } 48 | ], 49 | "info" : { 50 | "author" : "xcode", 51 | "version" : 1 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleApp/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleApp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | SwipeableListExampleApp 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | $(MARKETING_VERSION) 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | $(CURRENT_PROJECT_VERSION) 25 | LSRequiresIPhoneOS 26 | 27 | NSAppTransportSecurity 28 | 29 | 30 | NSAllowsArbitraryLoads 31 | 32 | NSAllowsLocalNetworking 33 | 34 | 35 | NSLocationWhenInUseUsageDescription 36 | 37 | UILaunchStoryboardName 38 | LaunchScreen 39 | UIRequiredDeviceCapabilities 40 | 41 | arm64 42 | 43 | UISupportedInterfaceOrientations 44 | 45 | UIInterfaceOrientationPortrait 46 | UIInterfaceOrientationLandscapeLeft 47 | UIInterfaceOrientationLandscapeRight 48 | 49 | UIViewControllerBasedStatusBarAppearance 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleApp/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleApp/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | 8 | NSPrivacyAccessedAPIType 9 | NSPrivacyAccessedAPICategoryFileTimestamp 10 | NSPrivacyAccessedAPITypeReasons 11 | 12 | C617.1 13 | 14 | 15 | 16 | NSPrivacyAccessedAPIType 17 | NSPrivacyAccessedAPICategoryUserDefaults 18 | NSPrivacyAccessedAPITypeReasons 19 | 20 | CA92.1 21 | 22 | 23 | 24 | NSPrivacyAccessedAPIType 25 | NSPrivacyAccessedAPICategorySystemBootTime 26 | NSPrivacyAccessedAPITypeReasons 27 | 28 | 35F9.1 29 | 30 | 31 | 32 | NSPrivacyCollectedDataTypes 33 | 34 | NSPrivacyTracking 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleApp/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | @autoreleasepool { 8 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleAppTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/ios/SwipeableListExampleAppTests/SwipeableListExampleAppTests.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | #import 5 | #import 6 | 7 | #define TIMEOUT_SECONDS 600 8 | #define TEXT_TO_LOOK_FOR @"Welcome to React" 9 | 10 | @interface SwipeableListExampleAppTests : XCTestCase 11 | 12 | @end 13 | 14 | @implementation SwipeableListExampleAppTests 15 | 16 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test 17 | { 18 | if (test(view)) { 19 | return YES; 20 | } 21 | for (UIView *subview in [view subviews]) { 22 | if ([self findSubviewInView:subview matching:test]) { 23 | return YES; 24 | } 25 | } 26 | return NO; 27 | } 28 | 29 | - (void)testRendersWelcomeScreen 30 | { 31 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; 32 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; 33 | BOOL foundElement = NO; 34 | 35 | __block NSString *redboxError = nil; 36 | #ifdef DEBUG 37 | RCTSetLogFunction( 38 | ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { 39 | if (level >= RCTLogLevelError) { 40 | redboxError = message; 41 | } 42 | }); 43 | #endif 44 | 45 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { 46 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 47 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 48 | 49 | foundElement = [self findSubviewInView:vc.view 50 | matching:^BOOL(UIView *view) { 51 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { 52 | return YES; 53 | } 54 | return NO; 55 | }]; 56 | } 57 | 58 | #ifdef DEBUG 59 | RCTSetLogFunction(RCTDefaultLogFunction); 60 | #endif 61 | 62 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); 63 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); 64 | } 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'react-native', 3 | }; 4 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/metro.config.js: -------------------------------------------------------------------------------- 1 | const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config'); 2 | 3 | /** 4 | * Metro configuration 5 | * https://reactnative.dev/docs/metro 6 | * 7 | * @type {import('metro-config').MetroConfig} 8 | */ 9 | const config = {}; 10 | 11 | module.exports = mergeConfig(getDefaultConfig(__dirname), config); 12 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SwipeableListExampleApp", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "android": "react-native run-android", 7 | "ios": "react-native run-ios", 8 | "lint": "eslint .", 9 | "start": "react-native start", 10 | "test": "jest" 11 | }, 12 | "dependencies": { 13 | "react": "18.3.1", 14 | "react-native": "0.75.2", 15 | "react-native-swipeable-list": "^0.1.2" 16 | }, 17 | "devDependencies": { 18 | "@babel/core": "^7.20.0", 19 | "@babel/preset-env": "^7.20.0", 20 | "@babel/runtime": "^7.20.0", 21 | "@react-native/babel-preset": "0.75.2", 22 | "@react-native/eslint-config": "0.75.2", 23 | "@react-native/metro-config": "0.75.2", 24 | "@react-native/typescript-config": "0.75.2", 25 | "@types/react": "^18.2.6", 26 | "@types/react-test-renderer": "^18.0.0", 27 | "babel-jest": "^29.6.3", 28 | "eslint": "^8.19.0", 29 | "jest": "^29.6.3", 30 | "prettier": "2.8.8", 31 | "react-test-renderer": "18.3.1", 32 | "typescript": "5.0.4" 33 | }, 34 | "engines": { 35 | "node": ">=18" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /examples/SwipeableListExampleApp/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@react-native/typescript-config/tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /images/react-native-swipeable-list-demo1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/images/react-native-swipeable-list-demo1.gif -------------------------------------------------------------------------------- /images/react-native-swipeable-list-demo2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esthor/react-native-swipeable-list/358fc5629f852d238eac1ba2213c6d3d8ed9cee1/images/react-native-swipeable-list-demo2.gif -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import SwipeableFlatList from './Swipeable/SwipeableFlatList'; 2 | 3 | export {default as SwipeableRow} from './Swipeable/SwipeableRow'; 4 | 5 | export default SwipeableFlatList; 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-swipeable-list", 3 | "version": "0.1.2", 4 | "description": "A zero-dependency Swipeable FlatList for React-Native with Quick Actions, Gestures, and Animations.", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/esthor/react-native-swipeable-list.git" 12 | }, 13 | "keywords": [ 14 | "react-native", 15 | "flatlist", 16 | "swipeable", 17 | "ux", 18 | "list", 19 | "gesture", 20 | "animations", 21 | "performant" 22 | ], 23 | "author": "Erik Thorelli", 24 | "license": "MIT", 25 | "bugs": { 26 | "url": "https://github.com/esthor/react-native-swipeable-list/issues" 27 | }, 28 | "homepage": "https://github.com/esthor/react-native-swipeable-list#readme", 29 | "peerDependencies": { 30 | "react": ">=16.11.0", 31 | "react-native": ">=0.61.4" 32 | }, 33 | "devDependencies": { 34 | "metro-react-native-babel-preset": "^0.57.0", 35 | "react": "16.11.0", 36 | "react-native": "0.62.3" 37 | } 38 | } 39 | --------------------------------------------------------------------------------