title: Inertia: Reload page with updated data without modifying scroll position
body: <p>I'm using Inertia/Laravel/VueJs. I have a page with many posts and each post can be marked as completed. When a post is marked as completed on the front-end I have a v-bind which toggles a CSS class which should be applied to completed tasks.</p>
  <p>The behaviour I would like is: a user scrolls down a page, clicks the completed button, and the back-end sends that newly updated data to the front-end, making the v-bind true, causing the CSS class to be applied without jumping to the top of the page.</p>
  <p>With the code below I can click the completed button, and it is updated in the database, but that new data isn't sent to the front-end.</p>
  <p>Controller:</p>
  <pre><code>    public function markAsCompleted(Request $request)
      {
          $post = Post::find($request-&gt;id);
  
          $post-&gt;completed = true;
  
          $post-&gt;save();
  
          return Redirect::route('posts');
      }
  </code></pre>
  <p>Javascript function called at click of completed button:</p>
  <pre><code>completed(id) {
     this.completedForm.put(`/endpoint/completed/${id}`, {
        preserveScroll: true
     });
  },
  </code></pre>
  <p>If I change the Javascript function to:</p>
  <pre><code>            completed(id) {
                  this.completedForm.put(`/endpoint/completed/${id}`, {
                      preserveScroll: true,
                      onSuccess: () =&gt; {
                          Inertia.get('posts');
                      },
                  });
              },
  </code></pre>
  <p>In this case, the new data is returned to the front-end with the post being marked as completed, but the preserveScroll doesn't work, and jumps the user to the top of the page.</p>
  <p>Any ideas on how to get my desired use case working? Users could have hundreds of posts so I can't have the page jump up to the top every time.</p>
  <p>Thank you for any help!</p>