loon-bulma-react 2022.2.4 → 2022.3.2
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/README.md +351 -206
- package/dist/components/Button/Button.d.ts +25 -52
- package/dist/components/Button/ButtonBase.d.ts +8 -18
- package/dist/components/Button/ButtonProps.d.ts +29 -2
- package/dist/components/Button/InvertedButton.d.ts +6 -6
- package/dist/components/Button/LightButton.d.ts +6 -6
- package/dist/components/Button/LightOutlinedButton.d.ts +6 -6
- package/dist/components/Button/OutlinedButton.d.ts +6 -6
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +10 -3
- package/dist/components/Calendar/CalendarItems/AlldayEvent.d.ts +2 -4
- package/dist/components/Calendar/CalendarItems/Event.d.ts +17 -0
- package/dist/components/Calendar/CalendarItems/InvertedEvent.d.ts +17 -0
- package/dist/components/Calendar/CalendarItems/MoreEvents.d.ts +0 -3
- package/dist/components/Calendar/CalendarItems/TimedEvent.d.ts +2 -4
- package/dist/components/Calendar/CalendarItems/utils.d.ts +0 -8
- package/dist/components/Calendar/Events/Event.d.ts +16 -0
- package/dist/components/Calendar/Events/InvertedEvent.d.ts +16 -0
- package/dist/components/Calendar/Month/DayContainer.d.ts +1 -5
- package/dist/components/Calendar/Month/MonthView.d.ts +22 -0
- package/dist/components/Calendar/Month/MoreEvents.d.ts +18 -0
- package/dist/components/Calendar/Props.d.ts +4 -3
- package/dist/components/Calendar/Week/AlldayContainer.d.ts +14 -0
- package/dist/components/Calendar/Week/DateContainer.d.ts +20 -0
- package/dist/components/Calendar/Week/DayContainer.d.ts +22 -0
- package/dist/components/Calendar/Week/HourRow.d.ts +16 -0
- package/dist/components/Calendar/Week/TimedContainer.d.ts +15 -0
- package/dist/components/Calendar/Week/WeekView.d.ts +22 -0
- package/dist/components/Calendar/Week/containers.d.ts +22 -0
- package/dist/components/Calendar/base-styles.d.ts +27 -0
- package/dist/components/Calendar/date-utils.d.ts +59 -2
- package/dist/components/Calendar/index.d.ts +8 -3
- package/dist/components/DataTable/DataTable.d.ts +2 -1
- package/dist/components/Form/BaseInputProps.d.ts +3 -0
- package/dist/components/Form/Checkbox/Checkbox.d.ts +19 -0
- package/dist/components/Form/Datetimes/DateInput.d.ts +23 -0
- package/dist/components/Form/Datetimes/DateTimeInput.d.ts +22 -0
- package/dist/components/Form/Datetimes/TimeInput.d.ts +25 -0
- package/dist/components/Form/Numeric/MultiRangeInput.d.ts +23 -0
- package/dist/components/Form/Numeric/NumberInput.d.ts +26 -0
- package/dist/components/Form/Numeric/RangeInput.d.ts +24 -0
- package/dist/components/Form/Others/ColorInput.d.ts +24 -0
- package/dist/components/Form/Others/HiddenInput.d.ts +21 -0
- package/dist/components/Form/Selects/BaseSelectProps.d.ts +21 -0
- package/dist/components/Form/Selects/MultiSelect.d.ts +33 -0
- package/dist/components/Form/Selects/Select.d.ts +30 -0
- package/dist/components/Form/Text/EmailInput.d.ts +27 -0
- package/dist/components/Form/Text/PasswordInput.d.ts +27 -0
- package/dist/components/Form/Text/TextArea.d.ts +23 -0
- package/dist/components/Form/Text/TextInput.d.ts +27 -0
- package/dist/components/Icon/Icon.d.ts +6 -4
- package/dist/components/Layout/AspectRatio/AspectRatio.d.ts +4 -2
- package/dist/components/Layout/Box/Box.d.ts +4 -2
- package/dist/components/Layout/Columns/Column.d.ts +74 -13
- package/dist/components/Layout/Columns/ColumnProps.d.ts +1 -3
- package/dist/components/Layout/Columns/Columns.d.ts +3 -1
- package/dist/components/Layout/Columns/index.d.ts +1 -5
- package/dist/components/Layout/Container/Container.d.ts +37 -29
- package/dist/components/Layout/Content/Content.d.ts +1 -0
- package/dist/components/Layout/Footer/Footer.d.ts +4 -0
- package/dist/components/Layout/Hero/Hero.d.ts +72 -3
- package/dist/components/Layout/Image/Image.d.ts +4 -2
- package/dist/components/Layout/ScrollArea/ScrollArea.d.ts +57 -56
- package/dist/components/Layout/Section/Section.d.ts +1 -1
- package/dist/components/Link/Link.d.ts +6 -4
- package/dist/components/Menu/Menu.d.ts +43 -29
- package/dist/components/Message/Message.d.ts +25 -46
- package/dist/components/Modal/Modal.d.ts +28 -9
- package/dist/components/Notification/Notification.d.ts +34 -44
- package/dist/components/Panel/Panel.d.ts +23 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +4 -2
- package/dist/components/SimpleTable/SimpleTable.d.ts +51 -0
- package/dist/components/SimpleTable/SimpleTableProps.d.ts +52 -0
- package/dist/components/TabBar/TabBar.d.ts +32 -0
- package/dist/components/Table/SimpleTable.d.ts +8 -0
- package/dist/components/Table/SimpleTableProps.d.ts +52 -0
- package/dist/components/Table/Table.d.ts +42 -5
- package/dist/components/Tabs/Tabs.d.ts +16 -22
- package/dist/components/Tag/Tag.d.ts +3 -3
- package/dist/components/Titles/Titles.d.ts +36 -5
- package/dist/components/Toggle/Toggle.d.ts +20 -0
- package/dist/components/Toggle/ToggleBar.d.ts +20 -0
- package/dist/components/ToggleBar/ItemToggleBar.d.ts +43 -0
- package/dist/components/ToggleBar/ToggleBar.d.ts +61 -0
- package/dist/contexts/Notifier/NotifierProps.d.ts +2 -1
- package/dist/dev-warning-fn.d.ts +5 -0
- package/dist/index.d.ts +75 -54
- package/dist/index.js +1961 -1730
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +1955 -1720
- package/dist/index.modern.js.map +1 -1
- package/dist/loon-react-bulma-types.d.ts +6 -0
- package/dist/utils/JSDate.class.d.ts +37 -0
- package/dist/utils/date-utils.d.ts +224 -0
- package/dist/utils/warn-dev-util.d.ts +5 -0
- package/example/README.md +5 -0
- package/example/package.json +43 -0
- package/example/public/favicon.ico +0 -0
- package/example/public/index.css +0 -0
- package/example/public/index.html +45 -0
- package/example/public/manifest.json +15 -0
- package/example/src/App.tsx +48 -0
- package/example/src/AppHero.tsx +70 -0
- package/example/src/MOCK_DATA.ts +10014 -0
- package/example/src/Tabs/AspectRatioTab.tsx +279 -0
- package/example/src/Tabs/CalendarTab.tsx +172 -0
- package/example/src/Tabs/DataTableTab.tsx +106 -0
- package/example/src/Tabs/NotificationTab.tsx +78 -0
- package/example/src/Tabs/TitleFormsButtonsTab.tsx +1265 -0
- package/example/src/Tabs/datatable.css +7 -0
- package/example/src/date-utils.ts +275 -0
- package/example/src/index.tsx +5 -0
- package/example/src/react-app-env.d.ts +1 -0
- package/example/src/setupTests.ts +5 -0
- package/example/tsconfig.json +31 -0
- package/package.json +29 -22
- package/styles/bulma-notification-generator.scss +18 -6
- package/styles/custom-bulma.scss +4 -0
- package/styles/variables.scss +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# loon-bulma-react
|
|
2
2
|
|
|
3
|
-
[Bulma](https://bulma.io/) & [React](https://reactjs.org/) componenten voor Loon Salarissoftware.
|
|
3
|
+
## [Bulma](https://bulma.io/) & [React](https://reactjs.org/) componenten voor Loon Salarissoftware.
|
|
4
4
|
|
|
5
5
|
- [Installatie](#installatie)
|
|
6
6
|
- [Gebruik](#gebruik)
|
|
@@ -25,14 +25,15 @@
|
|
|
25
25
|
- [Footer](#component-footer)
|
|
26
26
|
- [Icons (FontAwesome)](#component-icons)
|
|
27
27
|
- [Link & LinkButon](#component-linkbutton)
|
|
28
|
-
- [Menu](#component-menu)
|
|
28
|
+
- [Menu](#component-menu-2)
|
|
29
29
|
- [Messages & Notificaties](#component-messages)
|
|
30
30
|
- [Modal](#component-modal)
|
|
31
31
|
- [ProgressBars](#component-progressbar)
|
|
32
|
-
- [
|
|
33
|
-
- [
|
|
34
|
-
- [Tag](#component-tags)
|
|
32
|
+
- [TabBar](#component-tabbar) (Nieuw, ipv Tabs)
|
|
33
|
+
- [SimpleTable](#component-simpletable) (Voorheen Table)
|
|
34
|
+
- [Tag & Tags](#component-tags)
|
|
35
35
|
- [Titles & Subtitles](#component-titles)
|
|
36
|
+
- [ToggleBar](#component-toggles)
|
|
36
37
|
- [Form & Inputs](#form)
|
|
37
38
|
- [Input Types](#form-input)
|
|
38
39
|
- TextInput
|
|
@@ -69,7 +70,7 @@ npm install --save bulma
|
|
|
69
70
|
|
|
70
71
|
### Voor een versie die hoort bij een bepaald jaar (Bijvoorbeeld in Loon-2021).
|
|
71
72
|
|
|
72
|
-
Het jaar wordt bepaald door tags: voor elk jaar is er een tag van de vorm `y[jaar]`.
|
|
73
|
+
Het jaar wordt bepaald door tags: voor elk jaar is er een tag van de vorm `y[jaar]`. De 'y' is nodig omdat alleen een jaartal geen geldige tag is.
|
|
73
74
|
|
|
74
75
|
```bash
|
|
75
76
|
npm install --save loon-bulma-react@y2021
|
|
@@ -122,6 +123,10 @@ function MyComponent(props) {
|
|
|
122
123
|
}
|
|
123
124
|
```
|
|
124
125
|
|
|
126
|
+
> ### Bulma-dingetje
|
|
127
|
+
>
|
|
128
|
+
> Er is een ding in Bulma dat hier anders gaat dan in Bulma. Voor de `SizeProp`maken wij gebruik van s, m, l en xl. In Bulma bestaan deze sizes deels, maar heten ze small, normal / default, medium en large. Daarom komt het voor dat een size='xl' als class een 'large' krijgt en een size='l' als class 'medium'.
|
|
129
|
+
|
|
125
130
|
## Notifier <a id="notifier"></a>
|
|
126
131
|
|
|
127
132
|
De notifier is een ContextProvider om vanuit de gehele app notificaties te kunnen tonen. Deze verschijnen aan de rechterkant. Er is een keuze om ze vanaf boven OF onder te tonen. Met behulp van de hook `useNotifier` kunnen notificaties toegevoegd worden.
|
|
@@ -231,32 +236,41 @@ Als je liever geen component gebruikt, maar een `<div>` de class `bulma-box` gee
|
|
|
231
236
|
|
|
232
237
|
### Columns <a id="layout-columns"></a>
|
|
233
238
|
|
|
234
|
-
Columns worden gebruikt voor het verdelen van een (deel van het) scherm in kolommen. Columns kunnen ook genest worden. Elke **Column** moet direct in een **Columns** element zitten om te werken. Voor de kolommen zijn er verschillende maten:
|
|
239
|
+
Columns worden gebruikt voor het verdelen van een (deel van het) scherm in kolommen. Columns kunnen ook genest worden. Bij children die niet van het type `<Column.XXX>` zijn, staat er een warning in de console. Deze children worden vervolgens door een `<Column>` gewrapped. Elke **Column** moet direct in een **Columns** element zitten om te werken. Voor de kolommen zijn er verschillende maten:
|
|
235
240
|
|
|
236
241
|
- Default:
|
|
237
242
|
- alle kolommen zijn even groot OF
|
|
238
|
-
- met _isNarrow:true_ deze kolom neemt zo min mogelijk ruimte in, de rest vult de overige ruimte op.
|
|
243
|
+
- met de prop `_isNarrow: true_` deze kolom neemt zo min mogelijk ruimte in, de rest vult de overige ruimte op.
|
|
239
244
|
- Verdelen in stukken
|
|
240
|
-
-
|
|
241
|
-
- van
|
|
242
|
-
- van
|
|
243
|
-
- van
|
|
244
|
-
- van
|
|
245
|
+
- volledige breedte (Full) `<Column.Full>`
|
|
246
|
+
- van 2 (Half), `<Column.Half>`
|
|
247
|
+
- van 3 (Thirds), `<Column.Thirds.One>`
|
|
248
|
+
- van 4 (Quarters),`<Column.Quarters.Two>`
|
|
249
|
+
- van 5 (Fifths) `<Column.Fifths.Three>`
|
|
250
|
+
- van 12 (Twelves) `<Column.Twelves.One>`, `<Column.Twelves.Seven>`
|
|
251
|
+
|
|
252
|
+
Als maar **één** van de kolommen een size-modifier heeft (bijvoorbeeld `<Column.Twelves.Seven>`) en andere kolommen zijn gewone `<Column>` elementen, dan nemen deze kolommen de overige ruimte in **nadat** de `is-7` kolom zijn ruimte heeft ingenomen.
|
|
245
253
|
|
|
246
254
|
```tsx
|
|
247
255
|
<div>
|
|
248
|
-
<Columns>
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
256
|
+
<Columns>
|
|
257
|
+
<Column isNarrow>Menu or something</Column>
|
|
258
|
+
<Column>
|
|
259
|
+
<Columns>
|
|
260
|
+
<Column.Quarters.One>Column 1/4</Column.Quarters.One>
|
|
261
|
+
<Column.Half>Column 1/2</Column.Half>
|
|
262
|
+
<Column.Quarters.One>Column 1/4</Column.Quarters.One>
|
|
263
|
+
</Columns>
|
|
264
|
+
</Column.Default>
|
|
265
|
+
</Columns>
|
|
266
|
+
|
|
267
|
+
<Columns>
|
|
268
|
+
<Column.Twelves.Seven>Takes up 7/12th of width </Column.Twelves.Seven>
|
|
269
|
+
{/* These columns take 5/12th of the available rest-space */}
|
|
270
|
+
<Column></Column>
|
|
271
|
+
<Column></Column>
|
|
272
|
+
</Columns>
|
|
273
|
+
|
|
260
274
|
</div>
|
|
261
275
|
```
|
|
262
276
|
|
|
@@ -317,53 +331,58 @@ Deze markers zijn beschikbaar:
|
|
|
317
331
|
### Hero <a id="layout-hero"></a>
|
|
318
332
|
|
|
319
333
|
Een Hero bevat een aantal buttons aan de bovenkant van de pagina, een titel en een subtitel en navigatie-tabs aan de onderkant van de pagina. Een hero is ook te krijgen in verschillende kleuren. Daar is de `heroColorFor` prop voor.
|
|
320
|
-
Een hero bevat
|
|
334
|
+
Een hero bevat optionele items aan de bovenkant (`Head`) of de onderkant (`Foot`).
|
|
321
335
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
336
|
+
- `Head`: `<Hero.Head>`
|
|
337
|
+
- `<Hero.Head.Button>`: een Button aan de bovenkant van de hero
|
|
338
|
+
- `<Hero.Head.Link>`: een Link aan de bovenkant van de hero
|
|
339
|
+
- `Foot`: `<Hero.Foot>`
|
|
340
|
+
- `<Hero.Foot.NavList>`: Navigation item list (`<ul>`)
|
|
341
|
+
- `<Hero.Foot.NavItem>` Navigation items (`<li classname={isActive ...>}><a href="...">LINK</a></li>)
|
|
342
|
+
|
|
343
|
+
```tsx
|
|
344
|
+
<Hero heroColorFor="werknemer" size="s">
|
|
345
|
+
<Hero.Head>
|
|
346
|
+
<Hero.Head.Button onClick={() => clear()}>Clear</Hero.Head.Button>
|
|
347
|
+
<Hero.Head.Link to="https://www.bulma.io">Bulma</Hero.Head.Link>
|
|
348
|
+
<Hero.Head.Link to="https://www.reactjs.org">ReactJS</Hero.Head.Link>
|
|
349
|
+
</Hero.Head>
|
|
350
|
+
|
|
351
|
+
<Hero.Body>
|
|
352
|
+
<Title>Hero with a title</Title>
|
|
353
|
+
<Subtitle>And also a TitleWithSubtitleProps</Subtitle>
|
|
354
|
+
</Hero.Body>
|
|
355
|
+
|
|
356
|
+
<Hero.Foot>
|
|
357
|
+
<Hero.Foot.NavList>
|
|
358
|
+
<Hero.Foot.NavItem to="/" active>
|
|
359
|
+
Home
|
|
360
|
+
</Hero.Foot.NavItem>
|
|
361
|
+
<Hero.Foot.NavItem to="https://www.bulma.com">Bulma.io</Hero.Foot.NavItem>
|
|
362
|
+
<Hero.Foot.NavItem to="https://www.remix.run">Remix.run</Hero.Foot.NavItem>
|
|
363
|
+
</Hero.Foot.NavList>
|
|
364
|
+
</Hero.Foot>
|
|
365
|
+
</Hero>
|
|
340
366
|
```
|
|
341
367
|
|
|
342
|
-
|
|
368
|
+
De navigatie kan op 2 manieren worden gemaakt:
|
|
343
369
|
|
|
344
370
|
```tsx
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
371
|
+
<Hero.Foot>
|
|
372
|
+
<Hero.Foot.NavList>
|
|
373
|
+
<Hero.Foot.NavItem to="/" active> Home </Hero.Foot.NavItem>
|
|
374
|
+
<Hero.Foot.NavItem to="/About">About</Hero.Foot.NavItem>
|
|
375
|
+
<Hero.Foot.NavItem to="/Extras">Extras</Hero.Foot.NavItem>
|
|
376
|
+
</Hero.Foot.NavList>
|
|
377
|
+
</Hero.Foot>
|
|
351
378
|
// of
|
|
352
|
-
|
|
379
|
+
<Hero.Foot>
|
|
353
380
|
<ul>
|
|
354
|
-
<li className="is-active"><a href="
|
|
355
|
-
<li><a href="#">About</a>
|
|
356
|
-
<li><a href="#">Extras</a>
|
|
381
|
+
<li className="is-active"><a href="/">Home</a></li>
|
|
382
|
+
<li><a href="#">About</a></li>
|
|
383
|
+
<li><a href="#">Extras</a></li>s
|
|
357
384
|
</ul>
|
|
358
|
-
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
De hero wordt dan zo gebruikt:
|
|
362
|
-
|
|
363
|
-
```tsx
|
|
364
|
-
<div>
|
|
365
|
-
<Hero title="Hero title" subtitle="Hero subtitle" headItems={headitems} navItems={navItems} />
|
|
366
|
-
</div>
|
|
385
|
+
</Hero.Foot>
|
|
367
386
|
```
|
|
368
387
|
|
|
369
388
|
### Image <a id="layout-image"></a>
|
|
@@ -427,19 +446,29 @@ Een ScrollArea is een horizontaal of verticaal scrollbare `<div>` met flexbox-ei
|
|
|
427
446
|
|
|
428
447
|
Gebruikt de [Bulma-button](https://bulma.io/documentation/elements/button/) Er zijn meerdere soorten button-types. Van elke soort zijn er 6 beschikbaar: _Primary_, _Danger_, _Warning_, _Success_, _Link_, _Info_
|
|
429
448
|
|
|
430
|
-
- **Bttn**: een default button (met instelbare `color`-props)
|
|
431
|
-
- **Button**:
|
|
432
|
-
-
|
|
433
|
-
-
|
|
434
|
-
-
|
|
435
|
-
-
|
|
449
|
+
- _**Bttn**: een default button (met instelbare `color`-props) -> bestaat niett meer_
|
|
450
|
+
- **Button**: Voorheen `Bttn`
|
|
451
|
+
- `<Button.Primary>` Een button in de primary kleur
|
|
452
|
+
- `<Button.Success>` Een button in de success kleur
|
|
453
|
+
- `<Button.Danger>` Een button in de danger kleur
|
|
454
|
+
- `<Button.Warning>` Een button in de warning kleur
|
|
455
|
+
- `<Button.Info>` Een button in de info kleur
|
|
456
|
+
- `<Button.Link>` Een button in de link kleur
|
|
436
457
|
|
|
437
|
-
|
|
458
|
+
De Light, Outlined, LightOutlined en Inverted versies van deze buttons zijn te maken door de `styling`-prop een van deze waardes te geven:
|
|
438
459
|
|
|
439
|
-
-
|
|
440
|
-
-
|
|
460
|
+
- Light: `"light"` | `"l"`
|
|
461
|
+
- Inverted: `"inverted"` | `"i"`
|
|
462
|
+
- Outlined: `"outlined"` | `"o"`
|
|
463
|
+
- LightOutlined: `"light-outlined"` | `"lo"`
|
|
464
|
+
- default: `"default"` | `undefined`
|
|
441
465
|
|
|
442
|
-
|
|
466
|
+
> ### deprecated
|
|
467
|
+
>
|
|
468
|
+
> Met de optionele prop `icon` kan er op buttons een [Font Awesome icon](https://fontawesome.com/v5.15/icons?d=gallery&p=2&m=free) gezet worden. Dat kan door
|
|
469
|
+
>
|
|
470
|
+
> - de class-string op te geven, dus `'fas fa-horse-head'`.
|
|
471
|
+
> - door het object dat mbv React-FontAwsome wordt gemaakt als waarde door te geven.
|
|
443
472
|
|
|
444
473
|
De `ButtonGroup`-component kan gebruikt worden om buttons te grouperen en de grootte voor buttons in te stellen.
|
|
445
474
|
|
|
@@ -447,16 +476,18 @@ De `ButtonGroup`-component kan gebruikt worden om buttons te grouperen en de gro
|
|
|
447
476
|
import { ButtonGroup, Bttn, Button, LightButton, InvertedButton, OutlinedButton } from 'loon-bulma-react';
|
|
448
477
|
|
|
449
478
|
<ButtonGroup>
|
|
450
|
-
<
|
|
451
|
-
<
|
|
452
|
-
<
|
|
479
|
+
<Button>click me</Button>
|
|
480
|
+
<Button color="p">click me</Button>
|
|
481
|
+
<Button color="s">click me</Button>
|
|
453
482
|
|
|
454
|
-
<Button.Primary>click me</Button.Primary>
|
|
483
|
+
<Button.Primary rounded>click me</Button.Primary>
|
|
455
484
|
<Button.Warning>click me</Button.Warning>
|
|
456
|
-
<
|
|
457
|
-
<
|
|
458
|
-
<
|
|
459
|
-
<
|
|
485
|
+
<Button.Success>click me</Button.Success>
|
|
486
|
+
<Button.Link styling="inverted">click me</Button.Link>
|
|
487
|
+
<Button.Info styling="i">click me</Button.Info>
|
|
488
|
+
<Button.Danger styling="light">click me</Button.Danger>
|
|
489
|
+
<button>click me</buton> <!-- renders normally-->
|
|
490
|
+
<span>click me</span> <!-- Does not render and warns in console-->
|
|
460
491
|
</ButtonGroup>;
|
|
461
492
|
```
|
|
462
493
|
|
|
@@ -677,34 +708,37 @@ Een footer staat meestal onderaan de pagina. Er zit een container in die default
|
|
|
677
708
|
|
|
678
709
|
### Icons (Font Awesome) <a id="component-icons"></a>
|
|
679
710
|
|
|
680
|
-
Icons kunnen gebruikt worden als content op buttons of voor andere dingen. Icons gebruiken de font-awesome icons.
|
|
711
|
+
Icons kunnen gebruikt worden als content op buttons of voor andere dingen. Icons gebruiken de font-awesome icons. Als `icon`-prop kan er een string (font-awesome-icon class) of een react element (FontAwesomeIcon) worden meegegeven.
|
|
681
712
|
|
|
682
713
|
##### Voorbeeld voor op een [Button](#component-button)
|
|
683
714
|
|
|
684
|
-
Op een button wordt automatisch alles aangepast aan het font en de button zelf.
|
|
715
|
+
Op een button wordt automatisch alles aangepast aan het font en de button zelf.
|
|
685
716
|
|
|
686
717
|
```tsx
|
|
687
718
|
<div>
|
|
688
719
|
<Button.Primary>
|
|
689
|
-
<Icon
|
|
690
|
-
|
|
720
|
+
<Icon icon={faHome}>
|
|
721
|
+
Terug naar Home
|
|
691
722
|
</Button.Primary>
|
|
723
|
+
<LightButton.Danger>
|
|
724
|
+
<icon faIcon="fas fa-trash">
|
|
725
|
+
</LightButton.Danger>
|
|
692
726
|
</div>
|
|
693
727
|
```
|
|
694
728
|
|
|
695
729
|
##### Voorbeeld zonder een button, maar bijvoorbeeld in een tekst.
|
|
696
730
|
|
|
697
|
-
Daar kan wel meer worden opgegeven
|
|
731
|
+
Daar kan wel meer worden opgegeven. Voor de IconText component wordt ook de kleur van de tekst aangepast.
|
|
698
732
|
|
|
699
733
|
```tsx
|
|
700
734
|
<p>
|
|
701
|
-
<Icon
|
|
702
|
-
<Icon
|
|
703
|
-
<Icon
|
|
704
|
-
<Icon
|
|
735
|
+
<Icon icon={faHome} animate="spin" ></Icon>
|
|
736
|
+
<Icon icon={faHome} animate="pulse" size="m"></Icon>
|
|
737
|
+
<Icon icon={faHome} rotation={90} size="l" color="warning"></Icon>
|
|
738
|
+
<Icon icon={faHome} flip="vertical" size="xl" color="danger"></Icon>
|
|
705
739
|
</p>
|
|
706
740
|
<p className="my-3">
|
|
707
|
-
Dit is een <IconText
|
|
741
|
+
Dit is een <IconText icon={faHome} color="info">huisje</IconText>. Wat leuk!
|
|
708
742
|
</p>
|
|
709
743
|
```
|
|
710
744
|
|
|
@@ -721,89 +755,48 @@ Link en LinkButton zijn bedoelt om links (`<a>`) en buttons (`<button>`) er, bij
|
|
|
721
755
|
</div>
|
|
722
756
|
```
|
|
723
757
|
|
|
724
|
-
### Menu <a id="component-menu"></a>
|
|
758
|
+
### Menu (Nieuw) <a id="component-menu-2"></a>
|
|
725
759
|
|
|
726
760
|
Een menu is een verticale lijst van 'blokjes' met een optioneel label, en een array van items. Deze items kunnen ook weer een lijst van sub-items bevatten.
|
|
727
|
-
De `<Menu />`-tag heeft een `
|
|
761
|
+
De `<Menu />`-tag heeft een `onMenuItemClicked(item: string) => void` function voor als het geselecteerde menu-item wijzigt. Met de prop `initialItem` kan een van de items als default geselecteerd worden.
|
|
728
762
|
|
|
729
|
-
|
|
763
|
+
Het Menu kan worden opgebouwd uit 3 andere componenten:
|
|
730
764
|
|
|
731
|
-
|
|
765
|
+
- `<Menu.Item>`: een menu-item met een label en een optioneel sub-menu. Met de (optionele) prop `name` kan een item een naam gegeven worden. Deze naam wordt dan gebruikt als item-identifier. Anders wordt de string-content van de component-children gebruikt.
|
|
766
|
+
- `<Menu.ExpandableItem>`: een menu-item met een label en een of meer `<Menu.Item>` children. Met de `startExpandend` prop kan een item als default uitgeklapt worden.
|
|
767
|
+
- `<Menu.ItemGroup>`: een menu-item met een label en een of meer `<Menu.Item>` of `<Menu.ExpandableItem>` children.
|
|
732
768
|
|
|
733
|
-
|
|
734
|
-
<Menu
|
|
735
|
-
onMenuItemChanged={(id: string | number) => console.log(`menu item ${id} selected`)}
|
|
736
|
-
blocks={[
|
|
737
|
-
{
|
|
738
|
-
label: 'General',
|
|
739
|
-
items: [
|
|
740
|
-
{ itemTxt: 'Dashboard' }, // id 0
|
|
741
|
-
{ itemTxt: 'Customers' }, // id 1
|
|
742
|
-
],
|
|
743
|
-
},
|
|
744
|
-
{
|
|
745
|
-
label: 'Administration',
|
|
746
|
-
items: [
|
|
747
|
-
{ itemTxt: 'Team Settings' }, // id 2
|
|
748
|
-
{
|
|
749
|
-
itemTxt: 'Manage Your Team',
|
|
750
|
-
itemList: [
|
|
751
|
-
// id 3
|
|
752
|
-
{ txt: 'Members' }, // id 4
|
|
753
|
-
{ txt: 'Add a member' }, // id 5
|
|
754
|
-
],
|
|
755
|
-
},
|
|
756
|
-
{ itemTxt: 'Invitations' }, // id 6
|
|
757
|
-
],
|
|
758
|
-
},
|
|
759
|
-
{
|
|
760
|
-
label: 'Transactions',
|
|
761
|
-
items: [
|
|
762
|
-
{ itemTxt: 'Payments' }, // id 7
|
|
763
|
-
{ itemTxt: 'Transfers' }, // id 8
|
|
764
|
-
],
|
|
765
|
-
},
|
|
766
|
-
]}
|
|
767
|
-
/>
|
|
768
|
-
```
|
|
769
|
-
|
|
770
|
-
##### ID's kan je ook zelf opgeven
|
|
769
|
+
Andere elementen worden **niet** gerendered.
|
|
771
770
|
|
|
772
771
|
```tsx
|
|
773
|
-
<
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
{ itemTxt: 'Payments', id: 6 },
|
|
802
|
-
{ itemTxt: 'Transfers', id: 7 },
|
|
803
|
-
],
|
|
804
|
-
},
|
|
805
|
-
]}
|
|
806
|
-
/>
|
|
772
|
+
<div>
|
|
773
|
+
<Menu onMenuItemClicked={(item: string) => console.log(item)} initialItem="Data">
|
|
774
|
+
<Menu.Item>Grover</Menu.Item>
|
|
775
|
+
<Menu.Item>Oscar</Menu.Item>
|
|
776
|
+
<Menu.ExpandableItem label="Sesamstraat" startExpanded={true}>
|
|
777
|
+
<MenuItem>Ieniemienie</MenuItem>
|
|
778
|
+
<MenuItem>Pino</MenuItem>
|
|
779
|
+
<MenuItem>Tommy</MenuItem>
|
|
780
|
+
</Menu.ExpandableItem>
|
|
781
|
+
|
|
782
|
+
<Menu.ItemGroup label="Stuff...">
|
|
783
|
+
<Menu.Item> <!-- Menu item can contain icons -->
|
|
784
|
+
<Icon icon={faDuck} />
|
|
785
|
+
Scrooge McDuck
|
|
786
|
+
</Menu.Item>
|
|
787
|
+
<Menu.ExpandableItem label="Disney">
|
|
788
|
+
<Menu.Item>Donald Duck</Menu.Item>
|
|
789
|
+
<Menu.Item>Mickey Mouse</Menu.Item>
|
|
790
|
+
<Menu.Item>Boris Boef</Menu.Item>
|
|
791
|
+
</Menu.ExpandableItem>
|
|
792
|
+
<Menu.ExpandableItem label="Looney Tunes" startExpanded={true}>
|
|
793
|
+
<Menu.Item>Bugs Bunny</Menu.Item>
|
|
794
|
+
<Menu.Item>Daffy Duck</Menu.Item>
|
|
795
|
+
<Menu.Item>Porky Pig</Menu.Item>
|
|
796
|
+
</Menu.ExpandableItem>
|
|
797
|
+
</Menu.ItemGroup>
|
|
798
|
+
</Menu>
|
|
799
|
+
</div>
|
|
807
800
|
```
|
|
808
801
|
|
|
809
802
|
### Messages & Notifications <a id="component-messages"></a>
|
|
@@ -833,33 +826,75 @@ Een notificatie bevat ook een tekst, maar heeft ook een dimsiss-button. Deze met
|
|
|
833
826
|
|
|
834
827
|
### Modal <a id="component-modal"></a>
|
|
835
828
|
|
|
836
|
-
Een modal is een
|
|
829
|
+
Een modal is een pop-up window die de achtergrond donker maakt en content weergeeft in een witte 'box'. Een optionele header of footer scrolled niet mee als de body van de modal zo lang is dat er gescrolled moet worden. Met een state-boolean kan het openen & sluiten van de modal geregeld worden.
|
|
837
830
|
|
|
838
831
|
```tsx
|
|
839
832
|
const [isModalOpen, setModalOpen] = useState(true);
|
|
840
833
|
return (
|
|
841
834
|
{ isModalOpen ?
|
|
842
|
-
<Modal
|
|
843
|
-
|
|
844
|
-
header={
|
|
835
|
+
<Modal onDismiss={() => setModalOpen(false)} size='xl'>
|
|
836
|
+
<Modal.Head>
|
|
845
837
|
{/* Hier komt de content voor de modal-header (bovenaan). */}
|
|
846
838
|
<TitleWithSubtitle titleTxt="WAT?!? users" subtitleTxt="Users van de app"/>
|
|
847
|
-
|
|
848
|
-
|
|
839
|
+
</Modal.Head>
|
|
840
|
+
<Modal.Body>
|
|
841
|
+
{/* Hier komt de modal content. */}
|
|
842
|
+
</Modal.Body>
|
|
843
|
+
<Modal.Foot>
|
|
849
844
|
{/* Hier komt de content voor de modal-footer (onderaan). */}
|
|
850
845
|
<Button.Link>close</Button.Link>
|
|
851
|
-
|
|
852
|
-
{/* Hier komt de modal content. */}
|
|
846
|
+
</Modal.Foot>
|
|
853
847
|
</Modal>
|
|
854
848
|
: null
|
|
855
849
|
});
|
|
856
850
|
```
|
|
857
851
|
|
|
852
|
+
De `<Modal.Head>` en de `<Modal.Foot>` zijn optioneel. Als je die niet wil gebruiken, kan je de `<Modal.Body>` tag ook weglaten. De content van de Modal wordt dan automatisch gewrapped in een `<Modal.Body>` tag:
|
|
853
|
+
|
|
854
|
+
```tsx
|
|
855
|
+
<Modal>
|
|
856
|
+
<Section>
|
|
857
|
+
<span></span>
|
|
858
|
+
</Section>
|
|
859
|
+
</Modal>;
|
|
860
|
+
|
|
861
|
+
/*is hetzelfde als */
|
|
862
|
+
|
|
863
|
+
<Modal>
|
|
864
|
+
<Modal.Body>
|
|
865
|
+
<Section>
|
|
866
|
+
<span></span>
|
|
867
|
+
</Section>
|
|
868
|
+
</Modal.Body>
|
|
869
|
+
</Modal>;
|
|
870
|
+
|
|
871
|
+
/* Wrap meerdere items in een <></> */
|
|
872
|
+
<Modal>
|
|
873
|
+
<>
|
|
874
|
+
<Section> section 1</Section>
|
|
875
|
+
<Section> section 2</Section>
|
|
876
|
+
<Section> section 3</Section>
|
|
877
|
+
</>
|
|
878
|
+
</Modal>;
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
Een modal heeft ook verschillende sizes. Met de `size`-prop kan deze ingesteld worden. De default waarde is `'m'`, wat overeen komt met `800px`.
|
|
882
|
+
|
|
883
|
+
- SizeProp:
|
|
884
|
+
- `s`: 600px
|
|
885
|
+
- `m`: 800px (default),
|
|
886
|
+
- `l`: 1000px
|
|
887
|
+
- `xl`: 1200px
|
|
888
|
+
- string:
|
|
889
|
+
- `'834px'`
|
|
890
|
+
- `'50%'`
|
|
891
|
+
- `'60em'`
|
|
892
|
+
|
|
858
893
|
### ProgressBar <a id="component-progressbar"></a>
|
|
859
894
|
|
|
860
895
|
Een progressbar doet precies wat je verwacht.
|
|
861
896
|
|
|
862
|
-
-
|
|
897
|
+
- 4 maten (small (s), medium (m), large (l) en extralarge (xl)).
|
|
863
898
|
- 4 kleuren (danger (d), succes (s), link (l) en primary (p)). Default = primary
|
|
864
899
|
- de max value is instelbaar, default = 100.
|
|
865
900
|
|
|
@@ -872,10 +907,52 @@ Een progressbar doet precies wat je verwacht.
|
|
|
872
907
|
</div>
|
|
873
908
|
```
|
|
874
909
|
|
|
910
|
+
### TabBar <A id="component-tabbar"></a>
|
|
911
|
+
|
|
912
|
+
De TabBar component komt in de plaats van de Tabs component. Deze gaat iets anders om met Tab items dan de oude Tabs-component.
|
|
913
|
+
|
|
914
|
+
Als er andere items dan die van het type `<TabBarItem>` worden gebruikt, volgt een waarschuwing in de console.
|
|
915
|
+
Een TabBarItem kan vervolgens **alleen** strings of `<Icon>`-componenten bevatten. Deze worden gebruikt o de tab weer te geven.
|
|
916
|
+
|
|
917
|
+
```tsx
|
|
918
|
+
const [tab, setTab] = useState<string | number>(100);
|
|
919
|
+
// ...
|
|
920
|
+
<div>
|
|
921
|
+
<TabBar onTabChange={(tabId: number | string) => setTab(tabId)} initialTab={tab}>
|
|
922
|
+
<TabBar.Item tabId={100} tooltip="Toon de datatables. yeeehaa!">
|
|
923
|
+
<Icon icon="fas fa-horsehead" />
|
|
924
|
+
DataTables
|
|
925
|
+
</TabBar.Item>
|
|
926
|
+
<TabBar.Item tabId={200}>Notifications & Messages</TabBar.Item>
|
|
927
|
+
<TabBar.Item tabId="Titles">Titles, Forms, Buttons, Tags</TabBar.Item>
|
|
928
|
+
<TabBar.Item tabId="300">
|
|
929
|
+
Aspect Ratio's
|
|
930
|
+
<Icon icon={faAdjust} />
|
|
931
|
+
</TabBar.Item>
|
|
932
|
+
<TabBar.Item tabId="MonthView">
|
|
933
|
+
<Icon icon={faCalendar} />
|
|
934
|
+
</TabBar.Item>
|
|
935
|
+
</TabBar>
|
|
936
|
+
|
|
937
|
+
<div className="tab-content">
|
|
938
|
+
{tab === 100 && <DataTableTab />}
|
|
939
|
+
{tab === 200 && <NotificationTab />}
|
|
940
|
+
{tab === 'Titles' && <TitlesFormsButtonsTab />}
|
|
941
|
+
{tab === '300' && <AspectRatioTab />}
|
|
942
|
+
{tab === 'MonthView' && <CalendarTab />}
|
|
943
|
+
</div>
|
|
944
|
+
</div>;
|
|
945
|
+
```
|
|
946
|
+
|
|
875
947
|
### Table <a id="component-table"></a>
|
|
876
948
|
|
|
877
|
-
|
|
949
|
+
Table nieuwe stijl. TODO: documentatie & implementatie
|
|
950
|
+
|
|
951
|
+
### SimpleTable <a id="component-simpletable"></a>, voorheen Table
|
|
952
|
+
|
|
953
|
+
Een SimpleTable is een gewone tabel, dus geen zoekfunctie of sortering zoals de [DataTable](#component-datatable). Het instellen gaat wel hetzelfde. Enige verschil is dat deze niet fullwidth hoeft te zijn.
|
|
878
954
|
Als de inhoud van een Table kan wijzigen, moet deze data met 'state' worden gebruikt. Anders wordt de inhoud van de tabel niet geüpdate.
|
|
955
|
+
In plaats van deze SimpleTable kan je ook de [Table](#component-table) gebruiken.
|
|
879
956
|
|
|
880
957
|
```tsx
|
|
881
958
|
const [data, setData] = useState(tableData);
|
|
@@ -900,36 +977,10 @@ return (
|
|
|
900
977
|
);
|
|
901
978
|
```
|
|
902
979
|
|
|
903
|
-
### Tabs <a id="component-tabs"></a>
|
|
904
|
-
|
|
905
|
-
Tabs doen precies wat ze zeggen:
|
|
906
|
-
|
|
907
|
-
```tsx
|
|
908
|
-
export default function App() {
|
|
909
|
-
const [activePage, setActiveTab] = useState(0);
|
|
910
|
-
return (
|
|
911
|
-
<>
|
|
912
|
-
<Tabs
|
|
913
|
-
items={['DataTables', 'Notifications & Messsages', 'Titles, Forms & Buttons', 'Images & Aspect Ratios']}
|
|
914
|
-
activeTab={activePage}
|
|
915
|
-
onTabChange={(i: number) => setActiveTab(i)}
|
|
916
|
-
/>
|
|
917
|
-
|
|
918
|
-
<div className="tab-content">
|
|
919
|
-
{activePage === 0 ? <DataTableTab /> : null}
|
|
920
|
-
{activePage === 1 ? <NotificationTab /> : null}
|
|
921
|
-
{activePage === 2 ? <TitlesFormsButtonsTab /> : null}
|
|
922
|
-
{activePage === 3 ? <AspectRatioTab /> : null}
|
|
923
|
-
</div>
|
|
924
|
-
</>
|
|
925
|
-
);
|
|
926
|
-
}
|
|
927
|
-
```
|
|
928
|
-
|
|
929
980
|
### Tag & Tags <a id="component-tags"></a>
|
|
930
981
|
|
|
931
982
|
Een `<Tag>` is een klein inline elementje om overal te kunnen stoppen. Tags kunnen een optionele sluit-knop bevatten
|
|
932
|
-
De `<Tags>` component kan gebruikt worden om meerdere tags te groeperen. Dan kunnen ze samengeplakt worden, de grootte van alle tags of de alignment kan dan ingesteld worden.
|
|
983
|
+
De `<Tags>` component kan gebruikt worden om meerdere tags te groeperen. Dan kunnen ze samengeplakt worden, de grootte van alle tags of de alignment kan dan ingesteld worden. Als er een ander element dan een `<Tag>` gebruikt wordt in de `<Tags>`-component, wordt daarover gewaarschuwd in de console.
|
|
933
984
|
|
|
934
985
|
```tsx
|
|
935
986
|
<Tags alignment="l" size="s">
|
|
@@ -942,9 +993,14 @@ De `<Tags>` component kan gebruikt worden om meerdere tags te groeperen. Dan kun
|
|
|
942
993
|
<Tag color="light">light</Tag>
|
|
943
994
|
<Tag color="dark">dark</Tag>
|
|
944
995
|
</Tags>
|
|
996
|
+
|
|
997
|
+
// warns if you use a tag that is not a `<Tag>`
|
|
998
|
+
<Tags>
|
|
999
|
+
<span>Fakey!</span>
|
|
1000
|
+
</Tags>
|
|
945
1001
|
```
|
|
946
1002
|
|
|
947
|
-
Met de `onDismiss`-function van de `<Tag>` kan je een sluit-button op een tag toevoegen. Dan moet er
|
|
1003
|
+
Met de `onDismiss`-function van de `<Tag>` kan je een sluit-button op een tag toevoegen. Dan **moet** er een function opgegevens zijn om iets mee te doen
|
|
948
1004
|
|
|
949
1005
|
```tsx
|
|
950
1006
|
<Tag color="dark" onDismiss={(e) => handleTagDismiss(e)}>
|
|
@@ -992,6 +1048,95 @@ Allemaal hebben ze 2 waarden die isntelbaar zijn voor Sizes: _headingSize_ en _b
|
|
|
992
1048
|
</div>
|
|
993
1049
|
```
|
|
994
1050
|
|
|
1051
|
+
## ToggleBar <a id="component-toggles"></a>
|
|
1052
|
+
|
|
1053
|
+
De ToggleBar component toont een ritje aan elkaar vastgemaakte knoppen. . De ToggleBar kan alleen maar `<ToggleBar.Item>` of `<ToggleBar.OnOffItem>` bevatten. Bij andere items wordt een warning geprint in de console en deze andere items worden **niet** gerendered.
|
|
1054
|
+
|
|
1055
|
+
De ToggleBar heeft de volgende props:
|
|
1056
|
+
|
|
1057
|
+
- `initialValue`: de geselecteerde ToggleItem-identifier (NIET VOOR `<ToggleBar.OnOffItem>`)
|
|
1058
|
+
- `children`: de ToggleItems of OnOffToggleItems die in de ToggleBar zitten
|
|
1059
|
+
- `onToggle`: callback voor veranderen van geselecteerde ToggleItem
|
|
1060
|
+
- `rounded`: round de hoeken af (default `false`)
|
|
1061
|
+
- `light`: maak de ToggleBar light-colored (default `true`)
|
|
1062
|
+
- `outlined`: maak de ToggleBar outlined (default `false`)
|
|
1063
|
+
- `onColor`: ColorProp voor de 'on'-status (default 's' (success, groen))
|
|
1064
|
+
- `offColor`: ColorProp voor de 'off'-status (default 'd' (danger, rood))
|
|
1065
|
+
|
|
1066
|
+
#### Common props Toggle Items
|
|
1067
|
+
|
|
1068
|
+
Er zijn een paar props op de `Item` en de `OnOffItem` hetzelfde.
|
|
1069
|
+
|
|
1070
|
+
- `identifier`: kan gebruikt worden om een van de items een betere, herkenbare naam te geven als het item meer content bevat dan alleen een string.
|
|
1071
|
+
- `tooltip`: tooltip voor een toggle-item
|
|
1072
|
+
- `disabled`: disable een toggle-item`
|
|
1073
|
+
|
|
1074
|
+
### ToggleItem
|
|
1075
|
+
|
|
1076
|
+
ToggleItems zijn meerdere knopjes op de bar, waarvan er maar 1 de status 'on' heeft. De andere buttons hebben dan de 'off'-state.
|
|
1077
|
+
|
|
1078
|
+
De `onToggle()`-callback wordt aangeroepen als de getogglede knop wordt verandert.
|
|
1079
|
+
|
|
1080
|
+
```tsx
|
|
1081
|
+
<div>
|
|
1082
|
+
<ToggleBar onToggle={(item: string) => {}} rounded={true} light={true} initialValue="Toggle C">
|
|
1083
|
+
<ToggleBar.Item identifier="A">Toggle A</ToggleBar.Item> <!-- console: 'A' -->
|
|
1084
|
+
<ToggleBar.Item>Toggle B</ToggleBar.Item> <!-- console: 'Toggle B' -->
|
|
1085
|
+
<ToggleBar.Item>Toggle C</ToggleBar.Item> <!-- console: 'Toggle C' -->
|
|
1086
|
+
</ToggleBar>
|
|
1087
|
+
</div>
|
|
1088
|
+
```
|
|
1089
|
+
|
|
1090
|
+
### OnOffToggleItem
|
|
1091
|
+
|
|
1092
|
+
OnOffToggleItems zijn knopjes die apart on/off te toggelen zijn. Elke knop heeft een eigen onToggle-function die aangeroepen wordt als op de knop wordt gedrukt.
|
|
1093
|
+
|
|
1094
|
+
De OnOffToggleItems maken **geen** gebruik van de `onToggle`-callback van de ToggleBar. Dat moet door het item _zelf_ worden geregeld.
|
|
1095
|
+
Ze hebben 2 props meer dan de ToggleItems:
|
|
1096
|
+
|
|
1097
|
+
- `toggled`: de initiële status van het item
|
|
1098
|
+
- `onToggle: (on: boolean, item: string) => void`: de callback die aangeroepen wordt als er wordt getoggeld.
|
|
1099
|
+
|
|
1100
|
+
```tsx
|
|
1101
|
+
<div>
|
|
1102
|
+
<ToggleBar rounded={true} outlined={true}>
|
|
1103
|
+
<ToggleBar.OnOffItem
|
|
1104
|
+
onToggle={(on: boolean, item: string) => console.log(item)}
|
|
1105
|
+
identifier="1">
|
|
1106
|
+
Maandag
|
|
1107
|
+
</ToggleBar.OnOffItem><!--console: '1' -->
|
|
1108
|
+
<ToggleBar.OnOffItem
|
|
1109
|
+
onToggle={(on: boolean, item: string) => console.log(item)}
|
|
1110
|
+
identifier="2">
|
|
1111
|
+
Dinsdag
|
|
1112
|
+
</ToggleBar.OnOffItem><!--console: '2' -->
|
|
1113
|
+
<ToggleBar.OnOffItem
|
|
1114
|
+
onToggle={(on: boolean, item: string) => console.log(item)}
|
|
1115
|
+
identifier="3">
|
|
1116
|
+
Woensdag
|
|
1117
|
+
</ToggleBar.OnOffItem><!--console: '3' -->
|
|
1118
|
+
<ToggleBar.OnOffItem
|
|
1119
|
+
onToggle={(on: boolean, item: string) => console.log(item)}
|
|
1120
|
+
identifier="4">
|
|
1121
|
+
Donderdag
|
|
1122
|
+
</ToggleBar.OnOffItem><!--console: '4' -->
|
|
1123
|
+
<ToggleBar.OnOffItem
|
|
1124
|
+
onToggle={(on: boolean, item: string) => console.log(item)}
|
|
1125
|
+
identifier="5">
|
|
1126
|
+
Vrijdag
|
|
1127
|
+
</ToggleBar.OnOffItem><!--console: '5' -->
|
|
1128
|
+
<ToggleBar.OnOffItem
|
|
1129
|
+
onToggle={(on: boolean, item: string) => console.log(item)}>
|
|
1130
|
+
Zaterdag
|
|
1131
|
+
</ToggleBar.OnOffItem><!--console: 'Za' -->
|
|
1132
|
+
<ToggleBar.OnOffItem
|
|
1133
|
+
onToggle={(on: boolean, item: string) => console.log(item)}>
|
|
1134
|
+
Zondag
|
|
1135
|
+
</ToggleBar.OnOffItem><!--console: 'Zo' -->
|
|
1136
|
+
</ToggleBar>
|
|
1137
|
+
</div>
|
|
1138
|
+
```
|
|
1139
|
+
|
|
995
1140
|
## Form & inputs <a id="form"></a>
|
|
996
1141
|
|
|
997
1142
|
De library bevat componenten om als losse inputs, selects, ranges of checkboxes te gebruiken of om een form helemaal samen te stellen. Elke input heeft een validatie-object met wat standaard validatie-opties, een optionele methode om een waarde te evalueren (`onValidate()`). De `name` en `id` attributen zijn verplicht. Als voor een input geen `label` is opgegeven, wordt de `name` daarvoor gebruikt.
|