diff --git a/ui/src/Components/SilenceModal/Browser/index.js b/ui/src/Components/SilenceModal/Browser/index.js
index 54ed0fbec..0dfbb7c58 100644
--- a/ui/src/Components/SilenceModal/Browser/index.js
+++ b/ui/src/Components/SilenceModal/Browser/index.js
@@ -137,7 +137,7 @@ const Browser = observer(
resetIfNeeded(totalItemsCount, maxPerPage) {
const totalPages = Math.ceil(totalItemsCount / maxPerPage);
if (this.activePage > totalPages) {
- this.activePage = totalPages;
+ this.activePage = Math.max(1, totalPages);
}
}
},
diff --git a/ui/src/Components/SilenceModal/Browser/index.test.js b/ui/src/Components/SilenceModal/Browser/index.test.js
index a2eaec284..0e56b70f2 100644
--- a/ui/src/Components/SilenceModal/Browser/index.test.js
+++ b/ui/src/Components/SilenceModal/Browser/index.test.js
@@ -203,7 +203,7 @@ describe("", () => {
expect(tree.find("ManagedSilence")).toHaveLength(1);
});
- it("resetes pagination to last page on truncation", async () => {
+ it("resets pagination to last page on truncation", async () => {
fetch.mockResponseOnce(JSON.stringify(MockSilenceList(11)));
const tree = MountedBrowser();
const instance = tree.instance();
@@ -224,6 +224,14 @@ describe("", () => {
expect(tree.find("ManagedSilence")).toHaveLength(2);
expect(instance.pagination.activePage).toBe(2);
+
+ fetch.mockResponseOnce(JSON.stringify([]));
+ instance.onFetch();
+ await expect(instance.dataSource.fetch).resolves.toBeUndefined();
+ tree.update();
+
+ expect(tree.find("ManagedSilence")).toHaveLength(0);
+ expect(instance.pagination.activePage).toBe(1);
});
it("renders error after failed fetch", async () => {