Nature's Powerful Meme

    @applicaster/zapp-react-native-bridge
    TypeScript icon, indicating that this package has built-in type declarations

    7.0.3 • Public • Published

    Zapp React Native Bridge

    CircleCI npm version

    logo

    This package contains the interface for the Zapp App's native Module.

    Available Modules

    QuickBrick

    sendQuickBrickEvent(eventName<String>, payload<Object?>)

    Description

    Sends an event from JS to the QuickBrick Communication Module.

    Available events :

    • quickBrickReady: no payload required. This event tells the native side that the quick brick app is ready to be presented. This event must be fired, otherwise the React Native view will not appear in the app
    • setPrefersHomeIndicatorAutoHidden: payload: {autoHidden: boole} iOS only. This event tells the native side to enable/disable home indicator auto-hide.
    Usage
    import React from "react";
    import { AppRegistry } from "react-native";
    import { sendQuickBrickEvent } from "@applicaster/zapp-react-native-bridge/QuickBrick";
    
    import { appLoader } from "...";
    
    class App extends React.Component {
      componentDidMount() {
        appLoader().then(() => sendQuickBrickEvent("quickBrickReady"));
      }
    
      render() {
        return (
          <View>
            <Text>
              This app will show when the appLoader resolves, but not before
            </Text>
          </View>
        );
      }
    }

    getAppData(): Object

    Description

    This function will return the app data constants defined on the native side. Since this is exported as Native Module constants, their access is synchronous, and don't require to use a promise or async / await

    Usage
    import { getAppData } from "@applicaster/zapp-react-native-bridge/QuickBrick";
    
    const appData = getAppData();
    // appData = { bundleIdentifier: ..., accountId: ..., ...};

    ZappPipes

    bootstrapZappPipes(providers: Array<ProviderModules>): ZappPipesAdapter

    Description

    Bootstraps the ZappPipes adapter with the app's plugin, and returns an object which can used to perform zapp pipes requests

    Usage
    // this is an illustration of the required input - in the app, the list of providers should come from the app's plugin configuration
    import applicasterProvider from "@applicaster/zapp-pipes-provider-applicaster";
    import generalProvider from "@applicaster/zapp-pipes-provider-general";
    
    const providers = [applicasterProvider, generalProvider];
    
    const zappPipesAdapter = bootstrapZappPipes(providers);
    zappPipesAdapter.get(
      "general://fetchData?type=ATOM_XML&url=...",
      ({ code, response, url }) => {
        // handle response
      }
    );

    Contributing

    In order to add a module here, simply add a folder with your native module, and document here your module and its methods

    To access your module, import it with the path to your module's folder

    import { MyAwesomeModuleFunction } from "@applicaster/zapp-react-native-bridge/MyAwesomeModule";

    Favorites

    Manages favorites in the app by storing stringified jsons in local storage, associated to a key which is the item id property. When using isFavorite, setAsFavorite, or removeFromFavorite, if the item passed has no id property it will throw.

    All methods return a promise, and reject if an error happens.

    • isFavorite(item: Object): Promise<Boolean> : tells wether an item is in favorites or not
    • setAsFavorite(item: Object): Promise<Boolean> : sets an item as favorite
    • removeFromFavorites(item: Object): Promise<Boolean> : removes an item from favorites
    • getAllFavorites(): Promise<{ id: Object }>: returns a map of all the favorites
    import {
      isFavorite,
      setAsFavorite,
      removeFromFavorites,
      getAllFavorites,
    } from "@applicaster/zapp-react-native-bridge/Favorites";
    const isItemFavorite = await isFavorite(item);
    if (isItemFavorite) {
      await removeFromFavorites(item);
    } else {
      await setAsFavorite(item);
    }
    
    const favorites = await getAllFavorites();
    
    Object.keys(favorites).map((key) => {
      // item with id ${key} is accessible at favorites[key];
    });

    Install

    npm i @applicaster/zapp-react-native-bridge

    DownloadsWeekly Downloads

    7,133

    Version

    7.0.3

    License

    MIT

    Unpacked Size

    100 kB

    Total Files

    59

    Last publish

    Collaborators

    • f-roland-applicaster
    • zapp-ci
    • meirmanr
    • applicaster-devs
    • applicaster-external-devs