diff --git a/.github/workflows/generate_and_push_deriv_api_types.md b/.github/workflows/generate_and_push_deriv_api_types.md index c7691a89d81a..8a9660ce2f92 100644 --- a/.github/workflows/generate_and_push_deriv_api_types.md +++ b/.github/workflows/generate_and_push_deriv_api_types.md @@ -11,4 +11,3 @@ After a new version has been published the action will automatically create a PR Required GitHub secrets: - `NPM_ACCESS_TOKEN`: To allow for automatic publishing of new version of `@deriv/api-types` -- `PERSONAL_ACCESS_TOKEN`: (GitHub PAT) To allow the action to authenticate with Git for git operations. diff --git a/.github/workflows/generate_and_push_deriv_api_types.yml b/.github/workflows/generate_and_push_deriv_api_types.yml index 2d50ec8f1993..27b26e5484bc 100644 --- a/.github/workflows/generate_and_push_deriv_api_types.yml +++ b/.github/workflows/generate_and_push_deriv_api_types.yml @@ -109,7 +109,7 @@ jobs: # Use "gh" to create a PR from the CLI. sudo apt install gh - gh auth login --with-token <<< ${{ secrets.PERSONAL_ACCESS_TOKEN }} + gh auth login --with-token <<< ${{ github.token }} gh pr close "$package_name" || true gh pr create --title "Bump $package_name from $safe_old_version to $new_version" --body "\`\`\`diff $pr_body \`\`\`" --base "master" --head "binary-com:$package_name" fi diff --git a/.github/workflows/push_and_pull_crowdin_translations.md b/.github/workflows/push_and_pull_crowdin_translations.md index 56fff55c2b84..dbd4d6f94a42 100644 --- a/.github/workflows/push_and_pull_crowdin_translations.md +++ b/.github/workflows/push_and_pull_crowdin_translations.md @@ -5,5 +5,4 @@ This action will automatically extract strings from the Deriv.app repo and uploa Required GitHub secrets: - `NPM_ACCESS_TOKEN`: To allow for automatic publishing of new version of `@deriv/api-types` -- `PERSONAL_ACCESS_TOKEN`: (GitHub PAT) To allow the action to authenticate with Git for git operations. - `CROWDIN_API_TOKEN`: To allow us to download and upload new language files to and from Crowdin. diff --git a/jest.config.js b/jest.config.js index 746a63bfd0c5..b24c15b74fdc 100644 --- a/jest.config.js +++ b/jest.config.js @@ -8,6 +8,7 @@ module.exports = { transform: { '^.+\\.jsx?$': 'babel-jest', '^.+/es/^.+$': 'babel-jest', + '^.+\\.(ts|tsx)?$': 'ts-jest', }, testRegex: ['__tests__', '.*.spec.js'], transformIgnorePatterns: ['/node_modules/(?!react-virtualized).+\\.js$'], diff --git a/package-lock.json b/package-lock.json index b9f599a1b940..0782e4a8ec4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -203,7 +203,8 @@ "stylelint-formatter-pretty": "^2.1.1", "stylelint-no-unsupported-browser-features": "^4.0.0", "stylelint-selector-bem-pattern": "^2.1.0", - "stylelint-webpack-plugin": "^2.1.1" + "stylelint-webpack-plugin": "^2.1.1", + "ts-jest": "^26.4.2" }, "engines": { "node": "^16.16.0" @@ -17410,6 +17411,18 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", @@ -32021,6 +32034,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "node_modules/make-fetch-happen": { "version": "8.0.14", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", @@ -44444,6 +44463,61 @@ "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz", "integrity": "sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ==" }, + "node_modules/ts-jest": { + "version": "26.5.6", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.6.tgz", + "integrity": "sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^26.1.0", + "json5": "2.x", + "lodash": "4.x", + "make-error": "1.x", + "mkdirp": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "jest": ">=26 <27", + "typescript": ">=3.8 <5.0" + } + }, + "node_modules/ts-jest/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ts-pnp": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", @@ -60912,6 +60986,15 @@ "update-browserslist-db": "^1.0.5" } }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, "bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", @@ -72106,6 +72189,12 @@ "semver": "^6.0.0" } }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "make-fetch-happen": { "version": "8.0.14", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", @@ -81535,6 +81624,41 @@ "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz", "integrity": "sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ==" }, + "ts-jest": { + "version": "26.5.6", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.6.tgz", + "integrity": "sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^26.1.0", + "json5": "2.x", + "lodash": "4.x", + "make-error": "1.x", + "mkdirp": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "ts-pnp": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", diff --git a/package.json b/package.json index 780a8d1c0288..3281ebfd3b24 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "@types/react-router-dom": "^5.1.6", "@typescript-eslint/eslint-plugin": "^5.8.0", "@typescript-eslint/parser": "^5.8.0", + "ts-jest": "^26.4.2", "babel-polyfill": "^6.26.0", "chai": "^4.2.0", "eslint": "^7.18.0", diff --git a/packages/account/src/Components/poi/idv-document-submit/utils.js b/packages/account/src/Components/poi/idv-document-submit/utils.js index 9b11e8d05c78..05c619bb0c77 100644 --- a/packages/account/src/Components/poi/idv-document-submit/utils.js +++ b/packages/account/src/Components/poi/idv-document-submit/utils.js @@ -140,4 +140,11 @@ const idv_document_data = { sample_image: '', }, }, + zw: { + national_id: { + new_display_name: 'National ID', + example_format: '081234567F53', + sample_image: getImageLocation('zw_national_identity_card.png'), + }, + }, }; diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_contracttype.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_contracttype.js index f16faadceaed..5eeec35c0230 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_contracttype.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_contracttype.js @@ -16,6 +16,9 @@ Blockly.Blocks.trade_definition_contracttype = { colour: Blockly.Colours.Special1.colour, colourSecondary: Blockly.Colours.Special1.colourSecondary, colourTertiary: Blockly.Colours.Special1.colourTertiary, + tooltip: localize( + 'If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block"' + ), previousStatement: null, nextStatement: null, }); diff --git a/packages/bot-skeleton/src/scratch/hooks/css.js b/packages/bot-skeleton/src/scratch/hooks/css.js index 46223269d497..7b5ee267b38d 100644 --- a/packages/bot-skeleton/src/scratch/hooks/css.js +++ b/packages/bot-skeleton/src/scratch/hooks/css.js @@ -222,7 +222,7 @@ Blockly.Css.CONTENT = [ 'margin: 4px;', 'border-radius: 4px;', 'background: $colour_numPadBackground;', - 'color: $colour_numPadText;', + 'color: var(--text-general);', 'outline: none;', 'border: 1px solid $colour_numPadBorder;', 'cursor: pointer;', @@ -235,6 +235,7 @@ Blockly.Css.CONTENT = [ 'margin-top: 10%;', 'width: 80%;', 'height: 80%;', + 'filter: invert(1);', '}', '.blocklyNumPadButton:active {', diff --git a/packages/cashier/globals.d.ts b/packages/cashier/globals.d.ts index 25890045177a..40ebc5a15767 100644 --- a/packages/cashier/globals.d.ts +++ b/packages/cashier/globals.d.ts @@ -1,4 +1,2 @@ declare module '@deriv/components'; -declare module '@deriv/p2p'; -declare module '@deriv/translations'; declare module '@deriv/shared'; diff --git a/packages/cashier/src/components/cashier-locked/cashier-locked.tsx b/packages/cashier/src/components/cashier-locked/cashier-locked.tsx index b0470a0b650f..806231bb3603 100644 --- a/packages/cashier/src/components/cashier-locked/cashier-locked.tsx +++ b/packages/cashier/src/components/cashier-locked/cashier-locked.tsx @@ -54,7 +54,7 @@ const CashierLocked = ({ let icon = 'IcCashierLocked'; let title = localize('Cashier is locked'); - let message = localize( + let message: string | JSX.Element = localize( 'Your cashier is currently locked. Please contact us via live chat to find out how to unlock it.' ); diff --git a/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form.tsx b/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form.tsx index 1caaefbaa2e7..b80c160ec557 100644 --- a/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form.tsx +++ b/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form.tsx @@ -1,7 +1,7 @@ import classNames from 'classnames'; import React from 'react'; import { Field, FieldProps, Formik, Form } from 'formik'; -import { Button, Dropdown, Icon, Input, Loading, Money, MobileWrapper, Text } from '@deriv/components'; +import { Button, Dropdown, Icon, Input, Loading, Money, Text } from '@deriv/components'; import { getDecimalPlaces, getCurrencyDisplayCode, @@ -170,7 +170,7 @@ const AccountTransferForm = ({ }: TAccountTransferFormProps) => { const [from_accounts, setFromAccounts] = React.useState({}); const [to_accounts, setToAccounts] = React.useState({}); - const [transfer_to_hint, setTransferToHint] = React.useState(); + const [transfer_to_hint, setTransferToHint] = React.useState(); const { daily_transfers } = account_limits; const mt5_remaining_transfers = daily_transfers?.mt5; @@ -202,6 +202,10 @@ const AccountTransferForm = ({ return undefined; }; + const shouldShowTransferButton = (amount: string) => { + return selected_from.currency === selected_to.currency ? !amount : !converter_from_amount; + }; + const getAccounts = (type: string, { is_mt, is_dxtrade }: TAccount) => { if (type === 'from') { if (is_mt) return mt_accounts_from; @@ -376,7 +380,7 @@ const AccountTransferForm = ({ validateOnBlur={false} enableReinitialize > - {({ errors, handleChange, isSubmitting, touched, setFieldValue, setFieldTouched, setFieldError }) => ( + {({ errors, handleChange, isSubmitting, setFieldValue, setFieldError, values }) => ( {isSubmitting || accounts_list.length === 0 ? (
@@ -406,8 +410,7 @@ const AccountTransferForm = ({ onChangeTransferFrom(e); handleChange(e); setFieldValue('amount', ''); - setFieldError('amount', ''); - setFieldTouched('amount', false); + setTimeout(() => setFieldError('amount', '')); }} error={selected_from.error} /> @@ -429,8 +432,7 @@ const AccountTransferForm = ({ onChange={(e: TReactChangeEvent) => { onChangeTransferTo(e); setFieldValue('amount', ''); - setFieldError('amount', ''); - setFieldTouched('amount', false); + setTimeout(() => setFieldError('amount', '')); }} hint={transfer_to_hint} error={selected_to.error} @@ -445,7 +447,6 @@ const AccountTransferForm = ({ setErrorMessage(''); handleChange(e); setAccountTransferAmount(e.target.value); - setFieldTouched('amount', true, false); }} className='cashier__input dc-input--no-placeholder account-transfer-form__input' classNameHint='account-transfer-form__hint' @@ -453,7 +454,7 @@ const AccountTransferForm = ({ name='amount' type='text' label={localize('Amount')} - error={touched.amount && errors.amount ? errors.amount : ''} + error={errors.amount ? errors.amount : ''} required trailing_icon={ selected_from.currency ? ( @@ -556,7 +557,9 @@ const AccountTransferForm = ({ !!selected_to.error || !+selected_from.balance || !!converter_from_error || - !!converter_to_error + !!converter_to_error || + !!errors.amount || + shouldShowTransferButton(values.amount) } primary large diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.scss b/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.scss index 708147e3e99f..fd8d6b736337 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.scss +++ b/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.scss @@ -38,24 +38,21 @@ padding-left: 0; } } + .cashier__form-submit { + row-gap: 1rem; + } } & .cashier__form-submit { - text-align: center; + display: flex; justify-content: center; - flex-flow: row; + align-items: center; + column-gap: 0.8rem; margin: 2.4rem 0 3.2rem; &-button { margin: 0; max-width: 18rem; - - &:first-child { - margin-right: 0.4rem; - } - &:last-child { - margin-left: 0.4rem; - } } } &__transferred-contact { diff --git a/packages/cashier/src/stores/__tests__/payment-agent-store.spec.js b/packages/cashier/src/stores/__tests__/payment-agent-store.spec.js index aa72bc89164a..499788a6ade4 100644 --- a/packages/cashier/src/stores/__tests__/payment-agent-store.spec.js +++ b/packages/cashier/src/stores/__tests__/payment-agent-store.spec.js @@ -13,8 +13,8 @@ describe('PaymentAgentStore', () => { max_withdrawal: '2000', min_withdrawal: '10', email: 'pa@example.com', - telephone: '+12345678', - url: 'http://www.pa.com', + phone_numbers: [{ phone_number: '+12345678' }], + urls: [{ url: 'http://www.pa.com' }], supported_payment_methods: [{ payment_method: 'Visa' }], }, { @@ -23,8 +23,8 @@ describe('PaymentAgentStore', () => { max_withdrawal: '2000', min_withdrawal: '10', email: 'pa@example.com', - telephone: '+12345678', - url: 'http://www.pa.com', + phone_numbers: [{ phone_number: '+12345678' }], + urls: [{ url: 'http://www.pa.com' }], supported_payment_methods: [{ payment_method: 'Visa' }, { payment_method: 'Mastercard' }], }, ], @@ -32,17 +32,17 @@ describe('PaymentAgentStore', () => { const mocked_payment_agents = [ { email: 'pa@example.com', - phones: '+12345678', + phones: [{ phone_number: '+12345678' }], name: 'Payment Agent of CR90000000', supported_banks: [{ payment_method: 'Visa' }], - urls: 'http://www.pa.com', + urls: [{ url: 'http://www.pa.com' }], }, { email: 'pa@example.com', - phones: '+12345678', + phones: [{ phone_number: '+12345678' }], name: 'Payment Agent of CR90000002', supported_banks: [{ payment_method: 'Visa' }, { payment_method: 'Mastercard' }], - urls: 'http://www.pa.com', + urls: [{ url: 'http://www.pa.com' }], }, ]; const mocked_withdrawal_request = { @@ -162,10 +162,10 @@ describe('PaymentAgentStore', () => { expect.arrayContaining([ { email: 'pa@example.com', - phones: '+12345678', + phones: [{ phone_number: '+12345678' }], name: 'Payment Agent of CR90000000', supported_banks: [{ payment_method: 'Visa' }], - urls: 'http://www.pa.com', + urls: [{ url: 'http://www.pa.com' }], }, ]) ); @@ -191,10 +191,10 @@ describe('PaymentAgentStore', () => { expect.arrayContaining([ { email: 'pa@example.com', - phones: '+12345678', + phones: [{ phone_number: '+12345678' }], name: 'Payment Agent of CR90000002', supported_banks: [{ payment_method: 'Visa' }, { payment_method: 'Mastercard' }], - urls: 'http://www.pa.com', + urls: [{ url: 'http://www.pa.com' }], }, ]) ); @@ -268,8 +268,8 @@ describe('PaymentAgentStore', () => { max_withdrawal: '2000', min_withdrawal: '10', email: 'pa@example.com', - telephone: '+12345678', - url: 'http://www.pa.com', + phone_numbers: [{ phone_number: '+12345678' }], + urls: [{ url: 'http://www.pa.com' }], }; payment_agent_store.addPaymentAgent(payment_agent); @@ -281,8 +281,8 @@ describe('PaymentAgentStore', () => { max_withdrawal: '2000', min_withdrawal: '10', email: 'pa@example.com', - phone: '+12345678', - url: 'http://www.pa.com', + phone: [{ phone_number: '+12345678' }], + url: [{ url: 'http://www.pa.com' }], }, ]) ); @@ -302,8 +302,8 @@ describe('PaymentAgentStore', () => { max_withdrawal: '2000', min_withdrawal: '10', email: 'pa@example.com', - phone: '+12345678', - url: 'http://www.pa.com', + phone: [{ phone_number: '+12345678' }], + url: [{ url: 'http://www.pa.com' }], }, ]) ); @@ -384,8 +384,8 @@ describe('PaymentAgentStore', () => { payment_agent_email: 'pa@example.com', payment_agent_id: 'CR90000000', payment_agent_name: 'Payment Agent of CR90000000', - payment_agent_phone: '+12345678', - payment_agent_url: 'http://www.pa.com', + payment_agent_phone: [{ phone_number: '+12345678' }], + payment_agent_url: [{ url: 'http://www.pa.com' }], }); expect(payment_agent_store.is_withdraw_successful).toBeTruthy(); expect(payment_agent_store.is_try_withdraw_successful).toBeFalsy(); diff --git a/packages/cashier/src/stores/payment-agent-store.js b/packages/cashier/src/stores/payment-agent-store.js index 95c3acafaa48..10d512a1188e 100644 --- a/packages/cashier/src/stores/payment-agent-store.js +++ b/packages/cashier/src/stores/payment-agent-store.js @@ -208,8 +208,8 @@ export default class PaymentAgentStore { max_withdrawal: payment_agent.max_withdrawal, min_withdrawal: payment_agent.min_withdrawal, email: payment_agent.email, - phone: payment_agent.telephone, - url: payment_agent.url, + phone: payment_agent.phone_numbers, + url: payment_agent.urls, }); } diff --git a/packages/cashier/tsconfig.json b/packages/cashier/tsconfig.json index 210d04896479..9975901c2274 100644 --- a/packages/cashier/tsconfig.json +++ b/packages/cashier/tsconfig.json @@ -2,19 +2,18 @@ "extends": "../../tsconfig.json", "compilerOptions": { "paths": { - "Components/*": ["components/*"], - "Config/*": ["config/*"], - "Constants/*":["constants/*"], - "Containers/*": ["containers/*"], - "Images/*": ["public/images/*"], - "Pages/*": ["pages/*"], - "Stores/*": ["stores/*"], - "Types": ["types"], - "Utils/*": ["utils/*"], + "Components/*": ["src/components/*"], + "Config/*": ["src/config/*"], + "Constants/*": ["src/constants/*"], + "Containers/*": ["src/containers/*"], + "Pages/*": ["src/pages/*"], + "Stores/*": ["src/stores/*"], + "Types": ["src/types"], + "Utils/*": ["src/utils/*"], + "@deriv/*": ["../*/src"] }, "outDir": "./dist", - "rootDir": "./src", - "baseUrl": "src", + "baseUrl": "./" }, - "include": ["./src", "./src/**/*.ts", "./src/**/*.tsx", "globals.d.ts"] + "include": ["src", "globals.d.ts"] } diff --git a/packages/cfd/src/Containers/jurisdiction-modal-content.tsx b/packages/cfd/src/Containers/jurisdiction-modal-content.tsx index 7211611ddf8f..f32a05739fef 100644 --- a/packages/cfd/src/Containers/jurisdiction-modal-content.tsx +++ b/packages/cfd/src/Containers/jurisdiction-modal-content.tsx @@ -173,7 +173,7 @@ const JurisdictionCard = ({ if (!is_fully_authenticated) return (
- +
diff --git a/packages/cfd/src/sass/cfd-dashboard.scss b/packages/cfd/src/sass/cfd-dashboard.scss index 377b084a5a96..e2d68681e4a2 100644 --- a/packages/cfd/src/sass/cfd-dashboard.scss +++ b/packages/cfd/src/sass/cfd-dashboard.scss @@ -1507,6 +1507,7 @@ .cfd-personal-details-modal { grid-template-rows: 8rem minmax(10rem, 1fr); + overflow-y: scroll; &__heading-container { padding-top: 2.4rem; diff --git a/packages/components/src/components/calendar/calendar-header.jsx b/packages/components/src/components/calendar/calendar-header.jsx index b11c28561cdd..359a138e1498 100644 --- a/packages/components/src/components/calendar/calendar-header.jsx +++ b/packages/components/src/components/calendar/calendar-header.jsx @@ -2,7 +2,7 @@ import PropTypes from 'prop-types'; import React from 'react'; import { addMonths, addYears, subMonths, subYears, toMoment } from '@deriv/shared'; import Button from './calendar-button.jsx'; -import { month_headers, getCentury, getDecade } from './helpers'; +import { getCentury, getDecade } from './helpers'; const Header = ({ calendar_date, @@ -77,7 +77,7 @@ const Header = ({