Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@Aunshon
Copy link
Collaborator

@Aunshon Aunshon commented Sep 10, 2025

All Submissions:

  • My code follow the WordPress' coding standards
  • My code satisfies feature requirements
  • My code is tested
  • My code passes the PHPCS tests
  • My code has proper inline documentation
  • I've included related pull request(s) (optional)
  • I've included developer documentation (optional)
  • I've added proper labels to this pull request

Related Pull Request(s)

Closes

How to test the changes in this Pull Request:

  • As mentioned in issue.

Changelog entry

- **update:** Admin Dashboard vendor list UI with Modern Design and Improved User Experience.

Summary by CodeRabbit

  • New Features

    • Vendors admin page: list, search, status tabs, filters, bulk approve/disable, per-row actions, pagination and status counts.
    • Withdraws admin page & reporting: rich table with actions, modals, bulk workflows and PayPal export with polling; new REST export endpoints for reports.
  • UI / Components

    • New reusable AdminDataView table, tabs, filter panel, empty-state components and updated admin styles.
  • Improvements

    • Currency formatting now respects admin/dashboard currency settings.
  • Documentation

    • Guides for custom export controllers and AdminDataViewTable usage.

…cSelect, ProductAsyncSelect, VendorAsyncSelect, WpDateTimePicker, SearchInput, and Select components
@mrabbani mrabbani added Needs: Author Reply and removed Needs: Dev Review It requires a developer review and approval labels Oct 21, 2025
…ate `wp_localize_script` usage

- Used `@wordpress/hooks`'s `applyFilters` for consistency.
- Replaced `wp_localize_script` with `wp_add_inline_script` for better script handling.
@Aunshon Aunshon added Needs: Dev Review It requires a developer review and approval and removed Needs: Author Reply labels Oct 21, 2025
@mrabbani mrabbani added Dev Review Done and removed Needs: Dev Review It requires a developer review and approval labels Oct 21, 2025
@dev-shahed dev-shahed added 🎉 QA Approved This PR is approved by the QA team and removed Needs: Testing This requires further testing labels Oct 21, 2025
@MdAsifHossainNadim MdAsifHossainNadim merged commit a48d46b into feat/dokan-widthraw-admin-list Oct 22, 2025
1 check passed
MdAsifHossainNadim added a commit that referenced this pull request Oct 22, 2025
* WIP: add withdraw management with new admin dashboard page

* enhance: Update webpack configuration for Dokan dependency mapping

* enhance: Update webpack configuration for Dokan dependency mapping

* enhance: Update comments for React utilities and hooks registration in Assets.php

* enhance: Refactor import statements and improve code formatting in Bootstrap.js

* feat: enhance withdraw admin dashboard with improved formatting, styling, and eligibility conditions

- Improved handling for `dokanAdminDashboard.currency` fallback in `Accounting.ts`.
- Implemented `processDetails` for detailed render of withdrawal methods.
- Replaced custom buttons with `DokanButton` for better consistency.
- Added eligibility conditions for bulk actions (approve, cancel, delete).
- Introduced `formatPrice` utility for consistent price formatting.
- Updated table styling with new borders and rounded corners in SCSS.
- Corrected TSPath alias in `tsconfig.json`.

* enhance: Refactor withdrawal actions to utilize modal for approval, cancellation, and deletion

* enhance: Improve withdrawal admin list with filter options and tooltip for details

* enhance: Add option to download PayPal mass payment file in withdrawal admin list

* enhance: Update withdrawal actions with new icons and improve button styling

* feat: enhance withdraw admin page with new filters and UI updates

- Added `VendorAsyncSelect` and `DateRangePicker` components for improved filtering.
- Updated SCSS to fix z-index and add relative positioning.
- Refactored filter handling logic for better clarity and usability.

* feat: add payment method filter and improve withdraw filtering UI

- Introduced `AsyncSelect` with payment method filter support.
- Enhanced UI components for filtering, including updated placeholders and button styles.
- Added `loadPaymentMethods` function to dynamically fetch payment methods.
- Improved filter reset functionality with additional cleanup actions.

* fix: bind payment method value to AsyncSelect in withdraw filter UI

* feat: integrate WooCommerce export system with new Dokan export controllers

- Added `ExportController` and `WithdrawExportController` to manage export functionality.
- Registered `WithdrawExportController` with WooCommerce under `withdraws` type.
- Created comprehensive usage documentation for the export controller.
- Enhanced `REST/Manager` to support export controllers seamlessly.

* feat: enable withdraw export functionality with enhanced WooCommerce integration

- Added support for withdraw data export via WooCommerce export system.
- Introduced `register_data_endpoint` method to map withdraw export endpoint.
- Updated `ExportController` and `WithdrawExportController` for endpoint structure alignment.
- Enhanced admin withdraw page with bulk export options and improved pagination.

