@digigov/ui 2.0.0-rc.21 → 2.0.0-rc.23
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/app/Header/__stories__/WithServiceNameAndLogo/index.js +2 -2
- package/app/Header/__stories__/WithServiceNameAndLogo.js.map +2 -2
- package/app/Loader/index.d.ts +1 -1
- package/app/Loader/index.js +1 -1
- package/app/Loader/index.js.map +1 -1
- package/app/Loader/index.native/index.js +102 -0
- package/{api/fetchAPI → app/Loader/index.native}/package.json +1 -1
- package/app/Loader/index.native.d.ts +3 -0
- package/app/Loader/index.native.js.map +7 -0
- package/app/Loader/index.web/index.js +2 -0
- package/{api/APIProvider → app/Loader/index.web}/package.json +1 -1
- package/app/Loader/index.web.d.ts +1 -0
- package/app/Loader/index.web.js.map +7 -0
- package/app/Masthead/Masthead.stories/index.js +2 -0
- package/app/Masthead/Masthead.stories.d.ts +1 -0
- package/app/Masthead/Masthead.stories.js.map +2 -2
- package/app/Masthead/__stories__/Secondary/index.js +13 -0
- package/app/Masthead/__stories__/Secondary/package.json +6 -0
- package/app/Masthead/__stories__/Secondary.d.ts +3 -0
- package/app/Masthead/__stories__/Secondary.js.map +7 -0
- package/app/QrCodeScanner/index.js.map +2 -2
- package/cjs/app/Header/__stories__/WithServiceNameAndLogo.js.map +3 -3
- package/cjs/app/Loader/index.js +3 -3
- package/cjs/app/Loader/index.js.map +2 -2
- package/cjs/app/Loader/index.native/index.js +135 -0
- package/cjs/app/Loader/index.native.js.map +7 -0
- package/cjs/app/Loader/index.web/index.js +22 -0
- package/cjs/app/Loader/index.web.js.map +7 -0
- package/cjs/app/Masthead/Masthead.stories/index.js +3 -0
- package/cjs/app/Masthead/Masthead.stories.js.map +2 -2
- package/cjs/app/Masthead/__stories__/Secondary/index.js +46 -0
- package/cjs/app/Masthead/__stories__/Secondary.js.map +7 -0
- package/cjs/app/QrCodeScanner/index.js.map +2 -2
- package/cjs/content/Table/Table.stories/index.js +3 -3
- package/cjs/content/Table/Table.stories.js.map +2 -2
- package/cjs/content/Table/__stories__/{Densed → Dense}/index.js +9 -9
- package/cjs/content/Table/__stories__/{Densed.js.map → Dense.js.map} +3 -3
- package/cjs/feedback/CopyToClipboard/__stories__/Default/index.js +1 -1
- package/cjs/feedback/CopyToClipboard/__stories__/Default.js.map +2 -2
- package/cjs/form/DateInputContainer/__stories__/MultipleQuestions/index.js +1 -1
- package/cjs/form/DateInputContainer/__stories__/MultipleQuestions.js.map +1 -1
- package/cjs/{api/APIErrors → form/SearchContainer/SearchContainer.stories}/index.js +15 -43
- package/cjs/form/SearchContainer/SearchContainer.stories.js.map +7 -0
- package/cjs/{api/APIProvider → form/SearchContainer/__stories__/Default}/index.js +12 -27
- package/cjs/form/SearchContainer/__stories__/Default.js.map +7 -0
- package/cjs/i18n/locales/el/index.js +7 -1
- package/cjs/i18n/locales/el.js.map +2 -2
- package/cjs/layouts/Basic/Bottom/__stories__/Default/index.js +7 -5
- package/cjs/layouts/Basic/Bottom/__stories__/Default.js.map +3 -3
- package/cjs/layouts/Basic/Container/__stories__/Default/index.js +6 -4
- package/cjs/layouts/Basic/Container/__stories__/Default.js.map +3 -3
- package/cjs/layouts/Basic/Main/__stories__/Default/index.js +6 -4
- package/cjs/layouts/Basic/Main/__stories__/Default.js.map +3 -3
- package/cjs/layouts/Basic/Top/__stories__/Default/index.js +6 -4
- package/cjs/layouts/Basic/Top/__stories__/Default.js.map +3 -3
- package/cjs/lazy/index.js +4 -5
- package/cjs/lazy.js.map +2 -2
- package/cjs/navigation/Breadcrumbs/Breadcrumbs.stories/index.js +6 -0
- package/cjs/navigation/Breadcrumbs/Breadcrumbs.stories.js.map +2 -2
- package/cjs/navigation/Breadcrumbs/__stories__/Auto/index.js +201 -0
- package/cjs/navigation/Breadcrumbs/__stories__/Auto.js.map +7 -0
- package/cjs/navigation/Breadcrumbs/__stories__/WithHook/index.js +208 -0
- package/cjs/navigation/Breadcrumbs/__stories__/WithHook.js.map +7 -0
- package/cjs/navigation/Breadcrumbs/auto/index.js +79 -0
- package/cjs/navigation/Breadcrumbs/auto.js.map +7 -0
- package/cjs/navigation/Breadcrumbs/hooks/index.js +74 -0
- package/cjs/navigation/Breadcrumbs/hooks.js.map +7 -0
- package/cjs/navigation/Breadcrumbs/index.js +3 -1
- package/cjs/navigation/Breadcrumbs/index.js.map +2 -2
- package/cjs/navigation/Breadcrumbs/slug/index.js +120 -0
- package/cjs/navigation/Breadcrumbs/slug.js.map +7 -0
- package/cjs/navigation/Breadcrumbs/utils/index.js +52 -0
- package/cjs/navigation/Breadcrumbs/utils.js.map +7 -0
- package/cjs/navigation/Drawer/__stories__/Auto/index.js +3 -1
- package/cjs/navigation/Drawer/__stories__/Auto.js.map +2 -2
- package/cjs/navigation/Drawer/__stories__/Default/index.js +2 -2
- package/cjs/navigation/Drawer/__stories__/Default.js.map +3 -3
- package/cjs/navigation/NavList/__stories__/UsingNavListAuto/index.js +22 -22
- package/cjs/navigation/NavList/__stories__/UsingNavListAuto.js.map +2 -2
- package/cjs/navigation/NavList/__stories__/Vertical/index.js +25 -17
- package/cjs/navigation/NavList/__stories__/Vertical.js.map +2 -2
- package/cjs/registry/index.js +12 -16
- package/cjs/registry.js.map +2 -2
- package/content/Table/Table.stories/index.js +2 -2
- package/content/Table/Table.stories.d.ts +1 -1
- package/content/Table/Table.stories.js.map +2 -2
- package/content/Table/__stories__/{Densed → Dense}/index.js +5 -5
- package/content/Table/__stories__/Dense/package.json +6 -0
- package/content/Table/__stories__/Dense.d.ts +3 -0
- package/content/Table/__stories__/{Densed.js.map → Dense.js.map} +3 -3
- package/feedback/CopyToClipboard/__stories__/Default/index.js +1 -1
- package/feedback/CopyToClipboard/__stories__/Default.js.map +2 -2
- package/form/DateInputContainer/__stories__/MultipleQuestions/index.js +1 -1
- package/form/DateInputContainer/__stories__/MultipleQuestions.js.map +1 -1
- package/form/SearchContainer/SearchContainer.stories/index.js +13 -0
- package/form/SearchContainer/SearchContainer.stories/package.json +6 -0
- package/form/SearchContainer/SearchContainer.stories.d.ts +9 -0
- package/form/SearchContainer/SearchContainer.stories.js.map +7 -0
- package/form/SearchContainer/__stories__/Default/index.js +11 -0
- package/form/SearchContainer/__stories__/Default/package.json +6 -0
- package/form/SearchContainer/__stories__/Default.d.ts +3 -0
- package/form/SearchContainer/__stories__/Default.js.map +7 -0
- package/form/SearchContainer/index.test.d.ts +1 -0
- package/i18n/locales/el/index.js +7 -1
- package/i18n/locales/el.d.ts +6 -0
- package/i18n/locales/el.js.map +2 -2
- package/index.js +1 -1
- package/layouts/Basic/Bottom/__stories__/Default/index.js +7 -5
- package/layouts/Basic/Bottom/__stories__/Default.js.map +2 -2
- package/layouts/Basic/Container/__stories__/Default/index.js +6 -4
- package/layouts/Basic/Container/__stories__/Default.js.map +2 -2
- package/layouts/Basic/Main/__stories__/Default/index.js +6 -4
- package/layouts/Basic/Main/__stories__/Default.js.map +2 -2
- package/layouts/Basic/Top/__stories__/Default/index.js +6 -4
- package/layouts/Basic/Top/__stories__/Default.js.map +2 -2
- package/lazy/index.js +4 -5
- package/lazy.d.ts +4 -5
- package/lazy.js.map +2 -2
- package/navigation/Breadcrumbs/Breadcrumbs.stories/index.js +4 -0
- package/navigation/Breadcrumbs/Breadcrumbs.stories.d.ts +2 -0
- package/navigation/Breadcrumbs/Breadcrumbs.stories.js.map +2 -2
- package/navigation/Breadcrumbs/__stories__/Auto/index.js +172 -0
- package/navigation/Breadcrumbs/__stories__/Auto/package.json +6 -0
- package/navigation/Breadcrumbs/__stories__/Auto.d.ts +3 -0
- package/navigation/Breadcrumbs/__stories__/Auto.js.map +7 -0
- package/navigation/Breadcrumbs/__stories__/WithHook/index.js +179 -0
- package/navigation/Breadcrumbs/__stories__/WithHook/package.json +6 -0
- package/navigation/Breadcrumbs/__stories__/WithHook.d.ts +3 -0
- package/navigation/Breadcrumbs/__stories__/WithHook.js.map +7 -0
- package/navigation/Breadcrumbs/auto/index.js +49 -0
- package/{api → navigation/Breadcrumbs/auto}/package.json +1 -1
- package/navigation/Breadcrumbs/auto.d.ts +16 -0
- package/navigation/Breadcrumbs/auto.js.map +7 -0
- package/navigation/Breadcrumbs/hooks/index.js +51 -0
- package/navigation/Breadcrumbs/hooks/package.json +6 -0
- package/navigation/Breadcrumbs/hooks.d.ts +11 -0
- package/navigation/Breadcrumbs/hooks.js.map +7 -0
- package/navigation/Breadcrumbs/index.d.ts +1 -0
- package/navigation/Breadcrumbs/index.js +1 -0
- package/navigation/Breadcrumbs/index.js.map +2 -2
- package/navigation/Breadcrumbs/slug/index.js +97 -0
- package/{api/APIErrors → navigation/Breadcrumbs/slug}/package.json +1 -1
- package/navigation/Breadcrumbs/slug.d.ts +1 -0
- package/navigation/Breadcrumbs/slug.js.map +7 -0
- package/navigation/Breadcrumbs/utils/index.js +29 -0
- package/navigation/Breadcrumbs/utils/package.json +6 -0
- package/navigation/Breadcrumbs/utils.d.ts +1 -0
- package/navigation/Breadcrumbs/utils.js.map +7 -0
- package/navigation/Drawer/__stories__/Auto/index.js +3 -1
- package/navigation/Drawer/__stories__/Auto.d.ts +1 -0
- package/navigation/Drawer/__stories__/Auto.js.map +2 -2
- package/navigation/Drawer/__stories__/Default/index.js +1 -1
- package/navigation/Drawer/__stories__/Default.js.map +2 -2
- package/navigation/NavList/__stories__/UsingNavListAuto/index.js +23 -23
- package/navigation/NavList/__stories__/UsingNavListAuto.js.map +2 -2
- package/navigation/NavList/__stories__/Vertical/index.js +25 -17
- package/navigation/NavList/__stories__/Vertical.js.map +2 -2
- package/package.json +5 -6
- package/registry/index.js +12 -16
- package/registry.d.ts +7 -8
- package/registry.js.map +2 -2
- package/src/app/Footer/{index.mdx → doc.mdx} +7 -23
- package/src/app/Header/__snapshots__/index.spec.tsx.snap +42 -36
- package/src/app/Header/__stories__/WithServiceNameAndLogo.tsx +2 -2
- package/src/app/Header/doc.mdx +32 -0
- package/src/app/Loader/index.native.tsx +98 -0
- package/src/app/Loader/index.tsx +1 -1
- package/src/app/Loader/index.web.tsx +1 -0
- package/src/app/Masthead/Masthead.stories.js +1 -0
- package/src/app/Masthead/__stories__/Secondary.tsx +26 -0
- package/src/app/Masthead/{index.mdx → doc.mdx} +13 -1
- package/src/app/Masthead/index.test.tsx +4 -0
- package/src/app/Modal/{index.mdx → doc.mdx} +9 -6
- package/src/app/NotFound/{index.mdx → doc.mdx} +2 -4
- package/src/app/Panel/{index.mdx → doc.mdx} +3 -1
- package/src/app/PhaseBannerHeader/{index.mdx → doc.mdx} +3 -5
- package/src/app/QrCodeScanner/__snapshots__/index.spec.tsx.snap +6 -10
- package/src/app/QrCodeScanner/index.tsx +1 -0
- package/src/app/QrCodeViewer/{index.mdx → doc.mdx} +4 -12
- package/src/app/Skeleton/doc.mdx +42 -0
- package/src/content/Accordion/__snapshots__/index.spec.tsx.snap +48 -147
- package/src/content/Accordion/{index.mdx → doc.mdx} +2 -13
- package/src/content/Blockquote/__snapshots__/index.spec.tsx.snap +6 -9
- package/src/content/Blockquote/{index.mdx → doc.mdx} +5 -5
- package/src/content/Card/doc.mdx +71 -0
- package/src/content/Chip/doc.mdx +34 -0
- package/src/content/Details/__snapshots__/index.spec.tsx.snap +32 -69
- package/src/content/Details/{index.mdx → doc.mdx} +1 -5
- package/src/content/List/__snapshots__/index.spec.tsx.snap +3 -3
- package/src/content/List/doc.mdx +28 -0
- package/src/content/StepNav/{index.mdx → doc.mdx} +5 -19
- package/src/content/SummaryList/__snapshots__/index.spec.tsx.snap +37 -89
- package/src/content/SummaryList/{index.mdx → doc.mdx} +6 -18
- package/src/content/Table/Table.stories.js +1 -1
- package/src/content/Table/__stories__/{Densed.tsx → Dense.tsx} +2 -2
- package/src/content/Table/doc.mdx +81 -0
- package/src/content/Table/index.test.tsx +3 -3
- package/src/content/TaskList/{index.mdx → doc.mdx} +4 -6
- package/src/content/Timeline/{index.mdx → doc.mdx} +4 -6
- package/src/feedback/CopyToClipboard/__stories__/Default.tsx +1 -1
- package/src/feedback/CopyToClipboard/doc.mdx +22 -0
- package/src/feedback/ErrorSummary/__snapshots__/index.spec.tsx.snap +3 -3
- package/src/feedback/ErrorSummary/{index.mdx → doc.mdx} +6 -22
- package/src/feedback/NotificationBanner/__snapshots__/index.spec.tsx.snap +1 -1
- package/src/feedback/NotificationBanner/{index.mdx → doc.mdx} +8 -19
- package/src/feedback/PhaseBanner/{index.mdx → doc.mdx} +2 -12
- package/src/feedback/WarningText/__snapshots__/index.spec.tsx.snap +3 -3
- package/src/feedback/WarningText/{index.mdx → doc.mdx} +8 -6
- package/src/form/AutoComplete/doc.mdx +50 -0
- package/src/form/Button/__snapshots__/index.spec.tsx.snap +6 -10
- package/src/form/Button/{index.mdx → doc.mdx} +12 -27
- package/src/form/Checkbox/{index.mdx → doc.mdx} +10 -36
- package/src/form/DateInputContainer/__stories__/MultipleQuestions.tsx +1 -1
- package/src/form/DateInputContainer/{index.mdx → doc.mdx} +7 -21
- package/src/form/ErrorMessage/{index.mdx → doc.mdx} +1 -5
- package/src/form/FileUpload/{index.mdx → doc.mdx} +2 -10
- package/src/form/RadioContainer/{index.mdx → doc.mdx} +10 -36
- package/src/form/SearchContainer/SearchContainer.stories.js +9 -0
- package/src/form/SearchContainer/__stories__/Default.tsx +13 -0
- package/src/form/SearchContainer/doc.mdx +16 -0
- package/src/form/SearchContainer/index.test.tsx +20 -0
- package/src/form/SelectContainer/{index.mdx → doc.mdx} +3 -19
- package/src/form/SingleCharacterInputs/{index.mdx → doc.mdx} +3 -11
- package/src/form/TextArea/doc.mdx +48 -0
- package/src/form/TextInput/{index.mdx → doc.mdx} +12 -44
- package/src/i18n/locales/el.ts +15 -8
- package/src/layouts/Basic/Bottom/__stories__/Default.tsx +13 -9
- package/src/layouts/Basic/Bottom/{index.mdx → doc.mdx} +1 -5
- package/src/layouts/Basic/Container/__stories__/Default.tsx +15 -8
- package/src/layouts/Basic/Container/{index.mdx → doc.mdx} +1 -6
- package/src/layouts/Basic/Main/__stories__/Default.tsx +15 -8
- package/src/layouts/Basic/Main/{index.mdx → doc.mdx} +3 -5
- package/src/layouts/Basic/Top/__stories__/Default.tsx +13 -6
- package/src/layouts/Basic/Top/doc.mdx +19 -0
- package/src/layouts/Basic/__snapshots__/index.spec.tsx.snap +30 -102
- package/src/layouts/Basic/{index.mdx → doc.mdx} +7 -18
- package/src/layouts/Grid/doc.mdx +26 -0
- package/src/layouts/Stack/doc.mdx +38 -0
- package/src/lazy.js +5 -6
- package/src/navigation/BackLink/{index.mdx → doc.mdx} +1 -5
- package/src/navigation/Breadcrumbs/Breadcrumbs.stories.js +2 -0
- package/src/navigation/Breadcrumbs/__stories__/Auto.tsx +200 -0
- package/src/navigation/Breadcrumbs/__stories__/WithHook.tsx +217 -0
- package/src/navigation/Breadcrumbs/auto.tsx +72 -0
- package/src/navigation/Breadcrumbs/{index.mdx → doc.mdx} +5 -5
- package/src/navigation/Breadcrumbs/hooks.ts +66 -0
- package/src/navigation/Breadcrumbs/index.test.tsx +8 -0
- package/src/navigation/Breadcrumbs/index.tsx +3 -0
- package/src/navigation/Breadcrumbs/interaction.test.tsx +28 -4
- package/src/navigation/Breadcrumbs/slug.ts +141 -0
- package/src/navigation/Breadcrumbs/utils.ts +39 -0
- package/src/navigation/Drawer/__stories__/Auto.tsx +3 -1
- package/src/navigation/Drawer/__stories__/Default.tsx +2 -2
- package/src/navigation/Drawer/{index.mdx → doc.mdx} +5 -1
- package/src/navigation/Dropdown/{index.mdx → doc.mdx} +3 -15
- package/src/navigation/Link/__snapshots__/index.spec.tsx.snap +16 -30
- package/src/navigation/Link/{index.mdx → doc.mdx} +7 -19
- package/src/navigation/NavList/__snapshots__/index.spec.tsx.snap +3 -3
- package/src/navigation/NavList/__stories__/UsingNavListAuto.tsx +26 -27
- package/src/navigation/NavList/__stories__/Vertical.tsx +16 -12
- package/src/navigation/NavList/{index.mdx → doc.mdx} +19 -22
- package/src/navigation/Pagination/doc.mdx +32 -0
- package/src/navigation/Tabs/doc.mdx +47 -0
- package/src/registry.js +12 -16
- package/src/typography/CodeBlock/doc.mdx +30 -0
- package/src/typography/Heading/{index.mdx → doc.mdx} +3 -5
- package/src/typography/HeadingCaption/{index.mdx → doc.mdx} +5 -5
- package/src/typography/Hint/{index.mdx → doc.mdx} +4 -10
- package/src/typography/NormalText/doc.mdx +30 -0
- package/src/typography/Paragraph/doc.mdx +34 -0
- package/src/typography/Typography/doc.mdx +14 -0
- package/src/utils/VisuallyHidden/{index.mdx → doc.mdx} +3 -6
- package/api/APIErrors/index.js +0 -40
- package/api/APIErrors.d.ts +0 -23
- package/api/APIErrors.js.map +0 -7
- package/api/APIProvider/index.js +0 -24
- package/api/APIProvider.d.ts +0 -16
- package/api/APIProvider.js.map +0 -7
- package/api/fetchAPI/index.js +0 -29
- package/api/fetchAPI.d.ts +0 -14
- package/api/fetchAPI.js.map +0 -7
- package/api/index.d.ts +0 -8
- package/api/index.js +0 -12
- package/api/index.js.map +0 -7
- package/api/index.spec.d.ts +0 -1
- package/api/useResource/index.js +0 -79
- package/api/useResource/package.json +0 -6
- package/api/useResource.d.ts +0 -11
- package/api/useResource.js.map +0 -7
- package/api/useResourceAction/index.js +0 -74
- package/api/useResourceAction/package.json +0 -6
- package/api/useResourceAction.d.ts +0 -2
- package/api/useResourceAction.js.map +0 -7
- package/api/useResourceQuery/index.js +0 -149
- package/api/useResourceQuery/package.json +0 -6
- package/api/useResourceQuery.d.ts +0 -18
- package/api/useResourceQuery.js.map +0 -7
- package/api/utils/index.js +0 -131
- package/api/utils/package.json +0 -6
- package/api/utils.d.ts +0 -10
- package/api/utils.js.map +0 -7
- package/cjs/api/APIErrors.js.map +0 -7
- package/cjs/api/APIProvider.js.map +0 -7
- package/cjs/api/fetchAPI/index.js +0 -49
- package/cjs/api/fetchAPI.js.map +0 -7
- package/cjs/api/index.js +0 -41
- package/cjs/api/index.js.map +0 -7
- package/cjs/api/useResource/index.js +0 -102
- package/cjs/api/useResource.js.map +0 -7
- package/cjs/api/useResourceAction/index.js +0 -97
- package/cjs/api/useResourceAction.js.map +0 -7
- package/cjs/api/useResourceQuery/index.js +0 -173
- package/cjs/api/useResourceQuery.js.map +0 -7
- package/cjs/api/utils/index.js +0 -157
- package/cjs/api/utils.js.map +0 -7
- package/content/Table/__stories__/Densed/package.json +0 -6
- package/content/Table/__stories__/Densed.d.ts +0 -3
- package/src/api/APIErrors.tsx +0 -46
- package/src/api/APIProvider.tsx +0 -31
- package/src/api/fetchAPI.ts +0 -43
- package/src/api/index.spec.tsx +0 -417
- package/src/api/index.tsx +0 -9
- package/src/api/introduction.md +0 -6
- package/src/api/useResource.tsx +0 -96
- package/src/api/useResourceAction.tsx +0 -80
- package/src/api/useResourceQuery.tsx +0 -178
- package/src/api/utils.tsx +0 -162
- package/src/app/Header/index.mdx +0 -49
- package/src/content/Card/index.mdx +0 -103
- package/src/content/Chip/index.mdx +0 -53
- package/src/content/List/index.mdx +0 -40
- package/src/content/Table/index.mdx +0 -111
- package/src/feedback/CopyToClipboard/index.mdx +0 -28
- package/src/form/AutoComplete/index.mdx +0 -70
- package/src/form/TextArea/index.mdx +0 -74
- package/src/govgr/Footer/index.mdx +0 -101
- package/src/layouts/Basic/Top/index.mdx +0 -23
- package/src/layouts/Grid/index.mdx +0 -39
- package/src/navigation/Pagination/index.mdx +0 -48
- package/src/navigation/Tabs/index.mdx +0 -31
- package/src/typography/NormalText/index.mdx +0 -44
- package/src/typography/Paragraph/index.mdx +0 -32
- package/src/typography/Typography/index.mdx +0 -12
- /package/src/utils/Base/{index.mdx → doc.mdx} +0 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { List, ListItem } from '@digigov/ui/content/List';
|
|
3
|
+
import {
|
|
4
|
+
BreadcrumbsAuto,
|
|
5
|
+
BreadcrumbsListAuto,
|
|
6
|
+
useBreadcrumbsContext,
|
|
7
|
+
} from '@digigov/ui/navigation/Breadcrumbs/auto';
|
|
8
|
+
import { Heading } from '@digigov/ui/typography';
|
|
9
|
+
import { Button } from '@digigov/ui/form/Button/';
|
|
10
|
+
import { BreadcrumbItem } from '@digigov/ui/navigation/Breadcrumbs/hooks';
|
|
11
|
+
|
|
12
|
+
const items: BreadcrumbItem[] = [
|
|
13
|
+
{
|
|
14
|
+
title: 'Νομοθεσία Πυροπροστασίας',
|
|
15
|
+
children: [
|
|
16
|
+
{ title: 'Εγχειρίδια Νομοθεσίας Πυρασφάλειας', pdf: '#' },
|
|
17
|
+
{ title: 'Διάγραμμα Ισχύουσας Νομοθεσίας' },
|
|
18
|
+
{ title: 'Οδηγίες Επί Προτύπων Πυροπροστασίας' },
|
|
19
|
+
{ title: 'Απλουστεύσεις Διαδικασιών' },
|
|
20
|
+
{ title: 'Χρήσιμα Έγγραφα' },
|
|
21
|
+
{
|
|
22
|
+
title: 'Νομοθεσία Πυρασφάλειας',
|
|
23
|
+
children: [
|
|
24
|
+
{
|
|
25
|
+
title: 'Λοιπές Δραστηριότητες Εγκαταστάσεις',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
title:
|
|
29
|
+
'Εγκαταστάσεις Πετρελαιοειδών Προϊόντων – Υγραερίου – Φυσικού Αερίου',
|
|
30
|
+
},
|
|
31
|
+
{ title: 'Διατάξεις Προληπτικής Πυροπροστασίας' },
|
|
32
|
+
{ title: 'Συνδρομητική Νομοθεσία Πυροπροστασίας' },
|
|
33
|
+
{
|
|
34
|
+
title:
|
|
35
|
+
'Δραστηριότητες – Εγκαταστάσεις που δεν υπάγονται σε Νομοθετικό Πλαίσιο',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
title: 'Κανονισμοί Πυροπροστασίας Κτιρίων',
|
|
39
|
+
// href: '/kanonismoi-pyroprostasias',
|
|
40
|
+
children: [
|
|
41
|
+
{
|
|
42
|
+
title: 'Κατοικίες',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
title: 'Εγκαταστάσεις Κεντρικής Θέρμανσης',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
title: 'Προσωρινή Διαμονή (Ξεν/χεία-Κατ/σεις)',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
title: 'Εκπαιδευτήρια',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
title: 'Γραφεία',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
title: 'Εμπόριο (Καταστήματα)',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
title: 'Συνάθροιση Κοινού',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
title: 'Υγεία & Κοινωνική Πρόνοια',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
title: 'Σωφρονισμός',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
title: 'Στάθμευση Αυτοκινήτων',
|
|
70
|
+
},
|
|
71
|
+
|
|
72
|
+
{
|
|
73
|
+
title: 'Λοιπές Βιομηχανικές Εγκαταστάσεις',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
title: 'Αποθήκευση',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
title: 'Συνεργεία, ΙΚτέο, Εμπ.Σταθμοί, Κτελ, Πλυντ.-Λιπαντ.',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
title: 'Πρατήρια Υγρών Καυσίμων',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
title: 'Πρατήρια Αερίων Καυσίμων',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
title: 'Μεταποιητικές & Συναφείς Εγκαταστάσεις',
|
|
89
|
+
// href: '/metapoiitikes-egkatastaseis',
|
|
90
|
+
children: [
|
|
91
|
+
{
|
|
92
|
+
title: 'ΠΔ 41/2018 & ΚΥΑ ΑΠ-136860-1673-Φ15-2018',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
title: 'ΚΥΑ ΑΠ-136860-1673-Φ15-2018',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
title: 'ΠΔ 71/1988 ΚΥΑ ΑΠ-136860-1673-Φ15-2018',
|
|
99
|
+
children: [
|
|
100
|
+
{ title: 'Γενικές Διατάξεις ΠΔ 41/2018' },
|
|
101
|
+
{ title: 'ΚΥΑ ΑΠ-136860-1673-Φ15-2018' },
|
|
102
|
+
{
|
|
103
|
+
title: 'Γενικές Διατάξεις ΠΔ 71/2018',
|
|
104
|
+
children: [
|
|
105
|
+
{
|
|
106
|
+
title: 'Άρθρο 1: Ορισμοί – Ταξινόμηση Κτιρίων',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Άρθρο 2: Οδεύσεις Διαφυγής',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
title: 'Άρθρο 3: Δομική Προστασία',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
title: 'Άρθρο 4: Ενεργητικά Μέτρα Πυροπροστασίας',
|
|
116
|
+
pdf: '#pdf',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
title:
|
|
120
|
+
'Άρθρο 14: Παράρτημα Α - Δείκτες Πυραντίστασης',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
title:
|
|
124
|
+
'Άρθρο 14: Παράρτημα Β – Εσωτερικά Τελειώματα',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
title: 'Άρθρο 15: Εφαρμογή ΠΔ 71/1988',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
title:
|
|
131
|
+
'Άρθρο 23-24: Έναρξη Εφαρμογής – Καταργούμενες Διατάξεις',
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
},
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
];
|
|
146
|
+
|
|
147
|
+
const getListChild = (item, setActive) => {
|
|
148
|
+
return item.children ? (
|
|
149
|
+
<>
|
|
150
|
+
<Heading size="sm" mb={0}>
|
|
151
|
+
{item.title}
|
|
152
|
+
</Heading>
|
|
153
|
+
<List listStyle="number">
|
|
154
|
+
{item.children?.map((subMenu, key) => (
|
|
155
|
+
<ListItem key={key}>{getListChild(subMenu, setActive)}</ListItem>
|
|
156
|
+
))}
|
|
157
|
+
</List>
|
|
158
|
+
</>
|
|
159
|
+
) : (
|
|
160
|
+
<Button
|
|
161
|
+
variant="link"
|
|
162
|
+
role="menuitem"
|
|
163
|
+
id={item.title}
|
|
164
|
+
onClick={(e) => {
|
|
165
|
+
e.preventDefault(), setActive(item);
|
|
166
|
+
}}
|
|
167
|
+
>
|
|
168
|
+
{item.title}
|
|
169
|
+
</Button>
|
|
170
|
+
);
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
export const Auto = () => {
|
|
174
|
+
return (
|
|
175
|
+
<BreadcrumbsAuto
|
|
176
|
+
items={items}
|
|
177
|
+
initialUrlRoute="/nomothesia-pyroprostasias/odigies-epi-protypon-pyroprostasias"
|
|
178
|
+
>
|
|
179
|
+
<BreadcrumbsListAuto mb={8} />
|
|
180
|
+
<ContentRoutes />
|
|
181
|
+
</BreadcrumbsAuto>
|
|
182
|
+
);
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
const ContentRoutes = () => {
|
|
186
|
+
const { breadcrumbs, setActiveItem } = useBreadcrumbsContext();
|
|
187
|
+
|
|
188
|
+
return (
|
|
189
|
+
<>
|
|
190
|
+
{breadcrumbs.length > 0 && (
|
|
191
|
+
<Heading size="xl">
|
|
192
|
+
{breadcrumbs[breadcrumbs.length - 1]?.title}
|
|
193
|
+
</Heading>
|
|
194
|
+
)}
|
|
195
|
+
{items.map((item) => getListChild(item, setActiveItem))}
|
|
196
|
+
</>
|
|
197
|
+
);
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
export default Auto;
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { List, ListItem } from '@digigov/ui/content/List';
|
|
3
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
4
|
+
import {
|
|
5
|
+
Breadcrumbs,
|
|
6
|
+
BreadcrumbsList,
|
|
7
|
+
BreadcrumbsListItem,
|
|
8
|
+
} from '@digigov/ui/navigation/Breadcrumbs';
|
|
9
|
+
import { useBreadcrumbs } from '@digigov/ui/navigation/Breadcrumbs/hooks';
|
|
10
|
+
import { BreadcrumbItem } from '@digigov/ui/navigation/Breadcrumbs/hooks';
|
|
11
|
+
import { Heading } from '@digigov/ui/typography';
|
|
12
|
+
|
|
13
|
+
const items: BreadcrumbItem[] = [
|
|
14
|
+
{
|
|
15
|
+
title: 'Νομοθεσία Πυροπροστασίας',
|
|
16
|
+
children: [
|
|
17
|
+
{
|
|
18
|
+
title: 'Εγχειρίδια Νομοθεσίας Πυρασφάλειας',
|
|
19
|
+
pdf: '#',
|
|
20
|
+
href: 'echiridia-nomothesia-pyroprostasias',
|
|
21
|
+
},
|
|
22
|
+
{ title: 'Διάγραμμα Ισχύουσας Νομοθεσίας' },
|
|
23
|
+
{ title: 'Οδηγίες Επί Προτύπων Πυροπροστασίας' },
|
|
24
|
+
{ title: 'Απλουστεύσεις Διαδικασιών' },
|
|
25
|
+
{ title: 'Χρήσιμα Έγγραφα' },
|
|
26
|
+
{
|
|
27
|
+
title: 'Νομοθεσία Πυρασφάλειας',
|
|
28
|
+
children: [
|
|
29
|
+
{
|
|
30
|
+
title: 'Λοιπές Δραστηριότητες Εγκαταστάσεις',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
title:
|
|
34
|
+
'Εγκαταστάσεις Πετρελαιοειδών Προϊόντων – Υγραερίου – Φυσικού Αερίου',
|
|
35
|
+
},
|
|
36
|
+
{ title: 'Διατάξεις Προληπτικής Πυροπροστασίας' },
|
|
37
|
+
{ title: 'Συνδρομητική Νομοθεσία Πυροπροστασίας' },
|
|
38
|
+
{
|
|
39
|
+
title:
|
|
40
|
+
'Δραστηριότητες – Εγκαταστάσεις που δεν υπάγονται σε Νομοθετικό Πλαίσιο',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
title: 'Κανονισμοί Πυροπροστασίας Κτιρίων',
|
|
44
|
+
// href: '/kanonismoi-pyroprostasias',
|
|
45
|
+
children: [
|
|
46
|
+
{
|
|
47
|
+
title: 'Κατοικίες',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
title: 'Εγκαταστάσεις Κεντρικής Θέρμανσης',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
title: 'Προσωρινή Διαμονή (Ξεν/χεία-Κατ/σεις)',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
title: 'Εκπαιδευτήρια',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
title: 'Γραφεία',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
title: 'Εμπόριο (Καταστήματα)',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
title: 'Συνάθροιση Κοινού',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
title: 'Υγεία & Κοινωνική Πρόνοια',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
title: 'Σωφρονισμός',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
title: 'Στάθμευση Αυτοκινήτων',
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
{
|
|
78
|
+
title: 'Λοιπές Βιομηχανικές Εγκαταστάσεις',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
title: 'Αποθήκευση',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
title: 'Συνεργεία, ΙΚτέο, Εμπ.Σταθμοί, Κτελ, Πλυντ.-Λιπαντ.',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
title: 'Πρατήρια Υγρών Καυσίμων',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
title: 'Πρατήρια Αερίων Καυσίμων',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
title: 'Μεταποιητικές & Συναφείς Εγκαταστάσεις',
|
|
94
|
+
// href: '/metapoiitikes-egkatastaseis',
|
|
95
|
+
children: [
|
|
96
|
+
{
|
|
97
|
+
title: 'ΠΔ 41/2018 & ΚΥΑ ΑΠ-136860-1673-Φ15-2018',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
title: 'ΚΥΑ ΑΠ-136860-1673-Φ15-2018',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
title: 'ΠΔ 71/1988 ΚΥΑ ΑΠ-136860-1673-Φ15-2018',
|
|
104
|
+
children: [
|
|
105
|
+
{ title: 'Γενικές Διατάξεις ΠΔ 41/2018' },
|
|
106
|
+
{ title: 'ΚΥΑ ΑΠ-136860-1673-Φ15-2018' },
|
|
107
|
+
{
|
|
108
|
+
title: 'Γενικές Διατάξεις ΠΔ 71/2018',
|
|
109
|
+
children: [
|
|
110
|
+
{
|
|
111
|
+
title: 'Άρθρο 1: Ορισμοί – Ταξινόμηση Κτιρίων',
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
title: 'Άρθρο 2: Οδεύσεις Διαφυγής',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
title: 'Άρθρο 3: Δομική Προστασία',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
title: 'Άρθρο 4: Ενεργητικά Μέτρα Πυροπροστασίας',
|
|
121
|
+
pdf: '#pdf',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
title:
|
|
125
|
+
'Άρθρο 14: Παράρτημα Α - Δείκτες Πυραντίστασης',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
title:
|
|
129
|
+
'Άρθρο 14: Παράρτημα Β – Εσωτερικά Τελειώματα',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
title: 'Άρθρο 15: Εφαρμογή ΠΔ 71/1988',
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
title:
|
|
136
|
+
'Άρθρο 23-24: Έναρξη Εφαρμογής – Καταργούμενες Διατάξεις',
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
},
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
];
|
|
151
|
+
|
|
152
|
+
// creates the ol>li lists for the items data
|
|
153
|
+
const getListChild = (item, setActive) => {
|
|
154
|
+
return item.children ? (
|
|
155
|
+
<>
|
|
156
|
+
<Heading size="sm" mb={0}>
|
|
157
|
+
{item.title}
|
|
158
|
+
</Heading>
|
|
159
|
+
<List listStyle="number">
|
|
160
|
+
{item.children?.map((subMenu, key) => (
|
|
161
|
+
<ListItem key={key}>{getListChild(subMenu, setActive)}</ListItem>
|
|
162
|
+
))}
|
|
163
|
+
</List>
|
|
164
|
+
</>
|
|
165
|
+
) : (
|
|
166
|
+
<Button
|
|
167
|
+
variant="link"
|
|
168
|
+
role="menuitem"
|
|
169
|
+
id={item.title}
|
|
170
|
+
onClick={(e) => {
|
|
171
|
+
e.preventDefault();
|
|
172
|
+
setActive(item);
|
|
173
|
+
}}
|
|
174
|
+
>
|
|
175
|
+
{item.title}
|
|
176
|
+
</Button>
|
|
177
|
+
);
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
export const WithHook = () => {
|
|
181
|
+
// initialUrlRoute: '/nomothesia-pyroprostasias/odigies-epi-protypon-pyroprostasias'
|
|
182
|
+
// is to simulate that the user lands to a specific url
|
|
183
|
+
const { breadcrumbs, setActiveItem } = useBreadcrumbs(
|
|
184
|
+
items,
|
|
185
|
+
'/nomothesia-pyroprostasias/odigies-epi-protypon-pyroprostasias'
|
|
186
|
+
);
|
|
187
|
+
return (
|
|
188
|
+
<>
|
|
189
|
+
{breadcrumbs.length > 1 && (
|
|
190
|
+
<Breadcrumbs mb={8}>
|
|
191
|
+
<BreadcrumbsList>
|
|
192
|
+
{breadcrumbs.map((breadcrumb, index) => (
|
|
193
|
+
<BreadcrumbsListItem
|
|
194
|
+
key={index}
|
|
195
|
+
href={breadcrumbs.length - 1 === index ? undefined : '#'}
|
|
196
|
+
onClick={() => setActiveItem(breadcrumb)}
|
|
197
|
+
aria-current={
|
|
198
|
+
breadcrumbs.length - 1 === index ? 'page' : undefined
|
|
199
|
+
}
|
|
200
|
+
>
|
|
201
|
+
{breadcrumb.title}
|
|
202
|
+
</BreadcrumbsListItem>
|
|
203
|
+
))}
|
|
204
|
+
</BreadcrumbsList>
|
|
205
|
+
</Breadcrumbs>
|
|
206
|
+
)}
|
|
207
|
+
{breadcrumbs.length > 0 && (
|
|
208
|
+
<Heading size="xl">
|
|
209
|
+
{breadcrumbs[breadcrumbs.length - 1]?.title}
|
|
210
|
+
</Heading>
|
|
211
|
+
)}
|
|
212
|
+
{items.map((item) => getListChild(item, setActiveItem))}
|
|
213
|
+
</>
|
|
214
|
+
);
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
export default WithHook;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import React, { createContext, useContext, ReactNode } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
Breadcrumbs,
|
|
4
|
+
BreadcrumbsList,
|
|
5
|
+
BreadcrumbsListItem,
|
|
6
|
+
BreadcrumbsProps,
|
|
7
|
+
} from '@digigov/ui/navigation/Breadcrumbs';
|
|
8
|
+
import {
|
|
9
|
+
useBreadcrumbs,
|
|
10
|
+
UseBreadcrumbsReturn,
|
|
11
|
+
BreadcrumbItem,
|
|
12
|
+
} from '@digigov/ui/navigation/Breadcrumbs/hooks';
|
|
13
|
+
|
|
14
|
+
export interface BreadcrumbsListAutoProps extends BreadcrumbsProps {}
|
|
15
|
+
export interface BreadcrumbsAutoProps extends BreadcrumbsProps {}
|
|
16
|
+
export interface BreadcrumbsAutoProps {
|
|
17
|
+
items: BreadcrumbItem[];
|
|
18
|
+
initialUrlRoute?: string;
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
}
|
|
21
|
+
export const BreadcrumbsContext = createContext<UseBreadcrumbsReturn | null>(
|
|
22
|
+
null
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
export const BreadcrumbsAuto = ({
|
|
26
|
+
items,
|
|
27
|
+
initialUrlRoute,
|
|
28
|
+
children,
|
|
29
|
+
}: BreadcrumbsAutoProps) => {
|
|
30
|
+
const breadcrumbs = useBreadcrumbs(items, initialUrlRoute);
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<BreadcrumbsContext.Provider value={breadcrumbs}>
|
|
34
|
+
{children}
|
|
35
|
+
</BreadcrumbsContext.Provider>
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const useBreadcrumbsContext = (): UseBreadcrumbsReturn => {
|
|
40
|
+
const context = useContext(BreadcrumbsContext);
|
|
41
|
+
if (!context) {
|
|
42
|
+
throw new Error(
|
|
43
|
+
'BreadcrumbsContext must be used within an BreadcrumbsProvider'
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
return context;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const BreadcrumbsListAuto = React.forwardRef<
|
|
50
|
+
HTMLDivElement,
|
|
51
|
+
BreadcrumbsListAutoProps
|
|
52
|
+
>(function BreadcrumbsListAuto(props, ref) {
|
|
53
|
+
const { breadcrumbs, setActiveItem } = useBreadcrumbsContext();
|
|
54
|
+
return (
|
|
55
|
+
<Breadcrumbs ref={ref} role="navigation" {...props}>
|
|
56
|
+
<BreadcrumbsList>
|
|
57
|
+
{breadcrumbs.map((breadcrumb, index) => (
|
|
58
|
+
<BreadcrumbsListItem
|
|
59
|
+
key={index}
|
|
60
|
+
href={
|
|
61
|
+
breadcrumbs.length - 1 === index ? undefined : breadcrumb.href
|
|
62
|
+
}
|
|
63
|
+
onClick={() => setActiveItem(breadcrumb)}
|
|
64
|
+
aria-current={breadcrumbs.length - 1 === index ? 'page' : undefined}
|
|
65
|
+
>
|
|
66
|
+
{breadcrumb.title}
|
|
67
|
+
</BreadcrumbsListItem>
|
|
68
|
+
))}
|
|
69
|
+
</BreadcrumbsList>
|
|
70
|
+
</Breadcrumbs>
|
|
71
|
+
);
|
|
72
|
+
});
|
|
@@ -11,11 +11,11 @@ The Breadcrumbs component lets users show and hide sections of related content o
|
|
|
11
11
|
|
|
12
12
|
## How to use
|
|
13
13
|
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
/>
|
|
14
|
+
<code src="@digigov/ui/navigation/Breadcrumbs/__stories__/Default.tsx" />
|
|
15
|
+
|
|
16
|
+
### Without current page
|
|
17
|
+
|
|
18
|
+
<code src="@digigov/ui/navigation/Breadcrumbs/__stories__/WithoutCurrentPage.tsx" />
|
|
19
19
|
|
|
20
20
|
## Accessibility
|
|
21
21
|
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
2
|
+
import { slug } from '@digigov/ui/navigation/Breadcrumbs/slug';
|
|
3
|
+
import { flattenRoutes } from '@digigov/ui/navigation/Breadcrumbs/utils';
|
|
4
|
+
|
|
5
|
+
export interface BreadcrumbItem {
|
|
6
|
+
title: string;
|
|
7
|
+
href?: string;
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface UseBreadcrumbsReturn {
|
|
12
|
+
breadcrumbs: BreadcrumbItem[];
|
|
13
|
+
currentRoute: string;
|
|
14
|
+
setActiveItem: (item: BreadcrumbItem) => void;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const useBreadcrumbs = (
|
|
18
|
+
items: BreadcrumbItem[],
|
|
19
|
+
initialUrlRoute?: string
|
|
20
|
+
): UseBreadcrumbsReturn => {
|
|
21
|
+
const routes = useMemo(() => flattenRoutes(items, 100), [items]);
|
|
22
|
+
const [currentRoute, setCurrentRoute] = useState(initialUrlRoute || '');
|
|
23
|
+
|
|
24
|
+
const setActiveItem = useCallback(
|
|
25
|
+
(item) => {
|
|
26
|
+
const itemHref = item.href ?? slug(item.title, 100);
|
|
27
|
+
setCurrentRoute(() => {
|
|
28
|
+
const selectedRoute = Object.keys(routes).find((route) =>
|
|
29
|
+
route.endsWith(itemHref)
|
|
30
|
+
);
|
|
31
|
+
return selectedRoute || '/';
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
[routes]
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
const constructBreadcrumbs = useCallback(
|
|
38
|
+
(routes): BreadcrumbItem[] => {
|
|
39
|
+
if (currentRoute) {
|
|
40
|
+
const selectedBreadcrumb = routes[currentRoute];
|
|
41
|
+
return [
|
|
42
|
+
...(selectedBreadcrumb?.parents?.map((parent) => {
|
|
43
|
+
return {
|
|
44
|
+
title: parent,
|
|
45
|
+
href: Object.keys(routes).find((route) => {
|
|
46
|
+
return routes[route].title === parent;
|
|
47
|
+
}),
|
|
48
|
+
};
|
|
49
|
+
}) || []),
|
|
50
|
+
{
|
|
51
|
+
title: selectedBreadcrumb?.title,
|
|
52
|
+
href: currentRoute,
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
}
|
|
56
|
+
return [];
|
|
57
|
+
},
|
|
58
|
+
[currentRoute]
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
return {
|
|
62
|
+
breadcrumbs: constructBreadcrumbs(routes),
|
|
63
|
+
currentRoute,
|
|
64
|
+
setActiveItem,
|
|
65
|
+
};
|
|
66
|
+
};
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
3
|
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
4
|
+
import { Auto } from '@digigov/ui/navigation/Breadcrumbs/__stories__/Auto';
|
|
4
5
|
import { Default } from '@digigov/ui/navigation/Breadcrumbs/__stories__/Default';
|
|
6
|
+
import { WithHook } from '@digigov/ui/navigation/Breadcrumbs/__stories__/WithHook';
|
|
5
7
|
import { WithoutCurrentPage } from '@digigov/ui/navigation/Breadcrumbs/__stories__/WithoutCurrentPage';
|
|
6
8
|
|
|
7
9
|
test('renders the All Breadcrumbs variants', async ({ mount, page }) => {
|
|
8
10
|
await mount(
|
|
9
11
|
|
|
10
12
|
<div>
|
|
13
|
+
<TestVariant title="Auto">
|
|
14
|
+
<Auto />
|
|
15
|
+
</TestVariant>
|
|
11
16
|
<TestVariant title="Default">
|
|
12
17
|
<Default />
|
|
13
18
|
</TestVariant>
|
|
19
|
+
<TestVariant title="WithHook">
|
|
20
|
+
<WithHook />
|
|
21
|
+
</TestVariant>
|
|
14
22
|
<TestVariant title="WithoutCurrentPage">
|
|
15
23
|
<WithoutCurrentPage />
|
|
16
24
|
</TestVariant>
|
|
@@ -2,4 +2,7 @@ export * from '@digigov/react-core/Breadcrumbs';
|
|
|
2
2
|
export * from '@digigov/react-core/BreadcrumbsList';
|
|
3
3
|
export * from '@digigov/react-core/BreadcrumbsListItem';
|
|
4
4
|
import Breadcrumbs from '@digigov/react-core/Breadcrumbs';
|
|
5
|
+
|
|
6
|
+
export * from '@digigov/ui/navigation/Breadcrumbs/utils';
|
|
7
|
+
|
|
5
8
|
export default Breadcrumbs;
|
|
@@ -2,17 +2,41 @@ import React from 'react';
|
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
3
|
|
|
4
4
|
import { Default } from '@digigov/ui/navigation/Breadcrumbs/__stories__/Default';
|
|
5
|
+
import { WithHook } from '@digigov/ui/navigation/Breadcrumbs/__stories__/WithHook';
|
|
6
|
+
import { Auto } from '@digigov/ui/navigation/Breadcrumbs/__stories__/Auto';
|
|
5
7
|
|
|
6
8
|
test('renders the Default Hover and click', async ({ mount, page }) => {
|
|
7
9
|
await mount(
|
|
8
10
|
<Default />
|
|
9
11
|
)
|
|
10
12
|
await page.evaluate(() => document.fonts.ready);
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
await page.locator("#root>nav>ol>li:nth-child(1)>a").hover();
|
|
14
|
+
await page.locator("#root>nav>ol>li:nth-child(1)>a").click();
|
|
15
|
+
await page.keyboard.press("Tab");
|
|
14
16
|
|
|
15
17
|
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
16
18
|
expect(screenshot).toMatchSnapshot();
|
|
17
19
|
});
|
|
18
|
-
|
|
20
|
+
|
|
21
|
+
test('renders the WithHook click', async ({ mount, page }) => {
|
|
22
|
+
await mount(
|
|
23
|
+
<WithHook />
|
|
24
|
+
)
|
|
25
|
+
await page.evaluate(() => document.fonts.ready);
|
|
26
|
+
await page.click("[id='Εγχειρίδια Νομοθεσίας Πυρασφάλειας']");
|
|
27
|
+
|
|
28
|
+
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
29
|
+
expect(screenshot).toMatchSnapshot();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test('renders the Auto click', async ({ mount, page }) => {
|
|
33
|
+
await mount(
|
|
34
|
+
<Auto />
|
|
35
|
+
)
|
|
36
|
+
await page.evaluate(() => document.fonts.ready);
|
|
37
|
+
await page.click("[id='Εγχειρίδια Νομοθεσίας Πυρασφάλειας']");
|
|
38
|
+
|
|
39
|
+
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
40
|
+
expect(screenshot).toMatchSnapshot();
|
|
41
|
+
});
|
|
42
|
+
|