Interface: UseSubscription
react-autonomyreact-autonomy.UseSubscription
UseSubscription contains all the data and methods returned by the useSubscriptionuseSubscription hook.
Properties
cancelSubscription
• cancelSubscription: (options?: CancelSubscriptionCancelSubscription) => Promise<SubscriptionSubscription>
Type declaration
▸ (options?): Promise<SubscriptionSubscription>
The cancelSubscription function calls the Chord API to cancel the subscription.
import { useSubscription } from '@chordcommerce/react-autonomy'
export default subscriptionId => {
const { subscription, cancelSubscription } = useSubscription({ subscriptionId })
const onClick = async () => {
return cancelSubscription()
}
return <button onClick={onClick}>Cancel Subscription</button>
}Parameters
Name | Type |
|---|---|
options? | CancelSubscriptionCancelSubscription |
Returns
Promise<SubscriptionSubscription>
Defined in
error
• error: Error
Defined in
isFetching
• isFetching: boolean
Defined in
isLoaded
• isLoaded: boolean
Defined in
loadSubscription
• loadSubscription: () => Promise<SubscriptionSubscription>
Type declaration
▸ (): Promise<SubscriptionSubscription>
The loadSubscription function loads information about the subscription from the Chord API.
You shouldn't need to call this function, except in exceptional circumstances, as the useSubscriptionuseSubscription hook will automatically start loading the subscription when the hook is initialized.
Here's an example of when you might want to use loadSubscription in a custom callback. It should be noted that skipSubscription returns the updated subscription, but in this example, assume that it doesn't for educational purposes.
import { useSubscription } from '@chordcommerce/react-autonomy'
import customEventingFunction from '~/app/events'
const SkipSubscriptionButon = ({ subscriptionId }) => {
const {
subscription,
loadSubscription,
skipSubscription
} = useSubscription({ subscriptionId })
const handleClick = async () =>
await skipSubscription()
const updatedSubscription = await loadSubscription()
await customEventingFunction('Subscription Skipped', {
newEndDate: updatedSubscription.endDate,
})
}
return <button onClick={handleClick}>Skip</button>
}Returns
Promise<SubscriptionSubscription>
Defined in
pauseSubscription
• pauseSubscription: (options: PauseSubscriptionPauseSubscription) => Promise<SubscriptionSubscription>
Type declaration
▸ (options): Promise<SubscriptionSubscription>
The pauseSubscription function calls the Chord API to pause a subscription.
import { useSubscription } from '@chordcommerce/react-autonomy'
export default subscriptionId => {
const { subscription, pauseSubscription } = useSubscription({ subscriptionId })
const onClick = async () => {
return pauseSubscription({ actionableDate: new Date().toISOString() })
}
return <button onClick={onClick}>Pause Subscription</button>
}Parameters
Name | Type |
|---|---|
options | PauseSubscriptionPauseSubscription |
Returns
Promise<SubscriptionSubscription>
Defined in
resumeSubscription
• resumeSubscription: (options: ResumeSubscriptionResumeSubscription) => Promise<SubscriptionSubscription>
Type declaration
▸ (options): Promise<SubscriptionSubscription>
The resumeSubscription function calls the Chord API to resume a subscription.
Paused subscriptions will not be processed until manually resumed or the actionableDate is reached.
import { useSubscription } from '@chordcommerce/react-autonomy'
export default subscriptionId => {
const { subscription, resumeSubscription } = useSubscription({ subscriptionId })
const onClick = async () => {
return resumeSubscription({ actionableDate: new Date().toISOString() })
}
return <button onClick={onClick}>Resume Subscription</button>
}Parameters
Name | Type |
|---|---|
options | ResumeSubscriptionResumeSubscription |
Returns
Promise<SubscriptionSubscription>
Defined in
skipSubscription
• skipSubscription: (options?: SkipSubscriptionSkipSubscription) => Promise<SubscriptionSubscription>
Type declaration
▸ (options?): Promise<SubscriptionSubscription>
The skipSubscription function calls the Chord API to skip the next subscription delivery.
import { useSubscription } from '@chordcommerce/react-autonomy'
export default subscriptionId => {
const { subscription, skipSubscription } = useSubscription({ subscriptionId })
const onClick = () => {
skipSubscription()
}
return <button onClick={onClick}>Skip Next Shipment</button>
}Parameters
Name | Type |
|---|---|
options? | SkipSubscriptionSkipSubscription |
Returns
Promise<SubscriptionSubscription>
Defined in
subscription
• subscription: SubscriptionSubscription
Defined in
updateSubscription
• updateSubscription: (options: SubscriptionUpdatePropsSubscriptionUpdateProps) => Promise<SubscriptionSubscription>
Type declaration
▸ (options): Promise<SubscriptionSubscription>
The updateSubscription function calls the Chord API to update a subscription.
import { useSubscription } from '@chordcommerce/react-autonomy'
export default () => {
const { updateSubscription } = useSubscription(subscription.id)
const onSubmit = async data => {
try {
let response = await updateSubscription({
shipAddressAttributes: data.addressAttributes,
billAddressAttributes: data.addressAttributes,
intervalLength: 2,
intervalUnits: 'month',
endDate: '2021-12-31',
actionableDate: '2030-08-18'
})
console.log(response)
} catch (error) {
console.error(error)
}
}
}
// Default Form Values:
const address = subscription['shipAddress']
const addressAttributes = {
name: address.name,
address1: address.address1,
address2: address.address2,
city: address.city,
state_name: address.state.abbr,
country_iso: address.country.iso,
zipcode: address.zipcode
}Parameters
Name | Type |
|---|---|
options | SubscriptionUpdatePropsSubscriptionUpdateProps |
Returns
Promise<SubscriptionSubscription>