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

Jim/93585/replace connect with usestore in market countdown timer market unavailable trade modals unsupported contract modal #79

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -3,47 +3,43 @@ import React from 'react';
import { Dialog } from '@deriv/components';
import { getPlatformSettings } from '@deriv/shared';
import { localize, Localize } from '@deriv/translations';
import { connect } from 'Stores/connect';
import { observer, useStore } from '@deriv/stores';

const MarketUnavailableModal = ({ disableApp, enableApp, is_loading, is_visible, onCancel, onConfirm }) => (
<Dialog
className='market-unavailable-modal'
title={localize('We’re working on it')}
confirm_button_text={localize('Stay on {{platform_name_trader}}', {
platform_name_trader: getPlatformSettings('trader').name,
})}
cancel_button_text={localize('Go to {{platform_name_smarttrader}}', {
platform_name_smarttrader: getPlatformSettings('smarttrader').name,
})}
onConfirm={onConfirm}
onCancel={onCancel}
is_mobile_full_width={false}
is_visible={is_visible}
disableApp={disableApp}
enableApp={enableApp}
is_loading={is_loading}
>
<Localize
i18n_default_text='This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.'
values={{
const MarketUnavailableModal = observer(({ onCancel, onConfirm }) => {
const { ui } = useStore();
const { disableApp, enableApp, is_loading, has_only_forward_starting_contracts: is_visible } = ui;
return (
<Dialog
className='market-unavailable-modal'
title={localize('We’re working on it')}
confirm_button_text={localize('Stay on {{platform_name_trader}}', {
platform_name_trader: getPlatformSettings('trader').name,
})}
cancel_button_text={localize('Go to {{platform_name_smarttrader}}', {
platform_name_smarttrader: getPlatformSettings('smarttrader').name,
}}
/>
</Dialog>
);
})}
onConfirm={onConfirm}
onCancel={onCancel}
is_mobile_full_width={false}
is_visible={is_visible}
disableApp={disableApp}
enableApp={enableApp}
is_loading={is_loading}
>
<Localize
i18n_default_text='This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.'
values={{
platform_name_trader: getPlatformSettings('trader').name,
platform_name_smarttrader: getPlatformSettings('smarttrader').name,
}}
/>
</Dialog>
);
});

MarketUnavailableModal.propTypes = {
disableApp: PropTypes.func,
enableApp: PropTypes.func,
is_loading: PropTypes.bool,
is_visible: PropTypes.bool,
onCancel: PropTypes.func,
onConfirm: PropTypes.func,
};

export default connect(({ ui }) => ({
disableApp: ui.disableApp,
enableApp: ui.enableApp,
is_loading: ui.is_loading,
}))(MarketUnavailableModal);
export default MarketUnavailableModal;
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,33 @@ import PropTypes from 'prop-types';
import React from 'react';
import { Dialog } from '@deriv/components';
import { localize, Localize } from '@deriv/translations';
import { connect } from 'Stores/connect';
import { website_name } from '@deriv/shared';
import { observer, useStore } from '@deriv/stores';

const UnsupportedContractModal = ({ disableApp, enableApp, is_loading, is_visible, onConfirm, onClose }) => (
<Dialog
title={localize('We’re working on it')}
confirm_button_text={localize('Stay on {{website_domain}}', { website_domain: website_name })}
cancel_button_text={localize('Go to Binary.com')}
onConfirm={onConfirm}
onCancel={onClose}
disableApp={disableApp}
enableApp={enableApp}
is_loading={is_loading}
is_closed_on_cancel
is_visible={is_visible}
>
<Localize i18n_default_text='You’ve selected a trade type that is currently unsupported, but we’re working on it.' />
</Dialog>
);
const UnsupportedContractModal = observer(({ onConfirm, onClose }) => {
const { ui } = useStore();
const { disableApp, enableApp, is_loading, is_unsupported_contract_modal_visible: is_visible } = ui;
return (
<Dialog
title={localize('We’re working on it')}
confirm_button_text={localize('Stay on {{website_domain}}', { website_domain: website_name })}
cancel_button_text={localize('Go to Binary.com')}
onConfirm={onConfirm}
onCancel={onClose}
disableApp={disableApp}
enableApp={enableApp}
is_loading={is_loading}
is_closed_on_cancel
is_visible={is_visible}
>
<Localize i18n_default_text='You’ve selected a trade type that is currently unsupported, but we’re working on it.' />
</Dialog>
);
});

UnsupportedContractModal.propTypes = {
disableApp: PropTypes.func,
enableApp: PropTypes.func,
is_loading: PropTypes.bool,
is_visible: PropTypes.bool,
onClose: PropTypes.func,
onConfirm: PropTypes.func,
};

export default connect(({ ui }) => ({
disableApp: ui.disableApp,
enableApp: ui.enableApp,
is_loading: ui.is_loading,
}))(UnsupportedContractModal);
export default UnsupportedContractModal;
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ import moment from 'moment';
import { Text } from '@deriv/components';
import { useIsMounted, WS, convertTimeFormat, isMarketClosed } from '@deriv/shared';
import { Localize } from '@deriv/translations';
import { connect } from 'Stores/connect';
import { observer } from '@deriv/stores';
import { useTraderStore } from 'Stores/useTraderStores';

// check market in coming 7 days
const days_to_check_before_exit = 7;
Expand Down Expand Up @@ -43,7 +44,8 @@ const calculateTimeLeft = remaining_time_to_open => {
: {};
};

const MarketCountdownTimer = ({ active_symbols, is_main_page, setIsTimerLoading, onMarketOpen, symbol }) => {
const MarketCountdownTimer = observer(({ is_main_page, setIsTimerLoading, onMarketOpen, symbol }) => {
const { active_symbols } = useTraderStore();
const isMounted = useIsMounted();
const [when_market_opens, setWhenMarketOpens] = React.useState({});
const [time_left, setTimeLeft] = React.useState(calculateTimeLeft(when_market_opens?.remaining_time_to_open));
Expand Down Expand Up @@ -195,16 +197,13 @@ const MarketCountdownTimer = ({ active_symbols, is_main_page, setIsTimerLoading,
<div className='market-is-closed-overlay__separator' />
</React.Fragment>
);
};
});

MarketCountdownTimer.propTypes = {
active_symbols: PropTypes.array,
is_main_page: PropTypes.bool,
setIsTimerLoading: PropTypes.func,
onMarketOpen: PropTypes.func,
symbol: PropTypes.string.isRequired,
};

export default connect(({ modules }) => ({
active_symbols: modules.trade.active_symbols,
}))(MarketCountdownTimer);
export default MarketCountdownTimer;
60 changes: 17 additions & 43 deletions packages/trader/src/App/Containers/Modals/trade-modals.jsx
Original file line number Diff line number Diff line change
@@ -1,25 +1,22 @@
import React from 'react';
import { getUrlSmartTrader, urlFor } from '@deriv/shared';

import { connect } from 'Stores/connect';
import UnsupportedContractModal from 'App/Components/Elements/Modals/UnsupportedContractModal';
import MarketUnavailableModal from 'App/Components/Elements/Modals/MarketUnavailableModal';
import ServicesErrorModal from 'App/Components/Elements/Modals/ServicesErrorModal';
import { observer, useStore } from '@deriv/stores';
import { useTraderStore } from 'Stores/useTraderStores';

const TradeModals = ({
clearPurchaseInfo,
is_unsupported_contract_modal_visible,
is_market_unavailable_visible,
is_services_error_visible,
is_virtual,
is_logged_in,
toggleUnsupportedContractModal,
setHasOnlyForwardingContracts,
resetPreviousSymbol,
toggleServicesErrorModal,
resetPurchase,
services_error,
}) => {
const TradeModals = observer(() => {
const { ui, client, common } = useStore();
const { resetPreviousSymbol, clearPurchaseInfo, requestProposal: resetPurchase } = useTraderStore();
const { is_virtual, is_logged_in } = client;
const { services_error } = common;
const {
is_services_error_visible,
setHasOnlyForwardingContracts,
toggleServicesErrorModal,
toggleUnsupportedContractModal,
} = ui;
const resetToPreviousMarket = () => {
setHasOnlyForwardingContracts(false);
resetPreviousSymbol();
Expand Down Expand Up @@ -54,17 +51,9 @@ const TradeModals = ({

return (
<React.Fragment>
<UnsupportedContractModal
onConfirm={unsupportedContractOnConfirm}
onClose={unsupportedContractOnClose}
is_visible={is_unsupported_contract_modal_visible}
/>
<UnsupportedContractModal onConfirm={unsupportedContractOnConfirm} onClose={unsupportedContractOnClose} />

<MarketUnavailableModal
onConfirm={marketUnavailableOnConfirm}
onCancel={marketUnavailableOnCancel}
is_visible={is_market_unavailable_visible}
/>
<MarketUnavailableModal onConfirm={marketUnavailableOnConfirm} onCancel={marketUnavailableOnCancel} />

<ServicesErrorModal
onConfirm={servicesErrorModalOnConfirm}
Expand All @@ -75,21 +64,6 @@ const TradeModals = ({
/>
</React.Fragment>
);
};
});

export default connect(({ ui, modules, common, client }) => ({
is_market_unavailable_visible: ui.has_only_forward_starting_contracts,
is_services_error_visible: ui.is_services_error_visible,
is_unsupported_contract_modal_visible: ui.is_unsupported_contract_modal_visible,
is_virtual: client.is_virtual,
is_logged_in: client.is_logged_in,
proposal_info: modules.trade.proposal_info,
purchase_info: modules.trade.purchase_info,
resetPreviousSymbol: modules.trade.resetPreviousSymbol,
clearPurchaseInfo: modules.trade.clearPurchaseInfo,
resetPurchase: modules.trade.requestProposal,
services_error: common.services_error,
setHasOnlyForwardingContracts: ui.setHasOnlyForwardingContracts,
toggleServicesErrorModal: ui.toggleServicesErrorModal,
toggleUnsupportedContractModal: ui.toggleUnsupportedContractModal,
}))(TradeModals);
export default TradeModals;