fix(ui): reset per-user usage page in the same render as the tag filter change

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
ryan 2026-09-03 23:52:12 +00:00 • committed by ryan-crabbe-berri
parent 11f272e08b
commit fd42bddee6
2 changed files with 10 additions and 4 deletions

View file

@ -176,12 +176,16 @@ describe("PerUserUsage", () => {
await screen.findByText("user-1");
await user.click(screen.getByTestId("pagination-next"));
await screen.findByText("user-51");
const callsBeforeTagChange = mockPerUserAnalyticsCall.mock.calls.length;
rerender(<PerUserUsage {...defaultProps} selectedTags={["curl/8.0"]} />);
await waitFor(() => {
expect(lastCall()).toEqual(["test-token", 1, 50, ["curl/8.0"]]);
});
expect(mockPerUserAnalyticsCall.mock.calls.slice(callsBeforeTagChange)).toEqual([
["test-token", 1, 50, ["curl/8.0"]],
]);
expect(await screen.findByText("user-1")).toBeInTheDocument();
expect(screen.getByTestId("pagination-range")).toHaveTextContent("Showing 1-50 of 120");
});

View file

@ -42,10 +42,12 @@ const PerUserUsage: React.FC<PerUserUsageProps> = ({ accessToken, selectedTags,
});
const [pagination, setPagination] = useState<PaginationState>({ pageIndex: 0, pageSize: 50 });
const [pagedTags, setPagedTags] = useState(selectedTags);
useEffect(() => {
if (pagedTags !== selectedTags) {
setPagedTags(selectedTags);
setPagination((prev) => (prev.pageIndex === 0 ? prev : { ...prev, pageIndex: 0 }));
}, [selectedTags]);
}
useEffect(() => {
if (!accessToken) return;
@ -55,7 +57,7 @@ const PerUserUsage: React.FC<PerUserUsageProps> = ({ accessToken, selectedTags,
accessToken,
pagination.pageIndex + 1,
pagination.pageSize,
selectedTags.length > 0 ? selectedTags : undefined,
pagedTags.length > 0 ? pagedTags : undefined,
)
.then((response) => {
if (!stale) setPerUserData(response);
@ -65,7 +67,7 @@ const PerUserUsage: React.FC<PerUserUsageProps> = ({ accessToken, selectedTags,
return () => {
stale = true;
};
}, [accessToken, selectedTags, pagination]);
}, [accessToken, pagedTags, pagination]);
const handlePaginationChange = useCallback<OnChangeFn<PaginationState>>((updaterOrValue) => {
setPagination((prev) => {