Skip to content

Commit f00ddff

Browse files
authored
feat(app): display total pages (#727)
1 parent fea0e27 commit f00ddff

File tree

5 files changed

+29
-9
lines changed

5 files changed

+29
-9
lines changed

app/backend/src/fetchCurrentPage.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export const fetchCurrentPage = async ({
3838
return {
3939
title,
4040
images,
41-
nextPage
41+
nextPage,
42+
totalPages: paginatedKeys.length
4243
};
4344
};

app/backend/test/fetchCurrentPage.test.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ describe('fetchCurrentPage', () => {
4545
url: 'url'
4646
}
4747
],
48-
nextPage: 2
48+
nextPage: 2,
49+
totalPages: 3
4950
});
5051
});
5152

@@ -63,7 +64,8 @@ describe('fetchCurrentPage', () => {
6364
url: 'url'
6465
}
6566
],
66-
nextPage: 3
67+
nextPage: 3,
68+
totalPages: 3
6769
});
6870
});
6971

app/frontend/components/main-page.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,11 @@ export const MainPage = ({
147147
</button>
148148
</div>
149149

150+
{data?.totalPages && (
151+
<p className="mt-4 text-xl font-semibold text-gray-500">
152+
Change {page} of {data.totalPages}
153+
</p>
154+
)}
150155
<div className="mt-8">
151156
<UpdateImagesButton
152157
disabled={isFetching || !hasViewedAllPages}

app/frontend/cypress/component/App.cy.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,12 @@ describe('App', () => {
9595
cy.findByRole('button', { name: /side-by-side/i }).should('be.enabled');
9696
});
9797

98+
it('should display the current page and total pages', () => {
99+
cy.findByText('Change 1 of 2').should('be.visible');
100+
cy.findByRole('button', { name: /forward-arrow/ }).click();
101+
cy.findByText('Change 2 of 2').should('be.visible');
102+
});
103+
98104
it('should disable accept visual changes button until all pages have been viewed', () => {
99105
cy.findByRole('button', { name: 'Accept visual changes' }).should(
100106
'be.disabled'

app/frontend/cypress/mocks/pages.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ export const firstPage: TRPCResponse<RouterOutput['fetchCurrentPage']> = {
1919
url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQAQMAAAD1s08VAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEUAhUL+/v6CHFtpAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+YHAQ4GGT76ywYAAACHSURBVHja7cExAQAAAMKg9U9tCU+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgaxN8AAZz3lEoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDctMDFUMTQ6MDY6MjUrMDA6MDCGL2bVAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTA3LTAxVDE0OjA2OjI1KzAwOjAw93LeaQAAAABJRU5ErkJggg=='
2020
}
2121
],
22-
nextPage: 2
22+
nextPage: 2,
23+
totalPages: 2
2324
}
2425
}
2526
};
@@ -42,7 +43,8 @@ export const secondPage: TRPCResponse<RouterOutput['fetchCurrentPage']> = {
4243
url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXcAAAMsAQMAAACV2HCgAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEUAhUL+/v6CHFtpAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+YHAQ4IH0kaQ70AAAA8SURBVHja7cExAQAAAMKg9U/tbwagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA3mEAAAXvk0ysAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDctMDFUMTQ6MDg6MzErMDA6MDCgA3LrAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTA3LTAxVDE0OjA4OjMxKzAwOjAw0V7KVwAAAABJRU5ErkJggg=='
4344
}
4445
],
45-
nextPage: undefined
46+
nextPage: undefined,
47+
totalPages: 2
4648
}
4749
}
4850
};
@@ -59,7 +61,8 @@ export const onlyNewImagesFirstPage: TRPCResponse<
5961
url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQAQMAAAD1s08VAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEUAhUL+/v6CHFtpAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+YHAQ4GGT76ywYAAACHSURBVHja7cExAQAAAMKg9U9tCU+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgaxN8AAZz3lEoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDctMDFUMTQ6MDY6MjUrMDA6MDCGL2bVAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTA3LTAxVDE0OjA2OjI1KzAwOjAw93LeaQAAAABJRU5ErkJggg=='
6062
}
6163
],
62-
nextPage: 2
64+
nextPage: 2,
65+
totalPages: 2
6366
}
6467
}
6568
};
@@ -76,7 +79,8 @@ export const onlyNewImagesSecondPage: TRPCResponse<
7679
url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXcAAAMsAQMAAACV2HCgAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEUAhUL+/v6CHFtpAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+YHAQ4IH0kaQ70AAAA8SURBVHja7cExAQAAAMKg9U/tbwagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA3mEAAAXvk0ysAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDctMDFUMTQ6MDg6MzErMDA6MDCgA3LrAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTA3LTAxVDE0OjA4OjMxKzAwOjAw0V7KVwAAAABJRU5ErkJggg=='
7780
}
7881
],
79-
nextPage: undefined
82+
nextPage: undefined,
83+
totalPages: 2
8084
}
8185
}
8286
};
@@ -95,7 +99,8 @@ export const noNewImagesPage: TRPCResponse<RouterOutput['fetchCurrentPage']> = {
9599
url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXcAAAMsAQMAAACV2HCgAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX97TX///8bZJ7nAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+YHAQ4INguo29EAAAA8SURBVHja7cExAQAAAMKg9U/tbwagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA3mEAAAXvk0ysAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDctMDFUMTQ6MDg6NTQrMDA6MDA0VFTLAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTA3LTAxVDE0OjA4OjU0KzAwOjAwRQnsdwAAAABJRU5ErkJggg=='
96100
}
97101
],
98-
nextPage: undefined
102+
nextPage: undefined,
103+
totalPages: 2
99104
}
100105
}
101106
};
@@ -114,7 +119,8 @@ export const noDiffImagePage: TRPCResponse<RouterOutput['fetchCurrentPage']> = {
114119
url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXcAAAMsAQMAAACV2HCgAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEUAhUL+/v6CHFtpAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+YHAQ4IH0kaQ70AAAA8SURBVHja7cExAQAAAMKg9U/tbwagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA3mEAAAXvk0ysAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDctMDFUMTQ6MDg6MzErMDA6MDCgA3LrAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTA3LTAxVDE0OjA4OjMxKzAwOjAw0V7KVwAAAABJRU5ErkJggg=='
115120
}
116121
],
117-
nextPage: undefined
122+
nextPage: undefined,
123+
totalPages: 1
118124
}
119125
}
120126
};

0 commit comments

Comments
 (0)