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

Kate / DTRA-269 / [Package 2] Tech debt TS + refactoring of Trader package #9284

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
1de859f
fix: ts-migrate screen small
henry-deriv Jul 6, 2023
28a3538
fix: sass was unable to be found
henry-deriv Jul 6, 2023
49e9d7a
chore: add key files from prev branch
kate-deriv Jul 7, 2023
37ed414
Merge branch 'master' into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Jul 7, 2023
8c1c8b5
fix: merge feature branch
henry-deriv Jul 7, 2023
77528de
chore: empty commit
kate-deriv Jul 7, 2023
d4a4ddf
Merge branch 'master' into kate/dtra-269/ts_migration_trader_package_2
akmal-deriv Jul 10, 2023
4b92603
Merge pull request #15 from henry-deriv/henry/dtra-271/ts-migration-s…
akmal-deriv Jul 10, 2023
d4bd1f7
Maryia/dtra-279/TS migration [Trader]: TradeModals, MarketUnavailable…
maryia-deriv Jul 10, 2023
1a3a8ca
maryia/WEBREL-323/feat: ts migration of base-store (#18)
maryia-deriv Jul 25, 2023
fd8882c
Maryia/webrel-483/TS migration of ContractType function (#17)
maryia-deriv Jul 25, 2023
ee7b167
Merge branch master into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Jul 25, 2023
7d655a3
fix: sonarcloud issues (#19)
maryia-deriv Jul 25, 2023
94af4d5
Merge branch 'master' into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Jul 25, 2023
4749d20
chore: update reg exp
kate-deriv Jul 25, 2023
756b998
chore: remove code smell
kate-deriv Jul 25, 2023
2ae1c3e
chore: remove security hotspot
kate-deriv Jul 25, 2023
c6dee71
chore: update reg exp
kate-deriv Jul 26, 2023
cbee742
chore: update reg exp to prev version
kate-deriv Jul 26, 2023
119af73
Merge branch master into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Aug 3, 2023
548c578
Merge branch master into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Aug 7, 2023
e82b1a2
fix: conflicts
kate-deriv Aug 9, 2023
53eb24c
fix: conflict
kate-deriv Aug 9, 2023
0de9447
fix: conflicts
kate-deriv Aug 10, 2023
ffe7635
Merge branch 'master' into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Aug 10, 2023
19c60d4
Merge branch 'master' of github.com:binary-com/deriv-app into kate/dt…
kate-deriv Aug 10, 2023
3b77a42
fix: ts error
kate-deriv Aug 10, 2023
8debc85
refactor: apply suggestions
kate-deriv Aug 11, 2023
7f91274
Merge branch master into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Sep 7, 2023
815d62f
fix: resolve more conflicts
kate-deriv Sep 7, 2023
ee24dc1
Merge branch 'master' into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Sep 7, 2023
de27282
fix: conflicts in start date
kate-deriv Sep 7, 2023
2e1f82f
fix: type of onchangestartdate
kate-deriv Sep 7, 2023
d451cf5
fix: type of contract cat list in usetraderstore
kate-deriv Sep 7, 2023
b7dc70b
fix: types in contract type and allow equals
kate-deriv Sep 7, 2023
c0ccbac
Merge branch 'master' into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Sep 7, 2023
9ba8ef6
refactor: aplly part of suggestions
kate-deriv Sep 8, 2023
9b7bafc
refactor: remove unused type
kate-deriv Sep 8, 2023
9d24ce4
refactor: remove wrong types
kate-deriv Sep 8, 2023
5b65cde
refactor: types of time
kate-deriv Sep 8, 2023
4ea9d24
refactor: revert changes
kate-deriv Sep 9, 2023
ec5a35b
Merge branch master into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Sep 21, 2023
178abea
chore: empty commit
kate-deriv Sep 21, 2023
07d9e09
Merge branch 'master' into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Sep 21, 2023
1598c02
Merge branch 'master' into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Sep 21, 2023
804859a
Merge branch master into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Sep 26, 2023
c2f05f5
Merge branch 'master' into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Sep 26, 2023
881750e
fix: more conflicts
kate-deriv Sep 26, 2023
9dbd926
Merge branch master into kate/dtra-269/ts_migration_trader_package_2
kate-deriv Sep 26, 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
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import { useSwipeable } from 'react-swipeable';
import ArrowButton from './arrow-button';

type TCollapsible = {
as: React.ElementType;
as?: React.ElementType;
is_collapsed?: boolean;
position?: 'top' | 'bottom';
onClick: (state: boolean) => void;
title: string;
title?: string;
};

const swipe_config = {
Expand Down
2 changes: 1 addition & 1 deletion packages/components/src/components/dialog/dialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ const Dialog = ({
}
};

const validateClickOutside = () => dismissable || !!(has_close_icon && is_visible && is_closed_on_cancel);
const validateClickOutside = () => !!(dismissable || (has_close_icon && is_visible && is_closed_on_cancel));

useOnClickOutside(wrapper_ref, handleClose, validateClickOutside);

Expand Down
6 changes: 4 additions & 2 deletions packages/shared/src/utils/helpers/__tests__/start-date.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { ContractsFor } from '@deriv/api-types';
import { buildForwardStartingConfig } from '../start-date';

describe('start_date', () => {
describe('buildForwardStartingConfig', () => {
it('Returns empty object when forward_starting_options and forward_starting_dates are both empties', () => {
const contract = {
const contract: ContractsFor['available'][number] = {
barrier_category: 'euro_atm',
barriers: 0,
contract_category: 'callput',
Expand All @@ -19,7 +20,8 @@ describe('start_date', () => {
start_type: 'spot',
submarket: 'major_pairs',
underlying_symbol: 'frxAUDJPY',
forward_starting_options: [],
forward_starting_options:
[] as unknown as ContractsFor['available'][number]['forward_starting_options'],
jim-deriv marked this conversation as resolved.
Show resolved Hide resolved
};
/* eslint-disable no-unused-expressions */
expect(buildForwardStartingConfig(contract, [])).toHaveLength(0);
Expand Down
23 changes: 8 additions & 15 deletions packages/shared/src/utils/helpers/start-date.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,6 @@
import moment from 'moment';
import { toMoment } from '../date';

type TForwardStartingDates = {
blackouts?: unknown[];
close?: string;
date: string;
open?: string;
};

type TContract = {
forward_starting_options: TForwardStartingDates[];
};
import { ContractsFor } from '@deriv/api-types';

type TConfig = {
text: string;
Expand All @@ -21,19 +11,22 @@ type TConfig = {
}[];
}[];

export const buildForwardStartingConfig = (contract: TContract, forward_starting_dates: TForwardStartingDates[]) => {
export const buildForwardStartingConfig = (
contract: ContractsFor['available'][number],
forward_starting_dates?: TConfig
) => {
const forward_starting_config: TConfig = [];

if ((contract.forward_starting_options || []).length) {
contract.forward_starting_options.forEach(option => {
const duplicated_option = forward_starting_config.find(opt => opt.value === parseInt(option.date));
(contract.forward_starting_options ?? []).forEach(option => {
const duplicated_option = forward_starting_config.find(opt => opt.value === parseInt(option.date ?? ''));
const current_session = { open: toMoment(option.open), close: toMoment(option.close) };
if (duplicated_option) {
duplicated_option.sessions.push(current_session);
} else {
forward_starting_config.push({
text: toMoment(option.date).format('ddd - DD MMM, YYYY'),
value: parseInt(option.date),
value: parseInt(option.date ?? ''),
sessions: [current_session],
});
}
Expand Down
6 changes: 5 additions & 1 deletion packages/stores/src/mockStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -328,9 +328,9 @@ const mock = (): TStores & { is_mock: boolean } => {
setPurchaseState: jest.fn(),
shouldNavigateAfterChooseCrypto: jest.fn(),
toggleLanguageSettingsModal: jest.fn(),
toggleServicesErrorModal: jest.fn(),
toggleLinkExpiredModal: jest.fn(),
toggleSetCurrencyModal: jest.fn(),
toggleServicesErrorModal: jest.fn(),
addToast: jest.fn(),
removeToast: jest.fn(),
reports_route_tab_index: 1,
Expand Down Expand Up @@ -513,6 +513,10 @@ const mock = (): TStores & { is_mock: boolean } => {
eventHandler: jest.fn(),
setLoginFlag: jest.fn(),
},
pushwoosh: {},
contract_replay: {},
chart_barrier_store: {},
active_symbols: {},
};
};

Expand Down
11 changes: 10 additions & 1 deletion packages/stores/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,11 @@ type TCommonStoreError = {
should_show_refresh: boolean;
type?: string;
};
type TCommonStoreServicesError = {
code?: string;
message?: string;
type?: string;
};

type TCommonStore = {
isCurrentLanguage(language_code: string): boolean;
Expand All @@ -438,8 +443,8 @@ type TCommonStore = {
changeSelectedLanguage: (key: string) => void;
current_language: string;
is_language_changing: boolean;
services_error: TCommonStoreServicesError;
is_socket_opened: boolean;
services_error: { code: string; message: string; type: string } | Record<string, never>;
setAppstorePlatform: (value: string) => void;
app_routing_history: TAppRoutingHistory[];
getExchangeRate: (from_currency: string, to_currency: string) => Promise<number>;
Expand Down Expand Up @@ -734,6 +739,10 @@ export type TCoreStores = {
notifications: TNotificationStore;
traders_hub: TTradersHubStore;
gtm: TGtmStore;
pushwoosh: Record<string, unknown>;
contract_replay: Record<string, unknown>;
chart_barrier_store: Record<string, unknown>;
active_symbols: Record<string, unknown>;
};

export type TStores = TCoreStores & {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import MarketUnavailableModal from './market-unavailable';

export default MarketUnavailableModal;
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
import PropTypes from 'prop-types';
import React from 'react';
import { Dialog } from '@deriv/components';
import { getPlatformSettings } from '@deriv/shared';
import { localize, Localize } from '@deriv/translations';
import { observer, useStore } from '@deriv/stores';

const MarketUnavailableModal = observer(({ onCancel, onConfirm }) => {
type TMarketUnavailableModalProps = {
is_loading?: boolean;
onCancel: () => void;
onConfirm: () => void;
};

const MarketUnavailableModal = observer(({ is_loading, onCancel, onConfirm }: TMarketUnavailableModalProps) => {
const { ui } = useStore();
const { disableApp, enableApp, is_loading, has_only_forward_starting_contracts: is_visible } = ui;
const { disableApp, enableApp, has_only_forward_starting_contracts: is_visible } = ui;

return (
<Dialog
Expand Down Expand Up @@ -38,9 +43,4 @@ const MarketUnavailableModal = observer(({ onCancel, onConfirm }) => {
);
});

MarketUnavailableModal.propTypes = {
onCancel: PropTypes.func,
onConfirm: PropTypes.func,
};

export default MarketUnavailableModal;
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { localize } from '@deriv/translations';

export const getTitle = (type: string) => {
export const getTitle = (type?: string) => {
switch (type) {
case 'buy':
return localize('Purchase Error');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import CompanyWideLimitExceededModal from './company-wide-limit-exceeded-modal';
import AccountVerificationRequiredModal from './account-verification-required-modal';

type TServicesError = {
code: string;
message: string;
type: string;
code?: string;
message?: string;
type?: string;
};

type TPropServicesErrorModel = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import UnsupportedContractModal from './unsupported-contract-modal.jsx';
import UnsupportedContractModal from './unsupported-contract-modal';

export default UnsupportedContractModal;

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import React from 'react';
import { Dialog } from '@deriv/components';
import { localize, Localize } from '@deriv/translations';
import { website_name } from '@deriv/shared';
import { observer, useStore } from '@deriv/stores';

type TUnsupportedContractModalProps = {
is_loading?: boolean;
is_visible?: boolean;
onClose: () => void;
onConfirm: () => void;
};

const UnsupportedContractModal = observer(
({ is_loading, is_visible: is_modal_visible, onConfirm, onClose }: TUnsupportedContractModalProps) => {
const { ui } = useStore();
const { disableApp, enableApp, is_unsupported_contract_modal_visible } = ui;
const is_visible = !!(is_unsupported_contract_modal_visible || is_modal_visible);

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>
);
}
);

export default UnsupportedContractModal;
3 changes: 0 additions & 3 deletions packages/trader/src/App/Containers/Modals/index.js

This file was deleted.

3 changes: 3 additions & 0 deletions packages/trader/src/App/Containers/Modals/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import TradeModals from './trade-modals';

export default TradeModals;
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ const TradeModals = observer(() => {
const unsupportedContractOnClose = () => {
const portfoliows_url = urlFor('user/portfoliows', { legacy: true });
window.open(portfoliows_url, '_blank');
unsupportedContractOnConfirm(false);
unsupportedContractOnConfirm();
};

return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ type TPurchaseFieldset = {
is_disabled: boolean;
is_high_low: boolean;
is_loading: boolean;
is_market_closed: boolean;
is_market_closed?: boolean;
is_multiplier: boolean;
is_proposal_empty: boolean;
is_proposal_error: boolean;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { observer, useStore } from '@deriv/stores';
import { useTraderStore } from 'Stores/useTraderStores';

type TAccumulatorsAmountMobile = {
is_nativepicker: boolean;
is_nativepicker?: boolean;
};

const AccumulatorsAmountMobile = observer(({ is_nativepicker }: TAccumulatorsAmountMobile) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ type TFormLayout = {
const Screen = Loadable({
loader: () =>
isMobile()
? import(/* webpackChunkName: "screen-small" */ './screen-small.jsx')
? import(/* webpackChunkName: "screen-small" */ './screen-small')
: import(/* webpackChunkName: "screen-large" */ './screen-large'),
loading: () => null,
render(loaded, props) {
Expand Down
Loading