Replies: 1 comment
-
this can do by only three change! public visit(
href: string | URL,
{
method = 'get',
data = {},
replace = false,
preserveScroll = false,
preserveState = false,
only = [],
headers = {},
errorBag = '',
forceFormData = false,
onCancelToken = () => {},
onBefore = () => {},
onStart = () => {},
onProgress = () => {},
+ onBeforeLeave = () => {},
onFinish = () => {},
onCancel = () => {},
onSuccess = () => {},
onError = () => {},
queryStringArrayFormat = 'brackets',
}: VisitOptions = {},
): void { -.then((response) => {
+.then(async (response) => {
if (!this.isInertiaResponse(response)) {
return Promise.reject({ response })
}
const pageResponse: Page = response.data
if (only.length && pageResponse.component === this.page.component) {
pageResponse.props = { ...this.page.props, ...pageResponse.props }
}
preserveScroll = this.resolvePreserveOption(preserveScroll, pageResponse) as boolean
preserveState = this.resolvePreserveOption(preserveState, pageResponse)
if (preserveState && window.history.state?.rememberedState && pageResponse.component === this.page.component) {
pageResponse.rememberedState = window.history.state.rememberedState
}
const requestUrl = url
const responseUrl = hrefToUrl(pageResponse.url)
if (requestUrl.hash && !responseUrl.hash && urlWithoutHash(requestUrl).href === responseUrl.href) {
responseUrl.hash = requestUrl.hash
pageResponse.url = responseUrl.href
}
+ await onBeforeLeave(this.page)
return this.setPage(pageResponse, { visitId, replace, preserveScroll, preserveState })
}) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
i think sometimes need run async function before change page, for example i want hide my modal before going to next page
Beta Was this translation helpful? Give feedback.
All reactions