Skip to content
This repository was archived by the owner on Aug 30, 2022. It is now read-only.

Commit 5383c3c

Browse files
Claim conditions for NFTContracts (#133)
* Add react import * v2.6.5-0 * v2.6.5 * wip * Accept NFTContract on claim conditions hooks * Add useSetClaimConditions hook * Fix ts and docs * v2.6.6-0
1 parent d9b0e31 commit 5383c3c

11 files changed

+495
-73
lines changed

docs/react.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,14 @@ import { useNetworkMistmatch } from "@thirdweb-dev/react"
100100
| [usePack(contractAddress)](./react.usepack.md) | Hook for getting an instance of a <code>Pack</code> contract. This contract supports the creation of on-chain luck-based lootboxes. |
101101
| [usePlatformFees(contract)](./react.useplatformfees.md) | <b><i>(BETA)</i></b> Use this to get the platform fees settings of your |
102102
| [usePrimarySaleRecipient(contract)](./react.useprimarysalerecipient.md) | <b><i>(BETA)</i></b> |
103+
| [useResetClaimConditions(\[contract, tokenId\])](./react.useresetclaimconditions.md) | <b><i>(BETA)</i></b> Use this to reset claim conditions on your [NFTContract](./react.nftcontract.md) |
103104
| [useResolvedMediaType(uri)](./react.useresolvedmediatype.md) | |
104105
| [useRevokeRole(contract)](./react.userevokerole.md) | <b><i>(BETA)</i></b> Use this to revoke a [WalletAddress](./react.walletaddress.md) a specific role on a |
105106
| [useRoleMembers(contract, role)](./react.userolemembers.md) | <b><i>(BETA)</i></b> Use this to get the members of a role on a |
106107
| [useRoyaltySettings(contract)](./react.useroyaltysettings.md) | <b><i>(BETA)</i></b> Use this to get the royalty settings of your |
107108
| [useSDK()](./react.usesdk.md) | |
108109
| [useSetAllRoleMembers(contract)](./react.usesetallrolemembers.md) | <b><i>(BETA)</i></b> Use this to OVERWRITE the list of addresses that are members of specific roles |
110+
| [useSetClaimConditions(\[contract, tokenId\])](./react.usesetclaimconditions.md) | <b><i>(BETA)</i></b> Use this to set claim conditions on your [NFTContract](./react.nftcontract.md) |
109111
| [useSignatureDrop(contractAddress)](./react.usesignaturedrop.md) | Hook for getting an instance of an <code>SignatureDrop</code> contract. This contract is meant to interface with ERC721 compliant NFTs that can be lazily minted. |
110112
| [useSplit(contractAddress)](./react.usesplit.md) | Hook for getting an instance of a <code>Split</code> contract. This contract supports fund distribution to multiple parties. |
111113
| [useToken(contractAddress)](./react.usetoken.md) | Hook for getting an instance of an <code>Token</code> contract. This contract supports ERC20 compliant tokens. |
@@ -175,6 +177,7 @@ import { useWalletConnect } from "@thirdweb-dev/react"
175177
| [NFT](./react.nft.md) | <b><i>(BETA)</i></b> A single NFT token |
176178
| [NFTContract](./react.nftcontract.md) | <b><i>(BETA)</i></b> The possible NFT contract types. |
177179
| [RequiredParam](./react.requiredparam.md) | <b><i>(BETA)</i></b> Makes a parameter required to be passed, but still allowes it to be undefined. |
180+
| [SetClaimConditionsParams](./react.setclaimconditionsparams.md) | <b><i>(BETA)</i></b> The params for the [useSetClaimConditions()](./react.usesetclaimconditions.md) hook mutation. |
178181
| [TokenBurnParams](./react.tokenburnparams.md) | <b><i>(BETA)</i></b> The parameters to pass to the burn function. |
179182
| [TokenParams](./react.tokenparams.md) | <b><i>(BETA)</i></b> The parameters to pass to the mint and transfer functions. |
180183
| [TransferNFTParams](./react.transfernftparams.md) | <b><i>(BETA)</i></b> The params to pass to <code>useTransferNFT</code>. |
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [@thirdweb-dev/react](./react.md) &gt; [SetClaimConditionsParams](./react.setclaimconditionsparams.md)
4+
5+
## SetClaimConditionsParams type
6+
7+
> This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8+
>
9+
10+
The params for the [useSetClaimConditions()](./react.usesetclaimconditions.md) hook mutation.
11+
12+
<b>Signature:</b>
13+
14+
```typescript
15+
export declare type SetClaimConditionsParams = {
16+
phases: ClaimConditionInput[];
17+
reset?: boolean;
18+
};
19+
```

docs/react.useactiveclaimcondition.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Use this to get the active claim conditon for ERC20, ERC721 or ERC1155 based con
1212
<b>Signature:</b>
1313

1414
```typescript
15-
export declare function useActiveClaimCondition<TContract extends NFTDrop | EditionDrop | TokenDrop | SignatureDrop>(...[contract, tokenId]: ActiveClaimConditionParams<TContract>): import("@tanstack/react-query").UseQueryResult<{
15+
export declare function useActiveClaimCondition<TContract extends NFTContract>(...[contract, tokenId]: ClaimConditionsInputParams<TContract>): import("@tanstack/react-query").UseQueryResult<{
1616
snapshot?: {
1717
address: string;
1818
maxClaimable: string;
@@ -40,7 +40,7 @@ export declare function useActiveClaimCondition<TContract extends NFTDrop | Edit
4040

4141
| Parameter | Type | Description |
4242
| --- | --- | --- |
43-
| \[contract, tokenId\] | ActiveClaimConditionParams&lt;TContract&gt; | |
43+
| \[contract, tokenId\] | ClaimConditionsInputParams&lt;TContract&gt; | |
4444

4545
<b>Returns:</b>
4646

docs/react.useclaimconditions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Use this to get all claim conditons for ERC20, ERC721 or ERC1155 based contracts
1212
<b>Signature:</b>
1313

1414
```typescript
15-
export declare function useClaimConditions<TContract extends NFTDrop | EditionDrop | TokenDrop | SignatureDrop>(...[contract, tokenId]: ActiveClaimConditionParams<TContract>): import("@tanstack/react-query").UseQueryResult<{
15+
export declare function useClaimConditions<TContract extends NFTContract>(...[contract, tokenId]: ClaimConditionsInputParams<TContract>): import("@tanstack/react-query").UseQueryResult<{
1616
snapshot?: {
1717
address: string;
1818
maxClaimable: string;
@@ -40,7 +40,7 @@ export declare function useClaimConditions<TContract extends NFTDrop | EditionDr
4040

4141
| Parameter | Type | Description |
4242
| --- | --- | --- |
43-
| \[contract, tokenId\] | ActiveClaimConditionParams&lt;TContract&gt; | |
43+
| \[contract, tokenId\] | ClaimConditionsInputParams&lt;TContract&gt; | |
4444

4545
<b>Returns:</b>
4646

docs/react.useclaimineligibilityreasons.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Use this to check for reasons that prevent claiming for either ERC20, ERC721 or
1212
<b>Signature:</b>
1313

1414
```typescript
15-
export declare function useClaimIneligibilityReasons<TContract extends NFTDrop | EditionDrop | TokenDrop | SignatureDrop>(...[contract, params, tokenId]: ClaimIneligibilityInputParams<TContract>): import("@tanstack/react-query").UseQueryResult<import("@thirdweb-dev/sdk/dist/browser").ClaimEligibility[], unknown>;
15+
export declare function useClaimIneligibilityReasons<TContract extends NFTContract>(...[contract, params, tokenId]: ClaimIneligibilityInputParams<TContract>): import("@tanstack/react-query").UseQueryResult<import("@thirdweb-dev/sdk/dist/browser").ClaimEligibility[], unknown>;
1616
```
1717

1818
## Parameters
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [@thirdweb-dev/react](./react.md) &gt; [useResetClaimConditions](./react.useresetclaimconditions.md)
4+
5+
## useResetClaimConditions() function
6+
7+
> This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8+
>
9+
10+
Use this to reset claim conditions on your [NFTContract](./react.nftcontract.md)
11+
12+
<b>Signature:</b>
13+
14+
```typescript
15+
export declare function useResetClaimConditions<TContract extends NFTContract>(...[contract, tokenId]: ClaimConditionsInputParams<TContract>): import("@tanstack/react-query").UseMutationResult<Omit<{
16+
receipt: import("@ethersproject/abstract-provider").TransactionReceipt;
17+
data: () => Promise<unknown>;
18+
}, "data"> | undefined, unknown, void, unknown>;
19+
```
20+
21+
## Parameters
22+
23+
| Parameter | Type | Description |
24+
| --- | --- | --- |
25+
| \[contract, tokenId\] | ClaimConditionsInputParams&lt;TContract&gt; | |
26+
27+
<b>Returns:</b>
28+
29+
import("@tanstack/react-query").UseMutationResult&lt;Omit&lt;{ receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () =&gt; Promise&lt;unknown&gt;; }, "data"&gt; \| undefined, unknown, void, unknown&gt;
30+
31+
a mutation object that can be used to reset claim conditions
32+
33+
## Example 1
34+
35+
36+
```jsx
37+
const Component = () => {
38+
const nftDrop = useNFTDrop(<ContractAddress>);
39+
const {
40+
mutate: resetClaimConditions,
41+
isLoading,
42+
error,
43+
} = useResetClaimConditions(nftDrop);
44+
45+
if (error) {
46+
console.error("failed to reset claim conditions", error);
47+
}
48+
49+
return (
50+
<button
51+
disabled={isLoading}
52+
onClick={resetClaimConditions}
53+
>
54+
Reset Claim Conditions
55+
</button>
56+
);
57+
};
58+
```
59+
60+
## Example 2
61+
62+
63+
```jsx
64+
const Component = () => {
65+
const { contract } = useContract(<ContractAddress>);
66+
const {
67+
mutate: resetClaimConditions,
68+
isLoading,
69+
error,
70+
} = useResetClaimConditions(contract?.nft);
71+
72+
if (error) {
73+
console.error("failed to reset claim conditions", error);
74+
}
75+
76+
return (
77+
<button
78+
disabled={isLoading}
79+
onClick={resetClaimConditions}
80+
>
81+
Reset Claim Conditions
82+
</button>
83+
);
84+
};
85+
```
86+
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [@thirdweb-dev/react](./react.md) &gt; [useSetClaimConditions](./react.usesetclaimconditions.md)
4+
5+
## useSetClaimConditions() function
6+
7+
> This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8+
>
9+
10+
Use this to set claim conditions on your [NFTContract](./react.nftcontract.md)
11+
12+
<b>Signature:</b>
13+
14+
```typescript
15+
export declare function useSetClaimConditions<TContract extends NFTContract>(...[contract, tokenId]: ClaimConditionsInputParams<TContract>): import("@tanstack/react-query").UseMutationResult<Omit<{
16+
receipt: import("@ethersproject/abstract-provider").TransactionReceipt;
17+
data: () => Promise<unknown>;
18+
}, "data"> | undefined, unknown, SetClaimConditionsParams, unknown>;
19+
```
20+
21+
## Parameters
22+
23+
| Parameter | Type | Description |
24+
| --- | --- | --- |
25+
| \[contract, tokenId\] | ClaimConditionsInputParams&lt;TContract&gt; | |
26+
27+
<b>Returns:</b>
28+
29+
import("@tanstack/react-query").UseMutationResult&lt;Omit&lt;{ receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () =&gt; Promise&lt;unknown&gt;; }, "data"&gt; \| undefined, unknown, [SetClaimConditionsParams](./react.setclaimconditionsparams.md)<!-- -->, unknown&gt;
30+
31+
a mutation object that can be used to set claim conditions
32+
33+
## Example 1
34+
35+
36+
```jsx
37+
const Component = () => {
38+
const nftDrop = useNFTDrop(<ContractAddress>);
39+
const {
40+
mutate: setClaimConditions,
41+
isLoading,
42+
error,
43+
} = useSetClaimConditions(nftDrop);
44+
45+
if (error) {
46+
console.error("failed to set claim conditions", error);
47+
}
48+
49+
return (
50+
<button
51+
disabled={isLoading}
52+
onClick={() => setClaimConditions({ phases: [{ price: 2, maxQuantity: 100 }] })}
53+
>
54+
Set Claim Conditions!
55+
</button>
56+
);
57+
};
58+
```
59+
60+
## Example 2
61+
62+
63+
```jsx
64+
const Component = () => {
65+
const { contract } = useContract(<ContractAddress>);
66+
const {
67+
mutate: setClaimConditions,
68+
isLoading,
69+
error,
70+
} = useSetClaimConditions(contract?.nft);
71+
72+
if (error) {
73+
console.error("failed to set claim conditions", error);
74+
}
75+
76+
return (
77+
<button
78+
disabled={isLoading}
79+
onClick={() => setClaimConditions({ phases: [{ price: 2, maxQuantity: 100 }] })}
80+
>
81+
Set Claim Conditions!
82+
</button>
83+
);
84+
};
85+
```
86+

etc/react.api.md

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { CallOverrides } from 'ethers';
1515
import { Chain } from './types';
1616
import { ChainId } from '@thirdweb-dev/sdk/dist/browser';
1717
import { ChainOrRpc } from '@thirdweb-dev/sdk/dist/browser';
18+
import { ClaimConditionInput } from '@thirdweb-dev/sdk/dist/browser';
1819
import { ClaimEligibility } from '@thirdweb-dev/sdk/dist/browser';
1920
import { CoinbaseWalletConnector } from 'wagmi/connectors/coinbaseWallet';
2021
import { Connector } from './connectors';
@@ -267,6 +268,12 @@ export type RequiredParam<T> = T | undefined;
267268
// @internal (undocumented)
268269
export type RolesForContract<TContract extends ContractWithRoles> = TContract extends SmartContract ? Role | (string & {}) : NonNullable<TContract["roles"]>["roles"][number];
269270

271+
// @beta
272+
export type SetClaimConditionsParams = {
273+
phases: ClaimConditionInput[];
274+
reset?: boolean;
275+
};
276+
270277
// @public (undocumented)
271278
export interface SharedMediaProps {
272279
// (undocumented)
@@ -364,10 +371,10 @@ export { useAccount }
364371
// @internal (undocumented)
365372
export function useActiveChainId(): SUPPORTED_CHAIN_ID | undefined;
366373

367-
// Warning: (ae-forgotten-export) The symbol "ActiveClaimConditionParams" needs to be exported by the entry point index.d.ts
374+
// Warning: (ae-forgotten-export) The symbol "ClaimConditionsInputParams" needs to be exported by the entry point index.d.ts
368375
//
369376
// @beta
370-
export function useActiveClaimCondition<TContract extends NFTDrop | EditionDrop | TokenDrop | SignatureDrop>(...[contract, tokenId]: ActiveClaimConditionParams<TContract>): UseQueryResult< {
377+
export function useActiveClaimCondition<TContract extends NFTContract>(...[contract, tokenId]: ClaimConditionsInputParams<TContract>): UseQueryResult< {
371378
snapshot?: {
372379
address: string;
373380
maxClaimable: string;
@@ -464,7 +471,7 @@ type: ListingType.Auction;
464471
export function useChainId(): number | undefined;
465472

466473
// @beta
467-
export function useClaimConditions<TContract extends NFTDrop | EditionDrop | TokenDrop | SignatureDrop>(...[contract, tokenId]: ActiveClaimConditionParams<TContract>): UseQueryResult< {
474+
export function useClaimConditions<TContract extends NFTContract>(...[contract, tokenId]: ClaimConditionsInputParams<TContract>): UseQueryResult< {
468475
snapshot?: {
469476
address: string;
470477
maxClaimable: string;
@@ -499,7 +506,7 @@ export function useClaimedNFTSupply(contract: RequiredParam<DropContract>): UseQ
499506
// Warning: (ae-forgotten-export) The symbol "ClaimIneligibilityInputParams" needs to be exported by the entry point index.d.ts
500507
//
501508
// @beta
502-
export function useClaimIneligibilityReasons<TContract extends NFTDrop | EditionDrop | TokenDrop | SignatureDrop>(...[contract, params, tokenId]: ClaimIneligibilityInputParams<TContract>): UseQueryResult<ClaimEligibility[], unknown>;
509+
export function useClaimIneligibilityReasons<TContract extends NFTContract>(...[contract, params, tokenId]: ClaimIneligibilityInputParams<TContract>): UseQueryResult<ClaimEligibility[], unknown>;
503510

504511
// @beta
505512
export function useClaimNFT<TContract extends DropContract>(contract: RequiredParam<TContract>): UseMutationResult<ClaimNFTReturnType<TContract>, unknown, ClaimNFTParams<TContract>, unknown>;
@@ -1588,6 +1595,12 @@ export { useProvider }
15881595
// @internal (undocumented)
15891596
export function useReadonlySDK(readonlyRpcUrl: string, sdkOptions: SDKOptions, storageInterface?: IStorage): ThirdwebSDK;
15901597

1598+
// @beta
1599+
export function useResetClaimConditions<TContract extends NFTContract>(...[contract, tokenId]: ClaimConditionsInputParams<TContract>): UseMutationResult<Omit<{
1600+
receipt: TransactionReceipt;
1601+
data: () => Promise<unknown>;
1602+
}, "data"> | undefined, unknown, void, unknown>;
1603+
15911604
// @public (undocumented)
15921605
export function useResolvedMediaType(uri?: string): {
15931606
url: string | undefined;
@@ -1623,6 +1636,12 @@ export function useSDK(): ThirdwebSDK | undefined;
16231636
// @beta
16241637
export function useSetAllRoleMembers<TContract extends ContractWithRoles>(contract: RequiredParam<TContract>): UseMutationResult<void, unknown, { [role in RolesForContract<TContract>]: string[]; }, unknown>;
16251638

1639+
// @beta
1640+
export function useSetClaimConditions<TContract extends NFTContract>(...[contract, tokenId]: ClaimConditionsInputParams<TContract>): UseMutationResult<Omit<{
1641+
receipt: TransactionReceipt;
1642+
data: () => Promise<unknown>;
1643+
}, "data"> | undefined, unknown, SetClaimConditionsParams, unknown>;
1644+
16261645
// @public
16271646
export function useSignatureDrop(contractAddress?: string): SignatureDrop | undefined;
16281647

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@thirdweb-dev/react",
3-
"version": "2.6.5-0",
3+
"version": "2.6.6-0",
44
"repository": {
55
"type": "git",
66
"url": "git+https://github.com:thirdweb-dev/react.git"
@@ -34,7 +34,7 @@
3434
"@microsoft/api-extractor": "^7.19.4",
3535
"@microsoft/tsdoc": "^0.14.1",
3636
"@swc/core": "^1.2.177",
37-
"@thirdweb-dev/sdk": "^2.3.35",
37+
"@thirdweb-dev/sdk": "^2.3.37",
3838
"@trivago/prettier-plugin-sort-imports": "^3.2.0",
3939
"@types/mime": "^2.0.3",
4040
"@types/react": "^18.0.5",

0 commit comments

Comments
 (0)