From ff8833891b6e7ba70d6c42e9961757fc2ec0b58c Mon Sep 17 00:00:00 2001 From: Grzegorz Rola <grola@seostudio.pl> Date: Thu, 20 Feb 2020 09:02:46 +0100 Subject: [PATCH] Code review --- components/address-input.jsx | 2 +- components/sender-address-table.jsx | 4 ++-- src/SenderAddress.php | 16 ++++++++++++++ src/SenderAddressFactory.php | 26 ----------------------- src/ShippingMethodRenderSettingsTrait.php | 9 ++++++-- 5 files changed, 26 insertions(+), 31 deletions(-) delete mode 100644 src/SenderAddressFactory.php diff --git a/components/address-input.jsx b/components/address-input.jsx index 392eda2..bf72f93 100644 --- a/components/address-input.jsx +++ b/components/address-input.jsx @@ -54,7 +54,7 @@ export default class AddressInput extends React.Component { } /** - * @param event + * @param {React.ChangeEvent<HTMLInputElement>} event */ handleChange(event) { let state = this.state; diff --git a/components/sender-address-table.jsx b/components/sender-address-table.jsx index 81e9cb8..59be9f8 100644 --- a/components/sender-address-table.jsx +++ b/components/sender-address-table.jsx @@ -30,7 +30,7 @@ export default class SenderAddressTable extends React.Component { } /** - * @param event + * @param {MouseEvent} event */ handleClickAdd(event) { event.preventDefault(); @@ -51,7 +51,7 @@ export default class SenderAddressTable extends React.Component { } /** - * @param event + * @param {MouseEvent} event */ handleClickDelete(event) { event.preventDefault(); diff --git a/src/SenderAddress.php b/src/SenderAddress.php index 02e30c0..2ca5918 100644 --- a/src/SenderAddress.php +++ b/src/SenderAddress.php @@ -48,4 +48,20 @@ class SenderAddress extends AbstractSenderAddress { return $address; } + /** + * Create addresses from settings. + * + * @param string $sender_address_settings JSON string. + * + * @return SenderAddress[] + */ + public static function create_sender_addresses_from_settings( $sender_address_settings ) { + $sender_addresses = []; + foreach ( json_decode( $sender_address_settings, true ) as $box_setting ) { + $sender_addresses[] = SenderAddress::create_from_array( $box_setting ); + } + + return $sender_addresses; + } + } diff --git a/src/SenderAddressFactory.php b/src/SenderAddressFactory.php deleted file mode 100644 index c4e3e14..0000000 --- a/src/SenderAddressFactory.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php - - -namespace WpDesk\WooCommerce\ShippingMethod\Fields\SenderAddress; - -use WpDesk\WooCommerce\ShippingMethod\SenderAddress; - -class SenderAddressFactory { - - /** - * Create addresses from settings. - * - * @param string $sender_address_settings - * - * @return SenderAddress[] - */ - public static function create_sender_addresses_from_settings( $sender_address_settings ) { - $sender_addresses = []; - foreach ( json_decode( $sender_address_settings, true ) as $box_setting ) { - $sender_addresses[] = SenderAddress::create_from_array( $box_setting ); - } - - return $sender_addresses; - } - -} diff --git a/src/ShippingMethodRenderSettingsTrait.php b/src/ShippingMethodRenderSettingsTrait.php index 35f80af..b6ea3ae 100644 --- a/src/ShippingMethodRenderSettingsTrait.php +++ b/src/ShippingMethodRenderSettingsTrait.php @@ -9,6 +9,7 @@ namespace WpDesk\WooCommerce\ShippingMethod\Fields\SenderAddress; /** * Can render settings html. + * For use in shipping method when sender_addresses field is used in shipping method settings. */ trait ShippingMethodRenderSettingsTrait { @@ -19,7 +20,9 @@ trait ShippingMethodRenderSettingsTrait { * @return string */ public function get_field_key( $key ) { - return $this->plugin_id . $this->id . '_' . $key; + /** @var \WC_Shipping_Method $shipping_method */ + $shipping_method = $this; + return $shipping_method->plugin_id . $shipping_method->id . '_' . $key; } /** @@ -59,7 +62,9 @@ trait ShippingMethodRenderSettingsTrait { * @return string */ public function generate_sender_addresses_html( $key, $data ) { - $data['value'] = $this->get_option( $key ); + /** @var \WC_Shipping_Method $shipping_method */ + $shipping_method = $this; + $data['value'] = $shipping_method->get_option( $key ); $data = $this->get_field_params( $key, $data ); $settings_field = new SettingsField( $data['field_key'] ); ob_start(); -- GitLab