0.0.14 • Published 3 years ago

@bigin/ui-persistent-bottomsheet v0.0.14

Weekly downloads
3
License
Apache-2.0
Repository
-
Last release
3 years ago

NativeScript BottomSheet

NativeScript plugin that allows you to easily add persistent bottomsheet to your projects.

npm npm downloads npm downloads


Table of Contents

  1. Installation
  2. Configuration
  3. API
  4. Usage in Angular
  5. Usage in Vue
  6. Usage in Svelte
  7. Usage in React
  8. Demos

Installation

ns plugin add @nativescript-community/ui-persistent-bottomsheet

Configuration

For gestures to work, make sure to add the following code block inside the main application file (e.g. app.ts):

import { install } from '@nativescript-community/ui-persistent-bottomsheet';
install();

API

Properties

PropertyDefaultTypeDescription
bottomSheetundefinedViewView containing the content for the bottomsheet
gestureEnabledtruebooleanBoolean setting if swipe gestures are enabled
stepIndex0numberthe index of current step (mutable)
steps[70]number[]the different available steps
backdropColornew Color('rgba(0, 0, 0, 0.7)')ColorThe color of the backdrop behind the drawer

Methods

NameReturnDescription
install()voidInstall gestures

Usage in Angular

Import the module into your project.

import { PBSModule } from "@nativescript-community/ui-persistent-bottomsheet/angular";

@NgModule({
    imports: [
        PBSModule
    ]
    schemas: [
        NO_ERRORS_SCHEMA
    ]
})

export class AppModule { }

Then in your component add the following:

<BottomSheet>
    <StackLayout backgroundColor="white">
      <Label text="This is the main content"></Label>
    </StackLayout>
    <GridLayout bottomSheet backgroundColor="white" height="70">
      <Label text="This is the side drawer content"></Label>
    </GridLayout>

   
</BottomSheet>

For a more complete example, look in the demo-ng directory.

Usage in Vue

Register the plugin in your app.js.

import BottomSheetPlugin from '~/components/drawer/vue';
Vue.use(BottomSheetPlugin);

Then in your component add the following:

<BottomSheet>
    <StackLayout backgroundColor="white">
      <Label text="This is the main content" />
    </StackLayout>
    <GridLayout ~bottomSheet backgroundColor="white" height="70">
      <Label text="This is the side drawer content" />
    </GridLayout>

</BottomSheet>

For a more complete example, look in the demo-vue directory.

Usage in Svelte

Register the plugin in your app.ts.

import BottomSheetElement from '@nativescript-community/ui-persistent-bottomsheet/svelte';
BottomSheetElement.register();

Then in your component, add the following:

<bottomsheet>
    <stacklayout  backgroundColor="white">
      <Label text="This is the main content" />
    </stacklayout>
    <gridlayout prop:bottomSheet backgroundColor="white" height="70">
      <Label text="This is the side drawer content" />
    </gridlayout>

</bottomsheet>

For a more complete example, look in the demo-svelte directory.

Usage in React

Register the plugin in your app.ts.

import BottomSheetElement from '@nativescript-community/ui-persistent-bottomsheet/react';
BottomSheetElement.register();

Then in your component, add the following:

import { BottomSheet } from "@nativescript-community/ui-persistent-bottomsheet/react"
<BottomSheet>
  <stackLayout backgroundColor="white">
    <label text="This is the main content" />
  </stackLayout>
  <gridLayout nodeRole="bottomSheet" backgroundColor="white" height="70">
    <label text="This is the side drawer content" />
  </gridLayout>

</BottomSheet>

For a more complete example, look in the demo-react directory.

Demos

This repository includes Angular, Vue.js, and Svelte demos. In order to run these execute the following in your shell:

$ git clone https://github.com/@nativescript-community/ui-persistent-bottomsheet
$ cd ui-drawer
$ npm run i
$ npm run setup
$ npm run build && npm run build.angular
$ cd demo-ng # or demo-vue or demo-svelte or demo-react
$ ns run ios|android