# Basic Usage Always prioritize using a supported framework over using the generated SDK directly. Supported frameworks simplify the developer experience and help ensure best practices are followed. ### React For each operation, there is a wrapper hook that can be used to call the operation. Here are all of the hooks that get generated: ```ts import { useCreateMovie, useUpsertUser, useAddReview, useDeleteReview, useListMovies, useListUsers, useListUserReviews, useGetMovieById, useSearchMovie } from '@dataconnect/generated/react'; // The types of these hooks are available in react/index.d.ts const { data, isPending, isSuccess, isError, error } = useCreateMovie(createMovieVars); const { data, isPending, isSuccess, isError, error } = useUpsertUser(upsertUserVars); const { data, isPending, isSuccess, isError, error } = useAddReview(addReviewVars); const { data, isPending, isSuccess, isError, error } = useDeleteReview(deleteReviewVars); const { data, isPending, isSuccess, isError, error } = useListMovies(); const { data, isPending, isSuccess, isError, error } = useListUsers(); const { data, isPending, isSuccess, isError, error } = useListUserReviews(); const { data, isPending, isSuccess, isError, error } = useGetMovieById(getMovieByIdVars); const { data, isPending, isSuccess, isError, error } = useSearchMovie(searchMovieVars); ``` Here's an example from a different generated SDK: ```ts import { useListAllMovies } from '@dataconnect/generated/react'; function MyComponent() { const { isLoading, data, error } = useListAllMovies(); if(isLoading) { return
Loading...
} if(error) { return
An Error Occurred: {error}
} } // App.tsx import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import MyComponent from './my-component'; function App() { const queryClient = new QueryClient(); return } ``` ## Advanced Usage If a user is not using a supported framework, they can use the generated SDK directly. Here's an example of how to use it with the first 5 operations: ```js import { createMovie, upsertUser, addReview, deleteReview, listMovies, listUsers, listUserReviews, getMovieById, searchMovie } from '@dataconnect/generated'; // Operation CreateMovie: For variables, look at type CreateMovieVars in ../index.d.ts const { data } = await CreateMovie(dataConnect, createMovieVars); // Operation UpsertUser: For variables, look at type UpsertUserVars in ../index.d.ts const { data } = await UpsertUser(dataConnect, upsertUserVars); // Operation AddReview: For variables, look at type AddReviewVars in ../index.d.ts const { data } = await AddReview(dataConnect, addReviewVars); // Operation DeleteReview: For variables, look at type DeleteReviewVars in ../index.d.ts const { data } = await DeleteReview(dataConnect, deleteReviewVars); // Operation ListMovies: const { data } = await ListMovies(dataConnect); // Operation ListUsers: const { data } = await ListUsers(dataConnect); // Operation ListUserReviews: const { data } = await ListUserReviews(dataConnect); // Operation GetMovieById: For variables, look at type GetMovieByIdVars in ../index.d.ts const { data } = await GetMovieById(dataConnect, getMovieByIdVars); // Operation SearchMovie: For variables, look at type SearchMovieVars in ../index.d.ts const { data } = await SearchMovie(dataConnect, searchMovieVars); ```