Skip to content

Commit 36f3b03

Browse files
committed
refactor: replace manual pagination logic with getAdditionalPages utility for cleaner code and improved maintainability
1 parent 6e512db commit 36f3b03

File tree

15 files changed

+111
-75
lines changed

15 files changed

+111
-75
lines changed

src/modules/addresses/address/apps/AddressAppsTable.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ErrorAlert } from '@/modules/ErrorAlert';
99
import { columns } from '@/modules/apps/appsTable/columns';
1010
import useUserStore from '@/stores/useUser.store';
1111
import { createPlaceholderDataFnForQueryKey } from '@/utils/createPlaceholderDataFnForQueryKey';
12+
import { getAdditionalPages } from '@/utils/format';
1213
import { addressAppsQuery } from './addressAppsQuery';
1314

1415
function useAddressAppsData({
@@ -41,19 +42,20 @@ function useAddressAppsData({
4142
);
4243

4344
const apps = data?.account?.apps ?? [];
44-
const hasNextPage = (data?.account?.appsHasNext?.length ?? 0) > 0;
45-
const hasNextNextPage = (data?.account?.appsHasNextNext?.length ?? 0) > 0;
4645
// 0 = only current, 1 = next, 2 = next+1
47-
const additionalPages = hasNextPage ? (hasNextNextPage ? 2 : 1) : 0;
46+
const additionalPages = getAdditionalPages(
47+
Boolean(data?.account?.appsHasNext?.length),
48+
Boolean(data?.account?.appsHasNextNext?.length)
49+
);
4850

49-
const formattedDeal =
51+
const formattedApps =
5052
apps.map((app) => ({
5153
...app,
5254
destination: `/app/${app.address}`,
5355
})) ?? [];
5456

5557
return {
56-
data: formattedDeal,
58+
data: formattedApps,
5759
isLoading,
5860
isRefetching,
5961
isError,

src/modules/addresses/address/datasets/AddressDatasetsTable.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ErrorAlert } from '@/modules/ErrorAlert';
99
import { columns } from '@/modules/datasets/datasetsTable/columns';
1010
import useUserStore from '@/stores/useUser.store';
1111
import { createPlaceholderDataFnForQueryKey } from '@/utils/createPlaceholderDataFnForQueryKey';
12+
import { getAdditionalPages } from '@/utils/format';
1213
import { addressDatasetsQuery } from './addressDatasetsQuery';
1314

1415
function useAddressDatasetsData({
@@ -47,19 +48,20 @@ function useAddressDatasetsData({
4748
);
4849

4950
const datasets = data?.account?.datasets ?? [];
50-
const hasNextPage = (data?.account?.datasetsHasNext?.length ?? 0) > 0;
51-
const hasNextNextPage = (data?.account?.datasetsHasNextNext?.length ?? 0) > 0;
5251
// 0 = only current, 1 = next, 2 = next+1
53-
const additionalPages = hasNextPage ? (hasNextNextPage ? 2 : 1) : 0;
52+
const additionalPages = getAdditionalPages(
53+
Boolean(data?.account?.datasetsHasNext?.length),
54+
Boolean(data?.account?.datasetsHasNextNext?.length)
55+
);
5456

55-
const formattedDeal =
57+
const datasetsDatasets =
5658
datasets.map((dataset) => ({
5759
...dataset,
5860
destination: `/dataset/${dataset.address}`,
5961
})) ?? [];
6062

6163
return {
62-
data: formattedDeal,
64+
data: datasetsDatasets,
6365
isLoading,
6466
isRefetching,
6567
isError,

src/modules/addresses/address/requests/beneficiaryDeals/AddressBeneficiaryDealsTable.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ErrorAlert } from '@/modules/ErrorAlert';
99
import { columns } from '@/modules/deals/dealsTable/columns';
1010
import useUserStore from '@/stores/useUser.store';
1111
import { createPlaceholderDataFnForQueryKey } from '@/utils/createPlaceholderDataFnForQueryKey';
12+
import { getAdditionalPages } from '@/utils/format';
1213
import { addressBeneficiaryDealsQuery } from './addressBeneficiaryDealsQuery';
1314

1415
function useAddressBeneficiaryDealsData({
@@ -48,20 +49,20 @@ function useAddressBeneficiaryDealsData({
4849
);
4950

5051
const beneficiaryDeals = data?.account?.dealBeneficiary ?? [];
51-
const hasNextPage = (data?.account?.dealBeneficiaryHasNext?.length ?? 0) > 0;
52-
const hasNextNextPage =
53-
(data?.account?.dealBeneficiaryHasNextNext?.length ?? 0) > 0;
5452
// 0 = only current, 1 = next, 2 = next+1
55-
const additionalPages = hasNextPage ? (hasNextNextPage ? 2 : 1) : 0;
53+
const additionalPages = getAdditionalPages(
54+
Boolean(data?.account?.dealBeneficiaryHasNext?.length),
55+
Boolean(data?.account?.dealBeneficiaryHasNextNext?.length)
56+
);
5657

57-
const formattedDeal =
58+
const formattedDeals =
5859
beneficiaryDeals.map((deal) => ({
5960
...deal,
6061
destination: `/deal/${deal.dealid}`,
6162
})) ?? [];
6263

6364
return {
64-
data: formattedDeal,
65+
data: formattedDeals,
6566
isLoading,
6667
isRefetching,
6768
isError,

src/modules/addresses/address/requests/requestedDeals/AddressRequestedDealsTable.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ErrorAlert } from '@/modules/ErrorAlert';
99
import { columns } from '@/modules/deals/dealsTable/columns';
1010
import useUserStore from '@/stores/useUser.store';
1111
import { createPlaceholderDataFnForQueryKey } from '@/utils/createPlaceholderDataFnForQueryKey';
12+
import { getAdditionalPages } from '@/utils/format';
1213
import { addressRequestedDealsQuery } from './addressRequestedDealsQuery';
1314

1415
function useAddressRequestedDealsData({
@@ -47,20 +48,20 @@ function useAddressRequestedDealsData({
4748
);
4849

4950
const requestedDeals = data?.account?.dealRequester ?? [];
50-
const hasNextPage = (data?.account?.dealRequesterHasNext?.length ?? 0) > 0;
51-
const hasNextNextPage =
52-
(data?.account?.dealRequesterHasNextNext?.length ?? 0) > 0;
5351
// 0 = only current, 1 = next, 2 = next+1
54-
const additionalPages = hasNextPage ? (hasNextNextPage ? 2 : 1) : 0;
52+
const additionalPages = getAdditionalPages(
53+
Boolean(data?.account?.dealRequesterHasNext?.length),
54+
Boolean(data?.account?.dealRequesterHasNextNext?.length)
55+
);
5556

56-
const formattedDeal =
57+
const formattedDeals =
5758
requestedDeals.map((deal) => ({
5859
...deal,
5960
destination: `/deal/${deal.dealid}`,
6061
})) ?? [];
6162

6263
return {
63-
data: formattedDeal,
64+
data: formattedDeals,
6465
isLoading,
6566
isRefetching,
6667
isError,

src/modules/addresses/address/requests/requestedTasks/AddressRequestedTasksTable.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ErrorAlert } from '@/modules/ErrorAlert';
99
import { columns } from '@/modules/tasks/tasksTable/columns';
1010
import useUserStore from '@/stores/useUser.store';
1111
import { createPlaceholderDataFnForQueryKey } from '@/utils/createPlaceholderDataFnForQueryKey';
12+
import { getAdditionalPages } from '@/utils/format';
1213
import { addressRequestedTasksQuery } from './addressRequestedTasksQuery';
1314

1415
function useAddressRequestedTasksData({
@@ -47,20 +48,20 @@ function useAddressRequestedTasksData({
4748
);
4849

4950
const requestedTasks = data?.account?.taskRequester ?? [];
50-
const hasNextPage = (data?.account?.taskRequesterHasNext?.length ?? 0) > 0;
51-
const hasNextNextPage =
52-
(data?.account?.taskRequesterHasNextNext?.length ?? 0) > 0;
5351
// 0 = only current, 1 = next, 2 = next+1
54-
const additionalPages = hasNextPage ? (hasNextNextPage ? 2 : 1) : 0;
52+
const additionalPages = getAdditionalPages(
53+
Boolean(data?.account?.taskRequesterHasNext?.length),
54+
Boolean(data?.account?.taskRequesterHasNextNext?.length)
55+
);
5556

56-
const formattedDeal =
57+
const formattedTasks =
5758
requestedTasks.map((task) => ({
5859
...task,
5960
destination: `/task/${task.taskid}`,
6061
})) ?? [];
6162

6263
return {
63-
data: formattedDeal,
64+
data: formattedTasks,
6465
isLoading,
6566
isRefetching,
6667
isError,

src/modules/addresses/address/workerpools/AddressWorkerpoolsTable.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ErrorAlert } from '@/modules/ErrorAlert';
99
import { columns } from '@/modules/workerpools/workerpoolsTable/columns';
1010
import useUserStore from '@/stores/useUser.store';
1111
import { createPlaceholderDataFnForQueryKey } from '@/utils/createPlaceholderDataFnForQueryKey';
12+
import { getAdditionalPages } from '@/utils/format';
1213
import { addressWorkerpoolsQuery } from './addressWorkerpoolsQuery';
1314

1415
function useAddressWorkerpoolsData({
@@ -47,20 +48,20 @@ function useAddressWorkerpoolsData({
4748
);
4849

4950
const workerpools = data?.account?.workerpools ?? [];
50-
const hasNextPage = (data?.account?.workerpoolsHasNext?.length ?? 0) > 0;
51-
const hasNextNextPage =
52-
(data?.account?.workerpoolsHasNextNext?.length ?? 0) > 0;
5351
// 0 = only current, 1 = next, 2 = next+1
54-
const additionalPages = hasNextPage ? (hasNextNextPage ? 2 : 1) : 0;
52+
const additionalPages = getAdditionalPages(
53+
Boolean(data?.account?.workerpoolsHasNext?.length),
54+
Boolean(data?.account?.workerpoolsHasNextNext?.length)
55+
);
5556

56-
const formattedDeal =
57+
const formattedWorkerpools =
5758
workerpools.map((workerpool) => ({
5859
...workerpool,
5960
destination: `/workerpool/${workerpool.address}`,
6061
})) ?? [];
6162

6263
return {
63-
data: formattedDeal,
64+
data: formattedWorkerpools,
6465
isLoading,
6566
isRefetching,
6667
isError,

src/modules/addresses/address/workers/beneficiaryDeals/addressContributionTable.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { usePageParam } from '@/hooks/usePageParam';
88
import { ErrorAlert } from '@/modules/ErrorAlert';
99
import useUserStore from '@/stores/useUser.store';
1010
import { createPlaceholderDataFnForQueryKey } from '@/utils/createPlaceholderDataFnForQueryKey';
11+
import { getAdditionalPages } from '@/utils/format';
1112
import { addressContributionQuery } from './addressContributionQuery';
1213
import { columns } from './columns';
1314

@@ -47,20 +48,20 @@ function useAddressContributionData({
4748
);
4849

4950
const contributions = data?.account?.contributions ?? [];
50-
const hasNextPage = (data?.account?.contributionsHasNext?.length ?? 0) > 0;
51-
const hasNextNextPage =
52-
(data?.account?.contributionsHasNextNext?.length ?? 0) > 0;
5351
// 0 = only current, 1 = next, 2 = next+1
54-
const additionalPages = hasNextPage ? (hasNextNextPage ? 2 : 1) : 0;
52+
const additionalPages = getAdditionalPages(
53+
Boolean(data?.account?.contributionsHasNext?.length),
54+
Boolean(data?.account?.contributionsHasNextNext?.length)
55+
);
5556

56-
const formattedDeal =
57+
const formattedContributions =
5758
contributions.map((contribution) => ({
5859
...contribution,
5960
destination: `/task/${contribution.task.taskid}`,
6061
})) ?? [];
6162

6263
return {
63-
data: formattedDeal,
64+
data: formattedContributions,
6465
isLoading,
6566
isRefetching,
6667
isError,

src/modules/datasets/dataset/DatasetDealsTable.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ErrorAlert } from '@/modules/ErrorAlert';
99
import { columns } from '@/modules/deals/dealsTable/columns';
1010
import useUserStore from '@/stores/useUser.store';
1111
import { createPlaceholderDataFnForQueryKey } from '@/utils/createPlaceholderDataFnForQueryKey';
12+
import { getAdditionalPages } from '@/utils/format';
1213
import { datasetDealsQuery } from './datasetDealsQuery';
1314

1415
function useDatasetDealsData({
@@ -41,19 +42,20 @@ function useDatasetDealsData({
4142
);
4243

4344
const deals = data?.dataset?.deals ?? [];
44-
const hasNextPage = (data?.dataset?.dealsHasNext?.length ?? 0) > 0;
45-
const hasNextNextPage = (data?.dataset?.dealsHasNextNext?.length ?? 0) > 0;
4645
// 0 = only current, 1 = next, 2 = next+1
47-
const additionalPages = hasNextPage ? (hasNextNextPage ? 2 : 1) : 0;
46+
const additionalPages = getAdditionalPages(
47+
Boolean(data?.dataset?.dealsHasNext?.length),
48+
Boolean(data?.dataset?.dealsHasNextNext?.length)
49+
);
4850

49-
const formattedDeal =
51+
const formattedDeals =
5052
deals.map((deal) => ({
5153
...deal,
5254
destination: `/deal/${deal.dealid}`,
5355
})) ?? [];
5456

5557
return {
56-
data: formattedDeal,
58+
data: formattedDeals,
5759
isLoading,
5860
isRefetching,
5961
isError,

src/modules/workerpools/workerpool/WorkerpoolDealsTable.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ErrorAlert } from '@/modules/ErrorAlert';
99
import { columns } from '@/modules/deals/dealsTable/columns';
1010
import useUserStore from '@/stores/useUser.store';
1111
import { createPlaceholderDataFnForQueryKey } from '@/utils/createPlaceholderDataFnForQueryKey';
12+
import { getAdditionalPages } from '@/utils/format';
1213
import { workerpoolDealsQuery } from './workerpoolDealsQuery';
1314

1415
function useWorkerpoolDealsData({
@@ -47,19 +48,20 @@ function useWorkerpoolDealsData({
4748
);
4849

4950
const deals = data?.workerpool?.deals ?? [];
50-
const hasNextPage = (data?.workerpool?.dealsHasNext?.length ?? 0) > 0;
51-
const hasNextNextPage = (data?.workerpool?.dealsHasNextNext?.length ?? 0) > 0;
5251
// 0 = only current, 1 = next, 2 = next+1
53-
const additionalPages = hasNextPage ? (hasNextNextPage ? 2 : 1) : 0;
52+
const additionalPages = getAdditionalPages(
53+
Boolean(data?.workerpool?.dealsHasNext?.length),
54+
Boolean(data?.workerpool?.dealsHasNextNext?.length)
55+
);
5456

55-
const formattedDeal =
57+
const formattedDeals =
5658
deals.map((deal) => ({
5759
...deal,
5860
destination: `/deal/${deal.dealid}`,
5961
})) ?? [];
6062

6163
return {
62-
data: formattedDeal,
64+
data: formattedDeals,
6365
isLoading,
6466
isRefetching,
6567
isError,

src/routes/$chainSlug/_layout/apps.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { columns } from '@/modules/apps/appsTable/columns';
1414
import { SearcherBar } from '@/modules/search/SearcherBar';
1515
import useUserStore from '@/stores/useUser.store';
1616
import { createPlaceholderDataFnForQueryKey } from '@/utils/createPlaceholderDataFnForQueryKey';
17+
import { getAdditionalPages } from '@/utils/format';
1718

1819
export const Route = createFileRoute('/$chainSlug/_layout/apps')({
1920
component: AppsRoute,
@@ -43,19 +44,20 @@ function useAppsData(currentPage: number) {
4344
);
4445

4546
const apps = data?.apps ?? [];
46-
const hasNextPage = (data?.appsHasNext?.length ?? 0) > 0;
47-
const hasNextNextPage = (data?.appsHasNextNext?.length ?? 0) > 0;
4847
// 0 = only current, 1 = next, 2 = next+1
49-
const additionalPages = hasNextPage ? (hasNextNextPage ? 2 : 1) : 0;
48+
const additionalPages = getAdditionalPages(
49+
Boolean(data?.appsHasNext?.length),
50+
Boolean(data?.appsHasNextNext?.length)
51+
);
5052

51-
const formattedData =
53+
const formattedApps =
5254
apps.map((app) => ({
5355
...app,
5456
destination: `/app/${app.address}`,
5557
})) ?? [];
5658

5759
return {
58-
data: formattedData,
60+
data: formattedApps,
5961
isLoading,
6062
isRefetching,
6163
isError,

0 commit comments

Comments
 (0)