Merge pull request #19 from KieIO/m3-sonnguyen

m3-sonnguyen Breadcrumb Common
This commit is contained in:
lytrankieio123 2021-09-07 09:23:10 +07:00 committed by GitHub
commit a9f9f06eb9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 84 additions and 6 deletions

View File

@ -1,13 +1,8 @@
import { useState } from 'react' import { useState } from 'react'
import { import {
ButtonCommon, ButtonCommon,
Layout, Layout, ModalInfo
ModalCommon,
ModalConfirm,
ModalInfo,
ProductCarousel,
} from 'src/components/common' } from 'src/components/common'
export default function Test() { export default function Test() {
const [visible, setVisible] = useState(false) const [visible, setVisible] = useState(false)
const onClose = () => { const onClose = () => {

View File

@ -0,0 +1,8 @@
@import '../../../styles/utilities';
.breadcrumbCommon {
color: var(--text-base);
.currentItem {
cursor: default;
}
}

View File

@ -0,0 +1,37 @@
import React from 'react'
import { ROUTE } from 'src/utils/constanst.utils'
import s from './BreadcrumbCommon.module.scss'
import BreadcrumbItem from './components/BreadcrumbItem/BreadcrumbItem'
import BreadcrumbSeparator from './components/BreadcrumbSeparator/BreadcrumbSeparator'
interface BreadcrumbCommonProps {
crumbs: { link: string, name: string }[];
showHomePage?: boolean;
}
const BreadcrumbCommon = ({ crumbs, showHomePage = true }: BreadcrumbCommonProps) => {
return (
<section className={s.breadcrumbCommon}>
{
showHomePage && <BreadcrumbItem key='Home' text='Home' href={ROUTE.HOME} />
}
{
crumbs.length > 0 && <>
{
crumbs.slice(0, crumbs.length - 1).map((crumb) => (
< BreadcrumbSeparator key={crumb.name}>
<BreadcrumbItem text={crumb.name} href={crumb.link} />
</BreadcrumbSeparator>
))}
< BreadcrumbSeparator>
<span className={s.currentItem}>{crumbs[crumbs.length - 1].name}</span>
</BreadcrumbSeparator>
</>
}
</section >
)
}
export default BreadcrumbCommon

View File

@ -0,0 +1,5 @@
.breadcrumbItem {
&:hover {
color: var(--primary);
}
}

View File

@ -0,0 +1,18 @@
import React from 'react'
import Link from 'next/link'
import s from './BreadcrumbItem.module.scss'
interface BreadcrumbItemProps {
text: string;
href: string;
}
const BreadcrumbItem = ({ text, href }: BreadcrumbItemProps) => {
return (
<Link href={href}>
<a className={s.breadcrumbItem}>{text}</a>
</Link>
)
}
export default BreadcrumbItem

View File

@ -0,0 +1,15 @@
import React from 'react'
interface BreadcrumbSeparatorProps {
children?: React.ReactNode
}
const BreadcrumbSeparator = ({ children }: BreadcrumbSeparatorProps) => {
return (
<span>
&nbsp;/&nbsp;{children}
</span>
)
}
export default BreadcrumbSeparator