Skip to content

Conversation

tanmaygautam11
Copy link
Contributor

@tanmaygautam11 tanmaygautam11 commented Oct 3, 2025

Add bulk delete functionality with enhanced UI improvements and added icons in place of text buttons.

Description

This PR introduces bulk delete functionality for transactions, allowing users to select multiple transactions and delete them in a single operation. Additionally, the UI has been enhanced with modern hover effects and icon-based navigation for better user experience.

Key Features Added:

  • Bulk Selection: Individual checkboxes for each transaction
  • Select All: Master checkbox in table header to select/deselect all transactions
  • Bulk Delete: Delete button that appears when transactions are selected, with confirmation dialog
  • Icon Integration: Replaced text buttons with lucide-react icons for Edit/Delete actions
  • Enhanced Pagination: Icon-only Previous/Next buttons with improved styling
  • Hover Effects: Professional hover states for checkboxes, rows, and interactive elements

Related Issue

Fixes #25

Motivation and Context

Users frequently need to delete multiple transactions at once (e.g., duplicate entries, bulk cleanup, imported data corrections). The previous implementation required deleting transactions one by one, which was time-consuming and inefficient. This enhancement significantly improves user productivity by enabling bulk operations while maintaining a clean, professional interface.

Types of Changes

  • New feature (non-breaking change which adds functionality)
  • Enhancement (improvement to an existing feature)
  • Bug fix (non-breaking change which fixes an issue)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Test (adds or updates tests only)
  • Documentation (non-code change)

How Has This Been Tested?

  • Manual Testing: Verified bulk selection and deletion functionality across different scenarios
  • Edge Cases: Tested with 0 selected items, single item, multiple items, and all items selected
  • UI Testing: Verified hover effects work correctly across different browsers
  • Responsive Testing: Confirmed functionality works on mobile and desktop viewports
  • Accessibility Testing: Ensured proper focus states and screen reader compatibility
  • Error Handling: Tested network failures during bulk delete operations

Test Scenarios:

  1. Select individual transactions and bulk delete
  2. Use "Select All" to select/deselect all transactions
  3. Delete all transactions on a page
  4. Verify confirmation dialog appears before deletion
  5. Test pagination navigation with new icon buttons
  6. Verify edit/delete icons function properly

Screenshots (if applicable):

image

Checklist

  • My code follows the code style of this project
  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed

@Copilot Copilot AI review requested due to automatic review settings October 3, 2025 15:34
Copy link

netlify bot commented Oct 3, 2025

Deploy Preview for paisable ready!

Name Link
🔨 Latest commit 045c58a
🔍 Latest deploy log https://app.netlify.com/projects/paisable/deploys/68e542db0a24de00081aaf9d
😎 Deploy Preview https://deploy-preview-70--paisable.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 95
Accessibility: 100
Best Practices: 100
SEO: 91
PWA: 70
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

@Copilot 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 bulk delete functionality for transactions, allowing users to select multiple transactions and delete them in a single operation. The UI has been modernized with icon-based buttons and enhanced hover effects for better user experience.

  • Added bulk selection with individual and master checkboxes
  • Implemented bulk delete with confirmation dialog
  • Replaced text buttons with lucide-react icons for actions and navigation

Reviewed Changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated 3 comments.

File Description
frontend/src/pages/TransactionsPage.jsx Implements bulk selection state, bulk delete functionality, and replaces text buttons with icons from lucide-react
frontend/package.json Adds lucide-react dependency for icon components
Files not reviewed (1)
  • frontend/package-lock.json: Language not supported

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@Copilot Copilot AI review requested due to automatic review settings October 3, 2025 15:57
Copy link
Contributor

@Copilot 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 2 out of 3 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • frontend/package-lock.json: Language not supported

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@tanmaygautam11 tanmaygautam11 changed the title Feat/bulk delete Feat: add bulk delete, icons and enhance UI Oct 3, 2025
@tanmaygautam11
Copy link
Contributor Author

@archa8 Please review this PR and tell me if you want any suggestions to be added.

@archa8
Copy link
Member

archa8 commented Oct 3, 2025

Kindly cross-link the corresponding issue. Thank you!

@Copilot Copilot AI review requested due to automatic review settings October 4, 2025 17:13
Copy link
Contributor

@Copilot 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.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Member

@archa8 archa8 left a comment

Choose a reason for hiding this comment

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

@tanmaygautam11 The Edit and Delete icons work as intended, but the bulk delete doesn't work. For this, you'll need to make changes to backend/routes/transactionRoutes.js where you'll have to write the code to handle bulk delete. I have resolved the conflicts that were occurring in the TransactionsPage.jsx, so kindly pull the changes in your branch and then update the corresponding code.

@Copilot Copilot AI review requested due to automatic review settings October 6, 2025 16:03
Copy link
Contributor

@Copilot 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 2 out of 3 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • frontend/package-lock.json: Language not supported

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@archa8
Copy link
Member

archa8 commented Oct 6, 2025

Hey @tanmaygautam11, kindly use the existing EmptyState component instead of creating one for no transactions and look at Copilot's suggestions for once. Rest all looks fine to me.

@Copilot Copilot AI review requested due to automatic review settings October 7, 2025 16:14
Copy link
Contributor

@Copilot 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 4 out of 5 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • frontend/package-lock.json: Language not supported
Comments suppressed due to low confidence (1)

backend/controllers/transactionController.js:1

  • Using alert() for error handling in modern React applications is not a best practice. Consider using a proper notification system or state-based error handling instead.
const IncomeExpense = require('../models/IncomeExpense');

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@tanmaygautam11
Copy link
Contributor Author

Hey @archa8, I have looked at the copilot suggestions and added the important ones. Also I have improved debouncing logic in the code. Please review the changes and tell me if you want any other changes.

@tanmaygautam11 tanmaygautam11 requested a review from archa8 October 7, 2025 16:46
Copy link
Member

@archa8 archa8 left a comment

Choose a reason for hiding this comment

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

Looks good and works as intended. LGTM!

@archa8 archa8 merged commit 54d6e98 into Code-A2Z:master Oct 7, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Bulk delete and icon UI for transactions page

2 participants