pocketbase-rn
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

PocketBase React SDK

This projected was forked and modified from tobicrain/pocketbase-react.

Pocketbase provider for react native. Check out PocketBase JS SDK.

Installation

React, React Native or Expo

# Using npm
npm install https://github.com/lab551/pocketbase-rn  --save

#Using yarn
yarn add https://github.com/lab551/pocketbase-rn
import { Pocketbase } from 'pocketbase-rn';

Usage

// App.tsx
import { Pocketbase } from 'pocketbase-rn';

const serverURL = "YOUR_SERVER_URL"
const collections = ['COLLECTION_NAME_01', 'COLLECTION_NAME_02']
const webRedirectURL = "http://..."
const mobileRedirectURL = "expo://..." // for example

<Pocketbase
      serverURL={serverURL}
      initialCollections={collections}
      webRedirectURL={webRedirectURL}
      mobileRedirectURL={mobileRedirectURL}
      openURL={async (url) => {
        // for example expo WebBrowser
        await WebBrowser.openBrowserAsync(url);
      }}>
    <APP />
</Pocketbase>

Caveats

import { useAppContent, useAuth } from 'pocketbase-rn';

Records

Reading the records value directly accesses the Redux Store.

The value will be changed automatically by the following actions:

Without Initial Fetch

// Corresponds to the stored Redux value, simply reads without making further PocketBase requests
const { records } = useAppContent('COLLECTION_NAME_01');

With Initial Fetch

// When initializing, the desired table is queried once and updated in Redux, records corresponds to the stored Redux value
const { records } = useAppContent('COLLECTION_NAME_01', true);

Actions

const { actions } = useAppContent('COLLECTION_NAME_01');

All following actions are performed on the desired table, in this case -> COLLECTION_NAME_01

⚠️ All actions will not return anything, they will just modify the Redux value according to their intention

Subscribe

actions.subscribe();

Unsubscribe

actions.unsubscribe();

Refetch

actions.refetch();

Create

const object = {};
actions.create(object);

Update

const id = 'SOME_ID';
const object = {};
actions.update(id, object);

DELETE

const id = 'SOME_ID';
actions.delete(id);

Auth

const { actions } = useAuth();

Register with Email

await actions.registerWithEmail(email: string, password: string);

Sign-In with Email

await actions.signInWithEmail(email: string, password: string);

Sign-In with Provider

await actions.signInWithProvider(provider: string);

Submit Provider Result

await actions.submitProviderResult(url: string);

Sign-Out

actions.signOut();

Send password reset email

await actions.sendPasswordResetEmail(email: string);

Send email verification

await actions.sendEmailVerification(email: string);

Update profile

await actions.updateProfile(id: string, record: {});

Update profile

await actions.updateEmail(email: string);

Delete user

await actions.deleteUser(id: string);

Package Sidebar

Install

npm i pocketbase-rn

Weekly Downloads

4

Version

0.2.1

License

MIT

Unpacked Size

411 kB

Total Files

97

Last publish

Collaborators

  • lab551