Improve user voting power summary display (#4097)
Home /
Input Output /
catalyst-voices
Jan 29, 9-10 PM (0)
Jan 29, 10-11 PM (0)
Jan 29, 11-12 AM (0)
Jan 30, 12-1 AM (0)
Jan 30, 1-2 AM (0)
Jan 30, 2-3 AM (0)
Jan 30, 3-4 AM (0)
Jan 30, 4-5 AM (0)
Jan 30, 5-6 AM (0)
Jan 30, 6-7 AM (1)
Jan 30, 7-8 AM (2)
Jan 30, 8-9 AM (2)
Jan 30, 9-10 AM (1)
Jan 30, 10-11 AM (6)
Jan 30, 11-12 PM (9)
Jan 30, 12-1 PM (3)
Jan 30, 1-2 PM (2)
Jan 30, 2-3 PM (0)
Jan 30, 3-4 PM (2)
Jan 30, 4-5 PM (1)
Jan 30, 5-6 PM (0)
Jan 30, 6-7 PM (0)
Jan 30, 7-8 PM (0)
Jan 30, 8-9 PM (0)
Jan 30, 9-10 PM (0)
Jan 30, 10-11 PM (0)
Jan 30, 11-12 AM (0)
Jan 31, 12-1 AM (0)
Jan 31, 1-2 AM (0)
Jan 31, 2-3 AM (0)
Jan 31, 3-4 AM (0)
Jan 31, 4-5 AM (0)
Jan 31, 5-6 AM (0)
Jan 31, 6-7 AM (0)
Jan 31, 7-8 AM (0)
Jan 31, 8-9 AM (0)
Jan 31, 9-10 AM (0)
Jan 31, 10-11 AM (0)
Jan 31, 11-12 PM (0)
Jan 31, 12-1 PM (0)
Jan 31, 1-2 PM (0)
Jan 31, 2-3 PM (0)
Jan 31, 3-4 PM (0)
Jan 31, 4-5 PM (0)
Jan 31, 5-6 PM (0)
Jan 31, 6-7 PM (0)
Jan 31, 7-8 PM (0)
Jan 31, 8-9 PM (0)
Jan 31, 9-10 PM (0)
Jan 31, 10-11 PM (0)
Jan 31, 11-12 AM (0)
Feb 01, 12-1 AM (0)
Feb 01, 1-2 AM (0)
Feb 01, 2-3 AM (0)
Feb 01, 3-4 AM (0)
Feb 01, 4-5 AM (0)
Feb 01, 5-6 AM (0)
Feb 01, 6-7 AM (0)
Feb 01, 7-8 AM (0)
Feb 01, 8-9 AM (0)
Feb 01, 9-10 AM (0)
Feb 01, 10-11 AM (0)
Feb 01, 11-12 PM (0)
Feb 01, 12-1 PM (0)
Feb 01, 1-2 PM (0)
Feb 01, 2-3 PM (0)
Feb 01, 3-4 PM (0)
Feb 01, 4-5 PM (0)
Feb 01, 5-6 PM (0)
Feb 01, 6-7 PM (0)
Feb 01, 7-8 PM (0)
Feb 01, 8-9 PM (0)
Feb 01, 9-10 PM (0)
Feb 01, 10-11 PM (0)
Feb 01, 11-12 AM (0)
Feb 02, 12-1 AM (0)
Feb 02, 1-2 AM (0)
Feb 02, 2-3 AM (0)
Feb 02, 3-4 AM (0)
Feb 02, 4-5 AM (0)
Feb 02, 5-6 AM (0)
Feb 02, 6-7 AM (3)
Feb 02, 7-8 AM (1)
Feb 02, 8-9 AM (3)
Feb 02, 9-10 AM (1)
Feb 02, 10-11 AM (2)
Feb 02, 11-12 PM (1)
Feb 02, 12-1 PM (0)
Feb 02, 1-2 PM (6)
Feb 02, 2-3 PM (4)
Feb 02, 3-4 PM (4)
Feb 02, 4-5 PM (0)
Feb 02, 5-6 PM (0)
Feb 02, 6-7 PM (0)
Feb 02, 7-8 PM (0)
Feb 02, 8-9 PM (0)
Feb 02, 9-10 PM (0)
Feb 02, 10-11 PM (0)
Feb 02, 11-12 AM (0)
Feb 03, 12-1 AM (0)
Feb 03, 1-2 AM (0)
Feb 03, 2-3 AM (0)
Feb 03, 3-4 AM (0)
Feb 03, 4-5 AM (0)
Feb 03, 5-6 AM (0)
Feb 03, 6-7 AM (0)
Feb 03, 7-8 AM (7)
Feb 03, 8-9 AM (1)
Feb 03, 9-10 AM (0)
Feb 03, 10-11 AM (2)
Feb 03, 11-12 PM (4)
Feb 03, 12-1 PM (0)
Feb 03, 1-2 PM (1)
Feb 03, 2-3 PM (1)
Feb 03, 3-4 PM (0)
Feb 03, 4-5 PM (0)
Feb 03, 5-6 PM (0)
Feb 03, 6-7 PM (0)
Feb 03, 7-8 PM (0)
Feb 03, 8-9 PM (0)
Feb 03, 9-10 PM (0)
Feb 03, 10-11 PM (0)
Feb 03, 11-12 AM (0)
Feb 04, 12-1 AM (0)
Feb 04, 1-2 AM (0)
Feb 04, 2-3 AM (0)
Feb 04, 3-4 AM (0)
Feb 04, 4-5 AM (0)
Feb 04, 5-6 AM (0)
Feb 04, 6-7 AM (1)
Feb 04, 7-8 AM (1)
Feb 04, 8-9 AM (1)
Feb 04, 9-10 AM (0)
Feb 04, 10-11 AM (1)
Feb 04, 11-12 PM (3)
Feb 04, 12-1 PM (0)
Feb 04, 1-2 PM (0)
Feb 04, 2-3 PM (0)
Feb 04, 3-4 PM (0)
Feb 04, 4-5 PM (0)
Feb 04, 5-6 PM (1)
Feb 04, 6-7 PM (0)
Feb 04, 7-8 PM (0)
Feb 04, 8-9 PM (0)
Feb 04, 9-10 PM (0)
Feb 04, 10-11 PM (1)
Feb 04, 11-12 AM (0)
Feb 05, 12-1 AM (0)
Feb 05, 1-2 AM (0)
Feb 05, 2-3 AM (0)
Feb 05, 3-4 AM (0)
Feb 05, 4-5 AM (0)
Feb 05, 5-6 AM (0)
Feb 05, 6-7 AM (0)
Feb 05, 7-8 AM (0)
Feb 05, 8-9 AM (1)
Feb 05, 9-10 AM (0)
Feb 05, 10-11 AM (3)
Feb 05, 11-12 PM (0)
Feb 05, 12-1 PM (1)
Feb 05, 1-2 PM (0)
Feb 05, 2-3 PM (0)
Feb 05, 3-4 PM (0)
Feb 05, 4-5 PM (0)
Feb 05, 5-6 PM (0)
Feb 05, 6-7 PM (0)
Feb 05, 7-8 PM (0)
Feb 05, 8-9 PM (0)
Feb 05, 9-10 PM (0)
84 commits this week
Jan 29, 2026
-
Feb 05, 2026
DocumentRefSelector::In
Separate FILTERED_SELECT_FULL_SIGNED_DOCS_TEMPLATE and FILTERED_SELECT_SIGNED_DOCS_TEMPLATE
Improve user voting power summary display
Update full doc query
Add/modify selectors
Merge main into feat/voting_dreps_delegation
feat(cat-voices): Co proposers - no notifications (#3731)
* fix: favorite button (#3435) * chore: disable Sentry in profile mode (#3489) * feat(cat-voices): discovery widget optimization (#3460) * feat: discovery optimilisation widgets * chore: update most_recent_proposals * fix: format * fix: review * chore: created custom selector for dates events * chore: change names * chore: review timeline items update * fix: review * feat(cat-voices): Images and Videos fails gracefully (#3494) * feat: video and images fail gracefully * chore: review update * feat: make applyConfig ext private * feat(cat-voices): responsive breakpoints update (#3498) * feat: changing breakpoints * fix: format * feat(cat-voices): stress test env (#3520) * wip: LocalCatGateway * first iteration of LocalCatGateway * fix previous commit * feat: use more categories and make action's nullable sometimes * Delete mixin in favour or LocalCatGateway implementation * StressTest config * chore: cleanup imports * clear db only when stress test is enabled * update StressTestConfig * refactor: move unimplemented functions to InternalErrorCatGatewayMixin * optional author getter * chore: debug print for stress test * update README * fix: spelling * chore: use debugPrint instead of print * feat(cat-voices): Catalyst Developer Profiler (#3533) * feat: adding catalyst developer profiler * feat: update CatalystDeveloperProfiler to use CatalystProfiler * feat(cat-voices): workspace mocked data (#3524) * chore: rename selectors widget * chore: seperate widget into smaller files * feat(cat-voices): Changing widget to slivers in workspace page for optimisation (#3543) * chore: refactor proposals list * chore: change single child scroll view to custom scroll view and slivers * chore: review update * merge with main * fix: uncomment runner in earthly * feat(cat-voices): Expansion of CatalystProfiler coverage (#3547) * feat: extending profiler for addtional functions * fix: format * fix: review * feat(cat-voices): `CatalystVoicesDev` package (#3558) * feat: creating dev package and first fakes * chore: remove kd * feat: mock compressor * feat: mock key derivation * feat: mock private key * feat: mock repositories * chore: resturcture dev package * feat: using dev mock/fake compresion rbac classes * fix: test * chore: moving document factories to dev package * fix: workspace bloc * feat: use of document factory * chore: self review * fix: spelling * fix: markdown * fix: licenses * fix: revert dev package from serialization * fix: format * chore: remove coverage_badge icons * feat(cat-voices): Progressive loading indicator in app splash screen (#3557) * feat: add progress of sync docs in splash screen * chore: review update * fix: review * feat(cat-voices): documents indexing performance (#3555) * docs: capture initial times * chore: remove cacheDocument * turn off logging * chore: use debugPrint instead of logger * feat: bulk documents save * batching sync * chore: move exact ref resoling to getDocumentData instead of index * fix: DocumentRepository * chore: simplify getting documents data * remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource * chore: update docs * simplified document index endpoint * remove randomness from LocalCatGateway * indexing by batch size * wip: filtering by types * Rework filtering refs + checking all refs if already cached in parallel * docs * update indexing.csv * update indexing csv * chore: cleanup * trailing new line * chore * move performance tab to docs * bulk saving typed docs in parallel * chore: revert hardcoded timestamp * chore: typos * split _sync into smaller functions + add documentation * little refactor * fix: analyzer * feat(cat-voices): Filter out internal extensions exception (#3586) * feat: skip exception from internal extensions * test: adding test cases * fix: spelling * chore: update README (#3613) * feat(cat-voices): keychain state snackbars (#3610) * feat: adding new catalst messenger type - snackbar * chore: remove snackbars from catalyst messanger * chore: remove test data * chore: remove unused method * chore: restore method return type * fix: unbounded height error in account page * refactor(cat-voices): delete keychain dialog (#3618) * wip * wip * chore: show dialog on proper page * chore: remove old way of showing confirmation dialog * chore: cleanup * fix: format * chore: review update * fix: format * chore: rename dialog to buildDialog * feat(cat-voices): enable browser crypto api in wasm (#3640) * chore: enable browser crypto api in wasm * chore: use official dart cryptography * chore: workaround for browser crypto api * chore: docs * feat(cat-voices): Enable wasm support for Catalyst Voices (#3622) * feat: enable wasm support * feat: update vscode launch.json to enable wasm * fix: wasm undefined support * chore: update to CI version with wasm support * fix: undefined in wasm * chore: cleanup * style: spelling * chore: add wasm argument * fix: syntax * chore: switch to master * fix(cat-voices): revert local changes (#3651) * docs(cat-voices): wasm performance documentation (#3658) * docs: wasm performance improvements * fix: scripts * refactor(cat-voices): Reporting service fail gracefully (#3636) * refactor: adding graceful failing for reporting service * chore: change to const * feat(cat-voices): release mode for flutter rust bridge (#3676) * chore: update CI * feat: enable release mode for flutter_rust_bridge * chore: regenerate in release mode * feat: regenerate * chore: restore * docs: readme * chore: restore release mode * feat(cat-voices): Versioning web build assets (#3643) * feat: version assets script * chore: review update * fix: spelling * chore: remove unused files * chore: remove manifest ref * chore: review update * chore: fix path changing add wasm support * chore: readme * chore: update readme * fix: spelling * chore: remove url part * wip * wip * wip * chore: update gitignore * chore: adding tests * chore: update readme * fix: spelling * fix: spelling * fix: spelling * chore: filter target files * chore: flutter_bootstrap don't rename canvaskit files * chore: add new version to files * chore: revert v1 versions of manual files * feat(cat-voices): fine tune cache control for voices (#3687) * feat: version assets script * chore: review update * fix: spelling * chore: remove unused files * chore: remove manifest ref * chore: review update * chore: fix path changing add wasm support * chore: readme * chore: update readme * fix: spelling * chore: remove url part * wip * wip * wip * chore: update gitignore * chore: adding tests * chore: update readme * fix: spelling * fix: spelling * feat: new cache-control settings * chore: update other caddyfiles * fix: spelling * fix: spelling * fix: spelling * chore: filter target files * chore: flutter_bootstrap don't rename canvaskit files * chore: add new version to files * chore: revert v1 versions of manual files --------- Co-authored-by: Dominik Toton <[email protected]> * feat(cat-voices): New app version banner (#3714) * feat: version assets script * chore: review update * fix: spelling * chore: remove unused files * chore: remove manifest ref * chore: review update * chore: fix path changing add wasm support * chore: readme * chore: update readme * fix: spelling * chore: remove url part * wip * wip * wip * chore: update gitignore * chore: adding tests * chore: update readme * fix: spelling * fix: spelling * fix: spelling * chore: filter target files * chore: flutter_bootstrap don't rename canvaskit files * feat: adding app metadata service * feat: ui implementation for showing banner of new version * fix: static ananlysis * feat: change location of calling fun to check app version * fix: better handling if router exists in context * chore: add new version to files * chore: revert v1 versions of manual files * feat(cat-voices): Include username in `CatalystIdText` (#3725) * feat: add username to catalyst id text * refactor: to method instead of getter * feat: update to include username in copy and not in ui * refactor(cat-voices): revert wasm workaround for js undefined (#3741) * feat(cat-voices): wrap CIP-30 and CIP-95 wallet APIs in JS to make place for catching and mapping errors (#3711) * feat: wrap initial and full cardano wallet api in JS * feat: map CIP-95 API * fix: syntax * feat(cat-voices): map JS wallet errors to dart models (#3712) * feat: wrap initial and full cardano wallet api in JS * feat: map CIP-95 API * fix: syntax * feat: map errors in JS to a format understandable by dart layer * feat: map remaining errors * fix: remove logs * chore: cleanup * fix: map exceptions * chore: add tests * chore: ignore invalid lint * refactor: use recursion to parse wallet errors * fix(cat-voices): handle account change error in cardano wallet (#3726) * feat: cardano wallet decorator handling account change * chore: cleanup * chore: add test * fix: reassign newly enabled delegate * fix: reassign delegate * refactor: revert wasm workaround for js undefined * fix: parse js error * feat(cat-voices): find manual version files through wildcard (#3723) * feat: v1 version for key derivation * feat: add wildcard support * feat: adding v1 versions * feat: update catalyst_compression to v1 * feat(cat-voices): profile app size (#3736) * feat(cat-voices): svg vector graphics compiler (#3715) * feat: precompile SVG assets * feat: Convert images to WebP * fix(cat-voices): compile svg to binary format (#3728) * compile svg to binary format * refactor * feat(cat-voices): Add precompressed web files and Caddy configuration (#3719) * feat: Add precompressed web files and Caddy configuration * fix Caddy config * fix * fix * fix * refactor * add 'precompressed' to project dictionary * Update catalyst_voices/module.cue Co-authored-by: Dominik Toton <[email protected]> * refactor Caddy config --------- Co-authored-by: Dominik Toton <[email protected]> --------- Co-authored-by: Dominik Toton <[email protected]> * feat(cat-voices): proposals page not found and other errors (#3751) * feat: handle proposal page errors * feat: add document hidden exception * chore: cleanup * feat: improve generic error state * refactor: code review changes * feat(cat-voices): add collaborator dialog (#3749) * feat: adding translations * feat: adding tryParse catalyst id method * feat: adding collaborators view model * feat: adding bloc * feat: adding method in service * feat: adding view models * feat: adding ui * chore: self review * chore: review comments * chore: remove test button * feat(cat-voices): proposal viewer collaborators (#3761) * feat: add collaborator invites * feat: filter collaborators * feat: ui for collaborators * fix: color mapping * chore: extract colors and labels to view models * chore: cleanup * style: spelling * feat(cat-voices): localised wallet errors (#3763) * feat: localized wallet errors * fix: docs tests * fix: spelling * chore: move source code extraction to fallbackApiException * chore: use _InfoCodeError.tryFrom * feat(cat-voices): database optimization (#3655) * feat(cat-voices): database migration (#3585) * docs: capture initial times * chore: remove cacheDocument * turn off logging * chore: use debugPrint instead of logger * feat: bulk documents save * batching sync * chore: move exact ref resoling to getDocumentData instead of index * fix: DocumentRepository * chore: simplify getting documents data * remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource * chore: update docs * simplified document index endpoint * remove randomness from LocalCatGateway * indexing by batch size * wip: filtering by types * Rework filtering refs + checking all refs if already cached in parallel * docs * update indexing.csv * update indexing csv * chore: cleanup * trailing new line * chore * move performance tab to docs * bulk saving typed docs in parallel * chore: revert hardcoded timestamp * chore: typos * split _sync into smaller functions + add documentation * little refactor * fix: analyzer * initial v2 tables * wip * wip * feat: database migration * chore: cleanup * bump batch size * cleanup * chore: remove defensive content decoding * spelling * test on platform * chore: update build scripts * more migration test data * clean up constructors * cleanup * fix: template tests * fix: spelling * fix code-generator earthly target * use logger in migration + wrap in transaction * chore: move migration transaction level higher * feat(cat-voices): database queries migration and optimization (#3614) * docs: capture initial times * chore: remove cacheDocument * turn off logging * chore: use debugPrint instead of logger * feat: bulk documents save * batching sync * chore: move exact ref resoling to getDocumentData instead of index * fix: DocumentRepository * chore: simplify getting documents data * remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource * chore: update docs * simplified document index endpoint * remove randomness from LocalCatGateway * indexing by batch size * wip: filtering by types * Rework filtering refs + checking all refs if already cached in parallel * docs * update indexing.csv * update indexing csv * chore: cleanup * trailing new line * chore * move performance tab to docs * bulk saving typed docs in parallel * chore: revert hardcoded timestamp * chore: typos * split _sync into smaller functions + add documentation * little refactor * fix: analyzer * initial v2 tables * wip * wip * feat: database migration * chore: cleanup * bump batch size * cleanup * chore: remove defensive content decoding * chore: daos * spelling * saveAll * test on platform * chore: update build scripts * feat: DocumentsV2Dao methods * simple proposals pagination query * chore: create a JoinedProposalBriefEntity * rename method * feat: exclude hidden proposals * more tests * renaming and splitting logic into smaller parts * feat: per language strategy * remove CatalystDatabaseLanguage in favor of raw queries as they are easier to mange * remove Index Strategy Documentation * handle case where ref is empty * migration now includes indexes * use v2 documents table for saveAll and isCachedBulk * adds ActionType to JoinedProposalBriefEntity * adds versionIds to JoinedProposalBriefEntity * comments count * adds isFavorite to JoinedProposalBriefEntity * add template to JoinedProposalBriefEntity * adds documentsLocalMetadata table for auto updates * Update docs * use v2 proposals query for discovery most recent section * feat: simplify most recent proposals section * add proposal fav status for v2 tables * local proposal fav status update * update fav state locally for faster feedback * self review * fix tests * update times * fix: analyzer * more migration test data * clean up constructors * cleanup * fix: template tests * spelling * fix: spelling * chore: PR review adjustments * fix: add discovery specific colors (#3637) * fix code-generator earthly target * use logger in migration + wrap in transaction --------- Co-authored-by: Ryszard Schossler <[email protected]> * feat(cat-voices): proposals query filtering (#3641) * docs: capture initial times * chore: remove cacheDocument * turn off logging * chore: use debugPrint instead of logger * feat: bulk documents save * batching sync * chore: move exact ref resoling to getDocumentData instead of index * fix: DocumentRepository * chore: simplify getting documents data * remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource * chore: update docs * simplified document index endpoint * remove randomness from LocalCatGateway * indexing by batch size * wip: filtering by types * Rework filtering refs + checking all refs if already cached in parallel * docs * update indexing.csv * update indexing csv * chore: cleanup * trailing new line * chore * move performance tab to docs * bulk saving typed docs in parallel * chore: revert hardcoded timestamp * chore: typos * split _sync into smaller functions + add documentation * little refactor * fix: analyzer * initial v2 tables * wip * wip * feat: database migration * chore: cleanup * bump batch size * cleanup * chore: remove defensive content decoding * chore: daos * spelling * saveAll * test on platform * chore: update build scripts * feat: DocumentsV2Dao methods * simple proposals pagination query * chore: create a JoinedProposalBriefEntity * rename method * feat: exclude hidden proposals * more tests * renaming and splitting logic into smaller parts * feat: per language strategy * remove CatalystDatabaseLanguage in favor of raw queries as they are easier to mange * remove Index Strategy Documentation * handle case where ref is empty * migration now includes indexes * use v2 documents table for saveAll and isCachedBulk * adds ActionType to JoinedProposalBriefEntity * adds versionIds to JoinedProposalBriefEntity * comments count * adds isFavorite to JoinedProposalBriefEntity * add template to JoinedProposalBriefEntity * adds documentsLocalMetadata table for auto updates * Update docs * use v2 proposals query for discovery most recent section * feat: simplify most recent proposals section * add proposal fav status for v2 tables * local proposal fav status update * update fav state locally for faster feedback * self review * fix tests * update times * fix: analyzer * more migration test data * clean up constructors * cleanup * fix: template tests * spelling * fix: spelling * chore: PR review adjustments * add order parameter * ProposalsOrder docs * GetProposalsBriefPage supports order * add filters object * proposalsBriefPage filtering * fix: status filtering * more draft proposals filtering tests * Campaign proposals filter * update docs * expose getVisibleProposalsCount and tests * expose filters parameter * integrate proposals page with v2 queries * chore: increase time diff between proposals * chore: reduce count query tables watched when not needed * local proposals cubit * local proposal fav staus update * docs * fix: add discovery specific colors (#3637) * fix code-generator earthly target * use logger in migration + wrap in transaction * spelling * rename category to categoryId for better consistency * proposals per tab selector * release completed in close * extract early return logic into function --------- Co-authored-by: Ryszard Schossler <[email protected]> * feat(cat-voices): voting space (#3648) * docs: capture initial times * chore: remove cacheDocument * turn off logging * chore: use debugPrint instead of logger * feat: bulk documents save * batching sync * chore: move exact ref resoling to getDocumentData instead of index * fix: DocumentRepository * chore: simplify getting documents data * remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource * chore: update docs * simplified document index endpoint * remove randomness from LocalCatGateway * indexing by batch size * wip: filtering by types * Rework filtering refs + checking all refs if already cached in parallel * docs * update indexing.csv * update indexing csv * chore: cleanup * trailing new line * chore * move performance tab to docs * bulk saving typed docs in parallel * chore: revert hardcoded timestamp * chore: typos * split _sync into smaller functions + add documentation * little refactor * fix: analyzer * initial v2 tables * wip * wip * feat: database migration * chore: cleanup * bump batch size * cleanup * chore: remove defensive content decoding * chore: daos * spelling * saveAll * test on platform * chore: update build scripts * feat: DocumentsV2Dao methods * simple proposals pagination query * chore: create a JoinedProposalBriefEntity * rename method * feat: exclude hidden proposals * more tests * renaming and splitting logic into smaller parts * feat: per language strategy * remove CatalystDatabaseLanguage in favor of raw queries as they are easier to mange * remove Index Strategy Documentation * handle case where ref is empty * migration now includes indexes * use v2 documents table for saveAll and isCachedBulk * adds ActionType to JoinedProposalBriefEntity * adds versionIds to JoinedProposalBriefEntity * comments count * adds isFavorite to JoinedProposalBriefEntity * add template to JoinedProposalBriefEntity * adds documentsLocalMetadata table for auto updates * Update docs * use v2 proposals query for discovery most recent section * feat: simplify most recent proposals section * add proposal fav status for v2 tables * local proposal fav status update * update fav state locally for faster feedback * self review * fix tests * update times * fix: analyzer * more migration test data * clean up constructors * cleanup * fix: template tests * spelling * fix: spelling * chore: PR review adjustments * add order parameter * ProposalsOrder docs * GetProposalsBriefPage supports order * add filters object * proposalsBriefPage filtering * fix: status filtering * more draft proposals filtering tests * Campaign proposals filter * update docs * expose getVisibleProposalsCount and tests * expose filters parameter * integrate proposals page with v2 queries * chore: increase time diff between proposals * chore: reduce count query tables watched when not needed * local proposals cubit * local proposal fav staus update * docs * fix: add discovery specific colors (#3637) * fix code-generator earthly target * use logger in migration + wrap in transaction * spelling * wip * rename category to categoryId for better consistency * adding vote data to ProposalBriefData * fix: dependencies * voting page + cubit integration - wip * proposals per tab selector * release completed in close * extract early return logic into function * Voting tabs selector + releasing completer on close * move spaces blocs to shell page level * fix: voting in grid view * dummy voting integration * chore: remove showComments * docs: ProposalOrDocument --------- Co-authored-by: Ryszard Schossler <[email protected]> * feat(cat-voices): database queries cleanup (#3672) * docs: capture initial times * chore: remove cacheDocument * turn off logging * chore: use debugPrint instead of logger * feat: bulk documents save * batching sync * chore: move exact ref resoling to getDocumentData instead of index * fix: DocumentRepository * chore: simplify getting documents data * remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource * chore: update docs * simplified document index endpoint * remove randomness from LocalCatGateway * indexing by batch size * wip: filtering by types * Rework filtering refs + checking all refs if already cached in parallel * docs * update indexing.csv * update indexing csv * chore: cleanup * trailing new line * chore * move performance tab to docs * bulk saving typed docs in parallel * chore: revert hardcoded timestamp * chore: typos * split _sync into smaller functions + add documentation * little refactor * fix: analyzer * initial v2 tables * wip * wip * feat: database migration * chore: cleanup * bump batch size * cleanup * chore: remove defensive content decoding * chore: daos * spelling * saveAll * test on platform * chore: update build scripts * feat: DocumentsV2Dao methods * simple proposals pagination query * chore: create a JoinedProposalBriefEntity * rename method * feat: exclude hidden proposals * more tests * renaming and splitting logic into smaller parts * feat: per language strategy * remove CatalystDatabaseLanguage in favor of raw queries as they are easier to mange * remove Index Strategy Documentation * handle case where ref is empty * migration now includes indexes * use v2 documents table for saveAll and isCachedBulk * adds ActionType to JoinedProposalBriefEntity * adds versionIds to JoinedProposalBriefEntity * comments count * adds isFavorite to JoinedProposalBriefEntity * add template to JoinedProposalBriefEntity * adds documentsLocalMetadata table for auto updates * Update docs * use v2 proposals query for discovery most recent section * feat: simplify most recent proposals section * add proposal fav status for v2 tables * local proposal fav status update * update fav state locally for faster feedback * self review * fix tests * update times * fix: analyzer * more migration test data * clean up constructors * cleanup * fix: template tests * spelling * fix: spelling * chore: PR review adjustments * add order parameter * ProposalsOrder docs * GetProposalsBriefPage supports order * add filters object * proposalsBriefPage filtering * fix: status filtering * more draft proposals filtering tests * Campaign proposals filter * update docs * expose getVisibleProposalsCount and tests * expose filters parameter * integrate proposals page with v2 queries * chore: increase time diff between proposals * chore: reduce count query tables watched when not needed * local proposals cubit * local proposal fav staus update * docs * fix: add discovery specific colors (#3637) * fix code-generator earthly target * use logger in migration + wrap in transaction * spelling * wip * rename category to categoryId for better consistency * adding vote data to ProposalBriefData * fix: dependencies * voting page + cubit integration - wip * proposals per tab selector * release completed in close * extract early return logic into function * Voting tabs selector + releasing completer on close * move spaces blocs to shell page level * fix: voting in grid view * dummy voting integration * chore: remove showComments * docs: ProposalOrDocument * create proposals/count query .csv files * update proposals query times * category indexes * CatId parse and tryParse * create new tables for authors * update migration * run database analyze after sync * DocumentAuthors docs * simpler copyWith * cat.id keeps schema * get rid of authorCatIdWithoutUsername column * console profiler * catId -> id * times * results notes * spelling * fix: analyzer * update results (#3673) * fix: readme * remove CatalystRuntimeProfiler * catId schema -> scheme * rename * bring back profiler to SignedDocumentManager, with debounce --------- Co-authored-by: Ryszard Schossler <[email protected]> * feat(cat-voices): campaign total ask (#3734) * remove totalAsk and proposalsCount from campaign model * proposalsCount -> finalProposalsCount * CampaignCategoryViewModel.id -> CampaignCategoryViewModel.ref * little DiscoveryCubit state build cleanup * watch campaign total ask in discovery * smaller voting category model * new proposal campaign * safe check * proposal builder category total ask * chore: missing TODO * category details * watch proposals template total ask * finish integration of total_ask * close * remove print and add TODO * documents getLatestOf * categoryId -> categoryRef * chore: make logger private * feat: Make MultiCurrencyAmount immutable * chore(cat-voices): remove old daos (#3745) * remove totalAsk and proposalsCount from campaign model * proposalsCount -> finalProposalsCount * CampaignCategoryViewModel.id -> CampaignCategoryViewModel.ref * little DiscoveryCubit state build cleanup * watch campaign total ask in discovery * smaller voting category model * new proposal campaign * safe check * proposal builder category total ask * chore: missing TODO * category details * watch proposals template total ask * finish integration of total_ask * close * remove print and add TODO * documents getLatestOf * remove old tables and daos * deleteWhere tests * remove old pagination and count methods * local draft documents dao * categoryId -> categoryRef * chore: notInType -> typeNotIn * chore: move DriftDocumentsV2LocalMetadataDao setup into group * separate get and getWhere * docs: documents sources interfaces documentation * chore: methods rename * chore: refTo -> referencing * chore: typeNotIn -> excludeTypes * update content * feat(cat-voices): smaller proposals query scope (#3747) * smaller proposals page query * update PR nr * test(cat-voices): enable back index tests (#3766) * chore: remote source tests * SyncManager and DocumentService tests * chore(cat-voices): cleanup miss leading "ref" / "selfRef" with "id" (#3762) * remove totalAsk and proposalsCount from campaign model * proposalsCount -> finalProposalsCount * CampaignCategoryViewModel.id -> CampaignCategoryViewModel.ref * little DiscoveryCubit state build cleanup * watch campaign total ask in discovery * smaller voting category model * new proposal campaign * safe check * proposal builder category total ask * chore: missing TODO * category details * watch proposals template total ask * finish integration of total_ask * close * remove print and add TODO * documents getLatestOf * remove old tables and daos * deleteWhere tests * remove old pagination and count methods * local draft documents dao * categoryId -> categoryRef * chore: notInType -> typeNotIn * chore: move DriftDocumentsV2LocalMetadataDao setup into group * separate get and getWhere * docs: documents sources interfaces documentation * chore: methods rename * chore: refTo -> referencing * chore: typeNotIn -> excludeTypes * update content * feat(cat-voices): smaller proposals query scope (#3747) * smaller proposals page query * update PR nr * silence warning * chore: version -> ver * fix: ref test * chore: remove id and version getters from DocumentDataMetadata * selfRef -> id part1 * chore: selfRef -> id * chore: use more of ids * chore: use Map.of instead of Map.from * dtos migration tests * fix: analyzer --------- Co-authored-by: Ryszard Schossler <[email protected]> * feat(cat-voices): proposal viewer accept collaborator invitation (#3770) * feat: collaborator accept / reject invitation dialog * chore: cleanup code * feat: add invitation banner * refactor: do not create subscriptions when proposal cubit is closed * feat: add invitation state and banner to proposal viewer * feat: show accepted / rejected banners * feat: error handling and service layer * fix: proposal header animation * feat: reorder headers * chore: cleanup l10n * refactor: code review changes * style: indentation * style: markdown fix * feat(cat-voices): Proposal brief card collaborators (#3784) * feat: integrate proposal brief card collaborators * loc and * feat(cat-voices): workspace filtering and tabs (#3765) * feat: adding translations * chore: update workspace page * chore: update user proposals * feat: workspace proposal filter * chore: adding new implemention of proposal brief * feat: workspace proposal tab * feat: adding new proposal invites * chore: move widgets in widget dir * feat: adding empty state for proposal invites * feat: updating filters * feat: updating filters options * feat: proposal invites count * fix: spelling * chore: review update * feat: adding new options to filters and brief data * feat(cat-voices): Using new stream source for WorkspaceBloc (#3785) * feat: working integration * chore: use bloc instead of cubit * chore: final changes * chore: selfreview * feat: review update * fix: readme * chore: rename factory constructor * feat: merge collaborators status enum into one * fix: format * fix(cat-voices): spelling (#3806) * fix: spelling * remove back slach * fix: README * feat(cat-voices): Collaborator workspace cards (#3802) * feat: new workspace proposal cards * feat: adding collaborator response to leave * chore: remove offstage widget * fix(cat-voices): add validation based on significant part of catalystId (#3808) * feat(cat-voices): collaborators hover in workspace cards (#3809) * wip * feat: tooltip proposals * chore: rename iconWidget to icon as its not a widget anymore * chore: rename main proposer + collaborators as contributors * feat(cat-voices): validate collaborator CatalystId (#3815) * feat: validate for collaborator impl * feat: change return type to more meaningful * chore: refactor * chore: refactor * chore(cat-voices): port part of signed docs 0.0.4 updates (#3790) * chore: port over parameters changes * feat(cat-voices): adjust database to signed docs 0.0.4 (#3791) * tables * wip * proposals dao tests * bump db schema * db index name fix * migration -> use createAll() * update migration * update migration * chore: remove print * update ref dto flatten implementation * migration toFlatten() * fix: proposals dao * fix: documents dao and local drafts dao * chore: clean up TODO * fix: failing tests * chore: markdown order * web: skips for db tests * fix: db tests on web * fix: analyzer * unskip tests * rename * CatalystId.toUri -> CatalystId.toString * use same instead of identical * use hasLength * metadata dao tests * use hasLength in documents v2 dao * feat: use hasLength in proposals v2 dao tests * fix(cat-voices): storing catIds with coma usernames (#3813) * tables * wip * proposals dao tests * bump db schema * db index name fix * migration -> use createAll() * update migration * update migration * chore: remove print * update ref dto flatten implementation * migration toFlatten() * fix: proposals dao * fix: documents dao and local drafts dao * chore: clean up TODO * fix: failing tests * chore: markdown order * web: skips for db tests * fix: db tests on web * fix: analyzer * unskip tests * chore: use converters * update tests * hello world test * fix: documents dao hasLength * feat(cat-voices): filtering proposals by original author (#3810) * tables * wip * proposals dao tests * bump db schema * db index name fix * migration -> use createAll() * update migration * update migration * chore: remove print * update ref dto flatten implementation * migration toFlatten() * fix: proposals dao * fix: documents dao and local drafts dao * chore: clean up TODO * fix: failing tests * chore: markdown order * web: skips for db tests * fix: db tests on web * fix: analyzer * unskip tests * feat: filtering author on first version * change filter name from author to originalAuthor * Adds originalAuthor filter to documentsDao * authorId -> originalAuthorId * originalAuthors * fix: spelling * use authors from documents for originalAuthors * feat(cat-voices): validating proposal submission action author (#3814) * tables * wip * proposals dao tests * bump db schema * db index name fix * migration -> use createAll() * update migration * update migration * chore: remove print * update ref dto flatten implementation * migration toFlatten() * fix: proposals dao * fix: documents dao and local drafts dao * chore: clean up TODO * fix: failing tests * chore: markdown order * web: skips for db tests * fix: db tests on web * fix: analyzer * unskip tests * feat: filtering author on first version * change filter name from author to originalAuthor * Adds originalAuthor filter to documentsDao * authorId -> originalAuthorId * originalAuthors * fix: spelling * docs * use authors from documents for originalAuthors * fix: campaign total ask tests * fix: proposals dao tests * test: proposals dao authors * fix: spelling * chore: extract _getValidActionsCTE() * chore(cat-voices): adapt signed documents paring (#3823) * chore: adapt signed documents paring * chore: rename + throw exception for invalid signed docs * feat(cat-voices): Add collaborators section to proposal builder (#3803) * Add collaborators section to proposal builder * refactor * refactor * refactor * Add `coproposer` to project dictionary * Update catalyst_voices/packages/internal/catalyst_voices_models/lib/src/document/specialized/proposal_document.dart Co-authored-by: Ryszard Schossler <[email protected]> * refactor * refactor * refactor --------- Co-authored-by: Ryszard Schossler <[email protected]> * feat(cat-voices): proposals briefs collaborators updates (#3822) * chore: missing TODO * wip * Mapping proposal action to status * chore: rollback rename * feat: implementation of getCollaboratorsActions * CatalystIdFactory * brief factory test * local cat gateway collaborators * remove TODO * chore: shorter DocumentRef.contains syntax * chore: DocumentDataFactory contentData -> content * chore: split getCollaboratorsActions into two functions * fix: typo * feat(cat-voices): local drafts authors significant (#3846) * local drafts authorsSignificant * chore: change back method name * bring back db schema * name test file * feat(cat-voices): campaign switching (#3847) * chore: use consts * fix: date format * feat: set active campaign * feat: add ui in dev tools to change active campaign * chore: add more logs * fix: responsive * chore: code review changes * feat(cat-voices): workspace local drafts query (#3844) * wip * feat: querying local drafts * getLocalDraftsProposalsBrief unit tests * Merging local and signed proposals briefs * Merge signed docs with local drafts * chore: comment * use authorsSignificant for workspace local drafts * fix: ProposalBriefData optional copyWith parameters * chore(cat-voices): CatId optimisation (#3852) * CatId.uid and rewrite sameAs * chore: cleaner docs * feat(cat-voices): Document metadata query (#3841) * implement getDocumentMetadata * add Metadata view * add tests * fix conflict * refactor * exclude drift generated files from analysis * refactor * refactor * fix tests * fix get signed document metadata * feat(cat-voices): author or collaborator filter (#3855) * feat: proposal filters relationships * CollaborationInvitation filter clause * unit tests for relationships filters * chore: cleanup * feat(cat-voices): new datasource of proposal data (#3845) * feat: first version of models * feat: first version of query * feat: extract common subqueries * feat: add tests * feat: mapping collaborators * chore: remove comments * chore: add tests * chore: update getPreviousOf * chore: adding test for setting collaborators statuses * chore: find actions for proposal id * chore: fix spelling * chore: no setup for actions in raw proposal * feat: upate action getter * fix: tests * chore: add unit test for proposals_v2_dao * chore: adding test * fix: format * chore: refactor review * chore: clean up todo * fix: format * feat(cat-voices): Proposal briefs versions titles (#3854) * fetch and map titles for proposal versions * refactor * fix tests * format * fix tests * refactor * support fetching version titles from local drafts * move createdAt and primaryKey to DocumentTableMixin * refactor * refactor * refactor * feat(cat-voices): campaign switching sync documents (#3856) * feat: handle active campaign changes * fix: sync deadlock * chore: add tests for active campaign change * chore: cleanup * feat: handle active campaign changes * feat: categoryTotalAsk uses correct campaign filter * feat: handle filters change in proposals cubit * feat: handle campaign changes in voting cubit * chore: remove unused code * chore: reformat code * chore: cleanup * chore: reformat * fix: distinct comparison * chore: code review changes * chore: spelling * refactor: move SyncManager stream subscription to the init() from the constructor * feat(cat-voices): documents artifacts (#3863) * feat: documents artifacts * sync doc artifacts * SignedDocument artifact * update migration * cleanup migration ref dto * feat: expose getDocumentArtifact * test: documents dao tests * chore: move TODOs * chore: documentation of DocumentRepository * fix(cat-voices): workspace page tab count (#3867) * feat: include local proposal into count * chore: add tests * fix: format * fix: review * chore: review comments update * fix: wrong name * feat(cat-voices): using stream to get proposal (#3857) * feat: first version of models * feat: first version of query * feat: extract common subqueries * feat: add tests * feat: mapping collaborators * chore: remove comments * chore: add tests * chore: update getPreviousOf * chore: adding test for setting collaborators statuses * chore: find actions for proposal id * chore: fix spelling * chore: no setup for actions in raw proposal * feat: upate action getter * fix: tests * chore: add unit test for proposals_v2_dao * chore: adding test * fix: format * chore: refactor review * chore: clean up todo * wip * feat: using new proposal model * fix: format * chore: review update * feat(cat-voices): proposal viewer invites banners and dialogs updates (#3901) * feat: invitation banner changes * chore: convert to sealed class * feat: add more states for proposal collaborator banner * fix: translations * fix: translations * fix: icon * chore: extract common widgets * feat: call proposal service to respond to collaborator action * feat(cat-voices): Collaborator workspace UI update (#3885) * feat: include local proposal into count * chore: add tests * fix: format * fix: review * chore: remove tabs * feat: button ui * wip * wip * chore: working tests * feat: adding common filters * feat: listen to streams * chore: review comments update * fix: wrong name * fix: review update * feat(cat-voices): view local version in proposal viewer (#3864) * feat: first version of models * feat: first version of query * feat: extract common subqueries * feat: add tests * feat: mapping collaborators * chore: remove comments * chore: add tests * chore: update getPreviousOf * chore: adding test for setting collaborators statuses * chore: find actions for proposal id * chore: fix spelling * chore: no setup for actions in raw proposal * feat: upate action getter * fix: tests * chore: add unit test for proposals_v2_dao * chore: adding test * fix: format * chore: refactor review * chore: clean up todo * wip * feat: using new proposal model * feat: quering local proposal * fix: format * feat: merging local and public versions * feat: rebuild when account change * chore: add tests * chore: add prev metadata info * fix: spelling * fix: format * fix: tests * chore: cleanup * chore: review updates * chore: review update * fix: format * chore: fix skip * fix: format * fix: format * feat(cat-voices): Session my action button (#3900) * feat: include local proposal into count * chore: add tests * fix: format * fix: review * chore: remove tabs * feat: button ui * wip * wip * chore: working tests * feat: adding common filters * feat: listen to streams * chore: review comments update * fix: wrong name * feat: ui part * feat: add bloc logic * fix: review update * feat: review update * feat: review update * feat(cat-voices): dialog changes (#3908) * feat(cat-voices): Restore workspace bloc tests (#3909) * chore: restore worksapce bloc tests * chore: export private method * feat(cat-voices): collaborators any status (#3911) * feat: update filters to support any invitation status * fix: format * feat(cat-voices): collaborators data to collaborator proposal cubit state (#3916) * feat: map collaborators data into proposal collaborator state * feat: review update * feat(cat-voices): db tables indexes and simpler effectiveProposals CTE (#3924) * DB tables indexes and simpler effectiveProposals CTE * docs: update times * feat(cat-voices): Remove submission close date from campaign category (#3923) * feat: submission close date * feat: signal and look up cache * chore: leave todo * fix: format * refactor: use spacing * feat(cat-voices): My actions page and sub-routes navigation (#3891) * add `My Actions` drawer * Add proposal approval and co-proposer consent pages * Use ShellRoute for actions drawer * refactor * improve end drawer route handling * preserve query parameters on route stack rebuild * refactor * refactor * chore: add ActionsShellPage.close() --------- Co-authored-by: Damian Moliński <[email protected]> Co-authored-by: Damian Molinski <[email protected]> * feat(cat-voices): mini sync (#3902) * chore: remove unnecessary useCache parameter * chore: move docs synchronisation logic out into separate class * sync_request * chore: stable documents ids * wip * changing proposal stream only when significant part of catalystId changes * wip * rename * add _syncProposal and move errors mapping + loading status there * sync and watch proposal * wip * queue documents sync requests * sync manager tests * feat: target sync on proposal route * queue target mini sync * chore: safe index mapping * sync request steps * chore: fix typo * remote latest ver * complete request * queries * proposal template, if missing * checking initial location in app splash manager * chore: cleanup * chore: typos * chore: direct use _activeRequest * id instead of ref for fav toggle * move init logic out of bootstrap to choreographer * fix: spelling * chore: fix imports * feat(cat-voices): my actions page (#3928) * feat: action types widget * feat: cards * feat: action list * feat: adding bloc logic * chore: clean up * fix: format * chore: review update * fix: CTA for button * fix: review update * chore: remove late * chore: add stop * refactor(cat-voices): replace dummy catalyst id factory (#3950) * refactor: replace catalyst id dummy factory * chore: spelling * feat(cat-voices): collaborator display consent page (#3948) * feat: action types widget * feat: cards * feat: action list * feat: adding bloc logic * chore: clean up * fix: format * chore: review update * fix: CTA for button * feat: setting up structure * fix: review update * chore: remove late * chore: add stop * feat: ui * feat: ui * feat: cubit setup * feat: datetimes in ui * feat: adding empty state and connecting cubit to ui * feat: adding error handling * feat: add cubit tests * chore: self review * chore: fix test * chore: review update * chore: throw error on not active account as collaborator * chore: moved setUpAll method * chore: review and fix tests * chore: unawait * fix: analyzer * chore: CategoryPage categoryRef -> categoryId * feat: handle not found public profile better * feat(cat-voices): final proposal approval page (#4017) * feat: translations + page skeleton * feat: proposal approval tabs * feat: cubit implementation, add cards * feat: minor ui tweaks * feat: add hint * fix: nested scroll * feat: filter collaborators * fix: filtering * fix: formatting * fix: formatting * chore: cleanup * fix: spelling * chore: code review changes * feat(cat-voices): integrate responding to collaborator invites (#3929) * feat: respond to collaborator invitation * chore: remove unused class * fix: remove unused export * chore: code review changes * fix: tests * feat: sign raw payload to avoid double-compressing the same payload * docs: clarifications * fix: tests * refactor: extract code * fix: spelling * fix: unused params * fix: encoding * fix: tests * feat: add cose payload * feat: signed document payload bytes clarification * chore: reformat * refactor: change variable name to reflect it's state * chore: TODO * refactor(cat-voices): Organise catalyst voices models exports (#4026) * refactor: reorganize exports * fix: unwanted export * feat(cat-voices): preserve document encoding when updating collaborators (#4031) * fix: tests * feat: preserve document content encoding and other headers * fix: mapper id * fix: test assertion * chore(cat-voices): Update category_id for collaborators proposal template * fix(cat-voices): fix close button on display consent (#4030) * fix: fix close button to work * chore: remove unessesary builder * fix(cat-voices): redirect to viewer (#4043) * fix(cat-voices): Persist collaborators on local save (#4035) * fix: Persist collaborators on local save * add tests * fix: last change of display consent (#4045) * chore(cat-voices): final approval filter with more flexibility to filter decide/final (#4064) * feat: proposal approval status filtering * fix: export files * fix(cat-voices): Showing proper version in ProposalViewer and showing collaborators when user is an author in Workspace (#4079) * fix: show tooltip for author if collaborators are added * feat: filter out collaborators from document segments * fix: removing collaborators correct id (#4091) * fix: resolving invitation status for final proposals (#4092) * fix(cat-voices): proposals approval count (#4096) * chore: cleanup * feat: implement ProposalApproval ProposalsRelationship --------- Co-authored-by: Damian Moliński <[email protected]> Co-authored-by: Damian Molinski <[email protected]> Co-authored-by: Dominik Toton <[email protected]> Co-authored-by: Dominik Toton <[email protected]> Co-authored-by: Bartek Stoliński <[email protected]> Co-authored-by: Bartek Stoliński <[email protected]>
Merge feat/co-proposers-3677 into feat/voting_dreps_delegation
fix(cat-voices): proposals approval count (#4096)
* chore: cleanup * feat: implement ProposalApproval ProposalsRelationship
feat(cat-voices): vote list voting power updates (#4095)
feat: implement ProposalApproval ProposalsRelationship
feat(cat-voices): my votes filtering (#4089)
* Add filter for `My Votes` * Reset vote filters on tab change
Merge branch 'feat/voting_dreps_delegation' into feat/my-votes-filtering
# Conflicts: # catalyst_voices/apps/voices/lib/pages/voting/voting_page.dart
Merge branch 'feat/voting_dreps_delegation' into feat/vote-list-voting-power-updates
Improve user voting power summary display
feat(cat-voices): become representative action (#4083)
* feat: action cards empty state * feat: become representative card * feat: hint card text * feat: setup bloc * fix: spelling * chore: update assets * feat: add bloc logic * feat: localizations * feat: view models * feat: widgets * feat: additional actions * feat: extracting same logic * feat: refactor * chore: self review * fix: refactor review
fix: refactor review
Merge branch 'feat/voting_dreps_delegation' into feat/become-representative-action
Merge branch 'feat/voting_dreps_delegation' into feat/voting-power-information-dialogs
add placeholders