Skip to content

Commit

Permalink
Maryia/Kate/DTRA-19/task-add-turbos (binary-com#7514)
Browse files Browse the repository at this point in the history
* feat: connect turbos contracts_for & take barrier_choices

* chore: add barrier count to turbos config

* chore: connected proposal API + added Stake header + updated purchase button (#75)

* Kate/87485/add Turbos to the Trade types list (#74)

* feat: add turbos to trade types

* feat: add icon for description

* refactor: separate trade types description, change svg and make info icons being visible for mob

* fix: replace icons name to proper define

* fix: correct spelling for turbos icon

* Kate/87510/add existing Take Profit component to Turbos Trade params (#77)

* refactor: add existing take profit component for turbos

* refactor: unite condition for riskmanagmentinfo component for multiplier and turbos

* fix: maryia/hide info from purchase button correctly

* hamza/ feat: Barrier Line Colors depend upon the contract type (#80)

* feat: Barrier Line Colors depend upon the contract type

* chore: Reafctor Barrier Line Colors depend upon the contract type v1.2

* chore: Reafctor Barrier Line Colors depend upon the contract type v1.3

* hamza/dynamic Turbos purchase button with icons (#79)

* feat: Dynamics Buttons Desktop + Responsive

* chore: refactor the code

* chore: refactor chnages v1.2

* chore: refactor css

* chore: refactor css v1.3

* chore: removed the function and moved to helpers

* chore: removed the function and moved to helpers v1.1

* chore: removed the function and moved to helpers renamed v1.2

* Kate/87536/add existing Duration & Amount(Stake) components to Turbos Trade params (#78)

* feat: create turbos info componenet, based on existing multiplier component

* refactor: add duration and stake for turbos mobile based on existing component

* refactor: unite two similar text components in one function, correct spelling in store

* refactor: remove fuction from component and make it pure, change px to rem in styles

* refactor: turn function into component and clean up props values

* refactor: add todo comment

* hamza/88083/To Adjust the purchase button styles including animation (#83)

* chore: style changes v1.0

* fix: styling animation

* fix: button styling responsive

* fix: button styling responsive v1.3

* Kate/87506/To implement Turbos Contract card in Recent Positions drawer and Contract Details (#82)

* feat: add proper type name for turbos in recent positions

* refactor: extend getcontracttypedisplay function, do decomposing

* refactor: config files for recent positions card

* feat: add recent position card for desktop and plug in min and max stake

* feat: add card for recent positions for mobile

* fix: delete extra properties

* refactor: add react fragment and shrink arrow function

* fix: spelling in trade type

* feat: add turbos contract card for contract details page for desktop

* feat: add turbos card for details page mobile

* refactor: replace wrong contracts type to turbos

* refactor: add nested styles, rename variables

* refactor: shrink styles for contract card

* fix: status timer style

* refactor: cleared classname

* fix: change px to rem

* Hamza / 87508/feat:To add Turbos to Open Positions page [Desktop & Responsive] (#85)

* feat: desktop view added in reports open positions

* chore: desktop view tweaks v1.1

* chore: open positions v1.3

* chore: Mobile Css v1.4

* fix: mobile responsive v1.5

* chore: open positions turbos and multipliers v1.6

* chore: open positions turbos and multipliers commented code v1.7

* refactor: UI Changes as per Figma and refactor Css

* fix: Recent Positions and refactor Css v1.8

* fix: Recent Positions and refactor Css v1.9

* fix: Recent Positions and refactor Css v1.10

* fix: Recent Positions and refactor Css v1.11

* Kate/87395/add turbos barriers component (#87)

* feat: init barriers components file

* feat: add BrriersTable component with base styles

* refactor: config files, fix css for card details and add toggle func for new comp

* feat: add state for condition of rendering barrierstable component, add animation

* feat: implement function for setting new barrier value

* feat: add new component for list and list-item, refactor css and store function

* feat: add new observable and set func to the store for hover value, add scroll comp

* refactor: rename barriers component, restructured it, change type of mouse events, delete utilit

* refactor: exclude extra component renders

* feat: add collapsed barriers

* refactor: rename params and remove a helper function to a separate file

* chore: empty commit to triger tests

* refactor: incapsulate logic of event handlers inside barriers-list component, replace input comp

* refactor: change the structure of header_tooltip_text

* refactor: replace header_tooltip_text with Localize component

* refactor: change the structure of event handlers

* refactor: delete extra class for hover

* refactor: delete event handler

* Kate/87397/[Responsive]: To add Collapsed Turbos barriers in Trade params (#91)

* feat: add barrier collapsed for mobile, refactor css for trade type info card

* fix: forgot call function

* refactor: change style of payout per point in mobile acc to design

* Hamza/ 88943 /feat: add Long & Short Tabs to trade params for desktop  (#90)

* feat: trade params turbos desktop v1.0

* feat: trade params turbos desktop v1.1

* feat: trade params turbos desktop tabs working v1.2

* fix: turbos short long tabs

* fix: turbos short long tabs v1.4

* fix: turbos short long tabs v1.5

* fix: turbos short long tabs v1.6

* fix: turbos short long tabs v1.7

* fix: turbos short long tabs v1.8

* fix: turbos short long v1.9

* fix: turbos short long v1.10

* Kate/87400/add Expanded view for Turbos Barriers opening in a MobileDialog to Trade params (#93)

* feat: add barriers expanded version for mobile

* refactor: disabled btn if the selected barrier is the same

* refactor: change scss selector and cover tooltip into div

* refactor: cover header mobile in order to simplify css style

* refactor: delete state for button and chnge styles for dark mode

* refactor: increase the usage of text component

* refactor: replace the rest of the text by Text component

* refactor: add ternal operator

* refactor: change the structure of barrier list and replace li with text

* refactor: unite trade type info description for turbos

* refactor: delete extra brakets

Co-authored-by: Maryia <103177211+maryia-deriv@users.noreply.github.com>

---------

Co-authored-by: Maryia <103177211+maryia-deriv@users.noreply.github.com>

* Hamza/89706/test cases of new features (#96)

* feat: trade type tabs test case added

* feat: trade type tabs test case added v1.2

* feat: trade type tabs test case added v1.2.1

* feat: trade type tabs test case added v1.3

* feat: trade type tabs test case added v1.4

* feat: trade type tabs test case added v1.4.1

* feat: trade type tabs test case added v1.5

* feat: trade type tabs test case added v1.5.1

* feat: trade type tabs test case added v1.6

* feat: trade type tabs test case added v1.7

* feat: trade type tabs test case added v1.8

* fix: component test fix

* fix: jest mock function removed

* fix: string literals

* Hamza/87396/feat: responsive trade type tabs (#98)

* feat: responsive trade type tabs v1.0

* feat: responsive trade type tabs v1.1

* feat: responsive trade type tabs v1.2

* feat: responsive trade type tabs v1.3

* feat: responsive trade type tabs v1.4

* refactor: tradetypetabs integration into barrier selector

* refactor: tradetypetabs integration into barrier selector v1.2

* Apply suggestions from code review

---------

Co-authored-by: Maryia <103177211+maryia-deriv@users.noreply.github.com>

* Kate/89669/tests for turbos (#97)

* refactor: add tests for new components

* refactor: add tests for new components

* chore: correct spelling

* refactor: remove duplicated classnames into a sep constant

* refactor: delete extra test-id, which were in the comp by default

* refactor: remove has_stop_loss from mock_props

* refactor: add has_stop_loss to mock_props

* refactor: implemented suggestions

* refactor: delete extra backticks

* refactor: add more tests and delete extra property

* fix: change style for turbos contract card (#100)

* refactor: maryia/refactored TurbosInfo, tests & OpenPositions

* Kate/90808/90829/ To migrate turbos-card-body, turbos-trade-description, barrier-selector and barrier-list to TS together with their tests  (#102)

* refactor: ts migration of new components for turbos with tests

* refactor: migrate BarrierSelector to TS, update tests

* refactor: translate TurbosCardBody to TS

* refactor: translate TurbosCardBody tests

* refactor: deal with ts errors in logic.ts

* refactor: update packege json for trader by adding more test dependen

* refactor: migrate turbos-card-body test to ts

* refactor: delete extra pass of properties in test TurbosCardBody

* refactor: migrate barrier-utils and add test

* refactor: delete extra portals in test

* refactor: delete extra type

* refactor: translate tradeTypeTabs to ts with tests and apply recent design changes

* Update packages/trader/src/Modules/Trading/Components/Form/TradeParams/Turbos/barrier-selector.tsx

---------

Co-authored-by: Maryia <103177211+maryia-deriv@users.noreply.github.com>

* Kate/90812/To migrate turbos-info and payout-per-point to TS together with their tests + add tests for payout-per-point (#104)

* refactor: migrate to TS PayoutPerPoint and TurbosInfo with tests

* Update packages/trader/src/Modules/Trading/Components/Elements/Turbos/payout-per-point.tsx

* Apply suggestions from code review

Co-authored-by: Matin shafiei <matin@binary.com>

---------

Co-authored-by: Maryia <103177211+maryia-deriv@users.noreply.github.com>
Co-authored-by: Matin shafiei <matin@binary.com>

* refactor: update function for turbos cards filtration (#105)

* chore: vanilla+turbos adjustment

* chore: integrate turbos into options in open positions

* chore: maryia/design adjustments

* Kate/87523/Make barriers and payout per point collapsible in responsive (#106)

* feat: make barriers and payout collapsible

* refactor: change getTurbosSubtype function and add cards filtration for mobile

* refactor: lift up the mobile chart for turbos

* feat: add more details in tooltip

* refactor: shrink getTurbosSubtype function

* feat: update charts version

* chore: add package lock file

* fix: add flags for vanillas

* Kate/91508/To finalize Payout per point component and its tooltip (#110)

* refactor: expand getContractSubtype function

* refactor: delete round for turbos payout per point

* fix: change test case

* refactor: replace base tags with text tag and add duration text function (#111)

* Kate/91602/Display Long and Short open contracts in DTrader chart simultaneously (#112)

* feat: show both long and short recent contracts on chart

* refactor: add short and long options for barrier in store in order to display correct val

* Apply suggestions from code review

---------

Co-authored-by: Maryia <103177211+maryia-deriv@users.noreply.github.com>

* refactor: maryia/rounding payout per point + refactoring

* Kate/91815/Final checks and adjustments (#113)

* refactor: delete decimals for payout per point in Turbos

* refactor: minor changes and add arrow in payout per point

* fix: add arrow for mobile payout per point turbos

* refactor: add longcode as info in contract details for vanillas

* chore: change btn name

* refactor: reused MinMaxStakeInfo & PayoutPerPointMobile for vanillas and turbos + improvements

* Kate/91999/Technical debt: To reuse Vanillas & Turbos common UI elements (#114)

* refactor: apply trade type tabs to vanilla

* refactor: apply barriers list for vanilla

* refactor: remove bode list to a separate components

* chore: small changes according to pr suggestions

* fix: return undefind for amount and fieldset

* Apply suggestions from code review

---------

Co-authored-by: Maryia <103177211+maryia-deriv@users.noreply.github.com>

* refactor: barriers-list and its body & trade-type-tabs

* refactor: address review comments

* refactor: address review comments

* refactor: remove getTurbosDurationText

* refactor: old getDurationUnitText to reduce cognitive complexity

* fix: address review comments

* fix: conditional rendering of total profit/loss

* fix: replace time and add comment (#116)

* Kate/refactor after last review (#117)

* refactor: delete extra filed in object

* refactor: add storeProvider and mockStore for tests

* chore: optimise code size

* fix: bug with contract info slider

* fix: bug with contract info and refactor widget component

* chore: rename constant for tests

* refactor: add T prefix

* chore: remove extra const

* fix: filter turbos cards in responsive & reports popover text

* refactor: address review comments

* refactor: TurbosTradeDescription content

* Merge branch master of github.com:binary-com/deriv-app into maryia/87354/task-add-turbos

* chore: caching barrier choices and selected barrier for turbos

* fix: add response check (#118)

* Kate/92888/turbos content update (#119)

* refactor: update content for contract type and payout per point

* chore: update text in contract type info test

* Kate/93137/Profit value is not displayed right in the contract details page (#120)

* fix: add profit for turbos card after contract is sold

* chore: update unit tests for turbos card body

* chore: add optional chaining for response error check

* chore: remove rounding for barrier in contract card

* refactor: change formatting for barrier in turbos card

* chore: add ternary operator for formating

* chore: remove extra sign

* refactor: make first barrier chosen by default

* refactor: delete extra optional chaning

* fix: bug with barriers in contract details (#121)

* fix: maryia/93143/chart markers count in contract details + refactoring

* revert: unnecessary change to chart markers count for turbos

* Kate/93403/Payout per point is not displayed in contract detail page (#122)

* feat: add payout per point for turbos contract details

* fix: replace reg exp for turbos and vanillas

* refactor: minor refactoring

* revert: no longer needed changes in useStore.tsx

* Kate/93332/CD: [Change Request] replace contract card fields by new ones (#123)

* refactor: change turbos details

* feat: add third row to contract card with new values and rewrite tests

* refactor: make total profit loss always visible for turbos card

* chore: rename classname

* fix: change style for turbos mobile (#124)

* Kate/Barrier text in the section is not aligned properly (#125)

* fix: change aligment for turbos Vanillas and Accum fieldset titles

* refactor: replace px by rem

* build: fix types

* fix: imports for new tsx files

* refactor: replace old turbo icons (#126)

* fix: types + localization + reverted Vanillas tooltip text changes

* fix: add icon for turbos long

* chore: update icon bundle

* refactor: use number of contracts instead of shortcode

* refactor: sonarcloud + tests

* fix: conflicts + address review

* refactor: as per reviews

* fix: apply gradient style to all contracts (binary-com#132)

* chore: improve types as per reviews

* chore: address reviews

* refactor: sonarcloud warnings

* build: trigger build

* refactor: rename number of contracts (binary-com#134)

* Kate / Apply suggestions from last code review (binary-com#135)

* refactor: delete duplicared file and add constants for turbos names

* refactor: apply suggestions from review

* fix: address review comments

* test: fix tests

* fix: types

* fix: sonarcloud warnings

* build: trigger checks

* fix: remove barrier shade

* fix: contract card values alignment

* fix: missing colon after Barrier

* chore: add vanilla header with timer to turbos contract card in mobile reports

* fix: sonarcloud warning

* chore: show full title only in open positions

* build: trigger build

* fix: types in open-positions

* fix: address review comments about types

* refactor: type

* build: empty commit

---------

Co-authored-by: kate-deriv <121025168+kate-deriv@users.noreply.github.com>
Co-authored-by: Muhammad Hamza <120543468+hamza-deriv@users.noreply.github.com>
Co-authored-by: Matin shafiei <matin@binary.com>
Co-authored-by: kate-deriv <kate@regentmarkets.com>
  • Loading branch information
5 people committed Aug 9, 2023
1 parent f149fe4 commit 7c36cd5
Show file tree
Hide file tree
Showing 112 changed files with 2,539 additions and 1,145 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@
.trade-container {
&__fieldset {
flex: 1;
margin-left: 0.4rem;

.dc-button-menu__wrapper {
height: 4rem;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
import React from 'react';
import ReactDOM from 'react-dom';
import { render, screen } from '@testing-library/react';
import { TContractInfo } from '@deriv/shared/src/utils/contract/contract-types';
import TurbosCardBody from '../turbos-card-body';

const contract_info: TContractInfo = {
contract_id: 1,
bid_price: 1044.02,
buy_price: 1044.0,
profit: 50,
barrier: '10904.80',
entry_spot_display_value: '1046.80',
sell_price: 1046.8,
};

const mockCardLabels = () => ({
BARRIER: 'Barrier',
CONTRACT_VALUE: 'Contract value',
ENTRY_SPOT: 'Entry spot',
TAKE_PROFIT: 'Take profit',
TOTAL_PROFIT_LOSS: 'Total profit/loss',
PURCHASE_PRICE: 'Buy price',
});

describe('TurbosCardBody', () => {
const mock_props = {
addToast: jest.fn(),
connectWithContractUpdate: jest.fn(),
contract_info,
contract_update: {
take_profit: {
display_name: 'Take profit',
order_amount: 0,
order_date: 1678948046,
},
},
currency: 'USD',
current_focus: null,
error_message_alignment: 'left',
getCardLabels: mockCardLabels,
getContractById: jest.fn(),
is_sold: false,
onMouseLeave: jest.fn(),
removeToast: jest.fn(),
setCurrentFocus: jest.fn(),
status: 'profit',
progress_slider_mobile_el: false,
};
beforeAll(() => {
(ReactDOM.createPortal as jest.Mock) = jest.fn(component => {
return component;
});
});

it('renders header and values correctly', () => {
render(<TurbosCardBody {...mock_props} />);
const buy_price_header = screen.getByText(mockCardLabels().PURCHASE_PRICE);
expect(buy_price_header).toBeInTheDocument();
const buy_price_amount = screen.getByText('1,044.00');
expect(buy_price_amount).toBeInTheDocument();

const entry_spot_header = screen.getByText(mockCardLabels().ENTRY_SPOT);
expect(entry_spot_header).toBeInTheDocument();
const entry_spot_amount = screen.getByText('1,046.80');
expect(entry_spot_amount).toBeInTheDocument();

const barrier_header = screen.getByText(mockCardLabels().BARRIER);
expect(barrier_header).toBeInTheDocument();
const barrier_level = screen.getByText('10,904.80');
expect(barrier_level).toBeInTheDocument();

const take_profit_header = screen.getByText(mockCardLabels().TAKE_PROFIT);
expect(take_profit_header).toBeInTheDocument();
const take_profit_amount = screen.getByText('-');
expect(take_profit_amount).toBeInTheDocument();

const total_profit_loss_header = screen.getByText(mockCardLabels().TOTAL_PROFIT_LOSS);
expect(total_profit_loss_header).toBeInTheDocument();
const total_profit_loss_amount = screen.getByText('50.00');
expect(total_profit_loss_amount).toBeInTheDocument();
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ import { ResultStatusIcon } from '../result-overlay/result-overlay';
import ProgressSliderMobile from '../../progress-slider-mobile';
import AccumulatorCardBody from './accumulator-card-body';
import MultiplierCardBody from './multiplier-card-body';
import TurbosCardBody from './turbos-card-body';
import VanillaOptionsCardBody from './vanilla-options-card-body';
import { TContractInfo, TContractStore } from '@deriv/shared/src/utils/contract/contract-types';
import { ContractUpdate } from '@deriv/api-types';
import { TToastConfig } from '../../types/contract.types';
import { TGetCardLables } from '../../types/common.types';

export type TGeneralContractCardBodyProps = {
addToast: (toast_config: TToastConfig) => void;
contract_info: TContractInfo;
contract_update: ContractUpdate;
contract_update: TContractInfo['contract_update'];
connectWithContractUpdate?: (contract_update_form: React.ElementType) => React.ElementType;
currency: string;
current_focus?: string;
Expand All @@ -34,16 +34,17 @@ export type TGeneralContractCardBodyProps = {
onMouseLeave: () => void;
removeToast: (toast_id: string) => void;
setCurrentFocus: (name: string) => void;
status: string;
status?: string;
toggleCancellationWarning: () => void;
progress_slider?: React.ReactNode;
is_accumulator?: boolean;
is_positions?: boolean;
};

export type TContractCardBodyProps = {
is_accumulator?: boolean;
is_multiplier: boolean;
server_time: moment.Moment;
is_turbos?: boolean;
is_vanilla?: boolean;
} & TGeneralContractCardBodyProps;

Expand All @@ -63,6 +64,7 @@ const ContractCardBody = ({
is_multiplier,
is_positions,
is_sold,
is_turbos,
is_vanilla,
onMouseLeave,
removeToast,
Expand Down Expand Up @@ -90,51 +92,61 @@ const ContractCardBody = ({
/>
);

const toggle_card_dialog_props = {
addToast,
connectWithContractUpdate,
current_focus,
error_message_alignment,
getContractById,
onMouseLeave,
removeToast,
setCurrentFocus,
};

let card_body;

if (is_multiplier) {
card_body = (
<MultiplierCardBody
addToast={addToast}
connectWithContractUpdate={connectWithContractUpdate}
contract_info={contract_info}
contract_update={contract_update}
currency={currency}
current_focus={current_focus}
error_message_alignment={error_message_alignment}
getCardLabels={getCardLabels}
getContractById={getContractById}
has_progress_slider={has_progress_slider}
progress_slider={progress_slider_mobile_el}
is_mobile={is_mobile}
is_sold={is_sold}
onMouseLeave={onMouseLeave}
status={status}
removeToast={removeToast}
setCurrentFocus={setCurrentFocus}
should_show_cancellation_warning={should_show_cancellation_warning}
toggleCancellationWarning={toggleCancellationWarning}
{...toggle_card_dialog_props}
/>
);
} else if (is_accumulator) {
card_body = (
<AccumulatorCardBody
addToast={addToast}
connectWithContractUpdate={connectWithContractUpdate}
contract_info={contract_info}
contract_update={contract_update}
currency={currency}
current_focus={current_focus}
error_message_alignment={error_message_alignment}
getCardLabels={getCardLabels}
getContractById={getContractById}
indicative={indicative}
is_sold={is_sold}
onMouseLeave={onMouseLeave}
status={status}
removeToast={removeToast}
setCurrentFocus={setCurrentFocus}
is_positions={is_positions}
{...toggle_card_dialog_props}
/>
);
} else if (is_turbos) {
card_body = (
<TurbosCardBody
contract_info={contract_info}
contract_update={contract_update}
currency={currency}
getCardLabels={getCardLabels}
is_sold={is_sold}
status={status}
progress_slider_mobile_el={progress_slider_mobile_el}
{...toggle_card_dialog_props}
/>
);
} else if (is_vanilla) {
Expand Down Expand Up @@ -209,7 +221,7 @@ const ContractCardBody = ({
<MobileWrapper>
<div
className={classNames('dc-contract-card__separatorclass', {
'dc-contract-card__body-wrapper': !is_multiplier,
'dc-contract-card__body-wrapper': !is_multiplier && !is_turbos,
})}
>
{card_body}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export type TCardFooterPropTypes = {
is_sell_requested: boolean;
onClickCancel: (contract_id?: number) => void;
onClickSell: (contract_id?: number) => void;
onFooterEntered: () => void;
onFooterEntered?: () => void;
server_time: moment.Moment;
should_show_transition: boolean;
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
import React from 'react';
import classNames from 'classnames';
import { CSSTransition } from 'react-transition-group';
import { localize } from '@deriv/translations';
import {
isHighLow,
getCurrentTick,
getGrowthRatePercentage,
isBot,
getContractSubtype,
isAccumulatorContract,
isBot,
isOnlyUpsDownsContract,
isMobile,
isTurbosContract,
} from '@deriv/shared';
import ContractTypeCell from './contract-type-cell';
import Button from '../../button';
Expand Down Expand Up @@ -66,28 +69,42 @@ const ContractCardHeader = ({
const is_accumulator = isAccumulatorContract(contract_type);
const is_only_ups_downs = isOnlyUpsDownsContract(contract_type);
const is_mobile = isMobile();
const contract_type_list_info = [
{
is_param_displayed: multiplier,
displayed_param: `x${multiplier}`,
},
{
is_param_displayed: is_accumulator,
displayed_param: `${getGrowthRatePercentage(growth_rate || 0)}%`,
},
];
const is_turbos = isTurbosContract(contract_type);

const contract_type_list_info = React.useMemo(
() => [
{
is_param_displayed: multiplier,
displayed_param: `x${multiplier}`,
},
{
is_param_displayed: is_accumulator,
displayed_param: `${getGrowthRatePercentage(growth_rate || 0)}%`,
},
{
is_param_displayed: is_turbos,
displayed_param:
getContractSubtype(contract_type || '') === 'Long' ? localize('Long') : localize('Short'),
},
],
[multiplier, growth_rate, is_accumulator, is_turbos, contract_type]
);

const displayed_trade_param =
contract_type_list_info.find(contract_type_item_info => contract_type_item_info.is_param_displayed)
?.displayed_param || '';

return (
<>
<React.Fragment>
<div
className={classNames('dc-contract-card__grid', 'dc-contract-card__grid-underlying-trade', {
'dc-contract-card__grid-underlying-trade--mobile': is_mobile && !multiplier && !is_accumulator,
'dc-contract-card__grid-underlying-trade--mobile':
is_mobile && !multiplier && !is_accumulator && !is_turbos,
'dc-contract-card__grid-underlying-trade--trader': !is_pathname_bot,
'dc-contract-card__grid-underlying-trade--trader--accumulator': !is_mobile && is_accumulator,
'dc-contract-card__grid-underlying-trade--trader--accumulator-sold': is_accumulator && is_sold,
[`dc-contract-card__grid-underlying-trade--trader--${
is_accumulator ? 'accumulator' : 'turbos'
}-sold`]: (is_accumulator || is_turbos) && is_sold,
})}
>
<div
Expand Down Expand Up @@ -176,7 +193,7 @@ const ContractCardHeader = ({
/>
)}
</DesktopWrapper>
</>
</React.Fragment>
);
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ export type TContractCardSellProps = {
contract_info: TContractInfo;
getCardLabels: TGetCardLables;
is_sell_requested: boolean;
onClickSell: (contract_id?: number) => void;
onClickSell?: (contract_id?: number) => void;
};

const ContractCardSell = ({ contract_info, getCardLabels, is_sell_requested, onClickSell }: TContractCardSellProps) => {
const is_valid_to_sell = isValidToSell(contract_info);
const should_show_sell = hasContractEntered(contract_info) && isOpen(contract_info);

const onClick = (ev: React.MouseEvent<HTMLButtonElement>) => {
onClickSell(contract_info.contract_id);
onClickSell?.(contract_info.contract_id);
ev.stopPropagation();
ev.preventDefault();
};
Expand Down
Loading

0 comments on commit 7c36cd5

Please sign in to comment.