Skip to content

Commit eb0df36

Browse files
authored
235 home icon for breadcrumbs is always the root no base url (#236)
* Add baseUrl prop to Breadcrumbs component * Test baseUrl crumb prop against the doc site itself * Update the breadcrumbs docs to reflect prop changes
1 parent 4921d1c commit eb0df36

3 files changed

Lines changed: 30 additions & 12 deletions

File tree

lib/components/navigation/breadcrumbs.jsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function BreadcrumbItem({ className, href, text }) {
3030
);
3131
}
3232

33-
function Breadcrumbs({ className, children }) {
33+
function Breadcrumbs({ className, children, baseUrl }) {
3434
const breadcrumbsClass = useMemo(() => {
3535
return gwMerge(
3636
"gw-flex gw-flex-nowrap gw-items-center gw-space-x-2 gw-py-4 gw-overflow-x-auto gw-hide-scrollbar",
@@ -41,7 +41,10 @@ function Breadcrumbs({ className, children }) {
4141
<ol className={breadcrumbsClass}>
4242
<li>
4343
<div>
44-
<Link href="/" className="gw-text-gray-300 gw-hover:gw-text-gray-500">
44+
<Link
45+
href={`${(baseUrl || "").replace(/\/+$/, "")}/`} // Avoid double slashes
46+
className="gw-text-gray-300 gw-hover:gw-text-gray-500"
47+
>
4548
<MdHome size={22} />
4649
<span className="gw-sr-only">Home</span>
4750
</Link>

src/app-pages/documentation/_docs-page.jsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,17 @@ import { useConnect } from "redux-bundler-hook";
22
import { Container, Sidebar, Breadcrumbs, BreadcrumbItem } from "../../../lib";
33
import sidebarLinks from "../../nav-links";
44

5+
const BASE_URL = import.meta.env.BASE_URL;
6+
57
function DocsPage({ breadcrumbs = [], children }) {
68
const { hash } = useConnect("selectHash");
79
return (
810
<Container fluid>
9-
<Breadcrumbs>
11+
<Breadcrumbs baseUrl={BASE_URL}>
1012
{breadcrumbs.map((breadcrumb) => (
1113
<BreadcrumbItem
1214
key={breadcrumb.text}
13-
href={breadcrumb.href}
15+
href={BASE_URL + breadcrumb.href}
1416
text={breadcrumb.text}
1517
/>
1618
))}

src/app-pages/documentation/navigation/breadcrumbs.jsx

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import { CodeExample } from "../../../app-components/code-example";
1111
import PropsTable from "../../../app-components/props-table";
1212
import DocsPage from "../_docs-page";
1313

14+
const BASE_URL = import.meta.env.BASE_URL;
15+
1416
const breadcrumbsPropsData = [
1517
{
1618
name: "className",
@@ -39,6 +41,12 @@ const breadcrumbItemPropsData = [
3941
default: "''",
4042
desc: "The text of the breadcrumb item.",
4143
},
44+
{
45+
name: "baseUrl",
46+
type: "string",
47+
default: "''",
48+
desc: "The base URL for the breadcrumb item.",
49+
},
4250
];
4351

4452
const pageBreadcrumbs = [
@@ -77,21 +85,26 @@ function Breadcrumbs() {
7785

7886
<H3 className="gw-pt-6 gw-pb-3">Basic Usage</H3>
7987
<div className="gw-rounded-md gw-border gw-border-dashed gw-px-6 gw-py-3 gw-mb-3">
80-
<BC>
81-
<BreadcrumbItem href="/docs" text="Documentation" />
82-
<BreadcrumbItem href="/docs/navigation" text="Navigation" />
88+
<BC baseUrl={BASE_URL}>
89+
<BreadcrumbItem href={`${BASE_URL}/docs`} text="Documentation" />
90+
<BreadcrumbItem
91+
href={`${BASE_URL}/docs/navigation`}
92+
text="Navigation"
93+
/>
8394
<BreadcrumbItem
84-
href="/docs/navigation/breadcrumbs"
95+
href={`${BASE_URL}/docs/navigation/breadcrumbs`}
8596
text="Breadcrumbs"
8697
/>
8798
</BC>
8899
</div>
89100
<div>
90101
<CodeExample
91-
code={`<Breadcrumbs>
92-
<BreadcrumbItem href="/docs" text="Documentation" />
93-
<BreadcrumbItem href="/docs/navigation" text="Navigation" />
94-
<BreadcrumbItem href="/docs/navigation/breadcrumbs" text="Breadcrumbs" />
102+
code={`
103+
const BASE_URL = import.meta.env.BASE_URL;
104+
<Breadcrumbs baseUrl={BASE_URL}>
105+
<BreadcrumbItem href={\`\${BASE_URL}/docs\`} text="Documentation" />
106+
<BreadcrumbItem href={\`\${BASE_URL}/docs/navigation\`} text="Navigation" />
107+
<BreadcrumbItem href={\`\${BASE_URL}/docs/navigation/breadcrumbs\`} text="Breadcrumbs" />
95108
</Breadcrumbs>
96109
`}
97110
/>

0 commit comments

Comments
 (0)