-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(admin-ui): Add React useLazyQuery hook (#2498)
- Loading branch information
1 parent
ae91650
commit 757635b
Showing
2 changed files
with
139 additions
and
0 deletions.
There are no files selected for viewing
74 changes: 74 additions & 0 deletions
74
docs/docs/reference/admin-ui-api/react-hooks/use-lazy-query.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
--- | ||
title: "UseLazyQuery" | ||
isDefaultIndex: false | ||
generated: true | ||
--- | ||
<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script --> | ||
import MemberInfo from '@site/src/components/MemberInfo'; | ||
import GenerationInfo from '@site/src/components/GenerationInfo'; | ||
import MemberDescription from '@site/src/components/MemberDescription'; | ||
|
||
|
||
## useLazyQuery | ||
|
||
<GenerationInfo sourceFile="packages/admin-ui/src/lib/react/src/react-hooks/use-query.ts" sourceLine="113" packageName="@vendure/admin-ui" since="2.2.0" /> | ||
|
||
A React hook which allows you to execute a GraphQL query. | ||
|
||
*Example* | ||
|
||
```ts | ||
import { useLazyQuery } from '@vendure/admin-ui/react'; | ||
import { gql } from 'graphql-tag'; | ||
|
||
const GET_PRODUCT = gql` | ||
query GetProduct($id: ID!) { | ||
product(id: $id) { | ||
id | ||
name | ||
description | ||
} | ||
}`; | ||
type ProductResponse = { | ||
product: { | ||
name: string | ||
description: string | ||
} | ||
} | ||
|
||
export const MyComponent = () => { | ||
const [getProduct, { data, loading, error }] = useLazyQuery<ProductResponse>(GET_PRODUCT); | ||
|
||
const handleClick = () => { | ||
getProduct({ | ||
id: '1', | ||
}).then(result => { | ||
// do something with the result | ||
}); | ||
}; | ||
|
||
if (loading) return <div>Loading...</div>; | ||
if (error) return <div>Error! { error }</div>; | ||
|
||
return ( | ||
<div> | ||
<button onClick={handleClick}>Get product</button> | ||
{data && ( | ||
<div> | ||
<h1>{data.product.name}</h1> | ||
<p>{data.product.description}</p> | ||
</div>)} | ||
</div> | ||
); | ||
}; | ||
``` | ||
|
||
```ts title="Signature" | ||
function useLazyQuery<T, V extends Record<string, any> = Record<string, any>>(query: DocumentNode | TypedDocumentNode<T, V>): void | ||
``` | ||
Parameters | ||
|
||
### query | ||
|
||
<MemberInfo kind="parameter" type={`DocumentNode | TypedDocumentNode<T, V>`} /> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters