{"id":4066,"url":"https://github.com/prscX/react-native-bottom-action-sheet","last_synced_at":"2025-08-04T00:31:21.753Z","repository":{"id":28713113,"uuid":"119147348","full_name":"prscX/react-native-bottom-action-sheet","owner":"prscX","description":"React Native: Native Bottom Action Sheet","archived":false,"fork":false,"pushed_at":"2022-04-10T07:15:53.000Z","size":1204,"stargazers_count":633,"open_issues_count":9,"forks_count":48,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-28T20:49:29.754Z","etag":null,"topics":["android","ios","react-native"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prscX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-27T08:34:23.000Z","updated_at":"2024-10-07T16:01:11.000Z","dependencies_parsed_at":"2022-07-20T07:02:18.805Z","dependency_job_id":null,"html_url":"https://github.com/prscX/react-native-bottom-action-sheet","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prscX%2Freact-native-bottom-action-sheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prscX%2Freact-native-bottom-action-sheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prscX%2Freact-native-bottom-action-sheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prscX%2Freact-native-bottom-action-sheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prscX","download_url":"https://codeload.github.com/prscX/react-native-bottom-action-sheet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228576895,"owners_count":17939645,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","ios","react-native"],"created_at":"2024-01-05T20:17:00.032Z","updated_at":"2024-12-07T07:31:04.256Z","avatar_url":"https://github.com/prscX.png","language":"JavaScript","funding_links":["https://www.buymeacoffee.com/prscX"],"categories":["Components","\u003ca name=\"Alter,-Prompt,-Action-\u0026-Dialog:-Native-Modules\"\u003eAlter, Prompt, Action \u0026 Dialog: Native Modules\u003c/a\u003e"],"sub_categories":["UI"],"readme":"\u003ch1 align=\"center\"\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://storage.googleapis.com/material-design/publish/material_v_12/assets/0B7WCemMG6e0VVWZzZ1FIN09XWGc/components-bottom-sheets.png\" height=\"300\" width=\"300\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/react-native-bottom-action-sheet\"\u003e\u003cimg src=\"http://img.shields.io/npm/v/react-native-bottom-action-sheet.svg?style=flat\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/prscX/react-native-bottom-action-sheet/pulls\"\u003e\u003cimg alt=\"PRs Welcome\" src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/prscX/react-native-bottom-action-sheet#License\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/react-native-bottom-action-sheet.svg?style=flat\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n    ReactNative: Native Bottom Action Sheet (Android/iOS)\n\nIf this project has helped you out, please support us with a star 🌟\n\u003c/h1\u003e\n\nA simple library that creates native BottomSheet actions according to the [Material Design Specs](https://material.google.com/components/bottom-sheets.html)\n\n\n#### Android\n\n\n| **[Sheet View: rubensousa/BottomSheetBuilder](https://github.com/rubensousa/BottomSheetBuilder)**             |\n| ----------------- |\n| \u003cimg src=\"https://github.com/rubensousa/BottomSheetBuilder/raw/master/screens/normal_demo.gif\" width=\"320\" /\u003e                  |\n\n| **[Grid View: rubensousa/BottomSheetBuilder](https://github.com/rubensousa/BottomSheetBuilder)**             |\n| ----------------- |\n| \u003cimg src=\"https://github.com/rubensousa/BottomSheetBuilder/raw/master/screens/tablet_grid.png\" width=\"600\"/\u003e                  |\n\n\n| **[Alert View: javiersantos/BottomDialogs](https://github.com/javiersantos/BottomDialogs)**             |\n| ----------------- |\n| \u003cimg src=\"https://raw.githubusercontent.com/javiersantos/BottomDialogs/master/Screenshots/gif-1.gif\" width=\"320\" /\u003e                 \n\n#### iOS\n\n| **[Sheet View: sagiwei/SGActionView](https://github.com/sagiwei/SGActionView)**             |\n| ----------------- |\n| \u003cimg src=\"https://github.com/sagiwei/SGActionView/raw/master/sheet.png\" width=\"437\" /\u003e                  |\n\n| **[Grid View: sagiwei/SGActionView](https://github.com/sagiwei/SGActionView)**             |\n| ----------------- |\n| \u003cimg src=\"https://github.com/sagiwei/SGActionView/raw/master/grid.png\" width=\"437\" /\u003e                  |\n\n\n| **[Alert View: sagiwei/SGActionView](https://github.com/sagiwei/SGActionView)**             |\n| ----------------- |\n| \u003cimg src=\"https://github.com/sagiwei/SGActionView/raw/master/alert.png\" width=\"437\" /\u003e                  |\n\n\n## 📖 Getting started\n\n`$ npm install react-native-bottom-action-sheet --save`\n\n## **RN61 \u003e= RNBAS V2 \u003e**\n\n- Add `react-native-image-helper` your app package.json\n\n`$ npm install react-native-image-helper --save`\n\n- Add `react-native-vector-icons` to your app package.json and configure it as per their installation steps\n\n`$ npm install react-native-vector-icons --save`\n\n- **iOS**\n\n\t- Add the following to your `Podfile` -\u003e `ios/Podfile` and run pod update:\n\n\t```\n \t\tpod 'SGActionView', :git =\u003e 'https://github.com/prscX/SGActionView.git'\n\n\t  \tuse_native_modules!\n\n  \t\tpod 'RNBottomActionSheet', :path =\u003e '../node_modules/react-native-bottom-action-sheet/ios'\n\t\tpod 'RNImageHelper', :path =\u003e '../node_modules/react-native-image-helper/ios'\n\t```\n\n- **Android**\n\nPlease add below snippet into your app `build.gradle`\n\n```\nallprojects {\n    repositories {\n        maven { url 'https://jitpack.io' }\n    }\n}\n```\n\n\n## **RN61 \u003e= RNBAS V1 \u003e**\n\n\u003e RN61 above please use `react-native-bottom-action-sheet` V1 and above\n\n- **iOS**\n\n\t- Add the following to your `Podfile` -\u003e `ios/Podfile` and run pod update:\n\n\t```\n \t\tpod 'SGActionView', :git =\u003e 'https://github.com/prscX/SGActionView.git'\n\n\t  \tuse_native_modules!\n\n  \t\tpod 'RNBottomActionSheet', :path =\u003e '../node_modules/react-native-bottom-action-sheet/ios'\n\t```\n\n- **Android**\n\nPlease add below snippet into your app `build.gradle`\n\n```\nallprojects {\n    repositories {\n        maven { url 'https://jitpack.io' }\n    }\n}\n```\n\n## **RN60 \u003c RNBAS V1 \u003c**\n\n\u003e RN60 below please use `react-native-bottom-action-sheet` V.0.*\n\n`$ react-native link react-native-bottom-action-sheet`\n\n`$ react-native link react-native-vector-icons`\n\n- **iOS**\n\n\t- After `react-native link react-native-bottom-action-sheet`, please verify node_modules/react-native-bottom-action-sheet/ios/ contains Pods folder. If does not exist please execute `pod install` command on `node_modules/react-native-bottom-action-sheet/ios/`, if any error =\u003e try `pod repo update` then `pod install`\n\n- **Android**\n\nPlease add below snippet into your app `build.gradle`\n\n```\nallprojects {\n    repositories {\n        maven { url 'https://jitpack.io' }\n\t\tmaven { url \"https://maven.google.com\" }\n\t\t...\n    }\n}\n```\n\n\u003e **Note:** This library is support on Android 27 \u003e above\n\n## 💻 Usage\n\n```javascript\nimport RNBottomActionSheet from 'react-native-bottom-action-sheet';\n\nimport Icon from 'react-native-vector-icons'\n\n```\n\n## 💡 Example's\n\n- **Sheet View**\n\n\t- **API Way**\n\n  ```javascript\n  let facebook = \u003cIcon family={'FontAwesome'} name={'facebook'} color={'#000000'} size={30} /\u003e\n  let instagram = \u003cIcon family={'FontAwesome'} name={'instagram'} color={'#000000'} size={30} /\u003e\n  let SheetView = RNBottomActionSheet.SheetView;\n\n  SheetView.Show({\n    title: \"Awesome!\",\n    items: [\n      { title: \"Facebook\", value: \"fb\", subTitle: \"Facebook Description\", icon: facebook },\n      { title: \"Instagram\", value: \"insta\", subTitle: \"Instagram Description\", icon: instagram },\n    ],\n    theme: \"light\",\n    selection: 3,\n    onSelection: (index, value) =\u003e {\n      // value is optional\n      console.log(\"selection: \" + index + \" \" + value);\n    },\n    onCancel: () =\u003e console.log('Closing the bottom SheetView!!!')\n  });\n  ```\n\n\t- **React Way**\n\n\t```javascript\n\tlet facebook = \u003cIcon family={'FontAwesome'} name={'facebook'} color={'#000000'} size={30} /\u003e\n\tlet instagram = \u003cIcon family={'FontAwesome'} name={'instagram'} color={'#000000'} size={30} /\u003e\n\n\t\u003cRNBottomActionSheet.SheetView visible={this.state.sheetView} title={\"Awesome!\"} theme={\"light\"} onSelection={(index, value) =\u003e {\n\t\t// value is optional\n\t\tconsole.log(\"selection: \" + index + \" \" + value);\n\t}}\u003e\n\t\t\u003cRNBottomActionSheet.SheetView.Item title={\"Facebook\"} subTitle={\"Facebook Description\"} icon={facebook} /\u003e\n\t\t\u003cRNBottomActionSheet.SheetView.Item title={\"Instagram\"} subTitle={\"Instagram Description\"} icon={instagram} /\u003e\n\t\u003c/RNBottomActionSheet.SheetView\u003e\n\t```\n\n\u003e **Note:**\n\u003e - We have added `family` prop for `Icon` class, please make sure that you pass the props\n\n\n- **Grid View**\n\n\t- **API Way**\n\n\t```javascript\n\tlet facebook = \u003cIcon family={'FontAwesome'} name={'facebook'} color={'#000000'} size={30} /\u003e\n\tlet instagram = \u003cIcon family={'FontAwesome'} name={'instagram'} color={'#000000'} size={30} /\u003e\n\n\tlet GridView = RNBottomActionSheet.GridView\n\t\tGridView.Show({\n\t\t\ttitle: \"Awesome!\",\n\t\t\titems: [\n\t\t\t{ title: \"Facebook\", icon: facebook },\n\t\t\t{ title: \"Instagram\", icon: instagram }\n\t\t\t],\n\t\t\ttheme: 'light',\n\t\t\tonSelection: (index, value) =\u003e {\n\t\t\tconsole.log('selection: ' + index + ' ' + value)\n\t\t\t}\n\t\t});\n\t```\n\n\t- **React Way**\n\n\t```javascript\n\tlet facebook = \u003cIcon family={'FontAwesome'} name={'facebook'} color={'#000000'} size={30} /\u003e\n\tlet instagram = \u003cIcon family={'FontAwesome'} name={'instagram'} color={'#000000'} size={30} /\u003e\n\n\t\u003cRNBottomActionSheet.GridView visible={this.state.gridView} title={\"Awesome!\"} theme={\"light\"} selection={3} onSelection={(index, value) =\u003e {\n\t\tconsole.log('selection: ' + index + ' ' + value);\n\t\t}}\u003e\n\t\t\u003cRNBottomActionSheet.GridView.Item title={\"Facebook\"} icon={facebook} /\u003e\n\t\t\u003cRNBottomActionSheet.GridView.Item title={\"Instagram\"} icon={instagram} /\u003e\n\t\u003c/RNBottomActionSheet.GridView\u003e\n\n\t```\n\n\n- **Alert View**\n\n\t- **API Way**\n\n\t```javascript\n\tlet AlertView = RNBottomActionSheet.AlertView\n\t\tAlertView.Show({\n\t\ttitle: \"Awesome!\",\n\t\tmessage: \"What can we improve? Your feedback is always welcome.\",\n\t\tpositiveText: \"OK\",\n\t\tpositiveBackgroundColor: \"#eeffee\",\n\t\tpositiveTextColor: \"#006500\",\n\t\tnegativeText: \"Exit\",\n\t\tnegativeBackgroundColor: \"#ffebeb\",\n\t\tnegativeTextColor: \"#760000\",\n\t\ttheme: 'light',\n\t\tonPositive: () =\u003e {\n\t\t\tconsole.log('positive clicked')\n\t\t},\n\t\tonNegative: () =\u003e {\n\t\t\tconsole.log('negative clicked')\n\t\t}\n\t\t})\n\t```\n\n\t- **React Way**\n\n\t```javascript\n\t\u003cRNBottomActionSheet.AlertView\n\t\tvisible={this.state.alterView}\n\t\ttitle={\"Awesome!\"}\n\t\tmessage={\"What can we improve? Your feedback is always welcome.\"}\n\t\tpositiveText={\"OK\"}\n\t\tpositiveBackgroundColor={\"#eeffee\"}\n\t\tpositiveTextColor={\"#006500\"}\n\t\tnegativeText={\"Exit\"}\n\t\tnegativeBackgroundColor={\"#ffebeb\"}\n\t\tnegativeTextColor={\"#760000\"}\n\t\ttheme={\"light\"}\n\t\tonPositive={() =\u003e {\n\t\t\tconsole.log(\"positive clicked\");\n\t\t}}\n\t\tonNegative={() =\u003e {\n\t\t\tconsole.log(\"negative clicked\");\n\t\t}} /\u003e\n\t```\n\n## 🎨 APIs\n\n- **Sheet View**\n\n\t- **Generic**\n\t\t- `title: string`\n\t\t- `items: Array\u003c{ title: string, subTitle: string, icon?: image, value?: mixed }\u003e - subTitle: iOS Only`\n\t\t- `onSelection: (index: number, value: ?mixed) =\u003e void`\n\t\t- `Show()`\n\n\t- **Android**\n\t\t- `titleTextColor: string` \n\t\t- `itemTextColor: string`\n\t\t- `itemTintColor: string`\n\t\t- `backgroundColor: string`\n\t\t- `delayDismissOnItemClick: bool`\n\t\t- `dividerItem(title: string)`\n\n\t- **iOS**\n\t\t- `theme: string`\n\t\t- `selection: int`\n\n\n- **Grid View**\n\n\t- **Generic**\n\t\t- `title: string`\n\t\t- `items: Array\u003c{ title: string, icon?: image, value?: mixed }\u003e`\n\t\t- `onSelection: (index: number, value: ?mixed) =\u003e void`\n\t\t- `Show()`\n\n\t- **Android**\n\t\t- `itemTextColor: string`\n\t\t- `itemTintColor: string`\n\t\t- `backgroundColor: string`\n\t\t- `delayDismissOnItemClick: bool`\n\n\t- **iOS**\n\t\t- `theme: string`\n\n\n- **Alert View**\n\n\t- **Generic**\n\t\t- `title string`\n\t\t- `message: string`\n\t\t- `positiveText: string`\n\t\t- `positiveBackgroundColor: string`\n\t\t- `positiveTextColor: string`\n\t\t- `negativeText: string`\n\t\t- `negativeBackgroundColor: string`\n\t\t- `negativeTextColor: string`\n\t\t- `onPositive: () =\u003e void`\n\t\t- `onNegative: () =\u003e void`\n\t\t- `Show()`\n\n\t- **Android**\n\n\t- **iOS**\n\t\t- `theme: string - iOS Only`\n\n\n\n## Icons\n\n- **RN Vector Icons:** It supports [react-native-vector-icons](https://github.com/oblador/react-native-vector-icons) library. Please find below snippet for the usage:\n\n```javascript\n\tlet facebook = \u003cIcon family={'FontAwesome'} name={'facebook'} color={'#000000'} size={30} /\u003e\n\n\t\u003cRNBottomActionSheet.GridView.Item title={\"Facebook\"} icon={facebook} /\u003e\n```\n\n\u003e **Note:**\n\u003e - We have added `family` prop for `Icon` class, please make sure that you pass the props\n\n\n- **Custom Icons**\n\n\u003e **Note:**\n\u003e Since we are using native libraries, we have not found a solution in order to render RN Images in production, therefore please copy all your image assets in platform specific folders:\n\n- Android: Please copy your image assets in app resource drawable folder\n- iOS: Please copy your image assets in app resources folder\n\n\u003e Please refer example application for the image usage.\n\n\n## ✨ Credits\n\n- Android BottomSheetBuilder: [rubensousa/BottomSheetBuilder](https://github.com/rubensousa/BottomSheetBuilder)\n- Android BottomDialogs: [javiersantos/BottomDialogs](https://github.com/javiersantos/BottomDialogs)\n- iOS BottomSheet: [sagiwei/SGActionView](https://github.com/sagiwei/SGActionView)\n\n## 🤔 How to contribute\nHave an idea? Found a bug? Please raise to [ISSUES](https://github.com/prscX/react-native-bottom-action-sheet/issues).\nContributions are welcome and are greatly appreciated! Every little bit helps, and credit will always be given.\n\n## 💫 Where is this library used?\nIf you are using this library in one of your projects, add it in this list below. ✨\n\n\n## 📜 License\nThis library is provided under the Apache 2 License.\n\nRNBottomActionSheet @ [prscX](https://github.com/prscX)\n\n## 💖 Support my projects\nI open-source almost everything I can, and I try to reply everyone needing help using these projects. Obviously, this takes time. You can integrate and use these projects in your applications for free! You can even change the source code and redistribute (even resell it).\n\nHowever, if you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it:\n* Starring and sharing the projects you like 🚀\n* If you're feeling especially charitable, please follow [prscX](https://github.com/prscX) on GitHub.\n\n  \u003ca href=\"https://www.buymeacoffee.com/prscX\" target=\"_blank\"\u003e\u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\" alt=\"Buy Me A Coffee\" style=\"height: auto !important;width: auto !important;\" \u003e\u003c/a\u003e\n\n  Thanks! ❤️\n  \u003cbr/\u003e\n  [prscX.github.io](https://prscx.github.io)\n  \u003cbr/\u003e\n  \u003c/ Pranav \u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FprscX%2Freact-native-bottom-action-sheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FprscX%2Freact-native-bottom-action-sheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FprscX%2Freact-native-bottom-action-sheet/lists"}