How to use react-loads - 10 common examples

To help you get started, we’ve selected a few react-loads examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github jxom / react-loads / examples / with-typescript / src / index.tsx View on Github external
function App() {
  const getUsers = React.useCallback(async (): Promise => {
    const response = await axios.get('https://jsonplaceholder.typicode.com/users');
    return response.data;
  }, []);
  const getUsersRecord = useLoads('users', getUsers);
  const users = (getUsersRecord.response || []);

  return (
    
      
        Users
        {getUsersRecord.isPending && }
        {getUsersRecord.isResolved && (
          
            {users.map(user => (
              {user.name}
            ))}
          
        )}
        {getUsersRecord.isRejected && Error! {getUsersRecord.error.message}}
github jxom / react-loads / examples / top-movies / src / MovieList.js View on Github external
export default function MovieList(props) {
  const { onSelectMovie } = props;

  const getMoviesRecord = Loads.useLoads('movies', api.getMovies);
  const movies = getMoviesRecord.response || [];

  return (
    
      Jake's Top Movies
      {getMoviesRecord.isPending && }
      {getMoviesRecord.isResolved && (
        
          {movies.map(movie => (
             onSelectMovie(movie)} />
          ))}
        
      )}
    
  );
}
github jxom / react-loads / examples / render-as-you-fetch / basic / src / MovieList.js View on Github external
export default function MovieList(props) {
  const { loadingMovieId, onSelectMovie } = props;

  const moviesRecord = Loads.useLoads('movies', api.getMovies);
  const movies = moviesRecord.response || [];

  return (
    
      Jake's Top Movies
      
        {movies.map(movie => (
           onSelectMovie(movie)}
          />
        ))}
github jxom / react-loads / examples / basic / src / index.js View on Github external
function App() {
  const getUsers = React.useCallback(async () => {
    const response = await axios.get('https://jsonplaceholder.typicode.com/users');
    return response.data;
  }, []);
  const usersRecord = useLoads('users', getUsers);
  const users = usersRecord.response || [];

  return (
    
      
        Users
        {usersRecord.isPending && }
        {usersRecord.isResolved && (
          
            {users.map(user => (
              {user.name}
            ))}
          
        )}
        {usersRecord.isRejected && Error! {usersRecord.error.message}}
github jxom / react-loads / examples / top-movies / src / MovieDetails.js View on Github external
export default function MovieDetails(props) {
  const { movieId, onClickBack } = props;

  const getMovieRecord = Loads.useLoads('movie', api.getMovie, { variables: [movieId] });
  const movie = getMovieRecord.response || {};

  const getReviewsRecord = Loads.useLoads('movieReviews', api.getReviewsByMovieId, { variables: [movieId] });
  const reviews = getReviewsRecord.response || [];

  return (
    
      <button>Back</button>
      <button>
        Reload
      </button>
      {getMovieRecord.isPending &amp;&amp; }
      {getMovieRecord.isResolved &amp;&amp; (
github jxom / react-loads / examples / top-movies / src / MovieDetails.js View on Github external
export default function MovieDetails(props) {
  const { movieId, onClickBack } = props;

  const getMovieRecord = Loads.useLoads('movie', api.getMovie, { variables: [movieId] });
  const movie = getMovieRecord.response || {};

  const getReviewsRecord = Loads.useLoads('movieReviews', api.getReviewsByMovieId, { variables: [movieId] });
  const reviews = getReviewsRecord.response || [];

  return (
    
      <button>Back</button>
      <button>
        Reload
      </button>
      {getMovieRecord.isPending &amp;&amp; }
      {getMovieRecord.isResolved &amp;&amp; (
        
          
            
              {movie.title}
github jxom / react-loads / examples / render-as-you-fetch / with-resources / src / resources.js View on Github external
import * as Loads from 'react-loads';
import * as api from './api';

export const moviesResource = Loads.createResource({
  context: 'movies',
  fn: api.getMovies
});

export const movieResource = Loads.createResource({
  context: 'movie',
  fn: api.getMovie
});

export const movieReviewsResource = Loads.createResource({
  context: 'movieReviews',
  fn: api.getReviewsByMovieId
});
github jxom / react-loads / examples / render-as-you-fetch / with-resources / src / resources.js View on Github external
import * as Loads from 'react-loads';
import * as api from './api';

export const moviesResource = Loads.createResource({
  context: 'movies',
  fn: api.getMovies
});

export const movieResource = Loads.createResource({
  context: 'movie',
  fn: api.getMovie
});

export const movieReviewsResource = Loads.createResource({
  context: 'movieReviews',
  fn: api.getReviewsByMovieId
});
github jxom / react-loads / examples / render-as-you-fetch / with-resources / src / resources.js View on Github external
import * as Loads from 'react-loads';
import * as api from './api';

export const moviesResource = Loads.createResource({
  context: 'movies',
  fn: api.getMovies
});

export const movieResource = Loads.createResource({
  context: 'movie',
  fn: api.getMovie
});

export const movieReviewsResource = Loads.createResource({
  context: 'movieReviews',
  fn: api.getReviewsByMovieId
});
github jxom / react-loads / examples / with-resources / src / index.js View on Github external
const currentUsers = meta.cachedRecord.response;
    const newUser = response.data.data;
    return [...currentUsers, newUser];
  };
}

function deleteUser(user) {
  return async meta => {
    await axios.delete(`https://jsonplaceholder.typicode.com/users/${user.id}`);
    const currentUsers = meta.cachedRecord.response;
    const newUsers = currentUsers.filter(_user => _user.id !== user.id);
    return newUsers;
  };
}

export const usersResource = Loads.createResource({
  context: 'users',
  fn: getUsers,
  add: addUser,
  delete: deleteUser
});

function App() {
  const [name, setName] = React.useState();
  const [deletingUserId, setDeletingUserId] = React.useState();

  const getUsersRecord = usersResource.useLoads();
  const users = getUsersRecord.response;

  const addUserRecord = usersResource.add.useDeferredLoads();

  const deleteUserRecord = usersResource.delete.useDeferredLoads();

react-loads

A simple React component to handle loading state

MIT
Latest version published 3 years ago

Package Health Score

48 / 100
Full package analysis