Skip to content

Comments

7 Implement Draggable Retry#252

Merged
ZanderCowboy merged 51 commits intodevelopfrom
7-implement-draggable-retry
Feb 9, 2026
Merged

7 Implement Draggable Retry#252
ZanderCowboy merged 51 commits intodevelopfrom
7-implement-draggable-retry

Conversation

@ZanderCowboy
Copy link
Owner

Summary

This PR implements draggable/reordering capabilities for entries across collections, along with several UI improvements and a new changelog feature.

Changes

Core Features

  • Reordering/Dragging: Implemented cross-collection entry dragging in tab layouts
  • Changelog Feature: Added complete changelog functionality with bloc, repository, and UI
  • Delete Functionality: Added delete capability to details page with UI updates

UI/UX Improvements

  • Updated splash screens (Android, iOS, Web) to match home page background color
  • Refactored various pages for consistency and spacing
  • Updated entry cards and collection tabs for drag support
  • Improved form styling and reusable components
  • Added spacing constants (gap3, vertical4horizontal0)

Backend Updates

  • Updated entry and tab repositories for reordering support
  • Added changelog repository and models
  • Updated Firebase service with forceFetchAndActivate method
  • Enhanced tabs mapper for reordering

Testing

  • Added tests for changelog bloc and repository
  • Updated tests for details_bloc, home_bloc, product_bloc, search_bloc
  • Added comprehensive test coverage

Documentation & Tooling

  • Added cursor commands for commit, create-pr, and tests
  • Updated changelog documentation
  • Updated analysis_options

Testing Performed

  • Manual testing of drag and drop functionality
  • Cross-collection entry movement
  • Changelog display and refresh
  • Delete functionality on details page
  • Splash screen updates on all platforms
  • Unit tests for new features

Related Issues

Closes #7

Breaking Changes

None

Notes

  • PR created as draft for review
  • All changes are committed and pushed
  • Ready for code review and testing

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds persistent drag/reorder capabilities for collections (tabs) and entries, introduces edit-mode UI controls for reordering, and includes several UI polish updates (SafeArea usage, splash/background adjustments), alongside model/repository changes to support ordering and deletion flows.

Changes:

  • Persist tab ordering via new order field and add repository APIs to save reordered tab/entry order.
  • Add Home edit mode + UI drag handles and wire ReorderableListView/SliverReorderableList for tabs/entries.
  • UI/layout refinements (SafeArea, card styling, splash colors) and test updates for the new model fields/state.

Reviewed changes

