diff --git a/package-lock.json b/package-lock.json index af117eea..99984d12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@loadable/component": "^5.15.3", "@nilfoundation/react-components": "^0.8.3", - "@nilfoundation/ui-kit": "^2.0.16", + "@nilfoundation/ui-kit": "^2.0.37", "@reduxjs/toolkit": "^1.8.5", "@sentry/react": "^7.21.1", "@sentry/tracing": "^7.21.1", @@ -2639,9 +2639,9 @@ } }, "node_modules/@nilfoundation/ui-kit": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@nilfoundation/ui-kit/-/ui-kit-2.0.17.tgz", - "integrity": "sha512-9w9bJN2fqm6HPMLvujWgFeGd/8tup9AVwi9dbSOBEDCcVhI3hsfD9V86iIFJCtXcxx55H8GDCHQpZlxk0/C+oQ==", + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/@nilfoundation/ui-kit/-/ui-kit-2.0.37.tgz", + "integrity": "sha512-eol4MbWHiih0QxYRFhDB/N3jPNGMvFiIHyNi9RgE+ETbsvQ9Ri70GYOhDhpoBMOODeC0H/fydgtm+CG3ttxLkQ==", "dependencies": { "copy-to-clipboard": "^3.3.3", "inline-style-expand-shorthand": "^1.6.0", @@ -2653,7 +2653,8 @@ "baseui": ">=13.0.0 < 14", "react": ">=17.0.2", "react-dom": ">=17.0.2", - "styletron-react": ">=6.1.0 < 7" + "styletron-react": ">=6.1.0 < 7", + "ts-xor": ">=1.1.0 < 2" } }, "node_modules/@nodelib/fs.scandir": { @@ -9583,6 +9584,12 @@ "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-5.0.5.tgz", "integrity": "sha512-tL0w8U/pgaacOmkb9fRlYzWEUDCfVjjv9dD4wHTgZ61MjhuMt46VNWTG747NqW6vRzoWIKABVhFSOJ82FvXrfA==" }, + "node_modules/ts-xor": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-xor/-/ts-xor-1.3.0.tgz", + "integrity": "sha512-RLXVjliCzc1gfKQFLRpfeD0rrWmjnSTgj7+RFhoq3KRkUYa8LE/TIidYOzM5h+IdFBDSjjSgk9Lto9sdMfDFEA==", + "peer": true + }, "node_modules/tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -12162,9 +12169,9 @@ } }, "@nilfoundation/ui-kit": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@nilfoundation/ui-kit/-/ui-kit-2.0.17.tgz", - "integrity": "sha512-9w9bJN2fqm6HPMLvujWgFeGd/8tup9AVwi9dbSOBEDCcVhI3hsfD9V86iIFJCtXcxx55H8GDCHQpZlxk0/C+oQ==", + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/@nilfoundation/ui-kit/-/ui-kit-2.0.37.tgz", + "integrity": "sha512-eol4MbWHiih0QxYRFhDB/N3jPNGMvFiIHyNi9RgE+ETbsvQ9Ri70GYOhDhpoBMOODeC0H/fydgtm+CG3ttxLkQ==", "requires": { "copy-to-clipboard": "^3.3.3", "inline-style-expand-shorthand": "^1.6.0", @@ -17402,6 +17409,12 @@ "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-5.0.5.tgz", "integrity": "sha512-tL0w8U/pgaacOmkb9fRlYzWEUDCfVjjv9dD4wHTgZ61MjhuMt46VNWTG747NqW6vRzoWIKABVhFSOJ82FvXrfA==" }, + "ts-xor": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-xor/-/ts-xor-1.3.0.tgz", + "integrity": "sha512-RLXVjliCzc1gfKQFLRpfeD0rrWmjnSTgj7+RFhoq3KRkUYa8LE/TIidYOzM5h+IdFBDSjjSgk9Lto9sdMfDFEA==", + "peer": true + }, "tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", diff --git a/package.json b/package.json index 1be14a0d..6efaa225 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "dependencies": { "@loadable/component": "^5.15.3", "@nilfoundation/react-components": "^0.8.3", - "@nilfoundation/ui-kit": "^2.0.16", + "@nilfoundation/ui-kit": "^2.0.37", "@reduxjs/toolkit": "^1.8.5", "@sentry/react": "^7.21.1", "@sentry/tracing": "^7.21.1", diff --git a/src/components/login/AuthCard/index.ts b/src/components/login/AuthCard/index.ts deleted file mode 100644 index 01c264f8..00000000 --- a/src/components/login/AuthCard/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @file Index. - * @copyright Yury Korotovskikh - */ - -export * from './AuthCard'; diff --git a/src/components/login/index.ts b/src/components/login/index.ts index 61ecbcc3..335e7557 100644 --- a/src/components/login/index.ts +++ b/src/components/login/index.ts @@ -3,7 +3,7 @@ * @copyright Yury Korotovskikh */ -export * from './LoginForm'; +export * from '../../features/auth/components/LoginForm'; export * from './AuthContainer'; -export * from './RegisterForm'; -export * from './ReadonlyAccessProvider'; +export * from '../../features/auth/components/RegisterForm'; +export * from '../../features/auth/components/ReadonlyAccessProvider'; diff --git a/src/components/market/StatementDashboard/StatementDashboard.tsx b/src/components/market/StatementDashboard/StatementDashboard.tsx index e5a2d8d7..3ad94d63 100644 --- a/src/components/market/StatementDashboard/StatementDashboard.tsx +++ b/src/components/market/StatementDashboard/StatementDashboard.tsx @@ -9,12 +9,12 @@ import { match } from 'ts-pattern'; import { ChartType, DateUnit } from '@/enums'; import { selectCurrentStatement, useAppSelector } from '@/redux'; import { useLocalStorage, useWindowHeight } from '@/hooks'; +import { StatementInfoPanel } from '@/features/dashboard'; import type { ChartBaseProps } from '../../common'; import { DashboardCard, FullScreenView, ProofCostChart, ProofTimeGenChart } from '../../common'; import { ChartTypeSelect } from './ChartTypeSelect'; import { DataRangeSelect } from './DataRangeSelect'; import { DashboardToolbar } from './DashboardToolbar'; -import { StatementInfoPanel } from '../StatementInfoPanel'; import { CopyToClipboardNavItem } from './CopyToClipboardNavItem'; import './StatementDashboard.scss'; diff --git a/src/components/market/StatementDetailedInfo/StatementDetailedInfo.module.scss b/src/components/market/StatementDetailedInfo/StatementDetailedInfo.module.scss deleted file mode 100644 index 7b4ccdb5..00000000 --- a/src/components/market/StatementDetailedInfo/StatementDetailedInfo.module.scss +++ /dev/null @@ -1,16 +0,0 @@ -@import "@/styles/constants.scss"; -@import "@/styles/mixins/overflowEllipsis"; - -.container { - padding: 0 15px; - background-color: $c-base-darker; -} - -.text { - margin-bottom: 0.5rem; - @include overflowEllipsis; - - span { - margin-right: 0.5rem; - } -} diff --git a/src/components/market/StatementDetailedInfo/StatementDetailedInfo.tsx b/src/components/market/StatementDetailedInfo/StatementDetailedInfo.tsx deleted file mode 100644 index 5b006ac9..00000000 --- a/src/components/market/StatementDetailedInfo/StatementDetailedInfo.tsx +++ /dev/null @@ -1,67 +0,0 @@ -/** - * @file React component. - * @copyright Yury Korotovskikh - */ - -import type { ReactElement } from 'react'; -import { memo } from 'react'; -import { useSelector } from 'react-redux'; -import { Spinner } from '@nilfoundation/react-components'; -import { P, match } from 'ts-pattern'; -import { selectCurrentStatement, useAppSelector } from '@/redux'; -import type { Statement } from '@/models'; -import styles from './StatementDetailedInfo.module.scss'; - -/** - * Currencies list. - * - * @returns React component. - */ -const StatementDetailedInfoComponent = (): ReactElement => { - const currentSelectedStatement = useSelector(selectCurrentStatement); - const loadingStatements = useAppSelector(s => s.statementsState.isLoading); - - return ( -
- -
- ); -}; - -export const StatementDetailedInfo = memo(StatementDetailedInfoComponent); - -const StatementInfoViewFactory = ({ - loading, - data, -}: { - loading: boolean; - data?: Statement; -}): ReactElement => { - return match([loading, data]) - .with([true, undefined], () => ) - .with([false, undefined], () =>

No statement info was provided.

) - .with([P.any, P.not(undefined)], ([, data]) => ( - <> -
- Description: - {data!.description} -
- {data?.url && ( -
- Url: - - {data.url} - -
- )} - - )) - .otherwise(() => <>); -}; diff --git a/src/components/market/StatementDetailedInfo/index.ts b/src/components/market/StatementDetailedInfo/index.ts deleted file mode 100644 index c42ea878..00000000 --- a/src/components/market/StatementDetailedInfo/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @file Index. - * @copyright Yury Korotovskikh - */ - -export * from './StatementDetailedInfo'; diff --git a/src/components/market/StatementInfoPanel/StatementInfoPanel.module.scss b/src/components/market/StatementInfoPanel/StatementInfoPanel.module.scss deleted file mode 100644 index 1a347ce7..00000000 --- a/src/components/market/StatementInfoPanel/StatementInfoPanel.module.scss +++ /dev/null @@ -1,37 +0,0 @@ -@import "@/styles/constants.scss"; -@import "@/styles/mixins/hideScrollbar"; -@import "@/styles/mixins/overflowFade"; -@import "@/styles/mixins/overflowEllipsis"; - -.panel { - height: 135px; - padding: 0 5px !important; -} - -.container { - display: flex; - align-items: center; - justify-content: flex-start; - overflow-x: auto; - height: 70px; - padding: 0 15px; - text-align: center; - - > * + * { - margin-left: 40px; - } - - @include hideScrollbar; - @include overflowFade(15px); -} - -.title { - font-size: 1.2rem; - padding: 0.2rem 0; - white-space: nowrap; -} - -.name { - @include overflowEllipsis; - min-width: 15rem; -} diff --git a/src/components/market/StatementInfoPanel/StatementInfoPanel.tsx b/src/components/market/StatementInfoPanel/StatementInfoPanel.tsx deleted file mode 100644 index 6a4d1039..00000000 --- a/src/components/market/StatementInfoPanel/StatementInfoPanel.tsx +++ /dev/null @@ -1,57 +0,0 @@ -/** - * @file React component. - * @copyright Yury Korotovskikh - */ - -import type { ReactElement } from 'react'; -import { useMemo } from 'react'; -import { dequal as deepEqual } from 'dequal'; -import { DashboardCard } from '@/components/common'; -import { selectCurrentStatement, useAppSelector } from '@/redux'; -import { renderDashOnEmptyValue } from '@/utils'; -import { siteMoneyTickerAbbreviation } from '@/constants'; -import { StatementDetailedInfo } from '../StatementDetailedInfo'; -import styles from './StatementInfoPanel.module.scss'; - -/** - * Panel with statement info. - * - * @returns React component. - */ -export const StatementInfoPanel = (): ReactElement => { - const currentStatement = useAppSelector(selectCurrentStatement); - const stats = useAppSelector( - s => s.statementsState.statementsStats.find(x => x._key === currentStatement?._key), - deepEqual, - ); - - const name = useMemo(() => { - if (!currentStatement) { - return ''; - } - - const { name } = currentStatement; - return `${name.toUpperCase()} / ${siteMoneyTickerAbbreviation}`; - }, [currentStatement]); - - return ( - -
- {currentStatement &&
{name}
} -
-
Average cost
-
{renderDashOnEmptyValue(stats?.avg_cost)}
-
-
-
Average generation time
-
{renderDashOnEmptyValue(stats?.avg_eval_time)}
-
-
-
Completed
-
{renderDashOnEmptyValue(stats?.completed, 0)}
-
-
- -
- ); -}; diff --git a/src/components/market/StatementInfoPanel/index.ts b/src/components/market/StatementInfoPanel/index.ts deleted file mode 100644 index 24ce4af6..00000000 --- a/src/components/market/StatementInfoPanel/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @file Index. - * @copyright Yury Korotovskikh - */ - -export * from './StatementInfoPanel'; diff --git a/src/components/market/index.ts b/src/components/market/index.ts index b4870012..a302981f 100644 --- a/src/components/market/index.ts +++ b/src/components/market/index.ts @@ -3,10 +3,8 @@ * @copyright Yury Korotovskikh */ -export * from './StatementDetailedInfo'; export * from './StatementDashboard'; export * from './OrderBook'; export * from './OrderManagementContextProvider'; export * from './CreateOrdersPanel'; export * from './ManageOrdersPanel'; -export * from './StatementInfoPanel'; diff --git a/src/components/login/AuthCard/AuthCard.module.scss b/src/features/auth/components/AuthCard/AuthCard.module.scss similarity index 100% rename from src/components/login/AuthCard/AuthCard.module.scss rename to src/features/auth/components/AuthCard/AuthCard.module.scss diff --git a/src/components/login/AuthCard/AuthCard.tsx b/src/features/auth/components/AuthCard/AuthCard.tsx similarity index 100% rename from src/components/login/AuthCard/AuthCard.tsx rename to src/features/auth/components/AuthCard/AuthCard.tsx diff --git a/src/components/login/LoginForm/LoginForm.module.scss b/src/features/auth/components/LoginForm/LoginForm.module.scss similarity index 100% rename from src/components/login/LoginForm/LoginForm.module.scss rename to src/features/auth/components/LoginForm/LoginForm.module.scss diff --git a/src/components/login/LoginForm/LoginForm.tsx b/src/features/auth/components/LoginForm/LoginForm.tsx similarity index 99% rename from src/components/login/LoginForm/LoginForm.tsx rename to src/features/auth/components/LoginForm/LoginForm.tsx index 5df501bc..1296264e 100644 --- a/src/components/login/LoginForm/LoginForm.tsx +++ b/src/features/auth/components/LoginForm/LoginForm.tsx @@ -24,7 +24,7 @@ import { login } from '@/api'; import { useLogin } from '@/features/auth'; import type { LoginData } from '@/models'; import { getApiErrorMessage } from '@/utils'; -import { AuthCard } from '../AuthCard'; +import { AuthCard } from '../AuthCard/AuthCard'; import styles from './LoginForm.module.scss'; /** diff --git a/src/components/login/LoginForm/index.ts b/src/features/auth/components/LoginForm/index.ts similarity index 100% rename from src/components/login/LoginForm/index.ts rename to src/features/auth/components/LoginForm/index.ts diff --git a/src/components/login/ProtectedRoute/ProtectedRoute.tsx b/src/features/auth/components/ProtectedRoute/ProtectedRoute.tsx similarity index 100% rename from src/components/login/ProtectedRoute/ProtectedRoute.tsx rename to src/features/auth/components/ProtectedRoute/ProtectedRoute.tsx diff --git a/src/components/login/ReadonlyAccessProvider/ReadonlyAccessProvider.tsx b/src/features/auth/components/ReadonlyAccessProvider/ReadonlyAccessProvider.tsx similarity index 100% rename from src/components/login/ReadonlyAccessProvider/ReadonlyAccessProvider.tsx rename to src/features/auth/components/ReadonlyAccessProvider/ReadonlyAccessProvider.tsx diff --git a/src/components/login/ReadonlyAccessProvider/index.ts b/src/features/auth/components/ReadonlyAccessProvider/index.ts similarity index 100% rename from src/components/login/ReadonlyAccessProvider/index.ts rename to src/features/auth/components/ReadonlyAccessProvider/index.ts diff --git a/src/components/login/RegisterForm/RegisterForm.module.scss b/src/features/auth/components/RegisterForm/RegisterForm.module.scss similarity index 100% rename from src/components/login/RegisterForm/RegisterForm.module.scss rename to src/features/auth/components/RegisterForm/RegisterForm.module.scss diff --git a/src/components/login/RegisterForm/RegisterForm.tsx b/src/features/auth/components/RegisterForm/RegisterForm.tsx similarity index 99% rename from src/components/login/RegisterForm/RegisterForm.tsx rename to src/features/auth/components/RegisterForm/RegisterForm.tsx index 49969af8..0b278008 100644 --- a/src/components/login/RegisterForm/RegisterForm.tsx +++ b/src/features/auth/components/RegisterForm/RegisterForm.tsx @@ -26,7 +26,7 @@ import { SocialLinks } from '@/features/shared'; import type { RegisterData } from '@/models'; import { signUp, checkIsUsernameUnique } from '@/api'; import { getApiErrorMessage } from '@/utils'; -import { AuthCard } from '../AuthCard'; +import { AuthCard } from '../AuthCard/AuthCard'; import styles from './RegisterForm.module.scss'; const usernameRequiredMinLength = 3; diff --git a/src/components/login/RegisterForm/index.ts b/src/features/auth/components/RegisterForm/index.ts similarity index 100% rename from src/components/login/RegisterForm/index.ts rename to src/features/auth/components/RegisterForm/index.ts diff --git a/src/features/auth/index.ts b/src/features/auth/index.ts index 6e8751a9..35952a70 100644 --- a/src/features/auth/index.ts +++ b/src/features/auth/index.ts @@ -8,3 +8,4 @@ export { useLogout } from './hooks/useLogout'; export { useLogin } from './hooks/useLogin'; export * from './components/ProtectedContent/ProtectedContent'; +export * from './components/ReadonlyAccessProvider/ReadonlyAccessProvider'; diff --git a/src/features/dashboard/components/Dashboard/Dashboard.tsx b/src/features/dashboard/components/Dashboard/Dashboard.tsx new file mode 100644 index 00000000..e69de29b diff --git a/src/features/dashboard/components/StatementInfoPanel/StatementDetailedInfo.tsx b/src/features/dashboard/components/StatementInfoPanel/StatementDetailedInfo.tsx new file mode 100644 index 00000000..3289b3a7 --- /dev/null +++ b/src/features/dashboard/components/StatementInfoPanel/StatementDetailedInfo.tsx @@ -0,0 +1,47 @@ +/** + * @file React component. + * @copyright Yury Korotovskikh + */ + +import { globalStyles } from '@/styles/globalStyles'; +import type { ReactElement } from 'react'; +import { useStyletron } from 'styletron-react'; + +type StatementDetailedInfoProps = { + description?: string; + url?: string; +}; + +/** + * Statement detailed info component. + * + * @param {StatementDetailedInfoProps} props Props. + * @returns React component. + */ +export const StatementDetailedInfo = ({ + description, + url, +}: StatementDetailedInfoProps): ReactElement => { + const [css] = useStyletron(); + + return ( +
+
+ Description: + {description ? ` ${description}` : 'No description'} +
+ {url && ( +
+ Url:{' '} + + {url} + +
+ )} +
+ ); +}; diff --git a/src/features/dashboard/components/StatementInfoPanel/StatementInfoPanel.tsx b/src/features/dashboard/components/StatementInfoPanel/StatementInfoPanel.tsx new file mode 100644 index 00000000..b3139eda --- /dev/null +++ b/src/features/dashboard/components/StatementInfoPanel/StatementInfoPanel.tsx @@ -0,0 +1,85 @@ +/** + * @file React component. + * @copyright Yury Korotovskikh + */ + +import type { ReactElement } from 'react'; +import { dequal as deepEqual } from 'dequal'; +import { useStyletron } from 'styletron-react'; +import { P, match } from 'ts-pattern'; +import { Spinner } from '@nilfoundation/ui-kit'; +import { selectCurrentStatement, useAppSelector } from '@/redux'; +import { renderDashOnEmptyValue } from '@/utils'; +import { siteMoneyTickerAbbreviation } from '@/constants'; +import type { Statement } from '@/models'; +import { StatementDetailedInfo } from './StatementDetailedInfo'; +import { styles as s } from './styles'; + +/** + * Panel with statement info. + * + * @returns React component. + */ +const StatementInfoPanel = (): ReactElement => { + const currentStatement = useAppSelector(selectCurrentStatement); + const isLoading = useAppSelector(s => s.statementsState.isLoading); + const [css] = useStyletron(); + + return ( +
+ +
+ ); +}; + +const StatementContent = ({ name, description, url, _key }: Statement): ReactElement => { + const displayName = name ? `${name.toUpperCase()} / ${siteMoneyTickerAbbreviation}` : ''; + const stats = useAppSelector( + s => s.statementsState.statementsStats.find(x => x._key === _key), + deepEqual, + ); + const [css] = useStyletron(); + + return ( + <> +
{displayName}
+
+
+
Average cost
+
{renderDashOnEmptyValue(stats?.avg_cost)}
+
+
+
Average generation time
+
{renderDashOnEmptyValue(stats?.avg_eval_time)}
+
+
+
Completed
+
{renderDashOnEmptyValue(stats?.completed, 0)}
+
+
+ + + ); +}; + +const StatementInfoViewFactory = ({ + statement, + isLoading, +}: { + statement?: Statement; + isLoading: boolean; +}): ReactElement => { + return match([isLoading, statement]) + .with([true, undefined], () => ) + .with([false, undefined], () =>
Statement not found
) + .with([P.any, P.not(undefined)], ([, statement]) => ) + .otherwise(() => <>); +}; + +export default StatementInfoPanel; diff --git a/src/features/dashboard/components/StatementInfoPanel/styles.ts b/src/features/dashboard/components/StatementInfoPanel/styles.ts new file mode 100644 index 00000000..c7b811b3 --- /dev/null +++ b/src/features/dashboard/components/StatementInfoPanel/styles.ts @@ -0,0 +1,31 @@ +/** + * @file Styles for Trades component. + */ + +import type { StyleObject } from 'styletron-react'; +import { globalStyles } from '@/styles/globalStyles'; +import { SPACE } from '@nilfoundation/ui-kit'; + +const container: StyleObject = { + display: 'flex', + flexDirection: 'column', + padding: '1rem', +}; + +const title: StyleObject = { + ...globalStyles.textMuted, + fontSize: '1.5rem', + whiteSpace: 'nowrap', +}; + +const infoContainer: StyleObject = { + display: 'flex', + justifyContent: 'flex-start', + gap: SPACE[16], +}; + +export const styles = { + container, + infoContainer, + title, +}; diff --git a/src/features/dashboard/index.tsx b/src/features/dashboard/index.tsx new file mode 100644 index 00000000..838ed054 --- /dev/null +++ b/src/features/dashboard/index.tsx @@ -0,0 +1,16 @@ +/** + * @file Public feature interfaces. + * @copyright Yury Korotovskikh + */ + +import loadable from '@loadable/component'; +import { Spinner } from '@nilfoundation/ui-kit'; + +const StatementInfoPanel = loadable( + () => import('./components/StatementInfoPanel/StatementInfoPanel'), + { + fallback: , + }, +); + +export { StatementInfoPanel }; diff --git a/src/features/mobile/constants/mobileRoutesConfig.tsx b/src/features/mobile/constants/mobileRoutesConfig.tsx index 03eacd91..d87012cc 100644 --- a/src/features/mobile/constants/mobileRoutesConfig.tsx +++ b/src/features/mobile/constants/mobileRoutesConfig.tsx @@ -6,7 +6,7 @@ import { lazy } from 'react'; import { Navigate } from 'react-router-dom'; import type { RouteObject } from 'react-router-dom'; -import ProtectedRoute from '@/components/login/ProtectedRoute/ProtectedRoute'; +import ProtectedRoute from '@/features/auth/components/ProtectedRoute/ProtectedRoute'; import RouterReduxConnector from '@/components/common/RouterReduxConnector/RouterReduxConnector'; import { Path } from '@/features/routing'; import { RouterParam } from '@/enums'; diff --git a/src/features/routing/constants/routesConfig.tsx b/src/features/routing/constants/routesConfig.tsx index d8975253..23113d01 100644 --- a/src/features/routing/constants/routesConfig.tsx +++ b/src/features/routing/constants/routesConfig.tsx @@ -7,7 +7,7 @@ import { lazy } from 'react'; import { Navigate } from 'react-router-dom'; import type { RouteObject } from 'react-router-dom'; import { RouterParam } from '@/enums'; -import ProtectedRoute from '@/components/login/ProtectedRoute/ProtectedRoute'; +import ProtectedRoute from '@/features/auth/components/ProtectedRoute/ProtectedRoute'; import RouterReduxConnector from '@/components/common/RouterReduxConnector/RouterReduxConnector'; import RequestsContent from '@/components/portfolio/PortfolioRequestsInfoContent/PortfolioRequestsInfoContent'; import UserStatementInfoContent from '@/components/portfolio/UserStatementInfoContent/UserStatementInfoContent'; diff --git a/src/views/MarketView.tsx b/src/views/MarketView.tsx index 4245183b..acf2b923 100644 --- a/src/views/MarketView.tsx +++ b/src/views/MarketView.tsx @@ -9,13 +9,13 @@ import { Helmet } from 'react-helmet-async'; import { StatementsList } from '@/features/statementsList'; import { TradeHistory } from '@/features/trades'; import { LastProofProducer } from '@/features/lastProofProducer'; +import { StatementInfoPanel } from '@/features/dashboard'; import { OrderManagementContextProvider, StatementDashboard, OrderBook, CreateOrdersPanel, ManageOrdersPanel, - StatementInfoPanel, } from '../components'; /**