From c51ab20086870f9421aeeeb214625846fe485e20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20Le=20Ralec?= Date: Wed, 27 Dec 2023 11:31:07 +0100 Subject: [PATCH] chore(breadcrumb): change active color item --- docs/pages/components/breadcrumb.mdx | 10 +++--- packages/Breadcrumb/src/Item.styles.ts | 45 ++++++++++---------------- packages/Breadcrumb/src/Item.tsx | 10 +++--- packages/Breadcrumb/src/index.tsx | 1 - packages/Core/src/theme/breadcrumbs.ts | 2 +- 5 files changed, 29 insertions(+), 39 deletions(-) diff --git a/docs/pages/components/breadcrumb.mdx b/docs/pages/components/breadcrumb.mdx index 0fb5f8311b..e188f14089 100644 --- a/docs/pages/components/breadcrumb.mdx +++ b/docs/pages/components/breadcrumb.mdx @@ -67,15 +67,15 @@ By default we removed clickable the last child. You can change this by set to fa ``` -## Item disable +## Items without link will be disable -You can disable an item. +We are looking for "href" prop. (or "to" prop for react-router) ```jsx - Introduction - Components - Breadcrumb + Introduction + Disabled + Breadcrumb ``` diff --git a/packages/Breadcrumb/src/Item.styles.ts b/packages/Breadcrumb/src/Item.styles.ts index db1004d7c7..e280b9d178 100644 --- a/packages/Breadcrumb/src/Item.styles.ts +++ b/packages/Breadcrumb/src/Item.styles.ts @@ -1,35 +1,24 @@ -import styled, { css, th } from '@xstyled/styled-components' -import { shouldForwardProp } from '@welcome-ui/system' +import styled, { th } from '@xstyled/styled-components' -interface ItemProps { - isActive: boolean -} - -export const Item = styled.aBox.withConfig({ shouldForwardProp })( - ({ isActive }) => css` - ${th('breadcrumbs.item.default')}; - align-items: center; - transition: medium; - direction: initial; +export const Item = styled.aBox` + ${th('breadcrumbs.item.default')}; + align-items: center; + transition: medium; + direction: initial; - ${!isActive && - css` - &:hover { - ${th('breadcrumbs.item.hover')}; - } - `}; + &:hover { + ${th('breadcrumbs.item.hover')}; + } - &[aria-disabled='true'] { - pointer-events: none; - cursor: default; - } + &[aria-current='page'] { + ${th('breadcrumbs.item.active')}; + } - ${isActive && - css` - ${th('breadcrumbs.item.active')}; - `} - ` -) + &[aria-disabled='true'] { + pointer-events: none; + cursor: default; + } +` export const Separator = styled.span` ${th('breadcrumbs.separator')}; diff --git a/packages/Breadcrumb/src/Item.tsx b/packages/Breadcrumb/src/Item.tsx index 0b34427cd6..5fcd2ba2a7 100644 --- a/packages/Breadcrumb/src/Item.tsx +++ b/packages/Breadcrumb/src/Item.tsx @@ -6,9 +6,10 @@ import * as S from './Item.styles' export interface ItemOptions { children: React.ReactNode - disabled?: boolean separator?: string | React.ReactNode isActive?: boolean + /* useful for react-router */ + to?: string } export type ItemProps = CreateWuiProps<'a', ItemOptions> @@ -17,7 +18,9 @@ export type ItemProps = CreateWuiProps<'a', ItemOptions> * @name Breadcrumb.Item */ export const Item = forwardRef<'a', ItemProps>( - ({ children, dataTestId, disabled, isActive, separator, ...rest }, ref) => { + ({ children, dataTestId, isActive, separator, ...rest }, ref) => { + const isClickable = rest.href || rest.to + return ( ( {separator && {separator}} diff --git a/packages/Breadcrumb/src/index.tsx b/packages/Breadcrumb/src/index.tsx index cbec7b0d9d..2c94dbfc98 100644 --- a/packages/Breadcrumb/src/index.tsx +++ b/packages/Breadcrumb/src/index.tsx @@ -58,7 +58,6 @@ export const BreadcrumbComponent = forwardRef<'div', BreadcrumbProps>( key: `breadcrumb-${index}`, separator: isLastChild ? undefined : separator, isActive, - as: !!isActive && 'span', ...child.props, }) }) diff --git a/packages/Core/src/theme/breadcrumbs.ts b/packages/Core/src/theme/breadcrumbs.ts index 5a49293447..f42433ab35 100644 --- a/packages/Core/src/theme/breadcrumbs.ts +++ b/packages/Core/src/theme/breadcrumbs.ts @@ -29,7 +29,7 @@ export const getBreadcrumbs = (theme: WuiTheme): ThemeBreadcrumbs => { color: colors['dark-700'], }, active: { - color: colors['dark-900'], + color: colors['dark-700'], }, }, separator: {