From 7eb50553263a70fde4c9d2da7db8f381fca463bb Mon Sep 17 00:00:00 2001 From: berdysheva Date: Tue, 6 Dec 2022 14:48:59 +0300 Subject: [PATCH 1/2] fix: navigation import and types --- src/components/index.ts | 4 +- .../navigation/components/Header/Header.tsx | 6 +- .../navigation/components/Logo/Logo.tsx | 4 +- .../MobileNavigation/MobileNavigation.tsx | 6 +- .../components/Navigation/Navigation.tsx | 6 +- .../NavigationItem/NavigationItem.tsx | 12 ++-- .../NavigationPopup/NavigationPopup.tsx | 4 +- .../components/SocialIcon/SocialIcon.tsx | 6 +- .../navigation/containers/Layout/Layout.tsx | 4 +- .../PageConstructor/PageConstructor.tsx | 4 +- .../__stories__/PageConstructor.stories.tsx | 4 +- src/models/navigation.ts | 61 ++++++++++--------- 12 files changed, 62 insertions(+), 59 deletions(-) diff --git a/src/components/index.ts b/src/components/index.ts index d935f3f0f..f4ca5f48d 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -33,7 +33,7 @@ export {default as OverflowScroller} from './OverflowScroller/OverflowScroller'; export {default as Author} from './Author/Author'; export {default as RouterLink} from './RouterLink/RouterLink'; export {default as HTML} from './HTML/HTML'; -export {default as Header} from './navigation/components/Header/Header'; -export * as Navigation from './navigation/components/index'; + +export * from './navigation/components/index'; export type {RouterLinkProps} from './RouterLink/RouterLink'; diff --git a/src/components/navigation/components/Header/Header.tsx b/src/components/navigation/components/Header/Header.tsx index 6fd9a32b3..298d62985 100644 --- a/src/components/navigation/components/Header/Header.tsx +++ b/src/components/navigation/components/Header/Header.tsx @@ -1,7 +1,7 @@ import React, {MouseEvent, useCallback, useState} from 'react'; import {block} from '../../../../utils'; -import {HeaderData, NavigationLogo} from '../../../../models'; +import {HeaderDataProps, NavigationLogoProps} from '../../../../models'; import {Col, Grid, Row} from '../../../../grid'; import OutsideClick from '../../../OutsideClick/OutsideClick'; import Control from '../../../Control/Control'; @@ -19,8 +19,8 @@ const b = block('header'); const ICON_SIZE = 36; export interface HeaderProps { - logo: NavigationLogo; - data: HeaderData; + logo: NavigationLogoProps; + data: HeaderDataProps; } interface MobileMenuButtonProps { diff --git a/src/components/navigation/components/Logo/Logo.tsx b/src/components/navigation/components/Logo/Logo.tsx index 20b8a6837..ad5d1e52c 100644 --- a/src/components/navigation/components/Logo/Logo.tsx +++ b/src/components/navigation/components/Logo/Logo.tsx @@ -1,7 +1,7 @@ import React from 'react'; import {block} from '../../../../utils'; -import {NavigationLogo} from '../../../../models'; +import {NavigationLogoProps} from '../../../../models'; import RouterLink from '../../../RouterLink/RouterLink'; import {getMediaImage} from '../../../Media/Image/utils'; import {Image} from '../../../index'; @@ -10,7 +10,7 @@ import './Logo.scss'; const b = block('logo'); -export interface LogoProps extends NavigationLogo { +export interface LogoProps extends NavigationLogoProps { className?: string; } diff --git a/src/components/navigation/components/MobileNavigation/MobileNavigation.tsx b/src/components/navigation/components/MobileNavigation/MobileNavigation.tsx index 637953a55..86e28e7b6 100644 --- a/src/components/navigation/components/MobileNavigation/MobileNavigation.tsx +++ b/src/components/navigation/components/MobileNavigation/MobileNavigation.tsx @@ -4,8 +4,8 @@ import {Popup, Portal} from '@gravity-ui/uikit'; import {block} from '../../../../utils'; import Foldable from '../../../Foldable/Foldable'; import { - NavigationItem as NavigationItemModel, - NavigationDropdownItem, + NavigationItemProps as NavigationItemModel, + NavigationDropdownItemProps, NavigationItemType, } from '../../../../models/navigation'; import NavigationItem from '../NavigationItem/NavigationItem'; @@ -15,7 +15,7 @@ import './MobileNavigation.scss'; const b = block('mobile-navigation'); interface MobileNavigationDropdownProps { - data: NavigationDropdownItem; + data: NavigationDropdownItemProps; isOpened?: boolean; onItemClick?: MouseEventHandler; onToggle?: MouseEventHandler; diff --git a/src/components/navigation/components/Navigation/Navigation.tsx b/src/components/navigation/components/Navigation/Navigation.tsx index bc2e0598f..6c53404c0 100644 --- a/src/components/navigation/components/Navigation/Navigation.tsx +++ b/src/components/navigation/components/Navigation/Navigation.tsx @@ -12,8 +12,8 @@ import React, { import {block} from '../../../../utils'; import OverflowScroller from '../../../OverflowScroller/OverflowScroller'; import { - NavigationDropdownItem, - NavigationItem as NavigationItemModel, + NavigationDropdownItemProps, + NavigationItemProps as NavigationItemModel, NavigationItemType, } from '../../../../models/navigation'; import NavigationPopup from '../NavigationPopup/NavigationPopup'; @@ -33,7 +33,7 @@ export interface NavigationProps { } export interface NavigationDropdownProps { - data: NavigationDropdownItem; + data: NavigationDropdownItemProps; onClick: MouseEventHandler; isActive: boolean; position: number; diff --git a/src/components/navigation/components/NavigationItem/NavigationItem.tsx b/src/components/navigation/components/NavigationItem/NavigationItem.tsx index 9020730e6..ada349ba3 100644 --- a/src/components/navigation/components/NavigationItem/NavigationItem.tsx +++ b/src/components/navigation/components/NavigationItem/NavigationItem.tsx @@ -5,11 +5,11 @@ import {RouterLink, ToggleArrow, Button, Image} from '../../../index'; import {LocationContext} from '../../../../context/locationContext'; import { NavigationItemType, - NavigationLinkItem, + NavigationLinkItemProps, ImageProps, ButtonProps, - NavigationItemData, - DropdownItemData, + NavigationItemDataProps, + DropdownItemDataProps, } from '../../../../models'; import {NavigationArrow} from '../../../../icons'; import SocialIcon from '../SocialIcon/SocialIcon'; @@ -20,7 +20,7 @@ import './NavigationItem.scss'; const b = block('navigation-item'); export interface NavigationItemProps { - data: NavigationItemData; + data: NavigationItemDataProps; className?: string; onClick?: MouseEventHandler; isOpened?: boolean; @@ -33,7 +33,7 @@ const Content: React.FC<{text: string; icon?: ImageProps}> = ({text, icon}) => ( ); -type NavigationDropdownProps = NavigationItemProps & DropdownItemData; +type NavigationDropdownProps = NavigationItemProps & DropdownItemDataProps; const NavigationDropdown: React.FC = ({ text, @@ -57,7 +57,7 @@ const NavigationDropdown: React.FC = ({ ); }; -type NavigationLinkProps = NavigationItemProps & NavigationLinkItem; +type NavigationLinkProps = NavigationItemProps & NavigationLinkItemProps; const NavigationLink: React.FC = (props) => { const {hostname, Link} = useContext(LocationContext); diff --git a/src/components/navigation/components/NavigationPopup/NavigationPopup.tsx b/src/components/navigation/components/NavigationPopup/NavigationPopup.tsx index 441227a52..8f875ffa2 100644 --- a/src/components/navigation/components/NavigationPopup/NavigationPopup.tsx +++ b/src/components/navigation/components/NavigationPopup/NavigationPopup.tsx @@ -4,7 +4,7 @@ import {Portal} from '@gravity-ui/uikit'; import {block} from '../../../../utils'; import {OutsideClick} from '../../../index'; -import {NavigationLinkItem} from '../../../../models'; +import {NavigationLinkItemProps} from '../../../../models'; import NavigationItem from '../NavigationItem/NavigationItem'; import './NavigationPopup.scss'; @@ -12,7 +12,7 @@ import './NavigationPopup.scss'; const b = block('navigation-popup'); export interface NavigationPopupProps { - items: NavigationLinkItem[]; + items: NavigationLinkItemProps[]; onClose: () => void; left?: number; className?: string; diff --git a/src/components/navigation/components/SocialIcon/SocialIcon.tsx b/src/components/navigation/components/SocialIcon/SocialIcon.tsx index 7eee4fbe1..cde5ab339 100644 --- a/src/components/navigation/components/SocialIcon/SocialIcon.tsx +++ b/src/components/navigation/components/SocialIcon/SocialIcon.tsx @@ -1,7 +1,7 @@ import React from 'react'; import {block} from '../../../../utils'; -import {NavigationSocialItem} from '../../../../models'; +import {NavigationSocialItemProps} from '../../../../models'; import {Image} from '../../../index'; import {getMediaImage} from '../../../Media/Image/utils'; @@ -9,11 +9,11 @@ import './SocialIcon.scss'; const b = block('social-icon'); -export interface NavigationSocialItemProps extends NavigationSocialItem { +export interface NavigationSocialItemOwnProps extends NavigationSocialItemProps { className?: string; } -const SocialIcon: React.FC = ({icon, url, className}) => { +const SocialIcon: React.FC = ({icon, url, className}) => { const iconData = getMediaImage(icon); return ( diff --git a/src/components/navigation/containers/Layout/Layout.tsx b/src/components/navigation/containers/Layout/Layout.tsx index d4afeec80..f5a805854 100644 --- a/src/components/navigation/containers/Layout/Layout.tsx +++ b/src/components/navigation/containers/Layout/Layout.tsx @@ -1,7 +1,7 @@ import React from 'react'; import {block} from '../../../../utils'; -import {NavigationData} from '../../../../models'; +import {NavigationDataProps} from '../../../../models'; import Header from '../../components/Header/Header'; import './Layout.scss'; @@ -9,7 +9,7 @@ import './Layout.scss'; const b = block('layout'); export interface LayoutProps { - navigation?: NavigationData; + navigation?: NavigationDataProps; children?: React.ReactNode; } diff --git a/src/containers/PageConstructor/PageConstructor.tsx b/src/containers/PageConstructor/PageConstructor.tsx index c6931a54d..4ffc4a385 100644 --- a/src/containers/PageConstructor/PageConstructor.tsx +++ b/src/containers/PageConstructor/PageConstructor.tsx @@ -9,7 +9,7 @@ import { PageContent, CustomItems, BlockTypes, - NavigationData, + NavigationDataProps, } from '../../models'; import {blockMap, subBlockMap} from '../../constructor-items'; import {Grid} from '../../grid'; @@ -41,7 +41,7 @@ export interface PageConstructorProps { shouldRenderBlock?: ShouldRenderBlock; custom?: CustomConfig; renderMenu?: () => React.ReactNode; - navigation?: NavigationData; + navigation?: NavigationDataProps; } export const Constructor = (props: PageConstructorProps) => { diff --git a/src/containers/PageConstructor/__stories__/PageConstructor.stories.tsx b/src/containers/PageConstructor/__stories__/PageConstructor.stories.tsx index afbede809..c354f5ca5 100644 --- a/src/containers/PageConstructor/__stories__/PageConstructor.stories.tsx +++ b/src/containers/PageConstructor/__stories__/PageConstructor.stories.tsx @@ -1,6 +1,6 @@ import React from 'react'; import {Meta, Story} from '@storybook/react/types-6-0'; -import {HeaderBlockModel, NavigationData} from '../../../models'; +import {HeaderBlockModel, NavigationDataProps} from '../../../models'; import {PageConstructor} from '../PageConstructor'; import {CONTAINERS} from '../../../demo/constants'; @@ -39,7 +39,7 @@ const NavigationTemplate: Story = (args) => ( content={{ blocks: args.items, }} - navigation={data.navigation as NavigationData} + navigation={data.navigation as NavigationDataProps} /> ); diff --git a/src/models/navigation.ts b/src/models/navigation.ts index 2ae02b9c0..d883a444f 100644 --- a/src/models/navigation.ts +++ b/src/models/navigation.ts @@ -7,75 +7,78 @@ export enum NavigationItemType { Social = 'social', } -export interface NavigationItemBase { +export interface NavigationItemBaseProps { text: string; icon?: ImageProps; url?: string; } -export interface NavigationLinkItem extends NavigationItemBase { +export interface NavigationLinkItemProps extends NavigationItemBaseProps { type: NavigationItemType.Link; url: string; arrow?: boolean; target?: string; } -export interface NavigationButtonItem extends ButtonProps { +export interface NavigationButtonItemProps extends ButtonProps { type: NavigationItemType.Button; url: string; target?: string; } -export interface NavigationDropdownItem extends NavigationItemBase { +export interface NavigationDropdownItemProps extends NavigationItemBaseProps { type: NavigationItemType.Dropdown; - items: NavigationLinkItem[]; + items: NavigationLinkItemProps[]; } -export interface NavigationSocialItem extends Omit { +export interface NavigationSocialItemProps extends Omit { type: NavigationItemType.Social; icon: ImageProps; url: string; } -export type NavigationItem = NavigationLinkItem | NavigationButtonItem | NavigationDropdownItem; +export type NavigationItemProps = + | NavigationLinkItemProps + | NavigationButtonItemProps + | NavigationDropdownItemProps; -export type NavigationItemData = - | NavigationLinkItem - | NavigationButtonItem - | NavigationSocialItem - | DropdownItemData; +export type NavigationItemDataProps = + | NavigationLinkItemProps + | NavigationButtonItemProps + | NavigationSocialItemProps + | DropdownItemDataProps; -export type DropdownItemData = Omit; +export type DropdownItemDataProps = Omit; -export interface NavigationLogo { +export interface NavigationLogoProps { icon: ImageProps; text?: string; url?: string; } -export interface HeaderData { - leftItems: NavigationItem[]; - rightItems?: NavigationItem[]; +export interface HeaderDataProps { + leftItems: NavigationItemProps[]; + rightItems?: NavigationItemProps[]; } -export interface FooterColumn { +export interface FooterColumnProps { title: string; - links: NavigationItem[]; + links: NavigationItemProps[]; } -export interface FooterUnderline { - links?: NavigationItem[]; +export interface FooterUnderlineProps { + links?: NavigationItemProps[]; copyright?: string; } -export interface FooterData { - columns: FooterColumn[]; - social?: NavigationSocialItem[]; - underline?: FooterUnderline; +export interface FooterDataProps { + columns: FooterColumnProps[]; + social?: NavigationSocialItemProps[]; + underline?: FooterUnderlineProps; } -export interface NavigationData { - logo: NavigationLogo; - header: HeaderData; - footer?: FooterData; +export interface NavigationDataProps { + logo: NavigationLogoProps; + header: HeaderDataProps; + footer?: FooterDataProps; } From 56535838f31bb0b6bd31cd9d0106edaa00dd84d1 Mon Sep 17 00:00:00 2001 From: berdysheva Date: Tue, 6 Dec 2022 21:07:38 +0300 Subject: [PATCH 2/2] fix: type names and remove export --- src/components/index.ts | 2 - src/components/navigation/components/index.ts | 7 -- .../PageConstructor/PageConstructor.tsx | 6 +- .../__stories__/PageConstructor.stories.tsx | 4 +- src/models/navigation.ts | 64 +++++++++---------- .../navigation/components/Header/Header.scss | 4 +- .../navigation/components/Header/Header.tsx | 16 ++--- .../navigation/components/Logo/Logo.scss | 4 +- .../navigation/components/Logo/Logo.tsx | 12 ++-- .../MobileNavigation/MobileNavigation.scss | 4 +- .../MobileNavigation/MobileNavigation.tsx | 12 ++-- .../components/Navigation/Navigation.scss | 4 +- .../components/Navigation/Navigation.tsx | 14 ++-- .../NavigationItem/NavigationItem.scss | 4 +- .../NavigationItem/NavigationItem.tsx | 24 +++---- .../NavigationPopup/NavigationPopup.scss | 4 +- .../NavigationPopup/NavigationPopup.tsx | 8 +-- .../components/SocialIcon/SocialIcon.scss | 4 +- .../components/SocialIcon/SocialIcon.tsx | 10 +-- .../navigation/containers/Layout/Layout.scss | 0 .../navigation/containers/Layout/Layout.tsx | 6 +- 21 files changed, 100 insertions(+), 113 deletions(-) delete mode 100644 src/components/navigation/components/index.ts rename src/{components => }/navigation/components/Header/Header.scss (95%) rename src/{components => }/navigation/components/Header/Header.tsx (90%) rename src/{components => }/navigation/components/Logo/Logo.scss (77%) rename src/{components => }/navigation/components/Logo/Logo.tsx (61%) rename src/{components => }/navigation/components/MobileNavigation/MobileNavigation.scss (92%) rename src/{components => }/navigation/components/MobileNavigation/MobileNavigation.tsx (93%) rename src/{components => }/navigation/components/Navigation/Navigation.scss (88%) rename src/{components => }/navigation/components/Navigation/Navigation.tsx (93%) rename src/{components => }/navigation/components/NavigationItem/NavigationItem.scss (87%) rename src/{components => }/navigation/components/NavigationItem/NavigationItem.tsx (87%) rename src/{components => }/navigation/components/NavigationPopup/NavigationPopup.scss (86%) rename src/{components => }/navigation/components/NavigationPopup/NavigationPopup.tsx (91%) rename src/{components => }/navigation/components/SocialIcon/SocialIcon.scss (82%) rename src/{components => }/navigation/components/SocialIcon/SocialIcon.tsx (71%) rename src/{components => }/navigation/containers/Layout/Layout.scss (100%) rename src/{components => }/navigation/containers/Layout/Layout.tsx (77%) diff --git a/src/components/index.ts b/src/components/index.ts index f4ca5f48d..57a26789d 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -34,6 +34,4 @@ export {default as Author} from './Author/Author'; export {default as RouterLink} from './RouterLink/RouterLink'; export {default as HTML} from './HTML/HTML'; -export * from './navigation/components/index'; - export type {RouterLinkProps} from './RouterLink/RouterLink'; diff --git a/src/components/navigation/components/index.ts b/src/components/navigation/components/index.ts deleted file mode 100644 index 36451387c..000000000 --- a/src/components/navigation/components/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export {default as Header} from './Header/Header'; -export {default as NavigationItem} from './NavigationItem/NavigationItem'; -export {default as Logo} from './Logo/Logo'; -export {default as MobileNavigation} from './MobileNavigation/MobileNavigation'; -export {default as Navigation} from './Navigation/Navigation'; -export {default as NavigationPopup} from './NavigationPopup/NavigationPopup'; -export {default as SocialIcon} from './SocialIcon/SocialIcon'; diff --git a/src/containers/PageConstructor/PageConstructor.tsx b/src/containers/PageConstructor/PageConstructor.tsx index 4ffc4a385..51cc147e5 100644 --- a/src/containers/PageConstructor/PageConstructor.tsx +++ b/src/containers/PageConstructor/PageConstructor.tsx @@ -9,7 +9,7 @@ import { PageContent, CustomItems, BlockTypes, - NavigationDataProps, + NavigationData, } from '../../models'; import {blockMap, subBlockMap} from '../../constructor-items'; import {Grid} from '../../grid'; @@ -28,7 +28,7 @@ import {ConstructorRow} from './components/ConstructorRow'; import {ConstructorFootnotes} from './components/ConstructorFootnotes'; import {ConstructorHeader} from './components/ConstructorItem'; import {ConstructorBlocks} from './components/ConstructorBlocks'; -import Layout from '../../components/navigation/containers/Layout/Layout'; +import Layout from '../../navigation/containers/Layout/Layout'; import './PageConstructor.scss'; @@ -41,7 +41,7 @@ export interface PageConstructorProps { shouldRenderBlock?: ShouldRenderBlock; custom?: CustomConfig; renderMenu?: () => React.ReactNode; - navigation?: NavigationDataProps; + navigation?: NavigationData; } export const Constructor = (props: PageConstructorProps) => { diff --git a/src/containers/PageConstructor/__stories__/PageConstructor.stories.tsx b/src/containers/PageConstructor/__stories__/PageConstructor.stories.tsx index c354f5ca5..afbede809 100644 --- a/src/containers/PageConstructor/__stories__/PageConstructor.stories.tsx +++ b/src/containers/PageConstructor/__stories__/PageConstructor.stories.tsx @@ -1,6 +1,6 @@ import React from 'react'; import {Meta, Story} from '@storybook/react/types-6-0'; -import {HeaderBlockModel, NavigationDataProps} from '../../../models'; +import {HeaderBlockModel, NavigationData} from '../../../models'; import {PageConstructor} from '../PageConstructor'; import {CONTAINERS} from '../../../demo/constants'; @@ -39,7 +39,7 @@ const NavigationTemplate: Story = (args) => ( content={{ blocks: args.items, }} - navigation={data.navigation as NavigationDataProps} + navigation={data.navigation as NavigationData} /> ); diff --git a/src/models/navigation.ts b/src/models/navigation.ts index d883a444f..111962316 100644 --- a/src/models/navigation.ts +++ b/src/models/navigation.ts @@ -7,78 +7,78 @@ export enum NavigationItemType { Social = 'social', } -export interface NavigationItemBaseProps { +export interface NavigationItemBase { text: string; icon?: ImageProps; url?: string; } -export interface NavigationLinkItemProps extends NavigationItemBaseProps { +export interface NavigationLinkItem extends NavigationItemBase { type: NavigationItemType.Link; url: string; arrow?: boolean; target?: string; } -export interface NavigationButtonItemProps extends ButtonProps { +export interface NavigationButtonItem extends ButtonProps { type: NavigationItemType.Button; url: string; target?: string; } -export interface NavigationDropdownItemProps extends NavigationItemBaseProps { +export interface NavigationDropdownItem extends NavigationItemBase { type: NavigationItemType.Dropdown; - items: NavigationLinkItemProps[]; + items: NavigationLinkItem[]; } -export interface NavigationSocialItemProps extends Omit { +export interface NavigationSocialItem extends Omit { type: NavigationItemType.Social; icon: ImageProps; url: string; } -export type NavigationItemProps = - | NavigationLinkItemProps - | NavigationButtonItemProps - | NavigationDropdownItemProps; +export type NavigationItemModel = + | NavigationLinkItem + | NavigationButtonItem + | NavigationDropdownItem; -export type NavigationItemDataProps = - | NavigationLinkItemProps - | NavigationButtonItemProps - | NavigationSocialItemProps - | DropdownItemDataProps; +export type NavigationItemData = + | NavigationLinkItem + | NavigationButtonItem + | NavigationSocialItem + | DropdownItemData; -export type DropdownItemDataProps = Omit; +export type DropdownItemData = Omit; -export interface NavigationLogoProps { +export interface NavigationLogoData { icon: ImageProps; text?: string; url?: string; } -export interface HeaderDataProps { - leftItems: NavigationItemProps[]; - rightItems?: NavigationItemProps[]; +export interface HeaderData { + leftItems: NavigationItemModel[]; + rightItems?: NavigationItemModel[]; } -export interface FooterColumnProps { +export interface FooterColumn { title: string; - links: NavigationItemProps[]; + links: NavigationItemModel[]; } -export interface FooterUnderlineProps { - links?: NavigationItemProps[]; +export interface FooterUnderline { + links?: NavigationItemModel[]; copyright?: string; } -export interface FooterDataProps { - columns: FooterColumnProps[]; - social?: NavigationSocialItemProps[]; - underline?: FooterUnderlineProps; +export interface FooterData { + columns: FooterColumn[]; + social?: NavigationSocialItem[]; + underline?: FooterUnderline; } -export interface NavigationDataProps { - logo: NavigationLogoProps; - header: HeaderDataProps; - footer?: FooterDataProps; +export interface NavigationData { + logo: NavigationLogoData; + header: HeaderData; + footer?: FooterData; } diff --git a/src/components/navigation/components/Header/Header.scss b/src/navigation/components/Header/Header.scss similarity index 95% rename from src/components/navigation/components/Header/Header.scss rename to src/navigation/components/Header/Header.scss index abd5be65d..ddadd8c0b 100644 --- a/src/components/navigation/components/Header/Header.scss +++ b/src/navigation/components/Header/Header.scss @@ -1,5 +1,5 @@ -@import '../../../../../styles/variables.scss'; -@import '../../../../../styles/mixins.scss'; +@import '../../../../styles/variables'; +@import '../../../../styles/mixins'; $block: '.#{$ns}header'; diff --git a/src/components/navigation/components/Header/Header.tsx b/src/navigation/components/Header/Header.tsx similarity index 90% rename from src/components/navigation/components/Header/Header.tsx rename to src/navigation/components/Header/Header.tsx index 298d62985..44fb636c8 100644 --- a/src/components/navigation/components/Header/Header.tsx +++ b/src/navigation/components/Header/Header.tsx @@ -1,16 +1,16 @@ import React, {MouseEvent, useCallback, useState} from 'react'; -import {block} from '../../../../utils'; -import {HeaderDataProps, NavigationLogoProps} from '../../../../models'; -import {Col, Grid, Row} from '../../../../grid'; -import OutsideClick from '../../../OutsideClick/OutsideClick'; -import Control from '../../../Control/Control'; +import {block} from '../../../utils'; +import {HeaderData, NavigationLogoData} from '../../../models'; +import {Col, Grid, Row} from '../../../grid'; +import OutsideClick from '../../../components/OutsideClick/OutsideClick'; +import Control from '../../../components/Control/Control'; import Navigation from '../Navigation/Navigation'; import MobileNavigation from '../MobileNavigation/MobileNavigation'; import NavigationItem from '../NavigationItem/NavigationItem'; import Logo from '../Logo/Logo'; -import {NavigationClose, NavigationOpen} from '../../../../icons'; +import {NavigationClose, NavigationOpen} from '../../../icons'; import './Header.scss'; @@ -19,8 +19,8 @@ const b = block('header'); const ICON_SIZE = 36; export interface HeaderProps { - logo: NavigationLogoProps; - data: HeaderDataProps; + logo: NavigationLogoData; + data: HeaderData; } interface MobileMenuButtonProps { diff --git a/src/components/navigation/components/Logo/Logo.scss b/src/navigation/components/Logo/Logo.scss similarity index 77% rename from src/components/navigation/components/Logo/Logo.scss rename to src/navigation/components/Logo/Logo.scss index 9a2f71bc4..31ecc7d1c 100644 --- a/src/components/navigation/components/Logo/Logo.scss +++ b/src/navigation/components/Logo/Logo.scss @@ -1,5 +1,5 @@ -@import '../../../../../styles/variables.scss'; -@import '../../../../../styles/mixins.scss'; +@import '../../../../styles/variables'; +@import '../../../../styles/mixins'; $block: '.#{$ns}logo'; diff --git a/src/components/navigation/components/Logo/Logo.tsx b/src/navigation/components/Logo/Logo.tsx similarity index 61% rename from src/components/navigation/components/Logo/Logo.tsx rename to src/navigation/components/Logo/Logo.tsx index ad5d1e52c..04a15d2be 100644 --- a/src/components/navigation/components/Logo/Logo.tsx +++ b/src/navigation/components/Logo/Logo.tsx @@ -1,16 +1,16 @@ import React from 'react'; -import {block} from '../../../../utils'; -import {NavigationLogoProps} from '../../../../models'; -import RouterLink from '../../../RouterLink/RouterLink'; -import {getMediaImage} from '../../../Media/Image/utils'; -import {Image} from '../../../index'; +import {block} from '../../../utils'; +import {NavigationLogoData} from '../../../models'; +import RouterLink from '../../../components/RouterLink/RouterLink'; +import {getMediaImage} from '../../../components/Media/Image/utils'; +import {Image} from '../../../components'; import './Logo.scss'; const b = block('logo'); -export interface LogoProps extends NavigationLogoProps { +export interface LogoProps extends NavigationLogoData { className?: string; } diff --git a/src/components/navigation/components/MobileNavigation/MobileNavigation.scss b/src/navigation/components/MobileNavigation/MobileNavigation.scss similarity index 92% rename from src/components/navigation/components/MobileNavigation/MobileNavigation.scss rename to src/navigation/components/MobileNavigation/MobileNavigation.scss index 9602b7f6c..2e614a966 100644 --- a/src/components/navigation/components/MobileNavigation/MobileNavigation.scss +++ b/src/navigation/components/MobileNavigation/MobileNavigation.scss @@ -1,5 +1,5 @@ -@import '../../../../../styles/variables.scss'; -@import '../../../../../styles/mixins.scss'; +@import '../../../../styles/variables'; +@import '../../../../styles/mixins'; $block: '.#{$ns}mobile-navigation'; diff --git a/src/components/navigation/components/MobileNavigation/MobileNavigation.tsx b/src/navigation/components/MobileNavigation/MobileNavigation.tsx similarity index 93% rename from src/components/navigation/components/MobileNavigation/MobileNavigation.tsx rename to src/navigation/components/MobileNavigation/MobileNavigation.tsx index 86e28e7b6..3d3b73ba4 100644 --- a/src/components/navigation/components/MobileNavigation/MobileNavigation.tsx +++ b/src/navigation/components/MobileNavigation/MobileNavigation.tsx @@ -1,13 +1,9 @@ import React, {MouseEventHandler, useRef, useCallback} from 'react'; import {Popup, Portal} from '@gravity-ui/uikit'; -import {block} from '../../../../utils'; -import Foldable from '../../../Foldable/Foldable'; -import { - NavigationItemProps as NavigationItemModel, - NavigationDropdownItemProps, - NavigationItemType, -} from '../../../../models/navigation'; +import {block} from '../../../utils'; +import Foldable from '../../../components/Foldable/Foldable'; +import {NavigationItemModel, NavigationDropdownItem, NavigationItemType} from '../../../models'; import NavigationItem from '../NavigationItem/NavigationItem'; import './MobileNavigation.scss'; @@ -15,7 +11,7 @@ import './MobileNavigation.scss'; const b = block('mobile-navigation'); interface MobileNavigationDropdownProps { - data: NavigationDropdownItemProps; + data: NavigationDropdownItem; isOpened?: boolean; onItemClick?: MouseEventHandler; onToggle?: MouseEventHandler; diff --git a/src/components/navigation/components/Navigation/Navigation.scss b/src/navigation/components/Navigation/Navigation.scss similarity index 88% rename from src/components/navigation/components/Navigation/Navigation.scss rename to src/navigation/components/Navigation/Navigation.scss index bf08947e2..7d19de3a9 100644 --- a/src/components/navigation/components/Navigation/Navigation.scss +++ b/src/navigation/components/Navigation/Navigation.scss @@ -1,5 +1,5 @@ -@import '../../../../../styles/variables.scss'; -@import '../../../../../styles/mixins.scss'; +@import '../../../../styles/variables'; +@import '../../../../styles/mixins'; $block: '.#{$ns}navigation'; diff --git a/src/components/navigation/components/Navigation/Navigation.tsx b/src/navigation/components/Navigation/Navigation.tsx similarity index 93% rename from src/components/navigation/components/Navigation/Navigation.tsx rename to src/navigation/components/Navigation/Navigation.tsx index 6c53404c0..108d6d871 100644 --- a/src/components/navigation/components/Navigation/Navigation.tsx +++ b/src/navigation/components/Navigation/Navigation.tsx @@ -9,16 +9,16 @@ import React, { useRef, } from 'react'; -import {block} from '../../../../utils'; -import OverflowScroller from '../../../OverflowScroller/OverflowScroller'; +import {block} from '../../../utils'; +import OverflowScroller from '../../../components/OverflowScroller/OverflowScroller'; import { - NavigationDropdownItemProps, - NavigationItemProps as NavigationItemModel, + NavigationDropdownItem, + NavigationItemModel, NavigationItemType, -} from '../../../../models/navigation'; +} from '../../../models/navigation'; import NavigationPopup from '../NavigationPopup/NavigationPopup'; import NavigationItem from '../NavigationItem/NavigationItem'; -import {LocationContext} from '../../../../context/locationContext'; +import {LocationContext} from '../../../context/locationContext'; import './Navigation.scss'; @@ -33,7 +33,7 @@ export interface NavigationProps { } export interface NavigationDropdownProps { - data: NavigationDropdownItemProps; + data: NavigationDropdownItem; onClick: MouseEventHandler; isActive: boolean; position: number; diff --git a/src/components/navigation/components/NavigationItem/NavigationItem.scss b/src/navigation/components/NavigationItem/NavigationItem.scss similarity index 87% rename from src/components/navigation/components/NavigationItem/NavigationItem.scss rename to src/navigation/components/NavigationItem/NavigationItem.scss index 1c7f5f3fa..71619294f 100644 --- a/src/components/navigation/components/NavigationItem/NavigationItem.scss +++ b/src/navigation/components/NavigationItem/NavigationItem.scss @@ -1,5 +1,5 @@ -@import '../../../../../styles/variables.scss'; -@import '../../../../../styles/mixins.scss'; +@import '../../../../styles/variables'; +@import '../../../../styles/mixins'; $block: '.#{$ns}navigation-item'; diff --git a/src/components/navigation/components/NavigationItem/NavigationItem.tsx b/src/navigation/components/NavigationItem/NavigationItem.tsx similarity index 87% rename from src/components/navigation/components/NavigationItem/NavigationItem.tsx rename to src/navigation/components/NavigationItem/NavigationItem.tsx index ada349ba3..77f8243ae 100644 --- a/src/components/navigation/components/NavigationItem/NavigationItem.tsx +++ b/src/navigation/components/NavigationItem/NavigationItem.tsx @@ -1,26 +1,26 @@ import React, {Fragment, MouseEventHandler, useContext, useMemo} from 'react'; -import {block, getLinkProps} from '../../../../utils'; -import {RouterLink, ToggleArrow, Button, Image} from '../../../index'; -import {LocationContext} from '../../../../context/locationContext'; +import {block, getLinkProps} from '../../../utils'; +import {RouterLink, ToggleArrow, Button, Image} from '../../../components'; +import {LocationContext} from '../../../context/locationContext'; import { NavigationItemType, - NavigationLinkItemProps, + NavigationLinkItem, ImageProps, ButtonProps, - NavigationItemDataProps, - DropdownItemDataProps, -} from '../../../../models'; -import {NavigationArrow} from '../../../../icons'; + NavigationItemData, + DropdownItemData, +} from '../../../models'; +import {NavigationArrow} from '../../../icons'; import SocialIcon from '../SocialIcon/SocialIcon'; -import {getMediaImage} from '../../../Media/Image/utils'; +import {getMediaImage} from '../../../components/Media/Image/utils'; import './NavigationItem.scss'; const b = block('navigation-item'); export interface NavigationItemProps { - data: NavigationItemDataProps; + data: NavigationItemData; className?: string; onClick?: MouseEventHandler; isOpened?: boolean; @@ -33,7 +33,7 @@ const Content: React.FC<{text: string; icon?: ImageProps}> = ({text, icon}) => ( ); -type NavigationDropdownProps = NavigationItemProps & DropdownItemDataProps; +type NavigationDropdownProps = NavigationItemProps & DropdownItemData; const NavigationDropdown: React.FC = ({ text, @@ -57,7 +57,7 @@ const NavigationDropdown: React.FC = ({ ); }; -type NavigationLinkProps = NavigationItemProps & NavigationLinkItemProps; +type NavigationLinkProps = NavigationItemProps & NavigationLinkItem; const NavigationLink: React.FC = (props) => { const {hostname, Link} = useContext(LocationContext); diff --git a/src/components/navigation/components/NavigationPopup/NavigationPopup.scss b/src/navigation/components/NavigationPopup/NavigationPopup.scss similarity index 86% rename from src/components/navigation/components/NavigationPopup/NavigationPopup.scss rename to src/navigation/components/NavigationPopup/NavigationPopup.scss index 175e27308..b37a19d27 100644 --- a/src/components/navigation/components/NavigationPopup/NavigationPopup.scss +++ b/src/navigation/components/NavigationPopup/NavigationPopup.scss @@ -1,5 +1,5 @@ -@import '../../../../../styles/variables.scss'; -@import '../../../../../styles/mixins.scss'; +@import '../../../../styles/variables'; +@import '../../../../styles/mixins'; $block: '.#{$ns}navigation-popup'; diff --git a/src/components/navigation/components/NavigationPopup/NavigationPopup.tsx b/src/navigation/components/NavigationPopup/NavigationPopup.tsx similarity index 91% rename from src/components/navigation/components/NavigationPopup/NavigationPopup.tsx rename to src/navigation/components/NavigationPopup/NavigationPopup.tsx index 8f875ffa2..bd12381cb 100644 --- a/src/components/navigation/components/NavigationPopup/NavigationPopup.tsx +++ b/src/navigation/components/NavigationPopup/NavigationPopup.tsx @@ -2,9 +2,9 @@ import _ from 'lodash'; import React, {useRef, useState, useEffect, useCallback} from 'react'; import {Portal} from '@gravity-ui/uikit'; -import {block} from '../../../../utils'; -import {OutsideClick} from '../../../index'; -import {NavigationLinkItemProps} from '../../../../models'; +import {block} from '../../../utils'; +import {OutsideClick} from '../../../components'; +import {NavigationLinkItem} from '../../../models'; import NavigationItem from '../NavigationItem/NavigationItem'; import './NavigationPopup.scss'; @@ -12,7 +12,7 @@ import './NavigationPopup.scss'; const b = block('navigation-popup'); export interface NavigationPopupProps { - items: NavigationLinkItemProps[]; + items: NavigationLinkItem[]; onClose: () => void; left?: number; className?: string; diff --git a/src/components/navigation/components/SocialIcon/SocialIcon.scss b/src/navigation/components/SocialIcon/SocialIcon.scss similarity index 82% rename from src/components/navigation/components/SocialIcon/SocialIcon.scss rename to src/navigation/components/SocialIcon/SocialIcon.scss index f1c1b4daa..26a5b7e13 100644 --- a/src/components/navigation/components/SocialIcon/SocialIcon.scss +++ b/src/navigation/components/SocialIcon/SocialIcon.scss @@ -1,5 +1,5 @@ -@import '../../../../../styles/variables.scss'; -@import '../../../../../styles/mixins.scss'; +@import '../../../../styles/variables'; +@import '../../../../styles/mixins'; $block: '.#{$ns}social-icon'; diff --git a/src/components/navigation/components/SocialIcon/SocialIcon.tsx b/src/navigation/components/SocialIcon/SocialIcon.tsx similarity index 71% rename from src/components/navigation/components/SocialIcon/SocialIcon.tsx rename to src/navigation/components/SocialIcon/SocialIcon.tsx index cde5ab339..209f224d9 100644 --- a/src/components/navigation/components/SocialIcon/SocialIcon.tsx +++ b/src/navigation/components/SocialIcon/SocialIcon.tsx @@ -1,15 +1,15 @@ import React from 'react'; -import {block} from '../../../../utils'; -import {NavigationSocialItemProps} from '../../../../models'; -import {Image} from '../../../index'; -import {getMediaImage} from '../../../Media/Image/utils'; +import {block} from '../../../utils'; +import {NavigationSocialItem} from '../../../models'; +import {Image} from '../../../components'; +import {getMediaImage} from '../../../components/Media/Image/utils'; import './SocialIcon.scss'; const b = block('social-icon'); -export interface NavigationSocialItemOwnProps extends NavigationSocialItemProps { +export interface NavigationSocialItemOwnProps extends NavigationSocialItem { className?: string; } diff --git a/src/components/navigation/containers/Layout/Layout.scss b/src/navigation/containers/Layout/Layout.scss similarity index 100% rename from src/components/navigation/containers/Layout/Layout.scss rename to src/navigation/containers/Layout/Layout.scss diff --git a/src/components/navigation/containers/Layout/Layout.tsx b/src/navigation/containers/Layout/Layout.tsx similarity index 77% rename from src/components/navigation/containers/Layout/Layout.tsx rename to src/navigation/containers/Layout/Layout.tsx index f5a805854..7fc835b95 100644 --- a/src/components/navigation/containers/Layout/Layout.tsx +++ b/src/navigation/containers/Layout/Layout.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import {block} from '../../../../utils'; -import {NavigationDataProps} from '../../../../models'; +import {block} from '../../../utils'; +import {NavigationData} from '../../../models'; import Header from '../../components/Header/Header'; import './Layout.scss'; @@ -9,7 +9,7 @@ import './Layout.scss'; const b = block('layout'); export interface LayoutProps { - navigation?: NavigationDataProps; + navigation?: NavigationData; children?: React.ReactNode; }