docking-bottom-sheet

DockingBottomSheet offers a React Native component that takes in 2 types of content views as props. One is Main content view and the other is Bottom-Sheet content view. Initially Main view is the active view when Bottom-Sheet is docked at the bottom. It c

Usage no npm install needed!

<script type="module">
  import dockingBottomSheet from 'https://cdn.skypack.dev/docking-bottom-sheet';
</script>

README

docking-bottom-sheet NPM version Build Status

Demo link: https://github.com/iamrajatsoni/DockingBottomSheet/tree/master/demo

DockingBottomSheet

DockingBottomSheet offers a React Native component that takes in 2 types of content views as props. One is Main content view and the other is Bottom-Sheet content view. Initially Main view is the active view when Bottom-Sheet is docked at the bottom. It can also be expanded and docked at the top by dragging or using function expandBottomSheet(). Once expanded, dockBottomSheet() function can be used to programmatically dock the rendered bottom-sheet. Various other props are exposed that can be used to customise DockingBottomSheet depending on one's requirement.

Installation

$ npm i docking-bottom-sheet

Import and Basic Usage

Import

import DockingBottomSheet from 'docking-bottom-sheet'
var DockingBottomSheet = require('docking-bottom-sheet');

Basic Usage

<DockingBottomSheet
    ref={ (bottomSheetRef)=> this.bottomSheetRef = bottomSheetRef }
    containerStyle={ <style object> }
    dockHeight={ <number> }
    sheetExpandedTopOffset={ <number> }
    sheetDarknessAlpha={ <float (0 to 1)> }
    mainViewDownScale={ <float (0 to 1)> }
    mainContentView={ <function that returns UI elements> }
    bottomSheetContentView={ <function that returns UI elements> }
/>

Props

  • containerStyle [Object]: Styling for View that holds main-view and bottom-sheet views. default: { flex: 1 }

  • dockHeight [Number]: Visible height of bottom-sheet when it is docked at the bottom. default: 96

  • sheetExpandedTopOffset [Number]: Top-offset of bottom-sheet in its expanded state. default: 128

  • sheetDarknessAlpha [Float]: The final background darkness alpha of bottom-sheet when its completely expanded. default: 0.7

  • mainViewDownScale [Float]: The final scale-down value of View [main-view] behind bottom-sheet scales down when its completely expanded. default: 0.9

  • mainContentView [Function]: Function that returns View[main-view] to be rendered behind bottom-sheet. default: () => null

  • bottomSheetContentView [Function]: Function that returns View to be rendered as bottom-sheet [Note: the bottom-sheet itself is a scroll-view so do not pass scroll-view as parent view-element to this prop]. default: () => null

Functions

  • expandBottomSheet(): Used to programmatically expand bottom-sheet. eg. bottomSheetRef.expandBottomSheet()

  • dockBottomSheet(): Used to programmatically dock bottom-sheet at the bottom. eg. bottomSheetRef.dockBottomSheet()

Note

  • Bottom-Sheet's parent is a React Native ScrollView, hence avoid passing ScrollView as root component to prop bottomSheetContentView.

License

MIT © Rajat Soni