Switch to async fetching, also ensure profile details are only re-rendered if the returned data changes