Interface: UseUser
react-autonomyreact-autonomy.UseUser
UseUser contains the data and methods returned by the useUseruseUser hook.
Properties
loadUser
• loadUser: () => Promise<void>
Type declaration
▸ (): Promise<void>
The loadUser function loads information about the current order's associated user from the Chord API.
import { useUser } from '@chordcommerce/react-autonomy'
export default () => {
const { user, loadUser } = useUser()
useEffect(() => {
loadUser()
}, [])
return <p>Welcome, {user.data.email}!</p>
}Returns
Promise<void>
A Promise that resolves when the user object has been added to Redux.
Defined in
loadUserAddressBook
• loadUserAddressBook: () => Promise<AddressBookAddressBook>
Type declaration
▸ (): Promise<AddressBookAddressBook>
The loadUserAddressBook function loads the current user's stored addresses. A user must be already logged in for this method to work properly.
import { useUser } from '@chordcommerce/react-autonomy'
export default () => {
const { user, loadUserAddressBook } = useUser()
useEffect(() => {
loadUserAddressBook()
}, [])
if (!user.addressBook) return null
return (
<ul>
{user.addressBook.map(address => (
<li>{address.name} - {address.address1} {address.city}, {address.stateText}</li>
)}
</ul>
)
}Returns
Promise<AddressBookAddressBook>
A Promise that resolves when the array of addresses, addressBook has been added to Redux.
Defined in
loadUserReferralIdentifier
• loadUserReferralIdentifier: (options: LoadUserReferralIdentifierLoadUserReferralIdentifier) => Promise<ReferralIdentifierReferralIdentifier>
Type declaration
▸ (options): Promise<ReferralIdentifierReferralIdentifier>
The loadUserReferralIdentifier function loads the referral identifier information for a user with the given email address from the Chord API.
import { useUser } from '@chordcommerce/react-autonomy'
export default () => {
const { user, loadUserReferralIdentifier } = useUser()
const referralPurl = user.referralIdentifier && user.referralIdentifier.purl
useEffect(() => {
loadUserReferralIdentifier()
}, [])
return (
<p>Refer your friends with your personal referral link: {referralPurl}</p>
)
}Parameters
Name | Type |
|---|---|
options | LoadUserReferralIdentifierLoadUserReferralIdentifier |
Returns
Promise<ReferralIdentifierReferralIdentifier>
A Promise that resolves when the referralIdentifier object has been added to the user object in Redux.
Defined in
loadUserStoreCreditEvents
• loadUserStoreCreditEvents: () => Promise<StoreCreditEventsStoreCreditEvents>
Type declaration
▸ (): Promise<StoreCreditEventsStoreCreditEvents>
The loadUserStoreCreditEvents function loads information about the current user's store credit history. A user must be already logged in for this method to work properly.
import { useUser } from '@chordcommerce/react-autonomy'
export default () => {
const { user, loadUserStoreCreditEvents } = useUser()
useEffect(() => {
loadUserStoreCreditEvents()
}, [])
if (!user.storeCreditEvents) return null
return (
<ul>
{user.storeCreditEvents.map(event => (
<li>{event.displayEventDate} - {event.displayAction} {event.displayAmount}
({event.displayRemainingAmount} remaining)</li>
)}
</ul>
)
}Returns
Promise<StoreCreditEventsStoreCreditEvents>
A Promise that resolves when the array of storeCreditEvents has been added to Redux.
Defined in
modifyUser
• modifyUser: (options: ModifyUserModifyUser) => Promise<void>
Type declaration
▸ (options): Promise<void>
The modifyUser function is used to update the user's profile information.
import { useUser } from '@chordcommerce/react-autonomy'
export const AccountPage => {
const { modifyUser } = useUser()
const onSubmit = ({ email }) => {
modifyUser({ email })
}
// return profile edit form
}Parameters
Name | Type |
|---|---|
options | ModifyUserModifyUser |
Returns
Promise<void>
A Promise that resolves when the user object has been updated in Redux.
Defined in
modifyUserAddressBook
• modifyUserAddressBook: (address: UpdateAddressInput) => Promise<AddressBookAddressBook>
Type declaration
▸ (address): Promise<AddressBookAddressBook>
The modifyUserAddressBook function updates an address the current user's stored addresses. A user must be already logged in for this method to work properly.
import { useUser } from '@chordcommerce/react-autonomy'
export default () => {
const { user, loadUserAddressBook, modifyUserAddressBook } = useUser()
useEffect(() => {
loadUserAddressBook()
}, [])
const setAddressToDefault = (addressId) => {
const addressToUpdate = { ...user.addressBook.find(a => a.id === addressId) }
delete addressToUpdate.country
delete addressToUpdate.state
addressToUpdate.default = true
modifyUserAddressBook(addressToUpdate)
}
if (!user.addressBook) return null
return (
<ul>
{user.addressBook.map(address => (
<li onClick={() => setAddressToDefault(address.id)}>
{address.name} - {address.address1} {address.city}, {address.stateText}
</li>
)}
</ul>
)
}Parameters
Name | Type |
|---|---|
address | UpdateAddressInput |
Returns
Promise<AddressBookAddressBook>
A Promise that resolves when the array of addresses, addressBook has been updated in Redux.
Defined in
removeFromUserAddressBook
• removeFromUserAddressBook: (addressId: number) => Promise<void>
Type declaration
▸ (addressId): Promise<void>
The removeFromUserAddressBook function removes an address the current user's stored addresses. A user must be already logged in for this method to work properly.
import { useUser } from '@chordcommerce/react-autonomy'
export default () => {
const { user, loadUserAddressBook, removeFromUserAddressBook } = useUser()
useEffect(() => {
loadUserAddressBook()
}, [])
const removeAddress = (addressId) => {
removeFromUserAddressBook(addressId)
}
if (!user.addressBook) return null
return (
<ul>
{user.addressBook.map(address => (
<li onClick={() => removeAddress(address.id)}>
{address.name} - {address.address1} {address.city}, {address.stateText}
</li>
)}
</ul>
)
}Parameters
Name | Type |
|---|---|
addressId | number |
Returns
Promise<void>
A Promise that resolves when the array of addresses, addressBook has been updated in Redux to reflect the removal of the address id passed to this function.
Defined in
user
• user: Object
Chord's user state.
The data property contains the user's information. It will be an empty object if the user is not logged in, which allows for top level optional chaining.
import { useUser } from '@chordcommerce/react-autonomy'
function Greeting() {
const { user } = useUser()
return <h1>Hello{user.data?.name ? `, ${user.data.name}` : ''}!</h1>
}Type declaration
Name | Type |
|---|---|
addressBook | AddressBookAddressBook |
data | UserUser | Record<string, never> |
referralIdentifier | string |
storeCreditEvents | StoreCreditEventsStoreCreditEvents |