From 90d84cec982a2733bb395a507ead09514a72acd8 Mon Sep 17 00:00:00 2001 From: kneerose Date: Sat, 19 Jul 2025 09:57:46 +0545 Subject: [PATCH 1/3] fix: update comment count display to show "99+" for counts exceeding 99 --- .../tests/11-proposal-budget/proposalBudget.spec.ts | 9 ++++++--- .../8-proposal-discussion/proposalDiscussion.spec.ts | 6 +++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/govtool-frontend/playwright/tests/11-proposal-budget/proposalBudget.spec.ts b/tests/govtool-frontend/playwright/tests/11-proposal-budget/proposalBudget.spec.ts index 81954b640..0f198ef4d 100644 --- a/tests/govtool-frontend/playwright/tests/11-proposal-budget/proposalBudget.spec.ts +++ b/tests/govtool-frontend/playwright/tests/11-proposal-budget/proposalBudget.spec.ts @@ -247,19 +247,22 @@ test("11E. Should view comments with count indications on a budget proposal", as const actualTotalComments = await budgetDiscussionDetailsPage.totalComments.textContent(); - const expectedTotalComments = - proposalResponse.data.attributes.prop_comments_number.toString(); + let expectedTotalComments = + proposalResponse.data.attributes.prop_comments_number; const isEqual = actualTotalComments === expectedTotalComments; const currentPageUrl = budgetDiscussionDetailsPage.currentPage.url(); const proposalId = extractProposalIdFromUrl(currentPageUrl); + if (expectedTotalComments > 99) { + expectedTotalComments = "99+"; + } await expect( budgetDiscussionDetailsPage.totalComments, !isEqual && `Total comments do not match in ${environments.frontendUrl}/budget_discussion/${proposalId}` - ).toHaveText(expectedTotalComments); + ).toHaveText(expectedTotalComments.toString()); }); test.describe("Restricted access to interact budget proposal", () => { diff --git a/tests/govtool-frontend/playwright/tests/8-proposal-discussion/proposalDiscussion.spec.ts b/tests/govtool-frontend/playwright/tests/8-proposal-discussion/proposalDiscussion.spec.ts index 011627afa..d15193669 100644 --- a/tests/govtool-frontend/playwright/tests/8-proposal-discussion/proposalDiscussion.spec.ts +++ b/tests/govtool-frontend/playwright/tests/8-proposal-discussion/proposalDiscussion.spec.ts @@ -293,8 +293,12 @@ test.describe("Mocked proposal", () => { }); test("8F. Should display all comments with count indication.", async () => { + let commentCount = mockProposal.data.attributes.prop_comments_number; + if (commentCount > 99) { + commentCount = "99+"; + } await expect(proposalDiscussionDetailsPage.commentCount).toHaveText( - mockProposal.data.attributes.prop_comments_number.toString(), + commentCount.toString(), { timeout: 60_000 } ); }); From cd880b8511b8ea3f8a200c69910e519eea85d7c3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 21 Jul 2025 11:26:30 +0000 Subject: [PATCH 2/3] chore: update @intersect.mbo/govtool-outcomes-pillar-ui to v1.5.3 --- govtool/frontend/package-lock.json | 8 ++++---- govtool/frontend/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/govtool/frontend/package-lock.json b/govtool/frontend/package-lock.json index d9f315e67..39903d276 100644 --- a/govtool/frontend/package-lock.json +++ b/govtool/frontend/package-lock.json @@ -13,7 +13,7 @@ "@emotion/styled": "^11.11.0", "@emurgo/cardano-serialization-lib-asmjs": "^14.1.1", "@hookform/resolvers": "^3.3.1", - "@intersect.mbo/govtool-outcomes-pillar-ui": "v1.5.2", + "@intersect.mbo/govtool-outcomes-pillar-ui": "v1.5.3", "@intersect.mbo/intersectmbo.org-icons-set": "^1.0.8", "@intersect.mbo/pdf-ui": "1.0.9-beta", "@mui/icons-material": "^5.14.3", @@ -3392,9 +3392,9 @@ } }, "node_modules/@intersect.mbo/govtool-outcomes-pillar-ui": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@intersect.mbo/govtool-outcomes-pillar-ui/-/govtool-outcomes-pillar-ui-1.5.2.tgz", - "integrity": "sha512-nIT+GQZBTBUWfW0/hCdiQ324SIi1tC0HPOv1+ORT1RivsLWQX+JGAhAb9E001qjafS/AZuzmlAnq8srrZQDHzQ==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@intersect.mbo/govtool-outcomes-pillar-ui/-/govtool-outcomes-pillar-ui-1.5.3.tgz", + "integrity": "sha512-dMIiaqyS7S3c3UO/NDweCwMsX197WwNdn6elkbizQbZjBLNwKr0mqsoKOMvkbeGDx7UgaRqjB+Nere2eu1xAQA==", "license": "ISC", "dependencies": { "@fontsource/poppins": "^5.0.14", diff --git a/govtool/frontend/package.json b/govtool/frontend/package.json index b58906856..bf96a1742 100644 --- a/govtool/frontend/package.json +++ b/govtool/frontend/package.json @@ -27,7 +27,7 @@ "@emotion/styled": "^11.11.0", "@emurgo/cardano-serialization-lib-asmjs": "^14.1.1", "@hookform/resolvers": "^3.3.1", - "@intersect.mbo/govtool-outcomes-pillar-ui": "v1.5.2", + "@intersect.mbo/govtool-outcomes-pillar-ui": "v1.5.3", "@intersect.mbo/intersectmbo.org-icons-set": "^1.0.8", "@intersect.mbo/pdf-ui": "1.0.9-beta", "@mui/icons-material": "^5.14.3", From 08bd26a0e363d07770db5ad7be27d58c618039b4 Mon Sep 17 00:00:00 2001 From: Miro Date: Tue, 22 Jul 2025 11:47:32 +0200 Subject: [PATCH 3/3] issue:3918 disappearing data ToVote --- .../organisms/DashboardGovernanceActions.tsx | 13 ++++++++++--- .../src/hooks/queries/useGetProposalsQuery.ts | 19 ++++++++++--------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/govtool/frontend/src/components/organisms/DashboardGovernanceActions.tsx b/govtool/frontend/src/components/organisms/DashboardGovernanceActions.tsx index b1b4f80e1..ccdf0b84c 100644 --- a/govtool/frontend/src/components/organisms/DashboardGovernanceActions.tsx +++ b/govtool/frontend/src/components/organisms/DashboardGovernanceActions.tsx @@ -22,6 +22,7 @@ import { DashboardGovernanceActionsVotedOn, } from "@organisms"; import { Button } from "@atoms"; +import usePrevious from "@/hooks/usePrevious"; type TabPanelProps = { children?: React.ReactNode; @@ -84,11 +85,17 @@ export const DashboardGovernanceActions = () => { const queryFilters = chosenFilters.length > 0 ? chosenFilters : defaultCategories; + const prevFilters = usePrevious(queryFilters); + const prevSorting = usePrevious(chosenSorting); + + const stableFilters = isAdjusting ? prevFilters ?? queryFilters : queryFilters; + const stableSorting = isAdjusting ? prevSorting ?? chosenSorting : chosenSorting; + const { proposals, isProposalsLoading } = useGetProposalsQuery({ - filters: queryFilters, - sorting: chosenSorting, + filters: stableFilters, + sorting: stableSorting, searchPhrase: debouncedSearchText, - enabled: !isAdjusting, + enabled: true, }); const { data: votes, areDRepVotesLoading } = useGetDRepVotesQuery( queryFilters, diff --git a/govtool/frontend/src/hooks/queries/useGetProposalsQuery.ts b/govtool/frontend/src/hooks/queries/useGetProposalsQuery.ts index 0ebbe8677..f377ab128 100644 --- a/govtool/frontend/src/hooks/queries/useGetProposalsQuery.ts +++ b/govtool/frontend/src/hooks/queries/useGetProposalsQuery.ts @@ -33,15 +33,16 @@ export const useGetProposalsQuery = ({ return allProposals.flatMap((proposal) => proposal.elements); }; - const { data, isLoading } = useQuery( - [QUERY_KEYS.useGetProposalsKey, filters, searchPhrase, sorting, dRepID], - fetchProposals, - { - enabled, - refetchOnWindowFocus: true, - keepPreviousData: true, - }, - ); + const { data, isLoading } = useQuery( + [QUERY_KEYS.useGetProposalsKey, filters, searchPhrase, sorting, dRepID], + fetchProposals, + { + enabled, + refetchOnWindowFocus: true, + keepPreviousData: true, + staleTime: 2000, + }, + ); const proposals = Object.values(groupByType(data) ?? []);