* feat: implement reusable admin data table component and enhance withdraw admin UI

- Created `AdminDataViewTable` component for reusable, filterable, and responsive data tables.
- Integrated new data table in withdraw admin page for better UX.
- Added new SCSS styles to support component styling.
- Enhanced withdraw page functionality with improved tabs, export options, and filtering.

* feat: add filter button enhancements and improve admin filters behavior

- Introduced `openSelectorSignal` and `buttonRef` states in `AdminDataViewTable` for better filter button management.
- Enhanced `AdminFilter` with new props: `openOnMount`, `openSelectorSignal`, `onFirstFilterAdded`, and `buttonPopOverAnchor` for improved flexibility.
- Adjusted filter popover logic for dynamic anchoring and better user experience.
- Updated withdraw admin page tab icons for better readability.

* feat: auto-hide filters panel when no active filters

- Added `hasActiveFilters` state in `AdminDataViewTable` to track active filters.
- Implemented logic to auto-hide filter area when no filters are active.
- Enhanced `AdminFilter` with `onActiveFiltersChange` prop for notifying parent components about active filter count changes.
- Improved filter button behavior by conditionally toggling filter visibility.

* feat: improve withdraw filters UX with enhanced clearing and removal functionality

- Refactored `clearSingleFilter` method to improve filter clearing logic for vendors, payment methods, and date ranges.
- Added UI for removing individual active filters in `AdminFilter` using a close button with `lucide-react` `X` icon.
- Updated filter management to ensure state consistency and reset view pagination on filter changes.

* feat: enhance AdminDataViewTable with new empty state and styles

- Introduced reusable `ListEmpty` component to standardize empty state UI.
- Added support for customizable empty state (`empty`, `emptyIcon`, `emptyTitle`, `emptyDescription`) in `AdminDataViewTable`.
- Updated `dataviews` SCSS with improved layouts, spacing, and styles for empty states and table paddings.
- Enhanced withdraw admin page with updated tab and status badge styles for better readability.
- Added comprehensive documentation for `AdminDataViewTable` usage in `frontend/admin-dataview-table.md`.

* feat: add bulk action toolbar and improve data view styles

- Added `BulkActionToolbar` component in `AdminDataViewTable` for managing bulk actions.
- Updated SCSS to include box-shadow for `.dataviews-wrapper` to enhance visual hierarchy.

* refactor: update REST Manager to simplify controller loading

- Commented out redundant code checking/loading `WithdrawExportController`.
- Added `ExportController` to `get_registered_controllers` method for enhanced export functionality.

* fix: update bulk action callback to map item IDs

- Modified `handleBulkAction` usage to map `items` to their `id` values for better data handling in bulk PayPal actions.

* refactor: simplify withdraw export argument structure

- Updated `report_args` to directly use `ids` instead of `include` for better clarity and consistency.

* fix: add per_page export argument and ensure integer pagination headers

- Added `per_page` argument to withdraw export API for controlling items per page.
- Ensured `X-WP-Total` and `X-WP-TotalPages` headers return integers in withdraw export responses.

* fix: update filter panel visibility logic in AdminDataViewTable

- Applied `!hidden` class for proper handling of `showFilters` state to ensure consistent filter panel visibility.

* fix: improve withdraw modal UI and localization support

- Added `_n` import for handling singular/plural translations in withdraw modal.
- Refined modal styling with better section separation using borders.
- Updated `dialogTitle` to display amount and store name for clarity.
- Replaced repetitive header code with streamlined component structure.

* fix: enhance withdraw export status handling and data updates

- Updated `checkStatus` function to use Promises for improved async handling and status check resolution.
- Added `payable` field to withdraw export data for more comprehensive reporting.
- Refined `AdminDataViewTable` tab selection logic to reset selection state.
- Updated dependencies to the latest versions for improved stability and features.

* fix: filter PayPal items in bulk action callback

- Updated `handleBulkAction` to process only items with the `paypal` method before mapping their IDs.

* fix: enhance withdraw modal logic and UI

- Added `selectedAction` state to manage action selections in the withdraw modal.
- Improved action initialization for the "view" modal based on item status.
- Simplified conditional rendering and cleaned up modal structure for better readability.
- Refined button handling, ensuring appropriate action execution and modal behavior.

* fix: add 'withdraw' to panel switch supported keys filter

- Extended `supportedKeys` filter to include 'withdraw' for better panel switch handling.

* refactor: Replace Tooltip import with DokanTooltip in withdraw index page

