{"_id":"@ami-app/react-native-router-flux","_rev":"3-b58be2c3db717847b64f62dc5c0dc663","name":"@ami-app/react-native-router-flux","dist-tags":{"latest":"4.0.6"},"versions":{"4.3.1":{"name":"@ami-app/react-native-router-flux","version":"4.3.1","description":"React Native Router using Flux architecture","repository":{"type":"git","url":"git+https://github.com/aksonov/react-native-router-flux.git"},"bugs":{"url":"https://github.com/aksonov/react-native-router-flux"},"homepage":"https://github.com/aksonov/react-native-router-flux#readme","license":"MIT","main":"src/index.js","types":"index.d.ts","scripts":{"start":"node node_modules/react-native/local-cli/cli.js start","build":"babel src -d dist","lint":"prettier-eslint $PWD/'src/**/*.js' $PWD/'__tests__/**/*.js' --list-different","fix":"prettier-eslint $PWD/'src/**/*.js' $PWD/'__tests__/**/*.js' --write","test":"jest"},"dependencies":{"@babel/runtime":"^7.6.0","add":"^2.0.6","lodash":"^4.17.15","opencollective":"^1.0.3","path-to-regexp":"^2.4.0","prop-types":"^15.6.2","react-navigation":"^4.x","react-navigation-drawer":"^2.2.1","react-navigation-stack":"^2.10.2","react-navigation-tabs":"^2.10.1","remove":"^0.1.5"},"devDependencies":{"@babel/cli":"7.0.0-beta.47","@babel/code-frame":"7.0.0-beta.47","@babel/core":"^7.6.0","@babel/plugin-proposal-decorators":"7.0.0-beta.47","@babel/plugin-proposal-optional-chaining":"7.0.0-beta.47","@types/react":"16.4.12","@types/react-native":"0.56.14","babel-core":"^7.0.0-0","babel-eslint":"9.0.0-beta.1","babel-jest":"^25.1.0","babel-preset-react-native":"5.0.2","eslint":"^6.7.0","eslint-config-airbnb":"17.1.0","eslint-config-prettier":"3.0.1","eslint-plugin-eslint-comments":"3.0.1","eslint-plugin-import":"2.14.0","eslint-plugin-jest":"21.22.0","eslint-plugin-jsx-a11y":"6.1.1","eslint-plugin-react":"7.11.0","estraverse-fb":"1.3.2","jest":"^25.1.0","prettier-eslint":"8.8.2","prettier-eslint-cli":"5.0.0-beta.0","react":"16.4.1","react-native":"0.56.0","react-native-gesture-handler":"^1.4.1","react-native-jest-mocks":"1.4.0","react-test-renderer":"16.4.1"},"peerDependencies":{"react":"*","react-native":"*"},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/examples/"],"transformIgnorePatterns":["node_modules/(?!(jest-)?react-native|react-navigation|@react-navigation|react-navigation-(tabs|drawer|deprecated-tab-navigator|stack))"],"setupFiles":["./test/setup.js"]},"eslintConfig":{"filePath":"./eslintrc.js"},"collective":{"type":"opencollective","url":"https://opencollective.com/react-native-router-flux","logo":"https://opencollective.com/opencollective/logo.txt"},"gitHead":"55a52d8a2b1d2956332934cc457edafd76699856","_id":"@ami-app/react-native-router-flux@4.3.1","_nodeVersion":"14.16.1","_npmVersion":"7.13.0","dist":{"integrity":"sha512-HF+ObFcbTGb8nEN/iG7YXL60MpfdI0CDgoCNOZYmfyqqkdeOLzWHbydTnLlF6g0nV85A8PMwlPCyHEoF+lDeow==","shasum":"cfb970d7fc9e1abef53a89088de1b721d3d22c11","tarball":"https://registry.npmjs.org/@ami-app/react-native-router-flux/-/react-native-router-flux-4.3.1.tgz","fileCount":64,"unpackedSize":1000579,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCY2Hij3LmLUq0DpNFbbSqxRMzzMAzkWwL942jgDxGyIQIgGDfeY2LpigYWvb3wlQLLkG6SrIBvrVnjsTZjLvr6Hxg="}]},"_npmUser":{"name":"zyzo","email":"danghaian168@gmail.com"},"directories":{},"maintainers":[{"name":"zyzo","email":"danghaian168@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-native-router-flux_4.3.1_1636319728242_0.7858061874134892"},"_hasShrinkwrap":false},"4.0.6":{"name":"@ami-app/react-native-router-flux","version":"4.0.6","description":"React Native Router using Flux architecture","repository":{"type":"git","url":"git+https://github.com/aksonov/react-native-router-flux.git"},"bugs":{"url":"https://github.com/aksonov/react-native-router-flux"},"homepage":"https://github.com/aksonov/react-native-router-flux#readme","license":"MIT","main":"src/index.js","types":"index.d.ts","scripts":{"start":"node node_modules/react-native/local-cli/cli.js start","build":"babel src -d dist","lint":"prettier-eslint src/**/*.js __tests__/**/*.js --list-different","fix":"prettier-eslint src/**/*.js __tests__/**/*.js --write","test":"jest"},"dependencies":{"lodash.isequal":"4.5.0","opencollective":"^1.0.3","path-to-regexp":"^2.4.0","prop-types":"^15.6.2","react-navigation":"2.x"},"devDependencies":{"@babel/cli":"7.0.0-beta.47","@babel/code-frame":"7.0.0-beta.47","@babel/core":"7.0.0-beta.47","@babel/plugin-proposal-decorators":"7.0.0-beta.47","@babel/plugin-proposal-optional-chaining":"7.0.0-beta.47","@types/react":"16.4.12","@types/react-native":"0.56.14","babel-core":"^7.0.0-0","babel-eslint":"9.0.0-beta.1","babel-jest":"^23.4.0","babel-preset-react-native":"5.0.2","eslint":"5.4.0","eslint-config-airbnb":"17.1.0","eslint-config-prettier":"3.0.1","eslint-plugin-eslint-comments":"3.0.1","eslint-plugin-import":"2.14.0","eslint-plugin-jest":"21.22.0","eslint-plugin-jsx-a11y":"6.1.1","eslint-plugin-react":"7.11.0","estraverse-fb":"1.3.2","jest":"^23.4.1","prettier-eslint":"8.8.2","prettier-eslint-cli":"5.0.0-beta.0","react":"16.4.1","react-native":"0.56.0","react-native-jest-mocks":"^1.4.0","react-test-renderer":"16.4.1"},"peerDependencies":{"react":"*","react-native":"*","react-navigation-deprecated-tab-navigator":"*"},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/examples/"],"transformIgnorePatterns":["node_modules/(?!(jest-)?react-native|react-navigation|react-navigation-(tabs|drawer|deprecated-tab-navigator|stack))"],"setupFiles":["./test/setup.js"]},"eslintConfig":{"filePath":"./eslintrc.js"},"collective":{"type":"opencollective","url":"https://opencollective.com/react-native-router-flux","logo":"https://opencollective.com/opencollective/logo.txt"},"gitHead":"1a1d0f65d0db76084dbe47f90bb0eb495cf8792b","_id":"@ami-app/react-native-router-flux@4.0.6","_nodeVersion":"14.16.1","_npmVersion":"7.13.0","dist":{"integrity":"sha512-AJbC4GVTA0mSuvO5GWLJiaiOAQMiq/n9wGlPsURynLpOwRUy7S7eToN9OciR8o5RSgEyy2whqKpKCtqwnmrgpQ==","shasum":"2d2691994791a6611ecaf02c14ee6f37085d99d1","tarball":"https://registry.npmjs.org/@ami-app/react-native-router-flux/-/react-native-router-flux-4.0.6.tgz","fileCount":213,"unpackedSize":2236124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzFOqCRA9TVsSAnZWagAAAuAP/0rVbzPbtVLPRRz8fXhu\nsxnOhxA4mqk1AQPJ3JuTIAjeUePwgK3+1TWdmtnkrY8DIl+JNGEgXxaQgsTV\nhKml2GeQmABy13cSJh0vk0CajSFw2Rw8N6nwyJA3eUFkybfbAmjhnBUMRolG\nbNWihxV9ZtW79XpW204g/f7eMKRTDPcz6E0dgZTTf+ntcwyJzFz7eGQqUqXT\ndxZ7aIwiGrKGal2zeY4TMJ/bO34N3iwdBK7g/R1Lw+OvQ2Q6IMN4VZZobtez\nALEXalEm1fbUscauDO9zhC5VsOqJ7M0Tgkn0ilN5jI47BkArTilBPXAFMsUZ\nSoNWmLyjZlhlrJvIdHTSUB0SVl2qiGCpIGnZkU6i9WEhpE7RrzfH7HD7Rqhu\nTD2Z+8ZQ4LQrJ9Gvf15o+PPZ2lWK9TlXGFJK1t8IFfvW4XbYGOarUYhIAHOE\nsQRW/UqCnoEqRJAcpWn7sTtInEDLgUqCSHdbqiaLY8BUPXImZgXApGRJ/OyJ\nvLKR4PPb6yqGS0D0P/Sd3LR8+TOBXIr4pbvxhlqi+DXg2k2K4gZU9KnrwTnw\n0s26yQGCjKMzOf/zKlr6Bw4AzTEZPrA3lbrDnwRfOd0QB5GTZOltHAh61H1s\n8w8ATRbbJXjJM96u8ViGU52Ln/YyxWaPSFMmY+xGXPD1q84eI+bxnm1gQC/Q\niQIl\r\n=tqL4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEI9/UVruHfa62e1toXMIWIJ7KIYePM3xvi/WV1SDv1VAiEAzxa9RS/2U/z+rUGxWXJSO+ExfM9c2FR/a+tRZLQHOlc="}]},"_npmUser":{"name":"zyzo","email":"danghaian168@gmail.com"},"directories":{},"maintainers":[{"name":"zyzo","email":"danghaian168@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-native-router-flux_4.0.6_1636319753864_0.05032167265308196"},"_hasShrinkwrap":false}},"time":{"created":"2021-11-07T21:15:28.176Z","4.3.1":"2021-11-07T21:15:28.543Z","modified":"2022-04-04T13:48:27.521Z","4.0.6":"2021-11-07T21:15:54.100Z"},"maintainers":[{"name":"zyzo","email":"danghaian168@gmail.com"}],"description":"React Native Router using Flux architecture","homepage":"https://github.com/aksonov/react-native-router-flux#readme","repository":{"type":"git","url":"git+https://github.com/aksonov/react-native-router-flux.git"},"bugs":{"url":"https://github.com/aksonov/react-native-router-flux"},"license":"MIT","readme":"# React Native Router (v4.x) [![Backers on Open Collective](https://opencollective.com/react-native-router-flux/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/react-native-router-flux/sponsors/badge.svg)](#sponsors) [![Join the chat at https://gitter.im/aksonov/react-native-router-flux](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/aksonov/react-native-router-flux?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Codacy Badge](https://api.codacy.com/project/badge/grade/c6d869e2367a4fb491efc9de228c5ac6)](https://www.codacy.com/app/aksonov-github/react-native-router-flux) [![npm version](https://badge.fury.io/js/react-native-router-flux.svg)](http://badge.fury.io/js/react-native-router-flux) [![CircleCI](https://circleci.com/gh/aksonov/react-native-router-flux.svg?style=svg)](https://circleci.com/gh/aksonov/react-native-router-flux)\n\n[Follow author @PAksonov](https://twitter.com/PAksonov)\n\n`react-native-router-flux` is a different API over `react-navigation`. It helps users to define all the routes in one central place and navigate and communicate between different screens in an easy way. But it also means that `react-native-router-flux` inherits all [limitations](https://reactnavigation.org/docs/en/limitations.html) and changes from updated versions.\n\n### IMPORTANT NOTES\n\n#### v4 is based on [React Navigation v2.x](https://reactnavigation.org/). See [this branch](https://github.com/aksonov/react-native-router-flux/tree/v3) and [docs](https://github.com/aksonov/react-native-router-flux/blob/master/README3.md) for v3 based on deprecated React Native Experimental Navigation API. It is not supported and may not work with latest React Native versions.\n\n#### v4.0.0-beta.x is based on [React Navigation v1.5.x](https://reactnavigation.org/). See [this branch](https://github.com/aksonov/react-native-router-flux/tree/v4.0.0-beta) for this version. It is also not supported and may not work with the latest React Native versions.\n\n___\n\n* [Examples](#try-the-example-apps)\n* [Motivation](https://gist.github.com/aksonov/e2d7454421e44b1c4c72214d14053410)\n* [v4 Features](#v4-features)\n* [API](/docs/API.md)\n* [Migrating from v3](/docs/MIGRATION.md)\n* [Sponsors/Backers/Contributors](#contributors)\n\n\n## Usage\n\nDefine all your routes in one React component...\n\n```js\nconst App = () => (\n  <Router>\n    <Stack key=\"root\">\n      <Scene key=\"login\" component={Login} title=\"Login\"/>\n      <Scene key=\"register\" component={Register} title=\"Register\"/>\n      <Scene key=\"home\" component={Home}/>\n    </Stack>\n  </Router>\n);\n```\n\n...and navigate from one scene to another scene with a simple and powerful API.\n\n```js\n// Login.js\n\n// navigate to 'home' as defined in your top-level router\nActions.home(PARAMS)\n\n// go back (i.e. pop the current screen off the nav stack)\nActions.pop()\n\n// refresh the current Scene with the specified props\nActions.refresh({param1: 'hello', param2: 'world'})\n```\n\n## API\n\nFor a full listing of the API, [view the API docs](https://github.com/aksonov/react-native-router-flux/blob/master/docs/API.md).\n\n## Try the [example apps](https://github.com/aksonov/react-native-router-flux/tree/master/examples)\n\n![rnrf](https://user-images.githubusercontent.com/3681859/27937441-ef61d932-626b-11e7-885f-1db7dc74b32e.gif)\n\n```bash\n# Get the code\ngit clone https://github.com/aksonov/react-native-router-flux.git\ncd react-native-router-flux/examples/[expo|react-native|redux]\n\n# Installing dependencies\nyarn\n\n# Run it\nyarn start\n```\n\n## v4 Features\n* Based on latest [React Navigation](https://reactnavigation.org) API\n* Separate navigation logic from presentation. You may now change navigation state directly from your business logic code - stores/reducers/etc. navigationStore\n* Built-in state machine (v3 `Switch` replacement)\n  * Each `Scene` with `component` defined can have `onEnter`/`onExit`/`on` handlers.\n  * `onEnter`/`on` handler can be async.\n  * For 'truthy' return of `onEnter`/`on`, `success` handler (if defined) will be executed\n    * if `success` is a string then router will navigate to the `Scene` with that key\n  * in case of handler's failure, `failure` prop (if defined) will be run.\n  * Combining `onEnter`, `onExit`, `success`, and `failure` makes patterns like authentication, data validation, and conditional transitions simple and intuitive.\n* [MobX](https://mobx.js.org/)-friendly: all scenes are wrapped with `observer`. You may subscribe to `navigationStore` (`Actions` in v3) and observe current navigation state. Not applicable to Redux.\n* Flexible Nav bar customization, currently not allowed by React Navigation:\nhttps://github.com/react-community/react-navigation/issues/779\n* Drawer support (provided by React Navigation)\n* Inheritance of scene attributes allow you to avoid any code/attribute duplications. Adding `rightTitle` to a scene will apply to all child scenes simultaneously. See example app.\n* Access to your app navigations state as simple as `Actions.state`.\n* Use `Actions.currentScene` to get name of current scene.\n\n## Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute]](CONTRIBUTING.md).\n<a href=\"https://github.com/aksonov/react-native-router-flux/graphs/contributors\"><img src=\"https://opencollective.com/react-native-router-flux/contributors.svg?width=890\" /></a>\n\n\n## Backers\n\nThank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/react-native-router-flux#backer)]\n\n<a href=\"https://opencollective.com/react-native-router-flux#backers\" target=\"_blank\"><img src=\"https://opencollective.com/react-native-router-flux/backers.svg?width=890\"></a>\n\n\n## Sponsors\n\nSupport this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/react-native-router-flux#sponsor)]\n\n<a href=\"https://opencollective.com/react-native-router-flux/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/react-native-router-flux/sponsor/0/avatar.svg\"></a>\n<a href=\"https://opencollective.com/react-native-router-flux/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/react-native-router-flux/sponsor/1/avatar.svg\"></a>\n<a href=\"https://opencollective.com/react-native-router-flux/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/react-native-router-flux/sponsor/2/avatar.svg\"></a>\n<a href=\"https://opencollective.com/react-native-router-flux/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/react-native-router-flux/sponsor/3/avatar.svg\"></a>\n<a href=\"https://opencollective.com/react-native-router-flux/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/react-native-router-flux/sponsor/4/avatar.svg\"></a>\n<a href=\"https://opencollective.com/react-native-router-flux/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/react-native-router-flux/sponsor/5/avatar.svg\"></a>\n<a href=\"https://opencollective.com/react-native-router-flux/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/react-native-router-flux/sponsor/6/avatar.svg\"></a>\n<a href=\"https://opencollective.com/react-native-router-flux/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/react-native-router-flux/sponsor/7/avatar.svg\"></a>\n<a href=\"https://opencollective.com/react-native-router-flux/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/react-native-router-flux/sponsor/8/avatar.svg\"></a>\n<a href=\"https://opencollective.com/react-native-router-flux/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/react-native-router-flux/sponsor/9/avatar.svg\"></a>\n","readmeFilename":"README.md"}