# 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 { useCreateStaff, useListStaff, useCreateVendor, useUpdateVendor, useDeleteVendor, useListVendor, useGetVendorById, useFilterVendors, useCreateEvent, useUpdateEvent } from '@dataconnect/generated/react';
// The types of these hooks are available in react/index.d.ts

const { data, isPending, isSuccess, isError, error } = useCreateStaff(createStaffVars);

const { data, isPending, isSuccess, isError, error } = useListStaff();

const { data, isPending, isSuccess, isError, error } = useCreateVendor(createVendorVars);

const { data, isPending, isSuccess, isError, error } = useUpdateVendor(updateVendorVars);

const { data, isPending, isSuccess, isError, error } = useDeleteVendor(deleteVendorVars);

const { data, isPending, isSuccess, isError, error } = useListVendor();

const { data, isPending, isSuccess, isError, error } = useGetVendorById(getVendorByIdVars);

const { data, isPending, isSuccess, isError, error } = useFilterVendors(filterVendorsVars);

const { data, isPending, isSuccess, isError, error } = useCreateEvent(createEventVars);

const { data, isPending, isSuccess, isError, error } = useUpdateEvent(updateEventVars);

```

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 <div>Loading...</div>
  }
  if(error) {
    return <div> An Error Occurred: {error} </div>
  }
}

// App.tsx
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import MyComponent from './my-component';

function App() {
  const queryClient = new QueryClient();
  return <QueryClientProvider client={queryClient}>
    <MyComponent />
  </QueryClientProvider>
}
```



## 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 { createStaff, listStaff, createVendor, updateVendor, deleteVendor, listVendor, getVendorById, filterVendors, createEvent, updateEvent } from '@dataconnect/generated';


// Operation CreateStaff:  For variables, look at type CreateStaffVars in ../index.d.ts
const { data } = await CreateStaff(dataConnect, createStaffVars);

// Operation listStaff: 
const { data } = await ListStaff(dataConnect);

// Operation CreateVendor:  For variables, look at type CreateVendorVars in ../index.d.ts
const { data } = await CreateVendor(dataConnect, createVendorVars);

// Operation UpdateVendor:  For variables, look at type UpdateVendorVars in ../index.d.ts
const { data } = await UpdateVendor(dataConnect, updateVendorVars);

// Operation DeleteVendor:  For variables, look at type DeleteVendorVars in ../index.d.ts
const { data } = await DeleteVendor(dataConnect, deleteVendorVars);

// Operation listVendor: 
const { data } = await ListVendor(dataConnect);

// Operation getVendorById:  For variables, look at type GetVendorByIdVars in ../index.d.ts
const { data } = await GetVendorById(dataConnect, getVendorByIdVars);

// Operation filterVendors:  For variables, look at type FilterVendorsVars in ../index.d.ts
const { data } = await FilterVendors(dataConnect, filterVendorsVars);

// Operation CreateEvent:  For variables, look at type CreateEventVars in ../index.d.ts
const { data } = await CreateEvent(dataConnect, createEventVars);

// Operation UpdateEvent:  For variables, look at type UpdateEventVars in ../index.d.ts
const { data } = await UpdateEvent(dataConnect, updateEventVars);


```