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

Farzin/85472/R&D/Remove CashierStore initialization from core package #7278

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
7babd01
refactor(cashier): :fire: remove `mobx-react-lite` from `cashier`
Dec 23, 2022
32b4c73
refactor(cashier): :recycle: replace `connect` with `useStore` for re…
Dec 23, 2022
73c5b25
refactor(cashier): :recycle: fix test files to use `StoreProvider`
Dec 27, 2022
d33218b
refactor(cashier): :fire: remove `connect` from `cashier`
Dec 27, 2022
df76fc2
refactor(cashier): :fire: remove extra store related types from `cash…
Dec 27, 2022
02f8cfe
fix(stores): :bug: stop persisting the stores when store is unmount
Dec 27, 2022
00a5fbd
Merge branch 'develop' into farzin/76562/remove_legacy_connect_method…
Dec 27, 2022
631cc10
Merge branch 'develop' into farzin/76562/remove_legacy_connect_method…
Dec 28, 2022
745f900
Merge branch 'develop' into farzin/76562/remove_legacy_connect_method…
Dec 29, 2022
5ec3d1d
feat(cashier): :sparkles: add `useCashierStore` hook
Dec 30, 2022
2849fb3
refactor(cashier): :recycle: replace `modules.cashier` with `useCashi…
Dec 30, 2022
665f908
refactor(cashier): :recycle: remove `useStore` hook return type override
Dec 30, 2022
5d932cd
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Dec 30, 2022
633767c
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Dec 30, 2022
8eb9dcb
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Jan 3, 2023
20858f1
fix(cashier): :memo: resolve PR conflicts
Jan 3, 2023
b9fbbbd
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Jan 6, 2023
600f9c0
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Jan 9, 2023
35bbcca
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Jan 10, 2023
286f8fd
test(cashier): :white_check_mark: fix the tests
Jan 10, 2023
2c3b80c
chore(cashier): :truck: rename `cashier_providers.tsx` to `cashier-pr…
Jan 10, 2023
e512bc8
Shayan/52349/react17 migration (#6908)
shayan-deriv Jan 10, 2023
5c2a910
test(cashier): :white_check_mark: fix the tests
Jan 10, 2023
c0b38f4
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Jan 10, 2023
dd129b7
test(cashier): :white_check_mark: fix the tests
Jan 10, 2023
cfbbf1b
fix: add optional chaining in getMinDuration function (#7344)
kate-deriv Jan 11, 2023
b6f7e4c
fix: :bug: resolved issue with trade. odal (#7291)
likhith-deriv Jan 11, 2023
58990e0
feat(api): :technologist: improve `@deriv/api` typings
Jan 11, 2023
9891bc6
chore(cashier): :pencil2: fix React 17 type issue with `PropsWithChil…
Jan 11, 2023
d543da7
Merge branch 'master' of https://github.com/binary-com/deriv-app into…
farrah-deriv Jan 11, 2023
637d467
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Jan 12, 2023
49430b3
Revert "fix: :bug: resolved issue with trade. odal (#7291)" (#7364)
matin-deriv Jan 13, 2023
ab72826
Farzin/85054/Call `resetWithrawForm` on `CryptoWithdrawForm` componen…
farzin-deriv Jan 16, 2023
db321a8
Niloofar Sadeghi / Task - Refactor tests in the language.spec.js file…
niloofar-deriv Jan 16, 2023
440892f
refactor: proposal tests (#7327)
niloofar-deriv Jan 16, 2023
00a9dda
Niloofar Sadeghi / Task - Refactor tests in the error.spec.js file (#…
niloofar-deriv Jan 16, 2023
492b437
Niloofar Sadeghi / Task - Refactor tests in the binary-link.spec.tsx …
niloofar-deriv Jan 16, 2023
eb59db8
refactor: money tests (#7353)
niloofar-deriv Jan 16, 2023
325d629
refactor: toggle-positions tests (#7287)
niloofar-deriv Jan 16, 2023
4c3f477
refactor: toggle-button tests (#7328)
niloofar-deriv Jan 16, 2023
906c784
Niloofar Sadeghi / Task - Refactor tests in the toggle-button-group.s…
niloofar-deriv Jan 16, 2023
2a71abf
refactor: open-positions-table tests (#7374)
niloofar-deriv Jan 16, 2023
1f93b8d
Niloofar Sadeghi / Task - Refactor tests in the marker-spot-label.spe…
niloofar-deriv Jan 16, 2023
ebce045
Niloofar Sadeghi / Task - Refactor tests in the binary-link.spec.tsx …
niloofar-deriv Jan 16, 2023
ccbad43
Niloofar Sadeghi / Task - Refactor tests in the contract-type-dialog.…
niloofar-deriv Jan 16, 2023
311feec
Niloofar Sadeghi / Task - Refactor tests in the platform-dropdown.spe…
niloofar-deriv Jan 16, 2023
c2336d4
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Jan 17, 2023
9cc73c5
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Jan 18, 2023
4793939
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Jan 19, 2023
4f714d4
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Jan 25, 2023
1dd45bb
Merge branch 'develop' into farzin/84619/r&d/remove_cashierstore_init…
Jan 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
4 changes: 2 additions & 2 deletions packages/api/src/__tests__/useSubscription.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { render, screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { useWS as useWSShared } from '@deriv/shared';
import useSubscription from '../useSubscription';
import { TSocketRequestProps, TSocketSubscribableEndpointNames } from '../../types';
import { TSocketSubscribableEndpointNames, TSocketAcceptableProps } from '../../types';

jest.mock('@deriv/shared');

Expand All @@ -15,7 +15,7 @@ const UseSubscriptionExample = <T extends TSocketSubscribableEndpointNames>({
request,
}: {
name: T;
request?: TSocketRequestProps<T>;
request?: TSocketAcceptableProps<T>;
}) => {
const WS = useSubscription(name);

Expand Down
4 changes: 2 additions & 2 deletions packages/api/src/__tests__/useWS.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { render, screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { useWS as useWSShared } from '@deriv/shared';
import useWS from '../useWS';
import { TSocketEndpointNames, TSocketRequestProps, TSocketResponse } from '../../types';
import { TSocketEndpointNames, TSocketAcceptableProps, TSocketResponse } from '../../types';

jest.mock('@deriv/shared');

Expand All @@ -15,7 +15,7 @@ const UseWSExample = <T extends TSocketEndpointNames>({
request,
}: {
name: T;
request?: TSocketRequestProps<T>;
request?: TSocketAcceptableProps<T>;
}) => {
const WS = useWS(name);

Expand Down
6 changes: 3 additions & 3 deletions packages/api/src/useSubscription.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { TSocketRequestProps, TSocketResponseData, TSocketSubscribableEndpointNames } from '../types';
import { useWS as useWSShared } from '@deriv/shared';
import { useState } from 'react';
import { useWS as useWSShared } from '@deriv/shared';
import { TSocketSubscribableEndpointNames, TSocketAcceptableProps, TSocketResponseData } from '../types';

const useSubscription = <T extends TSocketSubscribableEndpointNames>(name: T) => {
const [is_loading, setIsLoading] = useState(false);
Expand All @@ -22,7 +22,7 @@ const useSubscription = <T extends TSocketSubscribableEndpointNames>(name: T) =>
setIsLoading(false);
};

const subscribe = (...props: TSocketRequestProps<T> extends never ? [undefined?] : [TSocketRequestProps<T>]) => {
const subscribe = (...props: TSocketAcceptableProps<T>) => {
setIsLoading(true);
setSubscribed(true);

Expand Down
4 changes: 2 additions & 2 deletions packages/api/src/useWS.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useCallback, useState } from 'react';
import { useWS as useWSShared } from '@deriv/shared';
import { TSocketEndpointNames, TSocketRequestProps, TSocketResponseData } from '../types';
import { TSocketEndpointNames, TSocketAcceptableProps, TSocketResponseData } from '../types';

const useWS = <T extends TSocketEndpointNames>(name: T) => {
const [is_loading, setIsLoading] = useState(false);
Expand All @@ -9,7 +9,7 @@ const useWS = <T extends TSocketEndpointNames>(name: T) => {
const WS = useWSShared();

const send = useCallback(
async (...props: TSocketRequestProps<T> extends never ? [undefined?] : [TSocketRequestProps<T>]) => {
async (...props: TSocketAcceptableProps<T>) => {
setIsLoading(true);

try {
Expand Down
8 changes: 7 additions & 1 deletion packages/api/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,12 @@ type TSocketRequestCleaned<T extends TSocketEndpointNames> = Omit<
(T extends KeysMatching<TSocketRequest<T>, 1> ? T : never) | 'passthrough' | 'req_id' | 'subscribe'
>;

export type TSocketRequestProps<T extends TSocketEndpointNames> = TSocketRequestCleaned<T> extends Record<string, never>
type TSocketRequestProps<T extends TSocketEndpointNames> = TSocketRequestCleaned<T> extends Record<string, never>
? never
: TSocketRequestCleaned<T>;

export type TSocketAcceptableProps<T extends TSocketEndpointNames> = TSocketRequestProps<T> extends never
? [undefined?]
: Partial<TSocketRequestProps<T>> extends TSocketRequestProps<T>
? [TSocketRequestProps<T>?]
: [TSocketRequestProps<T>];
Comment on lines +130 to +134
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just made a small improvement on the types, Now if all of the parameters for an endpoint are optional TS won’t complain that you need to pass an argument anymore, It will be optional to pass params.

10 changes: 0 additions & 10 deletions packages/cashier/@deriv-stores.d.ts

This file was deleted.

6 changes: 3 additions & 3 deletions packages/cashier/src/app.jsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import React from 'react';
import { setWebsocket } from '@deriv/shared';
import { StoreProvider } from '@deriv/stores';
import { init } from 'Utils/server_time';
import Routes from 'Containers/routes';
import CashierProviders from './cashier-providers';

const App = ({ passthrough: { WS, root_store } }) => {
React.useEffect(() => {
Expand All @@ -12,9 +12,9 @@ const App = ({ passthrough: { WS, root_store } }) => {
}, []);

return (
<StoreProvider store={root_store}>
<CashierProviders store={root_store}>
<Routes />
</StoreProvider>
</CashierProviders>
);
};

Expand Down
14 changes: 14 additions & 0 deletions packages/cashier/src/cashier-providers.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React from 'react';
import { StoreProvider } from '@deriv/stores';
import { CashierStoreProvider } from './stores/useCashierStores';
import { TRootStore } from './types/stores';

const CashierProviders = ({ children, store }: React.PropsWithChildren<{ store: TRootStore }>) => {
return (
<StoreProvider store={store}>
<CashierStoreProvider>{children}</CashierStoreProvider>
</StoreProvider>
);
};

export default CashierProviders;
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 AccountPromptDialog from '../account-prompt-dialog.jsx';
import { StoreProvider } from '@deriv/stores';
import CashierProviders from '../../../cashier-providers';

jest.mock('@deriv/components', () => ({
...jest.requireActual('@deriv/components'),
Expand Down Expand Up @@ -31,7 +31,7 @@ describe('<AccountPromptDialog />', () => {
};
it('should render dialog', () => {
render(<AccountPromptDialog />, {
wrapper: ({ children }) => <StoreProvider store={mockRootStore}>{children}</StoreProvider>,
wrapper: ({ children }) => <CashierProviders store={mockRootStore}>{children}</CashierProviders>,
});

expect(screen.getByText('Dialog')).toBeInTheDocument();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,13 @@ import { Dialog } from '@deriv/components';
import { isCryptocurrency } from '@deriv/shared';
import { localize, Localize } from '@deriv/translations';
import { useStore, observer } from '@deriv/stores';
import { useCashierStore } from '../../stores/useCashierStores';

const AccountPromptDialog = observer(() => {
const {
client: { accounts },
modules: {
cashier: {
account_prompt_dialog: { continueRoute, is_confirmed, last_location, onCancel, onConfirm, should_show },
},
},
} = useStore();
const { client } = useStore();
const { accounts } = client;
const { account_prompt_dialog } = useCashierStore();
const { continueRoute, is_confirmed, last_location, onCancel, onConfirm, should_show } = account_prompt_dialog;

React.useEffect(continueRoute, [is_confirmed, last_location, continueRoute]);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { fireEvent, render, screen } from '@testing-library/react';
import { createBrowserHistory } from 'history';
import { Router } from 'react-router';
import Virtual from '../virtual';
import { StoreProvider } from '@deriv/stores';
import CashierProviders from '../../../../cashier-providers';

describe('<Virtual />', () => {
const history = createBrowserHistory();
Expand All @@ -21,7 +21,7 @@ describe('<Virtual />', () => {
<Virtual />
</Router>,
{
wrapper: ({ children }) => <StoreProvider store={mockRootStore}>{children}</StoreProvider>,
wrapper: ({ children }) => <CashierProviders store={mockRootStore}>{children}</CashierProviders>,
}
);

Expand All @@ -34,7 +34,7 @@ describe('<Virtual />', () => {
<Virtual />
</Router>,
{
wrapper: ({ children }) => <StoreProvider store={mockRootStore}>{children}</StoreProvider>,
wrapper: ({ children }) => <CashierProviders store={mockRootStore}>{children}</CashierProviders>,
}
);

Expand All @@ -49,7 +49,7 @@ describe('<Virtual />', () => {
<Virtual />
</Router>,
{
wrapper: ({ children }) => <StoreProvider store={mockRootStore}>{children}</StoreProvider>,
wrapper: ({ children }) => <CashierProviders store={mockRootStore}>{children}</CashierProviders>,
}
);

Expand All @@ -62,7 +62,7 @@ describe('<Virtual />', () => {
<Virtual />
</Router>,
{
wrapper: ({ children }) => <StoreProvider store={mockRootStore}>{children}</StoreProvider>,
wrapper: ({ children }) => <CashierProviders store={mockRootStore}>{children}</CashierProviders>,
}
);

Expand Down
Loading