Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: React Skeleton #2403

Open
wants to merge 62 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
a2701f5
feat: React Skeleton
shohag121 Oct 17, 2024
e931d06
update: header footer customization support added
shohag121 Oct 18, 2024
057a92f
update: blank title markup support added
shohag121 Oct 18, 2024
0077f78
Feat: Add REST API endpoint for vendor-specific customer search
mralaminahamed Oct 21, 2024
3d4d19c
Added router context support. (#2407)
Aunshon Oct 21, 2024
9beb3b3
update: header layout.
shohag121 Oct 22, 2024
15994f8
Merge remote-tracking branch 'upstream/update/vendor-dashboard-struct…
shohag121 Oct 22, 2024
c27f504
Updated react router props
Aunshon Oct 22, 2024
c295722
Merge remote-tracking branch 'origin/update/vendor-dashboard-structur…
Aunshon Oct 22, 2024
0b1ce02
update: `useNavigate` send as fillProps for `dokan-header-actions`
shohag121 Oct 22, 2024
25b4a1a
feat: test case for Customer API
mralaminahamed Oct 23, 2024
c56dacb
feat: and more callback and permission for crud endpoints and test ca…
mralaminahamed Oct 23, 2024
e59521e
Country and Continent api added.
Aunshon Oct 23, 2024
e6bf1ec
update: DokanToaster Support Added
shohag121 Oct 24, 2024
8b2b753
Merge remote-tracking branch 'refs/remotes/mralaminahamed/feat/custom…
Aunshon Oct 25, 2024
a064fe7
Add new endpoints to order and product api
Aunshon Nov 6, 2024
322dc62
Merge remote-tracking branch 'upstream/develop' into update/vendor-da…
shohag121 Nov 11, 2024
c9478eb
Merge branch 'refs/heads/develop' into update/vendor-dashboard-structure
Aunshon Nov 20, 2024
46bcda5
Add register woocommerce script
Aunshon Nov 25, 2024
5f7ea35
Merge branch 'refs/heads/develop' into update/vendor-dashboard-structure
MdAsifHossainNadim Nov 29, 2024
16f8a1d
Merge branch 'refs/heads/develop' into update/vendor-dashboard-structure
MdAsifHossainNadim Nov 29, 2024
c8719b5
update: Vendor dashboard menu override for react templates based on T…
shohag121 Dec 6, 2024
d045a63
Merge remote-tracking branch 'origin/update/vendor-dashboard-structur…
MdAsifHossainNadim Dec 9, 2024
44370c8
Merge branch 'develop' into update/vendor-dashboard-structure
shohag121 Dec 9, 2024
2585e5b
Merge remote-tracking branch 'origin/update/vendor-dashboard-structur…
MdAsifHossainNadim Dec 10, 2024
125f1b7
update: secondary tertiary button support added
shohag121 Dec 10, 2024
66f84ea
Merge remote-tracking branch 'origin/update/vendor-dashboard-structur…
MdAsifHossainNadim Dec 11, 2024
3e3ddd0
enhance: update page heading ui.
MdAsifHossainNadim Dec 17, 2024
198afb2
enhance: Seperate dokan rest controller for role-wise API implementat…
MdAsifHossainNadim Dec 19, 2024
8653afb
Merge remote-tracking branch 'refs/remotes/upstream/develop' into upd…
shohag121 Jan 6, 2025
2efd5ef
feat: dokan status page (#2500)
shohag121 Jan 14, 2025
bd36d1b
Merge branch 'develop' into update/vendor-dashboard-structure
shohag121 Jan 14, 2025
047c91b
fix: wp.hooks usage fix
shohag121 Jan 14, 2025
0b2dece
refactor:method name anf filter name updated
shohag121 Jan 14, 2025
754b010
WIP: React route separation
shohag121 Jan 15, 2025
b91b8dd
Conditional template rendering and react router done.
shohag121 Jan 15, 2025
7a1c587
enhance: Handle vendor dashboard menu highlighter using react route. …
MdAsifHossainNadim Jan 17, 2025
4692634
enhance: Introduce dataviews component and update webpack. (#2497)
MdAsifHossainNadim Jan 20, 2025
d695a31
enhance: Introduce Dokan Draggable/Sortable List Component. (#2521)
MdAsifHossainNadim Jan 20, 2025
5c467be
Update continent rest api and add testcase.
Aunshon Jan 21, 2025
12e6c1c
Update continent rest api and add testcase.
Aunshon Jan 21, 2025
a20b1e4
Update countries rest api and add testcase.
Aunshon Jan 21, 2025
1ea8368
style: fix conflicts between dokan layout table & dataviews wp compon…
MdAsifHossainNadim Jan 21, 2025
df84675
update: forceful `dokan_is_dashboard_nav_dependency_resolved` overrid…
shohag121 Jan 21, 2025
2464ff9
Merge remote-tracking branch 'upstream/update/vendor-dashboard-struct…
shohag121 Jan 21, 2025
fa11027
fix: headless ui styles conflicts.
MdAsifHossainNadim Jan 21, 2025
078a033
update: Override route table added with hook data element
shohag121 Jan 21, 2025
78ac04e
Merge remote-tracking branch 'upstream/update/vendor-dashboard-struct…
shohag121 Jan 21, 2025
e6da098
refactor: default colors fallback for css variable color added
shohag121 Jan 21, 2025
11e2099
Order controller downloads api updated.
Aunshon Jan 21, 2025
add1978
Updated vendor dashboard react root id
Aunshon Jan 21, 2025
5e8a652
Slot fill docs for layout and guideline
Aunshon Jan 21, 2025
b387692
Fix text domain.
Aunshon Jan 21, 2025
1cb1f82
Layout filter added and doc guid added.
Aunshon Jan 21, 2025
01fdd50
Fix OrderControllerV3.php method optimization.
Aunshon Jan 22, 2025
c1ae770
refactor: changed according to recommendation.
shohag121 Jan 22, 2025
a2a7785
refactor: changed according to recommendation.
shohag121 Jan 22, 2025
d37fa76
revert: Re-Introduce wordpress packages. (#2524)
MdAsifHossainNadim Jan 23, 2025
95f4b14
Add react table filter component (#2515)
Aunshon Jan 24, 2025
cc2515e
[Re-Enginrring] withdraw page (#2506)
Aunshon Jan 24, 2025
58705e8
enhance: Update dokan src package root name. (#2531)
MdAsifHossainNadim Jan 27, 2025
936e683
Vendor dashboard finetune withdraw (#2533)
Aunshon Jan 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions base-tailwind.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import {
scopedPreflightStyles,
isolateInsideOfContainer,
} from 'tailwindcss-scoped-preflight';

const rootClass = '.dokan-layout'; //We will use this class to scope the styles.

/** @type {import('tailwindcss').Config} */
const baseConfig = {
important: rootClass,
content: [ './src/**/*.{js,jsx,ts,tsx}', '!./**/*.asset.php' ],
MdAsifHossainNadim marked this conversation as resolved.
Show resolved Hide resolved
theme: {
extend: {
backgroundColor: {
dokan: {
sidebar: {
DEFAULT:
'var(--dokan-sidebar-background-color, #F05025)',
hover: 'var(--dokan-sidebar-hover-background-color, #F05025)',
},
btn: {
DEFAULT:
'var(--dokan-button-background-color, #F05025)',
hover: 'var(--dokan-button-hover-background-color, #F05025)',
},
},
},
textColor: {
dokan: {
sidebar: {
DEFAULT: 'var(--dokan-sidebar-text-color, #CFCFCF)',
hover: 'var(--dokan-sidebar-hover-text-color, #ffffff)',
},
btn: {
DEFAULT: 'var(--dokan-button-text-color, #ffffff)',
hover: 'var(--dokan-button-hover-text-color, #ffffff)',
},
},
},
borderColor: {
dokan: {
btn: {
DEFAULT: 'var(--dokan-button-border-color, #F05025)',
hover: 'var(--dokan-button-hover-border-color, #F05025)',
},
},
},
colors: {
primary: 'var(--dokan-button-background-color, #F05025)',
dokan: {
sidebar: 'var(--dokan-button-background-color, #1B233B)',
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Potential typo in 'sidebar' color variable

In line 51, the sidebar color is set to 'var(--dokan-button-background-color, #1B233B)'. This seems inconsistent with the variable naming convention used elsewhere. Should it be 'var(--dokan-sidebar-background-color, #1B233B)' to match the sidebar background color variable used in the backgroundColor section?

Apply this diff to correct the variable name:

                     sidebar: 'var(--dokan-button-background-color, #1B233B)',
+                    sidebar: 'var(--dokan-sidebar-background-color, #1B233B)',
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
sidebar: 'var(--dokan-button-background-color, #1B233B)',
sidebar: 'var(--dokan-sidebar-background-color, #1B233B)',

btn: 'var(--dokan-button-background-color, #F05025)',
},
},
},
},
plugins: [
scopedPreflightStyles( {
isolationStrategy: isolateInsideOfContainer( rootClass, {} ),
} ),
require( '@tailwindcss/typography' ),
require( '@tailwindcss/forms' ),
],
};

module.exports = baseConfig;
12 changes: 12 additions & 0 deletions includes/Assets.php
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,10 @@ public function get_styles() {
'src' => DOKAN_PLUGIN_ASSEST . '/css/dokan-tailwind.css',
'version' => filemtime( DOKAN_DIR . '/assets/css/dokan-tailwind.css' ),
],
'dokan-react-frontend' => [
'src' => DOKAN_PLUGIN_ASSEST . '/css/frontend.css',
'version' => filemtime( DOKAN_DIR . '/assets/css/frontend.css' ),
],
];

return $styles;
Expand All @@ -365,6 +369,7 @@ public function get_styles() {
public function get_scripts() {
global $wp_version;

$frontend_shipping_asset = require DOKAN_DIR . '/assets/js/frontend.asset.php';
Aunshon marked this conversation as resolved.
Show resolved Hide resolved
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
$asset_url = DOKAN_PLUGIN_ASSEST;
$asset_path = DOKAN_DIR . '/assets/';
Expand Down Expand Up @@ -554,6 +559,11 @@ public function get_scripts() {
'deps' => [ 'jquery' ],
'version' => filemtime( $asset_path . 'js/dokan-frontend.js' ),
],
'dokan-react-frontend' => [
'src' => $asset_url . '/js/frontend.js',
'deps' => $frontend_shipping_asset['dependencies'],
'version' => $frontend_shipping_asset['version'],
],
Aunshon marked this conversation as resolved.
Show resolved Hide resolved
];

return $scripts;
Expand Down Expand Up @@ -856,6 +866,8 @@ public function dokan_dashboard_scripts() {
self::load_form_validate_script();
$this->load_gmap_script();

wp_enqueue_script( 'dokan-react-frontend' );
wp_enqueue_style( 'dokan-react-frontend' );
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'jquery-ui' );
wp_enqueue_script( 'jquery-ui-autocomplete' );
Expand Down
123 changes: 123 additions & 0 deletions includes/REST/DokanDataContinentsController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
<?php

namespace WeDevs\Dokan\REST;

use WC_REST_Data_Continents_Controller;
use WP_Error;
use WP_REST_Request;
use WP_REST_Response;

class DokanDataContinentsController extends WC_REST_Data_Continents_Controller {
Aunshon marked this conversation as resolved.
Show resolved Hide resolved

/**
* Endpoint namespace.
*
* @var string
*/
protected $namespace = 'dokan/v1';

/**
* Route base.
*
* @var string
*/
protected $rest_base = 'data/continents';

/**
* Register routes.
*
* @since 3.5.0
*/
public function register_routes() {

Check warning on line 31 in includes/REST/DokanDataContinentsController.php

View workflow job for this annotation

GitHub Actions / Run PHPCS inspection

Possible useless method overriding detected
parent::register_routes();
}

/**
* Return the list of states for all countries.
*
* @since 3.5.0
* @param WP_REST_Request $request Request data.
* @return WP_Error|WP_REST_Response
*/
public function get_items( $request ) {
$this->set_woocommerce_rest_check_permissions();

return parent::get_items( $request );
}

/**
* Return the list of states for a given country.
*
* @since 3.5.0
* @param WP_REST_Request $request Request data.
* @return WP_Error|WP_REST_Response
*/
public function get_item( $request ) {
$this->set_woocommerce_rest_check_permissions();
return parent::get_item( $request );
}

/**
* Check if a given request has access to read an item.
*
* @param WP_REST_Request $request Full details about the request.
* @return WP_Error|boolean
*/
public function get_item_permissions_check( $request ) {
$this->set_woocommerce_rest_check_permissions();
$item_permission = $this->get_items_permissions_check( $request );

if ( is_wp_error( $item_permission ) ) {
return $item_permission;
}

return parent::get_item_permissions_check( $request );
}

/**
* Check if a given request has access to read items.
*
* @since DOKAN_SINCE
*
* @param WP_REST_Request $request Full details about the request.
* @return WP_Error|boolean
*/
public function get_items_permissions_check( $request ) {
// phpcs:ignore WordPress.WP.Capabilities.Unknown
if ( current_user_can( dokan_admin_menu_capability() ) || current_user_can( 'dokandar' ) ) {
return true;
}

return new WP_Error(
'dokan_pro_permission_failure',
__( 'You are not allowed to do this action.', 'dokan-lite' ),
[
'status' => rest_authorization_required_code(),
]
);
}

private function set_woocommerce_rest_check_permissions() {
add_filter( 'woocommerce_rest_check_permissions', [ $this, 'add_subscriptions_read_permission_to_vendors' ], 10, 4 );
}

/**
* Add permissions.
*
* @since DOKAN_PRO_SINCE
*
* @param $permission
* @param $context
* @param $object_id
* @param $obj
*
* @return true
*/
public function add_subscriptions_read_permission_to_vendors( $permission, $context, $object_id, $obj ) {
if ( 'read' === $context ) {
return true;
}

return $permission;
}
}
123 changes: 123 additions & 0 deletions includes/REST/DokanDataCountriesController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
<?php

namespace WeDevs\Dokan\REST;

use WC_REST_Data_Countries_Controller;
use WP_Error;
use WP_REST_Request;
use WP_REST_Response;

class DokanDataCountriesController extends WC_REST_Data_Countries_Controller {
Aunshon marked this conversation as resolved.
Show resolved Hide resolved

/**
* Endpoint namespace.
*
* @var string
*/
protected $namespace = 'dokan/v1';

/**
* Route base.
*
* @var string
*/
protected $rest_base = 'data/countries';

/**
* Register routes.
*
* @since 3.5.0
*/
public function register_routes() {

Check warning on line 31 in includes/REST/DokanDataCountriesController.php

View workflow job for this annotation

GitHub Actions / Run PHPCS inspection

Possible useless method overriding detected
parent::register_routes();
}
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Consider removing the unnecessary method override of register_routes().

The register_routes() method overrides the parent method without adding any additional functionality. Unless there's a specific reason for this override or plans to extend it in the future, it can be removed to simplify the code.

🧰 Tools
🪛 GitHub Check: Run PHPCS inspection

[warning] 31-31:
Possible useless method overriding detected


/**
* Return the list of states for all countries.
*
* @since 3.5.0
* @param WP_REST_Request $request Request data.
* @return WP_Error|WP_REST_Response
*/
public function get_items( $request ) {
$this->set_woocommerce_rest_check_permissions();

return parent::get_items( $request );
}

/**
* Return the list of states for a given country.
*
* @since 3.5.0
* @param WP_REST_Request $request Request data.
* @return WP_Error|WP_REST_Response
*/
public function get_item( $request ) {
$this->set_woocommerce_rest_check_permissions();
return parent::get_item( $request );
}

/**
* Check if a given request has access to read an item.
*
* @param WP_REST_Request $request Full details about the request.
* @return WP_Error|boolean
*/
public function get_item_permissions_check( $request ) {
$this->set_woocommerce_rest_check_permissions();
$item_permission = $this->get_items_permissions_check( $request );

if ( is_wp_error( $item_permission ) ) {
return $item_permission;
}

return parent::get_item_permissions_check( $request );
}

/**
* Check if a given request has access to read items.
*
* @since DOKAN_SINCE
*
* @param WP_REST_Request $request Full details about the request.
* @return WP_Error|boolean
*/
public function get_items_permissions_check( $request ) {
// phpcs:ignore WordPress.WP.Capabilities.Unknown
if ( current_user_can( dokan_admin_menu_capability() ) || current_user_can( 'dokandar' ) ) {
return true;
}

return new WP_Error(
'dokan_pro_permission_failure',
__( 'You are not allowed to do this action.', 'dokan-lite' ),
[
'status' => rest_authorization_required_code(),
]
);
}

private function set_woocommerce_rest_check_permissions() {
add_filter( 'woocommerce_rest_check_permissions', [ $this, 'add_subscriptions_read_permission_to_vendors' ], 10, 4 );
}

/**
* Add permissions.
*
* @since DOKAN_PRO_SINCE
*
* @param $permission
* @param $context
* @param $object_id
* @param $obj
*
* @return true
*/
public function add_subscriptions_read_permission_to_vendors( $permission, $context, $object_id, $obj ) {
if ( 'read' === $context ) {
return true;
}

return $permission;
}
}
2 changes: 2 additions & 0 deletions includes/REST/Manager.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
*
* @return void
*/
public function prepeare_product_response( $response, $object, $request ) {

Check warning on line 80 in includes/REST/Manager.php

View workflow job for this annotation

GitHub Actions / Run PHPCS inspection

The method parameter $object is never used

Check warning on line 80 in includes/REST/Manager.php

View workflow job for this annotation

GitHub Actions / Run PHPCS inspection

The method parameter $request is never used

Check warning on line 80 in includes/REST/Manager.php

View workflow job for this annotation

GitHub Actions / Run PHPCS inspection

It is recommended not to use reserved keyword "object" as function parameter name. Found: $object
$data = $response->get_data();
$author_id = get_post_field( 'post_author', $data['id'] );

Expand Down Expand Up @@ -170,7 +170,7 @@
*
* @return void
*/
public function on_dokan_rest_insert_product( $object, $request, $creating ) {

Check warning on line 173 in includes/REST/Manager.php

View workflow job for this annotation

GitHub Actions / Run PHPCS inspection

It is recommended not to use reserved keyword "object" as function parameter name. Found: $object
// if not creating, meaning product is updating. So return early
if ( ! $creating ) {
return;
Expand Down Expand Up @@ -234,6 +234,8 @@
DOKAN_DIR . '/includes/REST/StoreSettingControllerV2.php' => '\WeDevs\Dokan\REST\StoreSettingControllerV2',
DOKAN_DIR . '/includes/REST/VendorDashboardController.php' => '\WeDevs\Dokan\REST\VendorDashboardController',
DOKAN_DIR . '/includes/REST/ProductBlockController.php' => '\WeDevs\Dokan\REST\ProductBlockController',
DOKAN_DIR . '/includes/REST/DokanDataCountriesController.php' => '\WeDevs\Dokan\REST\DokanDataCountriesController',
DOKAN_DIR . '/includes/REST/DokanDataContinentsController.php' => '\WeDevs\Dokan\REST\DokanDataContinentsController',
)
);
}
Expand Down
13 changes: 12 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
"release:dev": "npm install && npm run build && npm run clean-files && npm run makepot && npm run zip"
},
"devDependencies": {
"@tailwindcss/forms": "^0.5.9",
"@tailwindcss/typography": "^0.5.15",
"@wordpress/scripts": "^27.9.0",
"chartjs-adapter-moment": "^1.0.1",
"debounce": "^1.2.1",
Expand All @@ -34,6 +36,7 @@
"papaparse": "^5.4.1",
"replace-in-file": "^6.3.5",
"tailwindcss": "^3.3.3",
"tailwindcss-scoped-preflight": "^3.4.5",
"vue": "^2.7.14",
"vue-chartjs": "^3.5.1",
"vue-color": "^2.8.1",
Expand All @@ -50,6 +53,14 @@
"wp-readme-to-markdown": "^1.0.1"
},
"dependencies": {
"@wordpress/i18n": "^5.8.0"
"@getdokan/dokan-ui": "^1.0.14",
MdAsifHossainNadim marked this conversation as resolved.
Show resolved Hide resolved
"@wordpress/components": "^28.9.0",
"@wordpress/data": "^10.9.0",
"@wordpress/dom-ready": "^4.9.0",
"@wordpress/element": "^6.9.0",
"@wordpress/hooks": "^4.9.0",
"@wordpress/i18n": "^5.8.0",
"@wordpress/plugins": "^7.10.0",
"react-router-dom": "^6.27.0"
}
}
Loading
Loading