@loadsmart/loadsmart-ui 5.3.2 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loadsmart/loadsmart-ui",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.0",
|
|
4
4
|
"description": "Miranda UI, a React UI library",
|
|
5
5
|
"main": "dist",
|
|
6
6
|
"files": [
|
|
@@ -103,7 +103,6 @@
|
|
|
103
103
|
"@testing-library/react-hooks": "5.1.2",
|
|
104
104
|
"@testing-library/user-event": "13.1.9",
|
|
105
105
|
"@types/chance": "1.1.1",
|
|
106
|
-
"@types/enzyme": "3.10.8",
|
|
107
106
|
"@types/jest": "26.0.23",
|
|
108
107
|
"@types/lodash.debounce": "4.0.6",
|
|
109
108
|
"@types/lodash.flatten": "4.4.6",
|
|
@@ -117,7 +116,6 @@
|
|
|
117
116
|
"@types/styled-components": "5.1.9",
|
|
118
117
|
"@typescript-eslint/eslint-plugin": "4.22.1",
|
|
119
118
|
"@typescript-eslint/parser": "4.22.1",
|
|
120
|
-
"@wojtekmaj/enzyme-adapter-react-17": "0.6.1",
|
|
121
119
|
"@zerollup/ts-transform-paths": "1.7.18",
|
|
122
120
|
"autoprefixer": "9",
|
|
123
121
|
"babel-jest": "26.6.3",
|
|
@@ -130,7 +128,6 @@
|
|
|
130
128
|
"commitizen": "4.2.4",
|
|
131
129
|
"cross-env": "7.0.3",
|
|
132
130
|
"cz-conventional-changelog": "3.3.0",
|
|
133
|
-
"enzyme": "3.11.0",
|
|
134
131
|
"eslint": "7.26.0",
|
|
135
132
|
"eslint-config-prettier": "8.3.0",
|
|
136
133
|
"eslint-plugin-jest-dom": "3.8.1",
|
|
@@ -14,7 +14,7 @@ describe('<Breadcrumbs />', () => {
|
|
|
14
14
|
|
|
15
15
|
setup({ entries })
|
|
16
16
|
|
|
17
|
-
expect(screen.
|
|
17
|
+
expect(screen.getByRole('list')).not.toBeEmptyDOMElement()
|
|
18
18
|
|
|
19
19
|
for (let i = 0; i < entries.length; i++) {
|
|
20
20
|
screen.getByText(entries[i].label)
|
|
@@ -26,7 +26,7 @@ describe('<Breadcrumbs />', () => {
|
|
|
26
26
|
|
|
27
27
|
setup({ entries })
|
|
28
28
|
|
|
29
|
-
expect(screen.
|
|
29
|
+
expect(screen.getByRole('list')).toBeEmptyDOMElement()
|
|
30
30
|
})
|
|
31
31
|
|
|
32
32
|
it('renders active breadcrumb correctly', () => {
|
|
@@ -36,13 +36,15 @@ describe('<Breadcrumbs />', () => {
|
|
|
36
36
|
({ index }) => ({
|
|
37
37
|
label: generator.word(),
|
|
38
38
|
active: index === activeIndex,
|
|
39
|
+
url: '/',
|
|
39
40
|
}),
|
|
40
41
|
9
|
|
41
42
|
)
|
|
42
43
|
|
|
43
44
|
setup({ entries })
|
|
44
45
|
|
|
45
|
-
expect(screen.
|
|
46
|
+
expect(screen.getAllByRole('listitem')[activeIndex]).toHaveClass('is-active')
|
|
47
|
+
expect(screen.getAllByRole('link')[activeIndex]).toHaveAttribute('aria-current', 'page')
|
|
46
48
|
})
|
|
47
49
|
|
|
48
50
|
it('render non-url and non-onClick breadcrumb correctly', () => {
|
|
@@ -114,6 +116,10 @@ describe('<Breadcrumbs />', () => {
|
|
|
114
116
|
|
|
115
117
|
setup({ entries, onBack: jest.fn() })
|
|
116
118
|
|
|
117
|
-
expect(
|
|
119
|
+
expect(
|
|
120
|
+
screen.getByRole('button', {
|
|
121
|
+
name: 'Back to previous page',
|
|
122
|
+
})
|
|
123
|
+
).toBeInTheDocument()
|
|
118
124
|
})
|
|
119
125
|
})
|
|
@@ -47,22 +47,30 @@ const StyledLi = styled.li<BreadcrumbProps>`
|
|
|
47
47
|
position: absolute;
|
|
48
48
|
left: calc(100% + 14px);
|
|
49
49
|
|
|
50
|
-
font-weight:
|
|
50
|
+
font-weight: ${token('font-weight-bold')};
|
|
51
51
|
font-size: ${token('breadcrumbs-font-size')};
|
|
52
52
|
|
|
53
|
+
line-height: ${token('breadcrumbs-font-height')};
|
|
54
|
+
|
|
53
55
|
content: '/';
|
|
54
56
|
}
|
|
55
57
|
`
|
|
56
58
|
|
|
57
59
|
function getWrappedLabel(props: Partial<BreadcrumbProps>) {
|
|
58
|
-
const { url, label, onClick, ...rest } = props
|
|
60
|
+
const { url, label, onClick, active, ...rest } = props
|
|
59
61
|
|
|
60
62
|
if (isNil(url) && !onClick) {
|
|
61
63
|
return label
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
return (
|
|
65
|
-
<StyledLink
|
|
67
|
+
<StyledLink
|
|
68
|
+
href={url}
|
|
69
|
+
target="_self"
|
|
70
|
+
onClick={onClick}
|
|
71
|
+
{...(active && {'aria-current': 'page'})}
|
|
72
|
+
{...rest}
|
|
73
|
+
>
|
|
66
74
|
{label}
|
|
67
75
|
</StyledLink>
|
|
68
76
|
)
|
|
@@ -76,7 +84,7 @@ function Breadcrumb({ active, label, url, ...rest }: BreadcrumbProps): JSX.Eleme
|
|
|
76
84
|
data-testid="breadcrumb"
|
|
77
85
|
active={active}
|
|
78
86
|
>
|
|
79
|
-
{getWrappedLabel({ label, url, ...rest })}
|
|
87
|
+
{getWrappedLabel({ label, url, active, ...rest })}
|
|
80
88
|
</StyledLi>
|
|
81
89
|
)
|
|
82
90
|
}
|
|
@@ -12,12 +12,12 @@ export interface BreadcrumbsProps {
|
|
|
12
12
|
onBack?: (e: MouseEvent<HTMLButtonElement>) => void
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
const StyledWrapper = styled.
|
|
15
|
+
const StyledWrapper = styled.nav`
|
|
16
16
|
display: flex;
|
|
17
17
|
flex-direction: row;
|
|
18
18
|
`
|
|
19
19
|
|
|
20
|
-
const
|
|
20
|
+
const StyledOl = styled.ol`
|
|
21
21
|
display: flex;
|
|
22
22
|
flex-direction: row;
|
|
23
23
|
margin: 0;
|
|
@@ -31,18 +31,23 @@ const StyledBackButton = styled(BackButton)`
|
|
|
31
31
|
margin: 0 ${token('space-m')} 0 0;
|
|
32
32
|
`
|
|
33
33
|
|
|
34
|
-
function Breadcrumbs({ entries, onBack, disabled, ...others }: BreadcrumbsProps): JSX.Element {
|
|
34
|
+
function Breadcrumbs({ entries = [], onBack, disabled, ...others }: BreadcrumbsProps): JSX.Element {
|
|
35
35
|
return (
|
|
36
|
-
<StyledWrapper {...others}>
|
|
36
|
+
<StyledWrapper aria-label="Breadcrumb" {...others}>
|
|
37
37
|
{onBack && (
|
|
38
|
-
<StyledBackButton
|
|
38
|
+
<StyledBackButton
|
|
39
|
+
data-testid="breadcrumbs-back"
|
|
40
|
+
onClick={onBack}
|
|
41
|
+
disabled={disabled}
|
|
42
|
+
aria-label="Back to previous page"
|
|
43
|
+
/>
|
|
39
44
|
)}
|
|
40
45
|
|
|
41
|
-
<
|
|
42
|
-
{
|
|
46
|
+
<StyledOl data-testid="breadcrumbs">
|
|
47
|
+
{entries.map((entry: BreadcrumbProps) => {
|
|
43
48
|
return <Breadcrumb key={entry.label} {...entry} />
|
|
44
49
|
})}
|
|
45
|
-
</
|
|
50
|
+
</StyledOl>
|
|
46
51
|
</StyledWrapper>
|
|
47
52
|
)
|
|
48
53
|
}
|