Shallow routing on the client

pushState updates ?sort= and useSearchParams re-sorts the list, with no server request.