-
Notifications
You must be signed in to change notification settings - Fork 14
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
feat: add standalone navigation #693
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
import React, {PropsWithChildren} from 'react'; | ||
|
||
import {useTheme} from '../../context/theme'; | ||
import {ClassNameProps} from '../../models'; | ||
import {rootCn} from '../../utils'; | ||
|
||
const RootCn = ({className, children}: PropsWithChildren<ClassNameProps>) => { | ||
const theme = useTheme(); | ||
|
||
return <div className={rootCn({theme}, className)}>{children}</div>; | ||
}; | ||
|
||
export default RootCn; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import {useContext} from 'react'; | ||
|
||
import isEmpty from 'lodash/isEmpty'; | ||
|
||
import {navItemMap as NavItemMapDefault} from '../../../../constructor-items'; | ||
import {InnerContext} from '../../../../context/innerContext'; | ||
|
||
export const useNavItemMap = () => { | ||
const {navItemMap} = useContext(InnerContext); | ||
|
||
return isEmpty(navItemMap) ? NavItemMapDefault : navItemMap; | ||
}; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
import React from 'react'; | ||
|
||
import RootCn from '../../../components/RootCn'; | ||
|
||
import Navigation, {NavigationProps} from './../../components/Navigation/Navigation'; | ||
|
||
const Standalone = (props: NavigationProps) => ( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is const exists and its name Standalone? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I called it so because you can import and use this Navigation component regardless of constructor itself There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you add to readme the example of how to import navigation and use it with theme please? |
||
<RootCn> | ||
<Navigation {...props} /> | ||
</RootCn> | ||
); | ||
|
||
export default Standalone; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
export {default as Navigation} from './components/Standalone'; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,11 @@ | ||
import {withNaming} from '@bem-react/classname'; | ||
|
||
import {UIKIT_ROOT_CLASS} from '../components/constants'; | ||
|
||
export const NAMESPACE = 'pc-'; | ||
|
||
export const cn = withNaming({e: '__', m: '_'}); | ||
export const block = withNaming({n: NAMESPACE, e: '__', m: '_'}); | ||
export const rootCn = cn(UIKIT_ROOT_CLASS); | ||
|
||
export type CnBlock = ReturnType<typeof cn>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a suggestion: