Skip to content

Commit

Permalink
fix: implement contract header inside dtrader v2
Browse files Browse the repository at this point in the history
  • Loading branch information
vinu-deriv committed Oct 22, 2024
1 parent 0493186 commit f0152c6
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 32 deletions.
24 changes: 1 addition & 23 deletions packages/core/src/App/Containers/Layout/header/header.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import React from 'react';
import { useLocation } from 'react-router-dom';
import { useFeatureFlags, useGrowthbookGetFeatureValue } from '@deriv/hooks';
import { useReadLocalStorage } from 'usehooks-ts';
import { isDTraderV2Width, makeLazyLoader, moduleLoader, routes } from '@deriv/shared';
import { makeLazyLoader, moduleLoader, routes } from '@deriv/shared';
import { observer, useStore } from '@deriv/stores';
import { useDevice } from '@deriv-com/ui';
import classNames from 'classnames';
import DTraderContractDetailsHeader from './dtrader-v2-contract-detail-header';

const HeaderFallback = () => {
return <div className={classNames('header')} />;
Expand Down Expand Up @@ -47,7 +45,6 @@ const Header = observer(() => {
const { client } = useStore();
const { accounts, has_wallet, is_logged_in, setAccounts, loginid, switchAccount } = client;
const { pathname } = useLocation();
const { isMobile } = useDevice();

const is_wallets_cashier_route = pathname.includes(routes.wallets);

Expand All @@ -63,20 +60,6 @@ const Header = observer(() => {
is_wallets_cashier_route;

const client_accounts = useReadLocalStorage('client.accounts');
const { is_dtrader_v2_enabled } = useFeatureFlags();
const [dtrader_v2_enabled_gb] = useGrowthbookGetFeatureValue({
featureFlag: 'dtrader_v2_enabled',
defaultValue: false,
});
const [dtrader_v2_enabled, setDTraderV2Enabled] = React.useState();
React.useEffect(() => {
if (dtrader_v2_enabled_gb !== undefined)
setDTraderV2Enabled(
(is_dtrader_v2_enabled || (Boolean(dtrader_v2_enabled_gb) && isDTraderV2Width())) &&
(location.pathname.startsWith(routes.trade) || location.pathname.startsWith('/contract/'))
);
}, [dtrader_v2_enabled_gb, is_dtrader_v2_enabled]);

React.useEffect(() => {
if (has_wallet && is_logged_in) {
const accounts_keys = Object.keys(accounts ?? {});
Expand All @@ -95,11 +78,6 @@ const Header = observer(() => {
case pathname === routes.onboarding:
result = null;
break;
case dtrader_v2_enabled &&
isMobile &&
pathname.startsWith('/contract/') === routes.contract.startsWith('/contract/'):
result = <DTraderContractDetailsHeader />;
break;
case traders_hub_routes:
result = has_wallet ? <TradersHubHeaderWallets /> : <TradersHubHeader />;
break;
Expand Down
5 changes: 3 additions & 2 deletions packages/shared/src/utils/helpers/dtrader-v2-helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ export const isDTraderV2 = () => {
const dtrader_v2_enabled_gb = Analytics?.getFeatureValue('dtrader_v2_enabled', false);

return (
(!!JSON.parse(localStorage.getItem('FeatureFlagsStore') ?? '{}')?.data?.dtrader_v2 || dtrader_v2_enabled_gb) &&
isDTraderV2Width()
Boolean(
!!JSON.parse(localStorage.getItem('FeatureFlagsStore') ?? '{}')?.data?.dtrader_v2 || dtrader_v2_enabled_gb
) && isDTraderV2Width()
);
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import { BrowserRouter, useHistory, useLocation } from 'react-router-dom';
import DTraderContractDetailsHeader from '../dtrader-v2-contract-detail-header';
import ContractDetailsHeader from '../contract-details-header';
import userEvent from '@testing-library/user-event';
import { StoreProvider, mockStore } from '@deriv/stores';

Expand All @@ -19,7 +19,7 @@ jest.mock('react-router-dom', () => ({
}),
}));

describe('DTraderV2Header', () => {
describe('ContractDetailsHeader', () => {
const mock_store = mockStore({
contract_replay: {
onClickCancel: jest.fn(),
Expand All @@ -34,7 +34,7 @@ describe('DTraderV2Header', () => {
render(
<StoreProvider store={mock_store}>
<BrowserRouter>
<DTraderContractDetailsHeader />
<ContractDetailsHeader />
</BrowserRouter>
</StoreProvider>
);
Expand All @@ -48,7 +48,7 @@ describe('DTraderV2Header', () => {
render(
<StoreProvider store={mock_store}>
<BrowserRouter>
<DTraderContractDetailsHeader />
<ContractDetailsHeader />
</BrowserRouter>
</StoreProvider>
);
Expand All @@ -70,7 +70,7 @@ describe('DTraderV2Header', () => {
render(
<StoreProvider store={mock_store}>
<BrowserRouter>
<DTraderContractDetailsHeader />
<ContractDetailsHeader />
</BrowserRouter>
</StoreProvider>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { Localize } from '@deriv/translations';
import { useHistory, useLocation } from 'react-router-dom';
import { isEmptyObject } from '@deriv/shared';

const DTraderContractDetailsHeader = observer(() => {
const ContractDetailsHeader = observer(() => {
const { state } = useLocation();
const history = useHistory();
const { common } = useStore();
Expand Down Expand Up @@ -37,4 +37,4 @@ const DTraderContractDetailsHeader = observer(() => {
);
});

export default DTraderContractDetailsHeader;
export default ContractDetailsHeader;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import ContractDetailsHeader from './contract-details-header';

export default ContractDetailsHeader;
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import classNames from 'classnames';
import ContractDetailsFooter from 'AppV2/Components/ContractDetailsFooter';
import { ContractCard } from 'AppV2/Components/ContractCard';
import ForwardStartingBanner from 'AppV2/Components/ForwardStartingBanner';
import ContractDetailsHeader from 'AppV2/Components/ContractDetailsHeader';

const ContractDetails = observer(() => {
const { contract_info, is_loading } = useContractDetails();
Expand Down Expand Up @@ -78,6 +79,7 @@ const ContractDetails = observer(() => {
}
return (
<>
<ContractDetailsHeader />
<div
className={classNames('contract-details', {
'contract-details--two-buttons': shouldShowSell && showCancelButton,
Expand Down

0 comments on commit f0152c6

Please sign in to comment.