Skip to content

Commit 0ea575c

Browse files
authored
Merge pull request #1334 from dxc-technology/gomezivann-quicknav-fix
Refactoring the html code of the quick nav
2 parents 63245f6 + e9ae4e8 commit 0ea575c

File tree

2 files changed

+63
-22
lines changed

2 files changed

+63
-22
lines changed

lib/src/quick-nav/QuickNav.stories.tsx

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,36 @@ export default {
1111
component: DxcQuickNav,
1212
};
1313

14+
const defaultLinks = [
15+
{
16+
label: "Overview",
17+
id: "overview",
18+
},
19+
{
20+
label: "Principles",
21+
id: "principles",
22+
links: [
23+
{ label: "Color", id: "color" },
24+
{ label: "Spacing", id: "spacing" },
25+
{ label: "Typography", id: "typography" },
26+
],
27+
},
28+
{
29+
label: "Components",
30+
id: "components",
31+
links: [
32+
{
33+
label: "Accordion",
34+
id: "accordion",
35+
},
36+
{
37+
label: "Button",
38+
id: "button",
39+
},
40+
],
41+
},
42+
];
43+
1444
const links = [
1545
{
1646
label: "Overview",
@@ -48,19 +78,25 @@ export const Chromatic = () => (
4878
<ExampleContainer>
4979
<Title title="Default" level={4} />
5080
<QuickNavContainer>
51-
<DxcQuickNav links={links}></DxcQuickNav>
81+
<DxcQuickNav links={defaultLinks} />
82+
</QuickNavContainer>
83+
</ExampleContainer>
84+
<ExampleContainer>
85+
<Title title="Text overflow" level={4} />
86+
<QuickNavContainer>
87+
<DxcQuickNav links={links} />
5288
</QuickNavContainer>
5389
</ExampleContainer>
5490
<ExampleContainer pseudoState="pseudo-hover">
5591
<Title title="Link hovered" level={4} />
5692
<QuickNavContainer>
57-
<DxcQuickNav links={links}></DxcQuickNav>
93+
<DxcQuickNav links={links} />
5894
</QuickNavContainer>
5995
</ExampleContainer>
6096
<ExampleContainer pseudoState="pseudo-focus">
6197
<Title title="Link focus" level={4} />
6298
<QuickNavContainer>
63-
<DxcQuickNav links={links}></DxcQuickNav>
99+
<DxcQuickNav links={links} />
64100
</QuickNavContainer>
65101
</ExampleContainer>
66102
<ExampleContainer>
@@ -233,7 +269,7 @@ export const Chromatic = () => (
233269
</Content>
234270
</ContentContainer>
235271
<QuickNavContainer>
236-
<DxcQuickNav title="Sections" links={links}></DxcQuickNav>
272+
<DxcQuickNav title="Sections" links={links} />
237273
</QuickNavContainer>
238274
</Container>
239275
</ExampleContainer>

lib/src/quick-nav/QuickNav.tsx

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// @ts-nocheck
21
import React from "react";
32
import styled, { ThemeProvider } from "styled-components";
43
import slugify from "slugify";
@@ -20,26 +19,26 @@ const DxcQuickNav = ({ title, links }: QuickNavTypes): JSX.Element => {
2019
<DxcFlex direction="column" gap="0.5rem">
2120
<DxcHeading level={4} text={title || translatedLabels.quickNav.contentTitle} />
2221
<ListColumn>
23-
<DxcFlex direction="column" gap="0.5rem">
24-
{links.map((link) => (
25-
<ListRow key={link.label}>
26-
<DxcInset space="0.25rem">
27-
<DxcTypography>
28-
<Link href={`#${slugify(link?.label, { lower: true })}`}>{link?.label}</Link>
22+
{links.map((link) => (
23+
<li key={link.label}>
24+
<DxcInset space="0.25rem">
25+
<DxcTypography>
26+
<Link href={`#${slugify(link?.label, { lower: true })}`}>{link?.label}</Link>
27+
<ListSecondColumn>
2928
{link.links?.map((sublink) => (
30-
<ListRow key={sublink.label}>
29+
<li key={sublink.label}>
3130
<DxcInset horizontal="0.5rem">
3231
<DxcTypography>
3332
<Link href={`#${slugify(sublink?.label, { lower: true })}`}>{sublink?.label}</Link>
3433
</DxcTypography>
3534
</DxcInset>
36-
</ListRow>
35+
</li>
3736
))}
38-
</DxcTypography>
39-
</DxcInset>
40-
</ListRow>
41-
))}
42-
</DxcFlex>
37+
</ListSecondColumn>
38+
</DxcTypography>
39+
</DxcInset>
40+
</li>
41+
))}
4342
</ListColumn>
4443
</DxcFlex>
4544
</QuickNavContainer>
@@ -56,14 +55,20 @@ const QuickNavContainer = styled.div`
5655
`;
5756

5857
const ListColumn = styled.ul`
59-
list-style-type: none;
58+
display: flex;
59+
flex-direction: column;
60+
gap: 0.5rem;
6061
margin: 0;
6162
padding: 0;
62-
width: 100%;
63+
list-style-type: none;
6364
`;
6465

65-
const ListRow = styled.li`
66-
width: 100%;
66+
const ListSecondColumn = styled.ul`
67+
display: flex;
68+
flex-direction: column;
69+
margin: 0;
70+
padding: 0;
71+
list-style-type: none;
6772
`;
6873

6974
const Link = styled.a`

0 commit comments

Comments
 (0)