Copilot reviewed 69 out of 69 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
packages/ui_kit/lib/src/constants/spacing_constants.dart Adds new spacing constants used by updated layouts
packages/models/lib/src/models/search/search_result.dart Adds TODO comments around equality overrides
packages/models/lib/src/models/changelog/changelog_entry.dart Adds TODO comments around equality overrides
packages/models/lib/src/models/changelog/changelog.dart Adds TODO comments around equality overrides
packages/models/lib/src/mappers/tabs/tabs_dto_mapper.dart Maps new order field for tab DTO conversions
packages/models/lib/src/dto/tabs/tabs_dto.dart Adds required order field to TabsDTO
packages/models/lib/src/dto/feedback/feedback_dto.dart Adds TODO comments around equality overrides
packages/models/lib/src/dto/entry/entry_dto.dart Adds TODO comments around equality overrides
packages/models/lib/src/database/tabs/tabs.dart Adds required order field to persisted Tabs model
packages/models/lib/src/database/entry/entry.dart Adds TODO comments around equality overrides
packages/models/lib/src/apis/feedback/feedback_model.dart Adds TODO comments around equality overrides
packages/models/analysis_options.yaml Adjusts analyzer settings (ignores flutter_style_todos)
packages/core/test/src/application/search/search_bloc_test.dart Updates tests for new TabsDTO order requirement
packages/core/test/src/application/product/product_bloc_test.dart Updates tutorial data tests to include order
packages/core/test/src/application/home/home_bloc_test.dart Updates HomeState/Tabs tests (adds order, isEditMode)
packages/core/test/src/application/details/details_bloc_test.dart Updates DetailsBloc tests (adds order, isDeleted, formatting)
packages/core/lib/src/repositories/interfaces/tabs/i_tabs_repository.dart Adds updateTabsOrder API
packages/core/lib/src/repositories/interfaces/entry/i_entry_repository.dart Adds updateEntriesOrder API
packages/core/lib/src/repositories/implementation/tutorial/tutorial_repository.dart Adds order to tutorial tabs
packages/core/lib/src/repositories/implementation/tabs/tabs_repository.dart Sorts by order, assigns order on create, persists reordered order
packages/core/lib/src/repositories/implementation/entry/entry_repository.dart Reads entries in entryIds order and adds updateEntriesOrder
packages/core/lib/src/application/home/home_state.dart Adds isEditMode flag to HomeState
packages/core/lib/src/application/home/home_event.dart Adds edit-mode + reorder events for tabs/entries
packages/core/lib/src/application/home/home_bloc.dart Implements edit-mode toggle and reorder handlers
packages/core/lib/src/application/details/details_state.dart Adds isDeleted to DetailsState
packages/core/lib/src/application/details/details_event.dart Adds delete event to Details flow
packages/core/lib/src/application/details/details_bloc.dart Implements delete handling in DetailsBloc
apps/multichoice/web/manifest.json Updates web theme/background colors
apps/multichoice/web/index.html Sets web background color inline
apps/multichoice/lib/presentation/tutorial/widgets/tutorial_body.dart Minor formatting/readability tweaks
apps/multichoice/lib/presentation/tutorial/tutorial_page.dart Wraps body in SafeArea and removes redundant provider
apps/multichoice/lib/presentation/shared/widgets/forms/reusable_form.dart Adds controller “validity” guard + scroll wrapper
apps/multichoice/lib/presentation/shared/widgets/add_widgets/tab.dart Adjusts card elevation for add-tab widget
apps/multichoice/lib/presentation/shared/widgets/add_widgets/entry.dart Adjusts card elevation for add-entry widget
apps/multichoice/lib/presentation/shared/widgets/add_widgets/_base.dart Sets surfaceTintColor for consistent Card rendering
apps/multichoice/lib/presentation/shared/data_transfer/data_transfer_page.dart Wraps content in SafeArea
apps/multichoice/lib/presentation/search/search_page.dart Wraps search body in SafeArea + formatting
apps/multichoice/lib/presentation/home/widgets/entry_card.dart Adds edit-mode behavior + drag handle support
apps/multichoice/lib/presentation/home/widgets/collection_tab.dart Disables navigation/delete in edit mode; passes drag metadata
apps/multichoice/lib/presentation/home/home_page.dart Adds edit-mode toggle action + wraps layout in SafeArea
apps/multichoice/lib/presentation/feedback/feedback_page.dart Wraps body in SafeArea + formatting
apps/multichoice/lib/presentation/edit/edit_tab_page.dart Wraps body in SafeArea + formatting
apps/multichoice/lib/presentation/edit/edit_entry_page.dart Wraps body in SafeArea + formatting
apps/multichoice/lib/presentation/details/widgets/_editing_overlay.dart Adds delete action + refines overlay UI
apps/multichoice/lib/presentation/details/widgets/_details_section.dart Spacing tweaks and subtitle display tweak
apps/multichoice/lib/presentation/details/widgets/_details_list_tile.dart Updates tile styling (density, shape, colors)
apps/multichoice/lib/presentation/details/details_page.dart Adds deletion listener to auto-navigate back
apps/multichoice/lib/presentation/changelog/changelog_page.dart Wraps body in SafeArea + formatting
apps/multichoice/lib/layouts/home_layout/widgets/tab/vertical_tab.dart Adds edit-mode drag UI and entry reordering
apps/multichoice/lib/layouts/home_layout/widgets/tab/horizontal_tab.dart Adds edit-mode drag UI and entry reordering (sliver)
apps/multichoice/lib/layouts/home_layout/widgets/home/vertical_home.dart Adds tab reordering UI in edit mode
apps/multichoice/lib/layouts/home_layout/widgets/home/horizontal_home.dart Adds tab reordering UI in edit mode
apps/multichoice/lib/layouts/home_layout/tab_layout.dart Passes edit-mode/drag metadata into tab layouts
apps/multichoice/lib/app/view/multichoice.dart Moves AppLayout + HomeBloc providers to app root
apps/multichoice/ios/Runner/Base.lproj/LaunchScreen.storyboard Updates iOS launch background color reference
apps/multichoice/ios/Runner/Assets.xcassets/Colors/splash_background.colorset/Contents.json Adds iOS splash background colors
apps/multichoice/android/app/src/main/res/values/colors.xml Adds Android splash background color
apps/multichoice/android/app/src/main/res/values-night/colors.xml Adds Android night splash background color
apps/multichoice/android/app/src/main/res/drawable/launch_background.xml Uses splash background color instead of white
apps/multichoice/android/app/src/main/res/drawable-v21/launch_background.xml Uses splash background color instead of default background
apps/multichoice/android/app/src/main/AndroidManifest.xml Enables Android back-invoked callback
CHANGELOG.md Updates changelog entry for issue #7
.github/agents/code-reviewer.agent.md Adds repo-specific code review agent checklist
.cursor/commands/fix.md Adds Cursor command documentation (fix)
.cursor/commands/create-pr.md Adds Cursor command documentation (create PR)
.cursor/commands/commit.md Adds Cursor command documentation (commit workflow)
.cursor/commands/changelog.md Updates Cursor changelog command documentation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

Copilot AI commented Feb 9, 2026

@ZanderCowboy I've opened a new pull request, #256, to work on those changes. Once the pull request is ready, I'll request review from you.

@ZanderCowboy
Copy link
Owner Author

@copilot open a new pull request to apply changes based on the comments in this thread

Copy link

Copilot AI commented Feb 9, 2026

@ZanderCowboy I've opened a new pull request, #257, to work on those changes. Once the pull request is ready, I'll request review from you.

ZanderCowboy and others added 3 commits February 9, 2026 12:27
* test: data_exchange_service

* test: data_exchange_service whitespaces

* test: firebase_service

* chore: update test cursor command

* chore: update create-pr.md cursor command
* Initial plan

* refactor: address PR review feedback with performance and error handling improvements

Co-authored-by: ZanderCowboy <59666243+ZanderCowboy@users.noreply.github.com>

* Optimize DB operations and add migration for tab ordering

Co-authored-by: ZanderCowboy <59666243+ZanderCowboy@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ZanderCowboy <59666243+ZanderCowboy@users.noreply.github.com>
Co-authored-by: Zander Kotze <zanderkotze99@gmail.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 73 out of 74 changed files in this pull request and generated 8 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ZanderCowboy ZanderCowboy marked this pull request as ready for review February 9, 2026 10:55
@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 9, 2026

@ZanderCowboy ZanderCowboy merged commit 6d54b23 into develop Feb 9, 2026
5 checks passed
@ZanderCowboy ZanderCowboy deleted the 7-implement-draggable-retry branch February 9, 2026 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request feature Create a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement feature to move items between columns and between items

2 participants