Skip to content

Commit 08b922a

Browse files
committed
Add function description for getVersionForUrl and adjust links version in src/components/ExampleLink.tsx .
1 parent 64e3b96 commit 08b922a

File tree

4 files changed

+26
-28
lines changed

4 files changed

+26
-28
lines changed

src/components/ExampleLink.tsx

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,15 @@ import React from 'react';
22
import { KolLink } from '@public-ui/react';
33
import type { FC } from 'react';
44
import { useDocsPreferredVersion } from '@docusaurus/theme-common';
5-
import VERSIONS from '../../versions.json';
65
import { translate } from '@docusaurus/Translate';
7-
import { Version } from '../shares/version';
6+
import { determinateVersionId } from '../shares/version';
87

98
interface ComponentProps {
109
component: React.ComponentType<string>;
1110
}
1211
export const ExampleLink: FC<ComponentProps> = ({ component }) => {
1312
const docVersion = useDocsPreferredVersion();
14-
let version: string = docVersion?.preferredVersion?.name as Version;
15-
16-
if (version === 'current') {
17-
const highestVersion = VERSIONS.reduce((max, ver) => {
18-
const major = parseInt(ver.split('.')[0], 10);
19-
return major > max ? major : max;
20-
}, 0);
21-
version = `v${highestVersion}`;
22-
} else if (version) {
23-
version = `v${version.split('.')[0]}`;
24-
}
13+
const versionId = determinateVersionId(docVersion);
2514

2615
return (
2716
<div>
@@ -32,7 +21,7 @@ export const ExampleLink: FC<ComponentProps> = ({ component }) => {
3221
})}
3322
</h2>
3423
<KolLink
35-
_href={`https://public-ui.github.io/${version}/sample-react/#/${component}`}
24+
_href={`/${versionId}/sample-react/#/${component}`}
3625
_label={translate({
3726
id: 'custom.view-component-example',
3827
message: 'Beispiel der Komponente ansehen',

src/components/HomepageFeatures.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ function Feature({ title, icon, description, button }: FeatureItem) {
2727

2828
export default function HomepageFeatures(): JSX.Element {
2929
const docVersion = useDocsPreferredVersion();
30-
const version: string | null = getVersionForUrl(docVersion);
31-
const versionId: string | null = determinateVersionId(docVersion);
30+
const version = getVersionForUrl(docVersion);
31+
const versionId = determinateVersionId(docVersion);
3232

3333
const FeatureList: FeatureItem[] = [
3434
{
@@ -42,7 +42,7 @@ export default function HomepageFeatures(): JSX.Element {
4242
message:
4343
'Die semantisch barrierefreien Web Components können nahtlos in anderen Komponenten-Bibliotheken oder Design Systemen wiederverwendet werden. Mittels des',
4444
})}{' '}
45-
<KolLink _href={`${versionId}/designer`} _label="Designers" _target="designer" />{' '}
45+
<KolLink _href={`/${versionId}/designer`} _label="Designers" _target="designer" />{' '}
4646
{translate({
4747
id: 'custom.designer-short-description-part-2',
4848
message: 'können die Komponenten an beliebige Styleguides oder Designs angepasst werden.',
@@ -53,7 +53,7 @@ export default function HomepageFeatures(): JSX.Element {
5353
button: (
5454
<KolLinkButton
5555
className="w-72"
56-
_href={`docs/${version ? `${version ? `${version}/` : ''}` : ''}concepts/styling/theming `}
56+
_href={`/docs/${version ? `${version ? `${version}/` : ''}` : ''}concepts/styling/theming `}
5757
_label="Styling & Design"
5858
></KolLinkButton>
5959
),
@@ -75,7 +75,7 @@ export default function HomepageFeatures(): JSX.Element {
7575
button: (
7676
<KolLinkButton
7777
className="w-72"
78-
_href={`docs/${version ? `${version}/` : ''}get-started/frameworks`}
78+
_href={`/docs/${version ? `${version}/` : ''}get-started/frameworks`}
7979
_label="Frameworks"
8080
></KolLinkButton>
8181
),
@@ -100,7 +100,7 @@ export default function HomepageFeatures(): JSX.Element {
100100
button: (
101101
<KolLinkButton
102102
className="w-72"
103-
_href={`docs/${version ? `${version}/` : ''}components`}
103+
_href={`/docs/${version ? `${version}/` : ''}components`}
104104
_label={translate({
105105
id: 'custom.components',
106106
message: 'Components',

src/pages/index.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ const HomepageHeader: FunctionComponent = () => (
2626
);
2727
const HomepageButtons: FunctionComponent = () => {
2828
const docVersion = useDocsPreferredVersion();
29-
const version: string = getVersionForUrl(docVersion);
30-
const versionId: string = determinateVersionId(docVersion);
29+
const version = getVersionForUrl(docVersion);
30+
const versionId = determinateVersionId(docVersion);
3131

3232
return (
3333
<div className="grid sm:flex gap-4 justify-center mt-4">
@@ -36,22 +36,22 @@ const HomepageButtons: FunctionComponent = () => {
3636
_icons={{
3737
right: 'codicon codicon-dashboard',
3838
}}
39-
_href={`docs/${version ? `${version}/` : ''}get-started/first-steps`}
39+
_href={`/docs/${version ? `${version}/` : ''}get-started/first-steps`}
4040
_label={translate({
4141
id: 'custom.get-started-button',
4242
})}
4343
_variant="primary"
4444
></KolLinkButton>
4545
<KolLinkButton
4646
className="w-72"
47-
_href={`docs/${version ? `${version}` : ''}`}
47+
_href={`/docs/${version ? `${version}` : ''}`}
4848
_label={translate({
4949
id: 'custom.documentation-button',
5050
})}
5151
></KolLinkButton>
5252
<KolLinkButton
5353
className="w-72"
54-
_href={`${versionId}/sample-react/#/handout/basic`}
54+
_href={`/${versionId}/sample-react/#/handout/basic`}
5555
_label={translate({
5656
id: 'custom.sample-app-button',
5757
})}

src/shares/version.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,23 @@ export function determinateVersionId(docVersion) {
77
return parseFloat(docVersion?.preferredVersion?.name as Version) < 2 ? 'v1' : 'v2';
88
}
99

10-
export function getVersionForUrl(docVersion: { preferredVersion?: { name: string } }) {
10+
/**
11+
* Determines the appropriate version to be used in the URL.
12+
* If the preferred version is "current" or matches the latest version,
13+
* `null` is returned because no version specification is needed in the URL in these cases.
14+
* If the preferred version differs from the latest version, it will be returned.
15+
* @param docVersion - An object containing the preferred version.
16+
* @returns A string representing the version to be used in the URL, or `null` if the preferred version is "current" or matches the latest version.
17+
*/
18+
export function getVersionForUrl(docVersion: { preferredVersion?: { versionName: string } }): string | null {
1119
if (!docVersion || !docVersion.preferredVersion) return null;
1220

1321
const lastVersion = VERSIONS.reduce((max, ver) => {
1422
return parseFloat(ver) > max ? parseFloat(ver) : max;
1523
}, 0).toString();
1624

17-
return docVersion.preferredVersion?.name === 'current' || docVersion.preferredVersion?.name === lastVersion
25+
return docVersion.preferredVersion?.versionName === 'current' ||
26+
docVersion.preferredVersion?.versionName === lastVersion
1827
? null
19-
: (docVersion.preferredVersion?.name as Version);
28+
: (docVersion.preferredVersion?.versionName as Version);
2029
}

0 commit comments

Comments
 (0)