|
| 1 | +<script lang="ts"> |
| 2 | +let originalScrollTo: typeof window.scrollTo | null = null |
| 3 | +</script> |
| 4 | + |
| 5 | +<script setup lang="ts"> |
| 6 | +import { Link } from '@inertiajs/vue3' |
| 7 | +
|
| 8 | +defineProps<{ |
| 9 | + page: number |
| 10 | +}>() |
| 11 | +
|
| 12 | +// Patch scrollTo to log synchronously when it's called (not when the scroll event fires) |
| 13 | +if (!originalScrollTo) { |
| 14 | + originalScrollTo = window.scrollTo.bind(window) |
| 15 | +
|
| 16 | + window.scrollTo = ((xOrOptions: number | ScrollToOptions, y?: number) => { |
| 17 | + const firstArgIsNumber = typeof xOrOptions === 'number' |
| 18 | + const scrollY = firstArgIsNumber ? y : (xOrOptions?.top ?? 0) |
| 19 | +
|
| 20 | + console.log('ScrollY', scrollY) |
| 21 | +
|
| 22 | + return firstArgIsNumber ? originalScrollTo!(xOrOptions, y!) : originalScrollTo!(xOrOptions) |
| 23 | + }) as typeof window.scrollTo |
| 24 | +} else { |
| 25 | + console.log('Render') |
| 26 | +} |
| 27 | +
|
| 28 | +function beforeNavigate() { |
| 29 | + window.scrollTo(0, 100) |
| 30 | +} |
| 31 | +</script> |
| 32 | + |
| 33 | +<template> |
| 34 | + <h1 :style="{ fontSize: '40px' }">Article Header</h1> |
| 35 | + <h2 :style="{ fontSize: '40px' }">Page {{ page }}</h2> |
| 36 | + <article :style="{ fontSize: '20px', maxWidth: '500px' }"> |
| 37 | + <p> |
| 38 | + Sunt culpa sit sunt enim aliquip. Esse ea ea quis voluptate. Enim consectetur aliqua ex ex magna cupidatat id |
| 39 | + minim sit elit. |
| 40 | + </p> |
| 41 | + <Link |
| 42 | + :href="`/scroll-after-render/${page + 1}`" |
| 43 | + :style="{ display: 'block', marginTop: '20px' }" |
| 44 | + @before="beforeNavigate" |
| 45 | + > |
| 46 | + Go to page {{ page + 1 }} |
| 47 | + </Link> |
| 48 | + <div v-for="i in [...Array(500).keys()]" :key="i"> |
| 49 | + <p> |
| 50 | + Sunt culpa sit sunt enim aliquip. Esse ea ea quis voluptate. Enim consectetur aliqua ex ex magna cupidatat id |
| 51 | + minim sit elit. Amet pariatur occaecat pariatur duis eiusmod dolore magna. Et commodo cupidatat in commodo elit |
| 52 | + cupidatat minim qui id non enim ad. Culpa aliquip ad Lorem sit consectetur ullamco culpa duis nisi et fugiat |
| 53 | + mollit eiusmod. Laboris voluptate veniam consequat proident in nulla irure velit. |
| 54 | + </p> |
| 55 | + |
| 56 | + <p> |
| 57 | + Sit sint laboris sunt eiusmod ipsum laborum eiusmod amet commodo exercitation in duis magna. Proident sunt minim |
| 58 | + in elit qui. Id pariatur commodo fugiat excepteur in deserunt Lorem ipsum occaecat est. Excepteur sit tempor |
| 59 | + ipsum ex officia veniam enim amet velit fugiat mollit cillum. Incididunt aliqua nulla id occaecat nulla. Non ea |
| 60 | + ad est occaecat deserunt officia qui commodo exercitation. |
| 61 | + </p> |
| 62 | + |
| 63 | + <p> |
| 64 | + Voluptate laborum quis aliqua ullamco magna amet ullamco laborum qui cillum eu. Dolore dolore aliqua proident |
| 65 | + proident sunt ipsum in. Enim velit dolore labore dolor quis incididunt duis culpa Lorem. Eu adipisicing non elit |
| 66 | + fugiat voluptate labore ipsum dolore consectetur commodo. Et in et cillum duis consequat quis ex eu commodo. |
| 67 | + Eiusmod aliqua excepteur consectetur eiusmod aute et consectetur sit pariatur dolore qui officia pariatur. |
| 68 | + </p> |
| 69 | + |
| 70 | + <p> |
| 71 | + Non sunt eu mollit qui reprehenderit. Aute culpa anim voluptate do in esse duis laborum ad dolore. Ullamco nisi |
| 72 | + in nostrud officia do. Duis pariatur officia id duis. Deserunt ad incididunt est sint consectetur reprehenderit |
| 73 | + mollit est Lorem ea pariatur anim dolor adipisicing. Nostrud irure magna nostrud laboris aute sunt veniam |
| 74 | + laboris veniam incididunt sit. Nulla proident ad aliqua fugiat culpa sunt est in dolor velit ad irure nulla. |
| 75 | + </p> |
| 76 | + |
| 77 | + <p> |
| 78 | + Do aute laborum deserunt non laborum voluptate voluptate. Anim ut laborum magna sunt cupidatat irure. Cupidatat |
| 79 | + fugiat minim sint cillum laborum excepteur irure id est irure ad occaecat adipisicing enim. Deserunt nulla anim |
| 80 | + proident velit irure nostrud est est reprehenderit consequat pariatur qui. Fugiat Lorem sint eu laborum minim |
| 81 | + pariatur cillum mollit nulla consequat ullamco ex. Ex consectetur ad ut irure fugiat occaecat aliqua |
| 82 | + exercitation cillum ipsum anim dolore tempor. |
| 83 | + </p> |
| 84 | + |
| 85 | + <p> |
| 86 | + Adipisicing consequat irure fugiat Lorem deserunt aliquip do cupidatat. Lorem labore elit ex qui nostrud qui |
| 87 | + cillum sunt adipisicing occaecat. Sunt nostrud amet amet cupidatat fugiat Lorem quis nulla id cillum esse eu. |
| 88 | + Ullamco aliqua dolore irure amet mollit anim velit dolore. |
| 89 | + </p> |
| 90 | + |
| 91 | + <p> |
| 92 | + Veniam cupidatat ipsum ea officia ipsum nisi laborum culpa qui dolore. Aliqua Lorem nisi labore ea velit aliquip |
| 93 | + irure excepteur eu. Laboris proident duis non labore sunt quis aute tempor laboris enim anim eiusmod. |
| 94 | + </p> |
| 95 | + |
| 96 | + <p> |
| 97 | + Minim proident ut aliqua ea ut culpa fugiat ullamco nisi esse nostrud reprehenderit id. Id id ullamco velit anim |
| 98 | + nisi magna Lorem tempor. Et veniam occaecat ut labore consequat fugiat duis. |
| 99 | + </p> |
| 100 | + |
| 101 | + <p> |
| 102 | + Adipisicing ea consectetur adipisicing aute eu pariatur enim labore consequat occaecat consectetur minim nisi. |
| 103 | + Cillum commodo sunt labore reprehenderit. Duis esse excepteur magna tempor eiusmod exercitation Lorem |
| 104 | + reprehenderit excepteur pariatur. Esse cupidatat occaecat magna do aliquip Lorem. Consectetur adipisicing |
| 105 | + consequat dolore nostrud esse eu cillum id commodo duis. Aliquip dolor cillum cupidatat fugiat. |
| 106 | + </p> |
| 107 | + |
| 108 | + <p> |
| 109 | + Ex eiusmod id est laborum sunt ex ea aute adipisicing ad magna deserunt duis. Nostrud velit dolore id commodo |
| 110 | + quis enim fugiat. Sint non quis consectetur voluptate aliqua dolore nulla. Irure sit reprehenderit sint laboris |
| 111 | + non elit. Duis minim nisi esse dolor. Sit ex in consequat non occaecat commodo irure et. Commodo qui ipsum Lorem |
| 112 | + magna consequat consequat et minim eiusmod Lorem eiusmod cupidatat voluptate. |
| 113 | + </p> |
| 114 | + </div> |
| 115 | + </article> |
| 116 | +</template> |
0 commit comments