* Admin dashboard vendor list react (#2901)

* feat: add DokanSelect component with customizable styles and indicators

* enhance: update DokanSelect component to improve cursor styles for indicators and options

* enhance: update indicator separator visibility in DokanSelect component

* enhance: improve component composition and style precedence in DokanSelect

* feat: add DokanAsyncSelect and VendorAsyncSelect components for enhanced vendor selection

* feat: add ProductAsyncSelect component for enhanced product selection

* feat: add WcDateRangePicker component for date range selection

* feat: add WpDateTimePicker component for date and time selection

* feat: refactor ProductAsyncSelect for improved loading and option handling

* feat: add OrderAsyncSelect component for enhanced order selection

* feat: add SearchInput component for enhanced search functionality

* feat: add CouponAsyncSelect component for coupon selection

* feat: add Test component with various Dokan UI elements and functionality

* feat: remove DokanSelect export from index.tsx

* feat: remove DokanSelect component from Test.tsx

* feat: enhance Test component with ProductAsyncSelect and VendorAsyncSelect

* feat: remove unused imports from Test component

* feat: rename DokanAsyncSelect to AsyncSelect and update imports

* feat: rename DokanAsyncSelect to AsyncSelect and update imports

* feat: add Select component and update AsyncSelect usage in Test component

* feat: refactor AsyncSelect and related components to use BaseSelectProps for improved type safety

* feat: enable multi-select functionality in Test component

* feat: integrate SimpleInput for date input in WcDateRangePicker, WpDatePicker, and WpDateTimePicker components

* feat: add documentation for AsyncSelect, CouponAsyncSelect, OrderAsyncSelect, ProductAsyncSelect, VendorAsyncSelect, WpDateTimePicker, SearchInput, and Select components

* feat: add prefetch and strict validation options to AsyncSelect components

* feat: update AsyncSelect components to improve fetching logic and add unique instance IDs

* feat: enhance AsyncSelect components with unique merging logic for prefetched options

* feat: implement skip merging logic for AsyncSelect components on dependency changes

* feat: replace Test component with Status component in routing

* feat: add Vendors management page and related components

* feat: enhance vendor admin list with avatar display and action buttons

* feat: update vendor admin list with improved URL handling and status display

* feat: add confirmation modal for vendor approval and disable actions

* feat: add selection state management for bulk actions in vendor admin list

* feat: rename WcDateRangePicker and WpDateTimePicker components to DateRangePicker and DateTimePicker

* feat: enhance AsyncSelect components with Tailwind CSS styling and improve option label formatting

* feat: update documentation for Props API and enhance WpDatePicker with unique instance IDs

* feat: enhance AsyncSelect component with icon support and update documentation

* feat: update ProductAsyncSelect endpoint and enhance SearchInput with stable debouncing

* feat: remove onClose handler from DateRangePicker component

* feat: replace Test component with Status in Dokan routes

* Finish select components

* feat: enhance AsyncSelect components with onMenuOpen handling and loading optimization

* feat: add filter button and toggle functionality to Vendors page

* feat: add seller badge and subscription filters to Vendors page

* feat: improve loading states and optimize rendering for vendor fields

* feat: add SellerBadgeSelect component and update vendor list layout

* feat: enhance vendor filtering with dynamic fields and improved query handling

* refactor: enhance vendor admin list with dynamic filters and improved UI elements

- Updated filters to allow dynamic field injection and better customization.
- Improved UI for status tabs and filters with consistent theming.
- Refactored filter logic and replaced redundant methods for better clarity.
- Integrated search and tab selection into the main table component for enhanced usability.

* refactor: remove unused components and redundant state logic in Vendors page

- Removed `DokanTab` and `Filter` components.
- Deleted `showFilters` state and unnecessary `useEffect` for filter visibility.
- Simplified and cleaned up markup and filter methods for improved readability.

* feat: add 'vendors' to supported keys in PanelSwitch filter

* refactor: Remove unused `shouldRender` state and legacy redirect logic from PanelSwitch and LegacySwitcher

* fix: update vendor navigation path in Vendors page

* refactor: replace `wp.hooks.applyFilters` with `applyFilters` and update `wp_localize_script` usage

- Used `@wordpress/hooks`'s `applyFilters` for consistency.
- Replaced `wp_localize_script` with `wp_add_inline_script` for better script handling.

---------

Co-authored-by: Md Asif Hossain Nadim <[email protected]>

---------

Co-authored-by: Shazahanul Islam Shohag <[email protected]>
Co-authored-by: Aunshon <[email protected]>
Co-authored-by: Aunshon <[email protected]>
@coderabbitai coderabbitai bot mentioned this pull request Nov 13, 2025
8 tasks
@coderabbitai coderabbitai bot mentioned this pull request Nov 20, 2025
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants