Skip to content

Commit 97a788d

Browse files
committed
(#6140) Changed version logic for component list, added combobox and small bugfixes
1 parent 3fb6c99 commit 97a788d

File tree

10 files changed

+70
-22
lines changed

10 files changed

+70
-22
lines changed

dev/src/components/docs/ComponentList.tsx

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import type { FC, MouseEvent, KeyboardEvent } from 'react';
22
import React, { Suspense, useEffect, useState, useRef, useCallback } from 'react';
3+
import {useDocsPreferredVersion} from '@docusaurus/theme-common';
34
import { useHistory } from 'react-router-dom';
4-
import { KolCard } from '@public-ui/react';
5+
import { KolCard, KolHeading } from '@public-ui/react';
56

67
import type { Language } from '../../shares/language';
78
import type { Version } from '../../shares/version';
@@ -12,7 +13,9 @@ type Props = Language & {
1213
version?: Version
1314
}
1415

15-
const LazyLoadComponent: FC<Component & Language> = ({ name, lang, loadComponent }) => {
16+
const LazyLoadComponent: FC<Component & Language & {
17+
path?: string
18+
}> = ({ name, lang, path, loadComponent }) => {
1619
const history = useHistory();
1720
const ref = useRef<HTMLDivElement>(null);
1821
const [isVisible, setIsVisible] = useState<boolean>(false);
@@ -33,10 +36,10 @@ const LazyLoadComponent: FC<Component & Language> = ({ name, lang, loadComponent
3336
const handleRedirect = useCallback((event: MouseEvent<HTMLAnchorElement> | KeyboardEvent<HTMLAnchorElement>) => {
3437
if (event.type === 'click' || (event.type === 'keydown' && (event as React.KeyboardEvent).key === 'Enter')) {
3538
event.preventDefault();
36-
history.push(`/docs/next/components/${formattedComponentName}`)
39+
history.push(`${path ?? "/docs/next"}/components/${formattedComponentName}`)
3740
}
3841
return event
39-
}, [formattedComponentName])
42+
}, [path, formattedComponentName])
4043

4144
const SampleComponent = loadComponent();
4245
if (!loadComponent) {
@@ -63,14 +66,21 @@ const LazyLoadComponent: FC<Component & Language> = ({ name, lang, loadComponent
6366
);
6467
};
6568

66-
export const ComponentList: FC<Props> = ({ lang, version }) => {
69+
export const ComponentList: FC<Props> = ({ lang }) => {
70+
const { preferredVersion } = useDocsPreferredVersion();
71+
const version = preferredVersion?.name as Version
6772
const components = COMPONENT_VERSIONS?.[version ?? "current"] as Component[]
6873
if (components?.length <= 0) return null
74+
const componentLength = components.length
75+
const headline = lang === "de" ? `Anzahl Komponenten: ${componentLength}` : `Components sum: ${componentLength}`
6976
return (
70-
<div className="components-overview">
71-
{components.map(({ name, loadComponent }) => (
72-
<LazyLoadComponent key={name} name={name} lang={lang} loadComponent={loadComponent} />
73-
))}
74-
</div>
77+
<>
78+
<KolHeading _label={headline} _level={3}>{headline}</KolHeading>
79+
<div className="components-overview">
80+
{components.map(({ name, loadComponent }) => (
81+
<LazyLoadComponent key={name} name={name} lang={lang} path={preferredVersion?.path} loadComponent={loadComponent} />
82+
))}
83+
</div>
84+
</>
7585
)
7686
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import React from 'react';
2+
import { KolCombobox } from '@public-ui/react';
3+
4+
const COUNTRY_SUGGESTIONS = [
5+
"Dänemark",
6+
"Deutschland",
7+
"Dominica",
8+
]
9+
10+
const Combobox = () => <KolCombobox _touched _label="Label" _placeholder="Placeholder" _required _suggestions={COUNTRY_SUGGESTIONS} _value={'Deutschland'} />;
11+
12+
export default Combobox;

dev/src/components/samplePreviews/version/1.7.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,6 @@ export const COMPONENTS_17 = [
177177
name: 'toaster',
178178
loadComponent: () => lazy(() => import('../Toaster')),
179179
},
180-
{
181-
name: 'toolbar',
182-
loadComponent: () => lazy(() => import('../Toolbar')),
183-
},
184180
{
185181
name: 'tooltip',
186182
loadComponent: () => lazy(() => import('../Tooltip')),

dev/src/components/samplePreviews/version/2.0.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,6 @@ export const COMPONENTS_20 = [
177177
name: 'toaster',
178178
loadComponent: () => lazy(() => import('../Toaster')),
179179
},
180-
{
181-
name: 'toolbar',
182-
loadComponent: () => lazy(() => import('../Toolbar')),
183-
},
184180
{
185181
name: 'tooltip',
186182
loadComponent: () => lazy(() => import('../Tooltip')),

dev/src/components/samplePreviews/version/2.1.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,6 @@ export const COMPONENTS_21 = [
177177
name: 'toaster',
178178
loadComponent: () => lazy(() => import('../Toaster')),
179179
},
180-
{
181-
name: 'toolbar',
182-
loadComponent: () => lazy(() => import('../Toolbar')),
183-
},
184180
{
185181
name: 'tooltip',
186182
loadComponent: () => lazy(() => import('../Tooltip')),

dev/src/components/samplePreviews/version/current.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ export const COMPONENTS_CURRENT = [
4141
name: 'card',
4242
loadComponent: () => lazy(() => import('../Card')),
4343
},
44+
{
45+
name: 'combobox',
46+
loadComponent: () => lazy(() => import('../Combobox')),
47+
},
4448
{
4549
name: 'details',
4650
loadComponent: () => lazy(() => import('../Details')),

dev/src/css/custom.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ kol-link-button {
153153
display: grid;
154154
grid-template-columns: 1fr 1fr;
155155
gap: 1rem;
156+
padding-top: 1rem;
156157
}
157158

158159
.components-overview-item {
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
---
2+
title: Komponenten
3+
description: Auf den folgenden Seiten finden Sie eine Übersicht über alle Komponenten, die in KoliBri zur Verfügung stehen. Die Komponenten sind in verschiedene Kategorien unterteilt, die Sie über das Menü links erreichen können.
4+
tags:
5+
- Beispiele
6+
---
7+
8+
import { ComponentList } from '@site/src/components/docs/ComponentList';
9+
110
# Komponenten
211

312
Auf den folgenden Seiten finden Sie eine Übersicht über alle Komponenten, die in KoliBri zur Verfügung stehen. Die Komponenten sind in verschiedene Kategorien unterteilt, die Sie über das Menü links erreichen können.
13+
14+
<ComponentList lang="de" />
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
---
2+
title: Komponenten
3+
description: Auf den folgenden Seiten finden Sie eine Übersicht über alle Komponenten, die in KoliBri zur Verfügung stehen. Die Komponenten sind in verschiedene Kategorien unterteilt, die Sie über das Menü links erreichen können.
4+
tags:
5+
- Beispiele
6+
---
7+
8+
import { ComponentList } from '@site/src/components/docs/ComponentList';
9+
110
# Komponenten
211

312
Auf den folgenden Seiten finden Sie eine Übersicht über alle Komponenten, die in KoliBri zur Verfügung stehen. Die Komponenten sind in verschiedene Kategorien unterteilt, die Sie über das Menü links erreichen können.
13+
14+
<ComponentList lang="de" />
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
---
2+
title: Komponenten
3+
description: Auf den folgenden Seiten finden Sie eine Übersicht über alle Komponenten, die in KoliBri zur Verfügung stehen. Die Komponenten sind in verschiedene Kategorien unterteilt, die Sie über das Menü links erreichen können.
4+
tags:
5+
- Beispiele
6+
---
7+
8+
import { ComponentList } from '@site/src/components/docs/ComponentList';
9+
110
# Komponenten
211

312
Auf den folgenden Seiten finden Sie eine Übersicht über alle Komponenten, die in KoliBri zur Verfügung stehen. Die Komponenten sind in verschiedene Kategorien unterteilt, die Sie über das Menü links erreichen können.
13+
14+
<ComponentList lang="de" />

0 commit comments

Comments
 (0)