-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* docs: added docs for use product * feat: added cart hooks * feat: added tanstack powered product hooks * docs: added cart stories * feat: account creds type * build: export new hook * feat: cart state simplified * feat: account hooks * feat: updated account, cart, currency and payments hooks * feat: remove unused services * feat: add order confirm hooks * feat: replace use cart hook with new use cart * chore: changeset * feat: fix the hook library version for schematics * chore: changeset * feat: removed payment gateway register as it's no longer needed
- Loading branch information
Showing
55 changed files
with
1,016 additions
and
1,216 deletions.
There are no files selected for viewing
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,5 @@ | ||
--- | ||
"@elasticpath/react-shopper-hooks": minor | ||
--- | ||
|
||
New interface for useCart |
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,5 @@ | ||
--- | ||
"@elasticpath/d2c-schematics": minor | ||
--- | ||
|
||
fix shopper hooks version |
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
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
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
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
37 changes: 37 additions & 0 deletions
37
packages/react-shopper-hooks/src/account/hooks/use-account-addresses.tsx
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,37 @@ | ||
import { useElasticPath } from "../../elasticpath" | ||
import { UseQueryOptionsWrapper } from "../../types" | ||
import { AccountAddress, ResourcePage } from "@moltin/sdk" | ||
import { useQuery, UseQueryResult } from "@tanstack/react-query" | ||
import { queryKeysFactory } from "../../shared/util/query-keys-factory" | ||
|
||
const ACCOUNT_ADDRESSES_QUERY_KEY = "account-addresses" as const | ||
|
||
export const accountAddressesQueryKeys = queryKeysFactory( | ||
ACCOUNT_ADDRESSES_QUERY_KEY, | ||
) | ||
type AccountAddressesQueryKey = typeof accountAddressesQueryKeys | ||
|
||
export function useAccountAddresses( | ||
accountId: string, | ||
options?: UseQueryOptionsWrapper< | ||
ResourcePage<AccountAddress>, | ||
Error, | ||
ReturnType<AccountAddressesQueryKey["list"] & string> | ||
> & { ep?: { accountMemberToken?: string } }, | ||
): Partial<ResourcePage<AccountAddress>> & | ||
Omit<UseQueryResult<ResourcePage<AccountAddress>, Error>, "data"> { | ||
const { client } = useElasticPath() | ||
const { data, ...rest } = useQuery({ | ||
queryKey: [...accountAddressesQueryKeys.list({ accountId })], | ||
queryFn: () => | ||
client.AccountAddresses.All({ | ||
account: accountId, | ||
...(options?.ep?.accountMemberToken && { | ||
token: options.ep.accountMemberToken, | ||
}), | ||
}), | ||
...options, | ||
}) | ||
|
||
return { ...data, ...rest } as const | ||
} |
4 changes: 1 addition & 3 deletions
4
packages/react-shopper-hooks/src/account/hooks/use-account-member.tsx
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
50 changes: 31 additions & 19 deletions
50
packages/react-shopper-hooks/src/account/hooks/use-authed-account-member.tsx
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 |
---|---|---|
@@ -1,38 +1,50 @@ | ||
import { useAccountMember } from "./use-account-member" | ||
import { useContext } from "react" | ||
import { useContext, useEffect, useState } from "react" | ||
import { AccountProviderContext } from "../account-provider" | ||
import Cookies from "js-cookie" | ||
import { | ||
createCookieTokenStore, | ||
resolveAccountMemberIdFromToken, | ||
} from "../login-account" | ||
import { useElasticPath } from "../../elasticpath/elasticpath" | ||
import { AccountMember, Resource } from "@moltin/sdk" | ||
import { AccountMember, AccountTokenBase, Resource } from "@moltin/sdk" | ||
import { UseQueryResult } from "@tanstack/react-query/src/types" | ||
import { AccountCredentials } from "../types" | ||
|
||
export function useAuthedAccountMember(): Partial<Resource<AccountMember>> & | ||
Omit<UseQueryResult<Resource<AccountMember>, Error>, "data"> { | ||
Omit<UseQueryResult<Resource<AccountMember>, Error>, "data"> & { | ||
accountMemberTokens?: Record<string, AccountTokenBase> | ||
selectedAccountToken?: AccountTokenBase | ||
} { | ||
const ctx = useContext(AccountProviderContext) | ||
const [accountMemberTokens, setAccountMemberTokens] = useState< | ||
Record<string, AccountTokenBase> | undefined | ||
>() | ||
const [selectedAccountToken, setSelectedAccountToken] = useState< | ||
AccountTokenBase | undefined | ||
>() | ||
|
||
if (!ctx) { | ||
throw new Error( | ||
"useAuthedAccountMember must be used within an AccountProvider", | ||
) | ||
} | ||
|
||
const { client } = useElasticPath() | ||
|
||
const tokenStore = createCookieTokenStore(ctx.accountCookieName) | ||
const authedAccountMemberId = resolveAccountMemberIdFromToken( | ||
client, | ||
tokenStore, | ||
) | ||
const accountCookie = Cookies.get(ctx.accountCookieName) | ||
const parsedAccountCookie: AccountCredentials | undefined = | ||
accountCookie && JSON.parse(accountCookie) | ||
|
||
const selectedAccount = | ||
parsedAccountCookie?.accounts[parsedAccountCookie?.selected] | ||
|
||
const result = useAccountMember(authedAccountMemberId ?? "", { | ||
enabled: !!accountCookie && !!authedAccountMemberId, | ||
ep: { accountMemberToken: accountCookie }, | ||
const result = useAccountMember(parsedAccountCookie?.accountMemberId ?? "", { | ||
enabled: !!accountCookie && !!parsedAccountCookie?.accountMemberId, | ||
ep: { accountMemberToken: selectedAccount?.token }, | ||
}) | ||
|
||
return { ...result } as const | ||
useEffect(() => { | ||
setAccountMemberTokens(ctx.getAccountMemberTokens()) | ||
setSelectedAccountToken(ctx.getSelectedAccountToken()) | ||
}, [result.data]) | ||
|
||
return { | ||
...result, | ||
accountMemberTokens, | ||
selectedAccountToken, | ||
} as const | ||
} |
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 |
---|---|---|
@@ -1,3 +1,4 @@ | ||
export * from "./hooks/use-account-member" | ||
export * from "./hooks/use-authed-account-member" | ||
export * from "./account-provider" | ||
export * from "./hooks/use-account-addresses" |
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
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,7 @@ | ||
import { AccountTokenBase } from "@moltin/sdk" | ||
|
||
export type AccountCredentials = { | ||
accountMemberId: string | ||
accounts: Record<string, AccountTokenBase> | ||
selected: string | ||
} |
Oops, something went wrong.