Skip to content

Commit a87accd

Browse files
authored
fix(components): add color variables for breadcrumb (#740)
* fix(components): add color variables for breadcrumb * test: update snapshots * fix: improve stylelint * test: increase test coverage
1 parent 5d93078 commit a87accd

File tree

4 files changed

+36
-2
lines changed

4 files changed

+36
-2
lines changed

src/components/breadcrumb/__tests__/__snapshots__/breadcrumb.test.tsx.snap

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ exports[`Test Breadcrumb Component Should render Breadcrumb multiply levels 1`]
77
<a
88
className="mo-breadcrumb__item"
99
onClick={[Function]}
10+
onContextMenu={[Function]}
11+
tabIndex={0}
1012
>
1113
<span
1214
className="mo-breadcrumb__label"
@@ -20,6 +22,8 @@ exports[`Test Breadcrumb Component Should render Breadcrumb multiply levels 1`]
2022
<a
2123
className="mo-breadcrumb__item"
2224
onClick={[Function]}
25+
onContextMenu={[Function]}
26+
tabIndex={0}
2327
>
2428
<span
2529
className="mo-breadcrumb__label"
@@ -33,6 +37,8 @@ exports[`Test Breadcrumb Component Should render Breadcrumb multiply levels 1`]
3337
<a
3438
className="mo-breadcrumb__item"
3539
onClick={[Function]}
40+
onContextMenu={[Function]}
41+
tabIndex={0}
3642
>
3743
<span
3844
className="mo-breadcrumb__label"

src/components/breadcrumb/__tests__/breadcrumb.test.tsx

+20-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
import React from 'react';
22
import renderer from 'react-test-renderer';
3-
import { fireEvent, render } from '@testing-library/react';
3+
import { createEvent, fireEvent, render } from '@testing-library/react';
44
import { Breadcrumb } from 'mo/components/breadcrumb';
55
import type { IBreadcrumbItemProps } from 'mo/components/breadcrumb';
6-
import { breadcrumbLabelClassName, defaultBreadcrumbClassName } from '../base';
6+
import {
7+
breadcrumbItemClassName,
8+
breadcrumbLabelClassName,
9+
defaultBreadcrumbClassName,
10+
} from '../base';
711

812
const mockData: IBreadcrumbItemProps[] = new Array(3)
913
.fill(1)
@@ -126,4 +130,18 @@ describe('Test Breadcrumb Component', () => {
126130
expect(container?.title).toBe('test');
127131
expect(container?.dataset.jest).toBe('test');
128132
});
133+
134+
test('Should forbid the default of contextMenu', () => {
135+
const wrapper = render(<Breadcrumb routes={mockData} />);
136+
const doms = wrapper.container.querySelectorAll(
137+
`.${breadcrumbItemClassName}`
138+
);
139+
const breadcrumb = doms[0];
140+
141+
const myEvent = createEvent.contextMenu(breadcrumb);
142+
Object.assign(myEvent, { preventDefault: jest.fn() });
143+
fireEvent(breadcrumb, myEvent);
144+
145+
expect(myEvent.preventDefault).toBeCalledTimes(1);
146+
});
129147
});

src/components/breadcrumb/index.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ export function Breadcrumb(props: IBreadcrumbProps) {
7474
title={title}
7575
style={style}
7676
href={href}
77+
tabIndex={0}
78+
onContextMenu={(e) => e.preventDefault()}
7779
onClick={(e) => onClick?.(e, route)}
7880
{...getDataAttributionsFromProps(rest)}
7981
>

src/components/breadcrumb/style.scss

+8
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,20 @@
55

66
&__item {
77
align-items: center;
8+
background-color: var(--breadcrumb-background);
9+
color: var(--breadcrumb-foreground);
810
color: inherit;
911
cursor: pointer;
1012
display: flex;
1113
justify-content: left;
1214
text-decoration: none;
1315

16+
&:focus {
17+
color: var(--breadcrumb-focusForeground);
18+
outline: 1px solid var(--list-focusOutline);
19+
outline-offset: -1px;
20+
}
21+
1422
&:hover {
1523
opacity: 0.8;
1624
}

0 commit comments

Comments
 (0)