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

Farzin/85855/Refactor ToggleMenuDrawer component to use useStore hook #7365

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
e512bc8
Shayan/52349/react17 migration (#6908)
shayan-deriv Jan 10, 2023
cfbbf1b
fix: add optional chaining in getMinDuration function (#7344)
kate-deriv Jan 11, 2023
b6f7e4c
fix: :bug: resolved issue with trade. odal (#7291)
likhith-deriv Jan 11, 2023
d543da7
Merge branch 'master' of https://github.com/binary-com/deriv-app into…
farrah-deriv Jan 11, 2023
49430b3
Revert "fix: :bug: resolved issue with trade. odal (#7291)" (#7364)
matin-deriv Jan 13, 2023
10035dc
feat(core): :sparkles: add `@deriv/hooks` and `@deriv/stores` to `@de…
Jan 13, 2023
c1da3f6
refactor(core): :fire: remove `ToggleMenuDrawer` prop drilling and us…
Jan 13, 2023
306729f
refactor(core): :fire: remove dead props
Jan 13, 2023
517b6a0
refactor(core): :fire: remove unnecessary ref in `ToggleMenuDrawer`
Jan 13, 2023
9bf5603
refactor(core): :fire: remove `react-import-loader` from `@deriv/core`
Jan 13, 2023
83d1ae2
refactor(core): :fire: remove `platform_switcher` prop from `ToggleMe…
Jan 16, 2023
901868f
Merge branch 'develop' into farzin/85855/refactor_toggle_MenuDrawerCo…
Jan 16, 2023
ab72826
Farzin/85054/Call `resetWithrawForm` on `CryptoWithdrawForm` componen…
farzin-deriv Jan 16, 2023
db321a8
Niloofar Sadeghi / Task - Refactor tests in the language.spec.js file…
niloofar-deriv Jan 16, 2023
440892f
refactor: proposal tests (#7327)
niloofar-deriv Jan 16, 2023
00a9dda
Niloofar Sadeghi / Task - Refactor tests in the error.spec.js file (#…
niloofar-deriv Jan 16, 2023
492b437
Niloofar Sadeghi / Task - Refactor tests in the binary-link.spec.tsx …
niloofar-deriv Jan 16, 2023
eb59db8
refactor: money tests (#7353)
niloofar-deriv Jan 16, 2023
325d629
refactor: toggle-positions tests (#7287)
niloofar-deriv Jan 16, 2023
4c3f477
refactor: toggle-button tests (#7328)
niloofar-deriv Jan 16, 2023
906c784
Niloofar Sadeghi / Task - Refactor tests in the toggle-button-group.s…
niloofar-deriv Jan 16, 2023
2a71abf
refactor: open-positions-table tests (#7374)
niloofar-deriv Jan 16, 2023
1f93b8d
Niloofar Sadeghi / Task - Refactor tests in the marker-spot-label.spe…
niloofar-deriv Jan 16, 2023
ebce045
Niloofar Sadeghi / Task - Refactor tests in the binary-link.spec.tsx …
niloofar-deriv Jan 16, 2023
ccbad43
Niloofar Sadeghi / Task - Refactor tests in the contract-type-dialog.…
niloofar-deriv Jan 16, 2023
311feec
Niloofar Sadeghi / Task - Refactor tests in the platform-dropdown.spe…
niloofar-deriv Jan 16, 2023
3f5af57
Merge branch 'develop' into farzin/85855/refactor_toggle_MenuDrawerCo…
Jan 17, 2023
dceaf22
Merge branch 'develop' into farzin/85855/refactor_toggle_MenuDrawerCo…
Jan 18, 2023
4e17c09
Merge branch 'develop' into farzin/85855/refactor_toggle_MenuDrawerCo…
Jan 19, 2023
34e9792
fix(core): :memo: resolve conflicts
Jan 19, 2023
19acd66
fix(core): :memo: resolve conflicts
Jan 19, 2023
dd3a780
Merge branch 'develop' into farzin/85855/refactor_toggle_MenuDrawerCo…
Jan 25, 2023
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
1 change: 0 additions & 1 deletion packages/core/build/loaders-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const path = require('path');

const js_loaders = [
'@deriv/shared/src/loaders/react-import-loader.js',
'@deriv/shared/src/loaders/deriv-account-loader.js',
'@deriv/shared/src/loaders/deriv-cashier-loader.js',
'@deriv/shared/src/loaders/deriv-cfd-loader.js',
Expand Down
4 changes: 3 additions & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,10 @@
"@deriv/components": "^1.0.0",
"@deriv/deriv-api": "^1.0.8",
"@deriv/deriv-charts": "1.0.1",
"@deriv/hooks": "^1.0.0",
"@deriv/p2p": "^0.7.3",
"@deriv/reports": "^1.0.0",
"@deriv/stores": "^1.0.0",
"@deriv/shared": "^1.0.0",
"@deriv/trader": "^3.8.0",
"@deriv/translations": "^1.0.0",
Expand Down Expand Up @@ -127,7 +129,7 @@
"react-dom": "^17.0.2",
"react-i18next": "^11.11.0",
"react-loadable": "^5.5.0",
"framer-motion":"^6.5.1",
"framer-motion": "^6.5.1",
"react-router": "^5.2.0",
"react-router-dom": "^5.2.0",
"react-tiny-popover": "^7.0.1",
Expand Down
1,074 changes: 528 additions & 546 deletions packages/core/src/App/Components/Layout/Header/toggle-menu-drawer.jsx

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ const LoggedInHeader = ({ is_dark_mode }) => {
<React.Fragment>
<Icon icon={'IcNotificationClear'} height={20} width={17} />
<div className='dashboard-header__right--logged-in-separator' />
<ToggleMenuDrawer alignment={'right'} is_logged_in should_allow_authentication title={''} />
<ToggleMenuDrawer />
</React.Fragment>
)}
</div>
Expand Down Expand Up @@ -94,7 +94,7 @@ const LoggedOutHeader = () => {
{isMobile() && (
<React.Fragment>
<div className='dashboard-header__right--logged-out-separator' />
<ToggleMenuDrawer alignment={'right'} should_allow_authentication title={''} />
<ToggleMenuDrawer />
</React.Fragment>
)}
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import * as React from 'react';

import { Button, DesktopWrapper, Icon, MobileWrapper, Money, Popover, Text } from '@deriv/components';
import { Localize, localize } from '@deriv/translations';
import { PlatformSwitcher, ToggleNotifications } from 'App/Components/Layout/Header';
import { ToggleNotifications } from 'App/Components/Layout/Header';
import { getPlatformInformation, isMobile, routes } from '@deriv/shared';
import { useHistory, withRouter } from 'react-router-dom';

import { BinaryLink } from 'App/Components/Routes';
import PropTypes from 'prop-types';
import ToggleMenuDrawer from 'App/Components/Layout/Header/toggle-menu-drawer.jsx';
Expand Down Expand Up @@ -97,34 +95,21 @@ const AccountBalance = ({ balance, currency }) => {
};

const DashboardPlatformHeader = ({
account_status,
app_routing_history,
balance,
currency,
disableApp,
enableApp,
header_extension,
is_dark_mode,
is_logged_in,
is_mt5_allowed,
is_notifications_visible,
is_onramp_tab_visible,
is_p2p_enabled,
is_payment_agent_transfer_visible,
is_payment_agent_visible,
is_account_transfer_visible,
is_settings_modal_on,
is_virtual,
location,
logoutClient,
notifications_count,
setDarkMode,
settings_extension,
should_allow_authentication,
toggleNotifications,
toggleSettingsModal,
}) => {
const toggle_menu_drawer_ref = React.useRef(null);
const filterPlatformsForClients = payload =>
payload.filter(config => {
if (config.link_to === routes.mt5) {
Expand All @@ -137,33 +122,7 @@ const DashboardPlatformHeader = ({
<header className='dashboard-platform-header'>
<div className='dashboard-platform-header__menu-left'>
<MobileWrapper>
<ToggleMenuDrawer
ref={toggle_menu_drawer_ref}
should_allow_authentication={should_allow_authentication}
account_status={account_status}
enableApp={enableApp}
disableApp={disableApp}
location={location}
logoutClient={logoutClient}
is_dark_mode={is_dark_mode}
is_logged_in={is_logged_in}
is_p2p_enabled={is_p2p_enabled}
is_payment_agent_transfer_visible={is_payment_agent_transfer_visible}
is_onramp_tab_visible={is_onramp_tab_visible}
is_payment_agent_visible={is_payment_agent_visible}
is_account_transfer_visible={is_account_transfer_visible}
is_virtual={is_virtual}
toggleTheme={setDarkMode}
platform_header={getPlatformInformation(app_routing_history).header}
platform_switcher={
<PlatformSwitcher
app_routing_history={app_routing_history}
is_mobile
platform_config={filterPlatformsForClients(platform_config)}
toggleDrawer={toggle_menu_drawer_ref.current?.toggleDrawer}
/>
}
/>
<ToggleMenuDrawer platform_config={filterPlatformsForClients(platform_config)} />
{header_extension && is_logged_in && <div>{header_extension}</div>}
</MobileWrapper>
<DesktopWrapper>
Expand Down Expand Up @@ -204,55 +163,32 @@ const DashboardPlatformHeader = ({
};

DashboardPlatformHeader.propTypes = {
account_status: PropTypes.object,
app_routing_history: PropTypes.array,
balance: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
currency: PropTypes.string,
disableApp: PropTypes.func,
enableApp: PropTypes.func,
header_extension: PropTypes.any,
is_dark_mode: PropTypes.bool,
is_logged_in: PropTypes.bool,
is_mt5_allowed: PropTypes.bool,
is_notifications_visible: PropTypes.bool,
is_onramp_tab_visible: PropTypes.bool,
is_p2p_enabled: PropTypes.bool,
is_payment_agent_transfer_visible: PropTypes.bool,
is_payment_agent_visible: PropTypes.bool,
is_account_transfer_visible: PropTypes.bool,
is_virtual: PropTypes.bool,
logoutClient: PropTypes.func,
notifications_count: PropTypes.number,
setDarkMode: PropTypes.func,
should_allow_authentication: PropTypes.bool,
toggleNotifications: PropTypes.func,
toggleSettingsModal: PropTypes.func,
location: PropTypes.object,
settings_extension: PropTypes.array,
is_settings_modal_on: PropTypes.bool,
};

export default connect(({ client, common, modules, notifications, ui }) => ({
account_status: client.account_status,
export default connect(({ client, common, notifications, ui }) => ({
app_routing_history: common.app_routing_history,
balance: client.balance,
currency: client.currency,
disableApp: ui.disableApp,
enableApp: ui.enableApp,
header_extension: ui.header_extension,
is_dark_mode: ui.is_dark_mode_on,
is_logged_in: client.is_logged_in,
is_mt5_allowed: client.is_mt5_allowed,
is_notifications_visible: notifications.is_notifications_visible,
is_onramp_tab_visible: modules.cashier.onramp.is_onramp_tab_visible,
is_p2p_enabled: modules.cashier.general_store.is_p2p_enabled,
is_payment_agent_transfer_visible: modules.cashier.payment_agent_transfer.is_payment_agent_transfer_visible,
is_payment_agent_visible: modules.cashier.payment_agent.is_payment_agent_visible,
is_account_transfer_visible: modules.cashier.account_transfer.is_account_transfer_visible,
is_virtual: client.is_virtual,
logoutClient: client.logout,
notifications_count: notifications.notifications.length,
setDarkMode: ui.setDarkMode,
should_allow_authentication: client.should_allow_authentication,
toggleNotifications: notifications.toggleNotificationsModal,
}))(withRouter(DashboardPlatformHeader));
78 changes: 2 additions & 76 deletions packages/core/src/App/Containers/Layout/header/default-header.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { AccountActions, MenuLinks, PlatformSwitcher } from 'App/Components/Layout/Header';
import { DesktopWrapper, Icon, MobileWrapper, Text } from '@deriv/components';
import { PlatformContext, getDecimalPlaces, getPlatformInformation, isMobile, platforms, routes } from '@deriv/shared';

import { PlatformContext, getDecimalPlaces, isMobile, platforms, routes } from '@deriv/shared';
import { AccountsInfoLoader } from 'App/Components/Layout/Header/Components/Preloader';
import { BinaryLink } from 'App/Components/Routes';
import { Localize } from '@deriv/translations';
Expand All @@ -18,7 +17,6 @@ import { withRouter } from 'react-router-dom';

const DefaultHeader = ({
acc_switcher_disabled_message,
account_status,
account_type,
addNotificationMessage,
app_routing_history,
Expand All @@ -34,39 +32,25 @@ const DefaultHeader = ({
is_acc_switcher_on,
is_app_disabled,
is_bot_allowed,
is_dark_mode,
is_dxtrade_allowed,
is_eu,
is_logged_in,
is_logging_in,
is_mt5_allowed,
is_notifications_visible,
is_onramp_tab_visible,
is_p2p_enabled,
is_payment_agent_transfer_visible,
is_payment_agent_visible,
is_account_transfer_visible,
is_route_modal_on,
is_virtual,
is_risky_client,
location,
logoutClient,
menu_items,
notifications_count,
openRealAccountSignup,
platform,
replaceCashierMenuOnclick,
removeNotificationMessage,
setDarkMode,
should_allow_authentication,
toggleAccountsDialog,
toggleNotifications,
changeCurrentLanguage,
is_trading_assessment_for_existing_user_enabled,
active_account_landing_company,
is_landing_company_loaded,
}) => {
const toggle_menu_drawer_ref = React.useRef(null);
const addUpdateNotification = () => addNotificationMessage(client_notifications.new_version_available);
const removeUpdateNotification = React.useCallback(
() => removeNotificationMessage({ key: 'new_version_available' }),
Expand Down Expand Up @@ -173,39 +157,7 @@ const DefaultHeader = ({
/>
</DesktopWrapper>
<MobileWrapper>
<ToggleMenuDrawer
changeCurrentLanguage={changeCurrentLanguage}
ref={toggle_menu_drawer_ref}
should_allow_authentication={should_allow_authentication}
account_status={account_status}
enableApp={enableApp}
disableApp={disableApp}
location={location}
logoutClient={logoutClient}
is_dark_mode={is_dark_mode}
is_logged_in={is_logged_in}
is_p2p_enabled={is_p2p_enabled}
is_payment_agent_transfer_visible={is_payment_agent_transfer_visible}
is_onramp_tab_visible={is_onramp_tab_visible}
is_payment_agent_visible={is_payment_agent_visible}
is_account_transfer_visible={is_account_transfer_visible}
is_virtual={is_virtual}
is_risky_client={is_risky_client}
toggleTheme={setDarkMode}
platform_header={getPlatformInformation(app_routing_history).header}
active_account_landing_company={active_account_landing_company}
platform_switcher={
<PlatformSwitcher
app_routing_history={app_routing_history}
is_mobile
is_landing_company_loaded={is_landing_company_loaded}
is_logged_in={is_logged_in}
is_logging_in={is_logging_in}
platform_config={filterPlatformsForClients(platform_config)}
toggleDrawer={toggle_menu_drawer_ref.current?.toggleDrawer}
/>
}
/>
<ToggleMenuDrawer platform_config={filterPlatformsForClients(platform_config)} />
{header_extension && is_logged_in && (
<div className='header__menu-left-extensions'>{header_extension}</div>
)}
Expand Down Expand Up @@ -277,8 +229,6 @@ const DefaultHeader = ({
DefaultHeader.propTypes = {
acc_switcher_disabled_message: PropTypes.string,
account_type: PropTypes.string,
should_allow_authentication: PropTypes.bool,
account_status: PropTypes.object,
addNotificationMessage: PropTypes.func,
app_routing_history: PropTypes.array,
balance: PropTypes.string,
Expand All @@ -291,44 +241,30 @@ DefaultHeader.propTypes = {
is_acc_switcher_on: PropTypes.bool,
is_app_disabled: PropTypes.bool,
is_bot_allowed: PropTypes.bool,
is_dark_mode: PropTypes.bool,
is_eu: PropTypes.bool,
is_logged_in: PropTypes.bool,
is_logging_in: PropTypes.bool,
is_mt5_allowed: PropTypes.bool,
is_dxtrade_allowed: PropTypes.bool,
is_notifications_visible: PropTypes.bool,
is_account_transfer_visible: PropTypes.bool,
is_route_modal_on: PropTypes.bool,
is_virtual: PropTypes.bool,
is_trading_assessment_for_existing_user_enabled: PropTypes.bool,
is_risky_client: PropTypes.bool,
logoutClient: PropTypes.func,
notifications_count: PropTypes.number,
openRealAccountSignup: PropTypes.func,
platform: PropTypes.string,
removeNotificationMessage: PropTypes.func,
replaceCashierMenuOnclick: PropTypes.func,
setDarkMode: PropTypes.func,
toggleAccountsDialog: PropTypes.func,
toggleNotifications: PropTypes.func,
country_standpoint: PropTypes.object,
history: PropTypes.object,
is_onramp_tab_visible: PropTypes.bool,
is_p2p_enabled: PropTypes.bool,
is_payment_agent_transfer_visible: PropTypes.bool,
is_payment_agent_visible: PropTypes.bool,
location: PropTypes.object,
menu_items: PropTypes.array,
changeCurrentLanguage: PropTypes.func,
};

export default connect(({ client, common, ui, menu, modules, notifications }) => ({
changeCurrentLanguage: common.changeCurrentLanguage,
acc_switcher_disabled_message: ui.account_switcher_disabled_message,
account_status: client.account_status,
account_type: client.account_type,
should_allow_authentication: client.should_allow_authentication,
addNotificationMessage: notifications.addNotificationMessage,
app_routing_history: common.app_routing_history,
balance: client.balance,
Expand All @@ -342,32 +278,22 @@ export default connect(({ client, common, ui, menu, modules, notifications }) =>
is_acc_switcher_on: !!ui.is_accounts_switcher_on,
is_app_disabled: ui.is_app_disabled,
is_bot_allowed: client.is_bot_allowed,
is_dark_mode: ui.is_dark_mode_on,
is_eu: client.is_eu,
is_logged_in: client.is_logged_in,
is_logging_in: client.is_logging_in,
is_mt5_allowed: client.is_mt5_allowed,
is_dxtrade_allowed: client.is_dxtrade_allowed,
is_notifications_visible: notifications.is_notifications_visible,
is_p2p_enabled: modules.cashier.general_store.is_p2p_enabled,
is_payment_agent_transfer_visible: modules.cashier.payment_agent_transfer.is_payment_agent_transfer_visible,
is_onramp_tab_visible: modules.cashier.onramp.is_onramp_tab_visible,
is_payment_agent_visible: modules.cashier.payment_agent.is_payment_agent_visible,
is_account_transfer_visible: modules.cashier.account_transfer.is_account_transfer_visible,
is_route_modal_on: ui.is_route_modal_on,
is_virtual: client.is_virtual,
is_risky_client: client.is_risky_client,
logoutClient: client.logout,
menu_items: menu.extensions,
notifications_count: notifications.notifications.length,
openRealAccountSignup: ui.openRealAccountSignup,
replaceCashierMenuOnclick: modules.cashier.general_store.replaceCashierMenuOnclick,
platform: common.platform,
removeNotificationMessage: notifications.removeNotificationMessage,
setDarkMode: ui.setDarkMode,
toggleAccountsDialog: ui.toggleAccountsDialog,
toggleNotifications: notifications.toggleNotificationsModal,
is_trading_assessment_for_existing_user_enabled: ui.is_trading_assessment_for_existing_user_enabled,
active_account_landing_company: client.landing_company_shortcode,
is_landing_company_loaded: client.is_landing_company_loaded,
}))(withRouter(DefaultHeader));
Loading