fix: request prevented when re-downgrade subscribe (#4786)
This commit is contained in:
@@ -301,18 +301,19 @@ const Downgrade = ({
|
|||||||
}) => {
|
}) => {
|
||||||
const t = useAFFiNEI18N();
|
const t = useAFFiNEI18N();
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
|
// allow replay request on network error until component unmount or success
|
||||||
|
const [idempotencyKey, setIdempotencyKey] = useState(nanoid());
|
||||||
const { isMutating, trigger } = useMutation({
|
const { isMutating, trigger } = useMutation({
|
||||||
mutation: cancelSubscriptionMutation,
|
mutation: cancelSubscriptionMutation,
|
||||||
});
|
});
|
||||||
|
|
||||||
// allow replay request on network error until component unmount
|
|
||||||
const idempotencyKey = useMemo(() => nanoid(), []);
|
|
||||||
|
|
||||||
const downgrade = useCallback(() => {
|
const downgrade = useCallback(() => {
|
||||||
trigger(
|
trigger(
|
||||||
{ idempotencyKey },
|
{ idempotencyKey },
|
||||||
{
|
{
|
||||||
onSuccess: data => {
|
onSuccess: data => {
|
||||||
|
// refresh idempotency key
|
||||||
|
setIdempotencyKey(nanoid());
|
||||||
onSubscriptionUpdate(data.cancelSubscription);
|
onSubscriptionUpdate(data.cancelSubscription);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -374,7 +375,7 @@ const Upgrade = ({
|
|||||||
const newTabRef = useRef<Window | null>(null);
|
const newTabRef = useRef<Window | null>(null);
|
||||||
|
|
||||||
// allow replay request on network error until component unmount
|
// allow replay request on network error until component unmount
|
||||||
const idempotencyKey = useMemo(() => nanoid(), []);
|
const idempotencyKey = useMemo(() => `${nanoid()}-${recurring}`, [recurring]);
|
||||||
|
|
||||||
const onClose = useCallback(() => {
|
const onClose = useCallback(() => {
|
||||||
newTabRef.current = null;
|
newTabRef.current = null;
|
||||||
@@ -453,18 +454,19 @@ const ChangeRecurring = ({
|
|||||||
}) => {
|
}) => {
|
||||||
const t = useAFFiNEI18N();
|
const t = useAFFiNEI18N();
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
|
// allow replay request on network error until component unmount or success
|
||||||
|
const [idempotencyKey, setIdempotencyKey] = useState(nanoid());
|
||||||
const { isMutating, trigger } = useMutation({
|
const { isMutating, trigger } = useMutation({
|
||||||
mutation: updateSubscriptionMutation,
|
mutation: updateSubscriptionMutation,
|
||||||
});
|
});
|
||||||
|
|
||||||
// allow replay request on network error until component unmount
|
|
||||||
const idempotencyKey = useMemo(() => nanoid(), []);
|
|
||||||
|
|
||||||
const change = useCallback(() => {
|
const change = useCallback(() => {
|
||||||
trigger(
|
trigger(
|
||||||
{ recurring: to, idempotencyKey },
|
{ recurring: to, idempotencyKey },
|
||||||
{
|
{
|
||||||
onSuccess: data => {
|
onSuccess: data => {
|
||||||
|
// refresh idempotency key
|
||||||
|
setIdempotencyKey(nanoid());
|
||||||
onSubscriptionUpdate(data.updateSubscriptionRecurring);
|
onSubscriptionUpdate(data.updateSubscriptionRecurring);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -532,19 +534,20 @@ const ResumeAction = ({
|
|||||||
}) => {
|
}) => {
|
||||||
const t = useAFFiNEI18N();
|
const t = useAFFiNEI18N();
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
|
// allow replay request on network error until component unmount or success
|
||||||
|
const [idempotencyKey, setIdempotencyKey] = useState(nanoid());
|
||||||
const [hovered, setHovered] = useState(false);
|
const [hovered, setHovered] = useState(false);
|
||||||
const { isMutating, trigger } = useMutation({
|
const { isMutating, trigger } = useMutation({
|
||||||
mutation: resumeSubscriptionMutation,
|
mutation: resumeSubscriptionMutation,
|
||||||
});
|
});
|
||||||
|
|
||||||
// allow replay request on network error until component unmount
|
|
||||||
const idempotencyKey = useMemo(() => nanoid(), []);
|
|
||||||
|
|
||||||
const resume = useCallback(() => {
|
const resume = useCallback(() => {
|
||||||
trigger(
|
trigger(
|
||||||
{ idempotencyKey },
|
{ idempotencyKey },
|
||||||
{
|
{
|
||||||
onSuccess: data => {
|
onSuccess: data => {
|
||||||
|
// refresh idempotency key
|
||||||
|
setIdempotencyKey(nanoid());
|
||||||
onSubscriptionUpdate(data.resumeSubscription);
|
onSubscriptionUpdate(data.resumeSubscription);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user