- All async logic for moving lists between boards is now handled via Redux sagas, not in React components.
- Removed direct API calls and sessionStorage usage from UI.
- Added a unified action creator for moving lists between boards.
- Saga watcher now uses the correct action type constant.
- On the backend, the move-to-board helper now:
- Detaches card members who are not present on the target board.
- Converts board-wide custom fields to per-card fields when moving lists.
- Added selector memoization in BoardSelectStep to prevent unnecessary rerenders.
- All business logic is now outside of UI components.
- The feature now fully handles:
- Users (members/assignees) who do not exist on the target board.
- Board-wide custom fields, which are now either copied or converted to per-card fields.
- All review comments are addressed: no business logic in components, no sessionStorage, all edge cases handled, only sagas and request used for async actions.