diff --git a/src/views/Chores/CompactChoreCard.jsx b/src/views/Chores/CompactChoreCard.jsx index 6a5cb5b..2eed35e 100644 --- a/src/views/Chores/CompactChoreCard.jsx +++ b/src/views/Chores/CompactChoreCard.jsx @@ -399,8 +399,8 @@ const CompactChoreCard = ({ borderBottom: '1px solid', borderColor: 'divider', position: 'relative', - pl: isMultiSelectMode ? '48px' : '16px', // Add space for checkbox when in multi-select mode - backgroundColor: 'background.surface', + pl: '16px', // Consistent padding since both elements are in the same position + // backgroundColor: 'background.surface', transition: 'all 0.2s ease-in-out', '&:hover': { bgcolor: 'background.level1', @@ -428,37 +428,6 @@ const CompactChoreCard = ({ } }} > - {/* Multi-select checkbox */} - {isMultiSelectMode && ( - e.stopPropagation()} - /> - )} {/* Priority bar clickable area */} {chore.priority > 0 && ( )} - {/* Complete Button - Left side like typical task apps */} - { - e.stopPropagation() - handleTaskCompletion() - }} - disabled={isPendingCompletion || notInCompletionWindow(chore)} + + {/* Animated transition container for Complete Button / Multi-select checkbox */} + - {isPendingCompletion ? ( - - ) : ( - - )} - + {/* Complete Button */} + + { + e.stopPropagation() + handleTaskCompletion() + }} + disabled={isPendingCompletion || notInCompletionWindow(chore)} + sx={{ + width: 32, + height: 32, + borderRadius: '50%', + bgcolor: 'success.softBg', + color: 'success.600', + border: '1px solid', + borderColor: 'success.200', + transition: 'all 0.2s ease', + '&:hover': { + bgcolor: 'success.solidBg', + color: 'success.solidColor', + borderColor: 'success.400', + transform: 'scale(1.05)', + }, + '&:active': { + transform: 'scale(0.95)', + }, + '&:disabled': { + opacity: 0.5, + transform: 'none', + }, + }} + > + {isPendingCompletion ? ( + + ) : ( + + )} + + + + {/* Multi-select Checkbox */} + + e.stopPropagation()} + /> + + {/* Content - Center */} - {/* Right side - Action Menu only */} - setIsCompleteWithNoteModalOpen(true)} - onCompleteWithPastDate={() => - setIsCompleteWithPastDateModalOpen(true) - } - onChangeAssignee={() => setIsChangeAssigneeModalOpen(true)} - onChangeDueDate={() => setIsChangeDueDateModalOpen(true)} - onWriteNFC={() => setIsNFCModalOpen(true)} - onDelete={handleDelete} + {/* Right side - Action Menu with animation */} + + > + setIsCompleteWithNoteModalOpen(true)} + onCompleteWithPastDate={() => + setIsCompleteWithPastDateModalOpen(true) + } + onChangeAssignee={() => setIsChangeAssigneeModalOpen(true)} + onChangeDueDate={() => setIsChangeDueDateModalOpen(true)} + onWriteNFC={() => setIsNFCModalOpen(true)} + onDelete={handleDelete} + sx={{ + width: 32, + height: 32, + color: 'text.tertiary', + flexShrink: 0, + '&:hover': { + color: 'text.secondary', + bgcolor: 'background.level1', + }, + }} + /> + {/* All modals (same as original) */} diff --git a/src/views/Chores/MyChores.jsx b/src/views/Chores/MyChores.jsx index 6f23423..bf82031 100644 --- a/src/views/Chores/MyChores.jsx +++ b/src/views/Chores/MyChores.jsx @@ -982,7 +982,18 @@ const MyChores = () => { {isMultiSelectMode ? : } - {showSearchFilter && ( + + {/* Search Filter with animation */} +
{
- )} + - {/* Multi-select Toolbar */} - {isMultiSelectMode && ( + {/* Multi-select Toolbar with animation */} + { */} - )} + {searchFilter !== 'All' && ( { return ( - + Create new task Experimental Feature