0.3.5 • Published 3 months ago

@indb/react v0.3.5

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

@indb/react

The react package provides a createStore method that returns a Database instance and several hooks for working with stores from @indb/stores.

API Docs

Example

Working with createStore looks like this:

store.ts

import { type SchemaDefinition } from '@indb/database';
import { createStore } from '@indb/react';

type User = {
  id: string;
  firstName: string;
  lastName: string;
};

type Tables = {
  users: User;
};

const DATABASE_NAME = 'app';
const SCHEMA: SchemaDefinition<Tables> = {
  version: 1,
  stores: {
    users: {
      keyPath: 'id',
    },
  },
};

const { database, useSlice } = createStore<Tables>(DATABASE_NAME, SCHEMA);

export { database, useSlice };

UsersList.tsx

import UserListItem from './UserListItem';
import { type User, useSlice } from './store.ts';

const compareUsers = (left: User, right: User) => {
  const comp = left.lastName.localeCompare(right.lastName);
  return comp === 0 ? left.firstName.localeCompare(right.firstName) : comp;
};

const UsersList = () => {
  const { ids: userIds, index: usersIndex } = useSlice('users', compareUsers);

  return (
    <>
      {userIds.map((userId) => (
        <UserListItem user={usersIndex[userId]!} key={userId} />
      ))}
    </>
  );
};

export default UsersList;
0.3.5

3 months ago

0.3.4

4 months ago

0.3.3

4 months ago

0.3.2

4 months ago

0.3.1

4 months ago

0.2.11

5 months ago

0.3.0

5 months ago

0.2.10

5 months ago

0.2.9

5 months ago

0.2.7

5 months ago

0.2.8

5 months ago

0.2.6

5 months ago

0.2.5

5 months ago

0.2.3

8 months ago

0.2.2

8 months ago

0.2.1

8 months ago

0.2.0

8 months ago

0.1.1

8 months ago

0.1.0

8 months ago