@lifeomic/react-client

v5.12.0
React hooks for interacting with the LifeOmic platform

Hooks for interacting with our platform in a type-safe way. Powered by @tanstack/query and @lifeomic/one-query.

Installation

yarn add @lifeomic/react-client @tanstack/react-query@^4.0.0 @lifeomic/one-query axios

Usage

Note: The API of this package is almost entirely powered by @lifeomic/one-query and @tanstack/query. The following documentation will assume a solid understanding of each of those packages.

Get started using createRestAPIHooks:

import { createRestAPIHooks } from '@lifeomic/react-client';

const hooks = createRestAPIHooks({
  name: 'my-app',
  client: axios.create({
    /* ... */
  }),
});

// Re-export the well-typed hooks.
export const {
  useAPIQuery,
  useAPIMutation
  useCombinedAPIQueries,
  useAPICache
} = hooks;

API Reference

createRestAPIHooks

Factory function for creating a set of well-typed hooks for interacting with the platform REST API.

These hooks come directly from the createAPIHooks function in @lifeomic/one-query.

import { createRestAPIHooks } from '@lifeomic/react-client';

const { useAPIQuery } = createRestAPIHooks({
  name: 'my-app',
  // A pre-configured Axios instance
  client: axios.create({}),
});

useAPIQuery('GET /v1/accounts', {});

Note: you can also specify a hook to use for the client option. This is useful for scenarios where you need to dynamically change the client based on some condition.

import { createRestAPIHooks } from '@lifeomic/react-client';

const hooks = createRestAPIHooks({
  name: 'my-app',
  client: () => {
    return useMyClient();
  },
});

createRestAPIClient

Returns a well-typed client for interacting with the platform REST API. Useful for building your own custom hooks, and/or interacting with the API outside of the React tree.

import { createRestAPIClient } from '@lifeomic/react-client';

const client = createRestAPIClient(axios.create({}));

const { data } = await client.request('GET /v1/accounts', {});

createAuthAPIHooks

Factory function for creating a set of well-typed hooks for interacting with the platform Authentication Rest API.

These hooks come directly from the createAPIHooks function in @lifeomic/one-query.

import { createAuthAPIHooks } from '@lifeomic/react-client';

const { useAPIMutation } = createAuthAPIHooks({
  name: 'my-app',
  // A pre-configured Axios instance
  client: axios.create({}),
});

useAPIMutation('POST /auth/v1/api/invite-validations', {});

Note: you can also specify a hook to use for the client option. This is useful for scenarios where you need to dynamically change the client based on some condition.

import { createAuthAPIHooks } from '@lifeomic/react-client';

const hooks = createAuthAPIHooks({
  name: 'my-app',
  client: () => {
    return useMyClient();
  },
});

createAuthAPIClient

Returns a well-typed client for interacting with the platform REST API. Useful for building your own custom hooks, and/or interacting with the API outside of the React tree.

import { createAuthAPIClient } from '@lifeomic/react-client';

const client = createAuthAPIClient(axios.create({}));

const { data } = await client.request(
  'POST /auth/v1/api/invite-validations',
  {},
);

createGraphQLHooks

Factory function for creating a set of well-typed hooks for interacting with the platform GraphQL API.

import { createGraphQLHooks } from '@lifeomic/react-client';

const { useAPIMutation } = createAuthAPIHooks({
  name: 'my-app',
  // A pre-configured Axios instance
  client: axios.create({}),
});

useGQLMutation(', {});

Note: you can also specify a hook to use for the client option. This is useful for scenarios where you need to dynamically change the client based on some condition.

import { createGraphQLHooks } from '@lifeomic/react-client';

const {
  useGQLQuery,
  useGQLMutation
} = createAuthAPIHooks({
  name: 'my-app',
  client: () => {
    return useMyClient();
  },
});

useGQLQuery('GetAllActivities', {...})

useGQLMutation('CreatePost')

createGraphQLClient

Returns a well-typed client for interacting with the platform REST API. Useful for building your own custom hooks, and/or interacting with the API outside of the React tree.

import { createGraphQLClient } from '@lifeomic/react-client';

const client = createGraphQLClient(axios.create({}), '/graphql');

const result = await client.query('GetAllActivities', {
  // ...
});

const result = await client.mutate('CreatePost', {
  // ...
});
npm i @lifeomic/react-client

Metadata

  • MIT
  • Whatever
  • LifeOmic
  • released 10/11/2024

Downloads