@pautena/react-design-system 0.4.2 → 0.4.4
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/dist/cjs/index.js +4 -12
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/components/{app-bar → app-bars/app-bar}/app-bar.types.d.ts +2 -2
- package/dist/cjs/types/components/app-bars/index.d.ts +1 -0
- package/dist/cjs/types/components/containers/content/content.types.d.ts +4 -0
- package/dist/cjs/types/components/containers/index.d.ts +2 -0
- package/dist/cjs/types/components/{bullet → data-display/bullet}/bullet.d.ts +1 -1
- package/dist/cjs/types/components/{header → data-display/header}/header.dummy.d.ts +1 -1
- package/dist/cjs/types/components/{header → data-display/header}/header.types.d.ts +6 -6
- package/dist/cjs/types/components/data-display/index.d.ts +3 -0
- package/dist/{esm/types/components → cjs/types/components/data-display}/label/label.d.ts +1 -1
- package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.provider.d.ts +1 -1
- package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.types.d.ts +14 -7
- package/dist/cjs/types/components/drawers/drawer-collapsable-item/drawer-collapsable-item.d.ts +26 -0
- package/dist/cjs/types/components/drawers/drawer-collapsable-item/index.d.ts +1 -0
- package/dist/cjs/types/components/{drawer-item → drawers/drawer-item}/drawer-item.d.ts +10 -1
- package/dist/{esm/types/components → cjs/types/components/drawers}/drawer-section/drawer-section.d.ts +5 -1
- package/dist/cjs/types/components/drawers/index.d.ts +4 -0
- package/dist/cjs/types/components/feedback/index.d.ts +2 -0
- package/dist/cjs/types/components/{query-container → feedback/query-container}/query-container.d.ts +1 -1
- package/dist/cjs/types/components/index.d.ts +9 -18
- package/dist/cjs/types/components/{enhanced-select → inputs/enhanced-select}/enhanced-select.d.ts +1 -2
- package/dist/cjs/types/components/inputs/index.d.ts +2 -0
- package/dist/cjs/types/components/{sign-in → inputs/sign-in}/sign-in.d.ts +2 -3
- package/dist/cjs/types/components/navigation/index.d.ts +1 -0
- package/dist/cjs/types/components/navigation/link/link.d.ts +7 -0
- package/dist/cjs/types/components/navigation/tab/tab-card/tab-card.d.ts +5 -0
- package/dist/cjs/types/components/navigation/tab/tab-card/tab-card.dummy.d.ts +6 -0
- package/dist/cjs/types/components/placeholders/content-placeholder/content-placeholder.d.ts +6 -0
- package/dist/cjs/types/components/placeholders/content-placeholder/index.d.ts +1 -0
- package/dist/cjs/types/components/placeholders/index.d.ts +5 -0
- package/dist/cjs/types/components/placeholders/lorem-ipsum-placeholder/index.d.ts +1 -0
- package/dist/cjs/types/components/placeholders/lorem-ipsum-placeholder/lorem-ipsum-placeholder.d.ts +8 -0
- package/dist/{esm/types/components → cjs/types/components/placeholders}/placeholder/placeholder.d.ts +1 -1
- package/dist/cjs/types/components/placeholders/skeleton-card/index.d.ts +1 -0
- package/dist/cjs/types/components/placeholders/skeleton-card/skeleton-card.d.ts +5 -0
- package/dist/cjs/types/components/placeholders/skeleton-grid/index.d.ts +1 -0
- package/dist/cjs/types/components/placeholders/skeleton-grid/skeleton-grid.d.ts +4 -0
- package/dist/cjs/types/components/tables/enhanced-remote-table/enhanced-remote-table.d.ts +12 -0
- package/dist/cjs/types/components/tables/enhanced-remote-table/enhanced-remote-table.mock.d.ts +11 -0
- package/dist/cjs/types/components/tables/enhanced-table/enhanced-table-head.d.ts +16 -0
- package/dist/{esm/types/components/table → cjs/types/components/tables}/enhanced-table/enhanced-table.d.ts +2 -2
- package/dist/cjs/types/components/{table → tables}/enhanced-table/enhanced-table.mock.d.ts +6 -7
- package/dist/cjs/types/components/value-displays/group-value-card/group-value-card.d.ts +7 -4
- package/dist/cjs/types/components/value-displays/group-value-card/group-value-card.mock.d.ts +2 -1
- package/dist/cjs/types/components/value-displays/index.d.ts +1 -0
- package/dist/cjs/types/components/value-displays/value-boolean/value-boolean.d.ts +3 -11
- package/dist/cjs/types/components/value-displays/value-card/value-card.d.ts +1 -1
- package/dist/cjs/types/components/value-displays/value-content/index.d.ts +1 -0
- package/dist/cjs/types/components/value-displays/value-content/value-content.d.ts +24 -0
- package/dist/cjs/types/components/value-displays/value-datetime/value-datetime.d.ts +3 -10
- package/dist/cjs/types/components/value-displays/value-displays.types.d.ts +15 -0
- package/dist/cjs/types/components/value-displays/value-image/index.d.ts +1 -0
- package/dist/cjs/types/components/value-displays/value-image/value-image.d.ts +11 -0
- package/dist/cjs/types/components/value-displays/value-text/value-text.d.ts +3 -11
- package/dist/cjs/types/generators/generators.mock.d.ts +2 -1
- package/dist/cjs/types/generators/generators.model.d.ts +36 -20
- package/dist/cjs/types/generators/generators.model.test.d.ts +1 -0
- package/dist/cjs/types/generators/index.d.ts +1 -0
- package/dist/cjs/types/generators/model-router/model-router.d.ts +1 -1
- package/dist/cjs/types/generators/model-router/screens/add-screen.d.ts +1 -1
- package/dist/cjs/types/generators/model-router/screens/details-screen.d.ts +1 -1
- package/dist/cjs/types/generators/model-router/screens/list-screen.d.ts +1 -1
- package/dist/cjs/types/generators/model-router/screens/update-screen.d.ts +1 -1
- package/dist/cjs/types/{components → generators}/table-list/table-list.d.ts +3 -3
- package/dist/cjs/types/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.d.ts +2 -2
- package/dist/cjs/types/layouts/header-layout/header-layout.d.ts +1 -2
- package/dist/cjs/types/providers/notification-center/notification-center.context.d.ts +0 -2
- package/dist/cjs/types/providers/notification-center/notification-center.provider.d.ts +1 -1
- package/dist/cjs/types/providers/tab-provider/tab-provider.provider.d.ts +1 -1
- package/dist/cjs/types/utils/theme.d.ts +1 -1
- package/dist/esm/index.js +4 -12
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/{app-bar → app-bars/app-bar}/app-bar.types.d.ts +2 -2
- package/dist/esm/types/components/app-bars/index.d.ts +1 -0
- package/dist/esm/types/components/containers/content/content.types.d.ts +4 -0
- package/dist/esm/types/components/containers/index.d.ts +2 -0
- package/dist/esm/types/components/{bullet → data-display/bullet}/bullet.d.ts +1 -1
- package/dist/esm/types/components/{header → data-display/header}/header.dummy.d.ts +1 -1
- package/dist/esm/types/components/{header → data-display/header}/header.types.d.ts +6 -6
- package/dist/esm/types/components/data-display/index.d.ts +3 -0
- package/dist/{cjs/types/components → esm/types/components/data-display}/label/label.d.ts +1 -1
- package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.provider.d.ts +1 -1
- package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.types.d.ts +14 -7
- package/dist/esm/types/components/drawers/drawer-collapsable-item/drawer-collapsable-item.d.ts +26 -0
- package/dist/esm/types/components/drawers/drawer-collapsable-item/index.d.ts +1 -0
- package/dist/esm/types/components/{drawer-item → drawers/drawer-item}/drawer-item.d.ts +10 -1
- package/dist/{cjs/types/components → esm/types/components/drawers}/drawer-section/drawer-section.d.ts +5 -1
- package/dist/esm/types/components/drawers/index.d.ts +4 -0
- package/dist/esm/types/components/feedback/index.d.ts +2 -0
- package/dist/esm/types/components/{query-container → feedback/query-container}/query-container.d.ts +1 -1
- package/dist/esm/types/components/index.d.ts +9 -18
- package/dist/esm/types/components/{enhanced-select → inputs/enhanced-select}/enhanced-select.d.ts +1 -2
- package/dist/esm/types/components/inputs/index.d.ts +2 -0
- package/dist/esm/types/components/{sign-in → inputs/sign-in}/sign-in.d.ts +2 -3
- package/dist/esm/types/components/navigation/index.d.ts +1 -0
- package/dist/esm/types/components/navigation/link/link.d.ts +7 -0
- package/dist/esm/types/components/navigation/tab/tab-card/tab-card.d.ts +5 -0
- package/dist/esm/types/components/navigation/tab/tab-card/tab-card.dummy.d.ts +6 -0
- package/dist/esm/types/components/placeholders/content-placeholder/content-placeholder.d.ts +6 -0
- package/dist/esm/types/components/placeholders/content-placeholder/index.d.ts +1 -0
- package/dist/esm/types/components/placeholders/index.d.ts +5 -0
- package/dist/esm/types/components/placeholders/lorem-ipsum-placeholder/index.d.ts +1 -0
- package/dist/esm/types/components/placeholders/lorem-ipsum-placeholder/lorem-ipsum-placeholder.d.ts +8 -0
- package/dist/{cjs/types/components → esm/types/components/placeholders}/placeholder/placeholder.d.ts +1 -1
- package/dist/esm/types/components/placeholders/skeleton-card/index.d.ts +1 -0
- package/dist/esm/types/components/placeholders/skeleton-card/skeleton-card.d.ts +5 -0
- package/dist/esm/types/components/placeholders/skeleton-grid/index.d.ts +1 -0
- package/dist/esm/types/components/placeholders/skeleton-grid/skeleton-grid.d.ts +4 -0
- package/dist/esm/types/components/tables/enhanced-remote-table/enhanced-remote-table.d.ts +12 -0
- package/dist/esm/types/components/tables/enhanced-remote-table/enhanced-remote-table.mock.d.ts +11 -0
- package/dist/esm/types/components/tables/enhanced-table/enhanced-table-head.d.ts +16 -0
- package/dist/{cjs/types/components/table → esm/types/components/tables}/enhanced-table/enhanced-table.d.ts +2 -2
- package/dist/esm/types/components/{table → tables}/enhanced-table/enhanced-table.mock.d.ts +6 -7
- package/dist/esm/types/components/value-displays/group-value-card/group-value-card.d.ts +7 -4
- package/dist/esm/types/components/value-displays/group-value-card/group-value-card.mock.d.ts +2 -1
- package/dist/esm/types/components/value-displays/index.d.ts +1 -0
- package/dist/esm/types/components/value-displays/value-boolean/value-boolean.d.ts +3 -11
- package/dist/esm/types/components/value-displays/value-card/value-card.d.ts +1 -1
- package/dist/esm/types/components/value-displays/value-content/index.d.ts +1 -0
- package/dist/esm/types/components/value-displays/value-content/value-content.d.ts +24 -0
- package/dist/esm/types/components/value-displays/value-datetime/value-datetime.d.ts +3 -10
- package/dist/esm/types/components/value-displays/value-displays.types.d.ts +15 -0
- package/dist/esm/types/components/value-displays/value-image/index.d.ts +1 -0
- package/dist/esm/types/components/value-displays/value-image/value-image.d.ts +11 -0
- package/dist/esm/types/components/value-displays/value-text/value-text.d.ts +3 -11
- package/dist/esm/types/generators/generators.mock.d.ts +2 -1
- package/dist/esm/types/generators/generators.model.d.ts +36 -20
- package/dist/esm/types/generators/generators.model.test.d.ts +1 -0
- package/dist/esm/types/generators/index.d.ts +1 -0
- package/dist/esm/types/generators/model-router/model-router.d.ts +1 -1
- package/dist/esm/types/generators/model-router/screens/add-screen.d.ts +1 -1
- package/dist/esm/types/generators/model-router/screens/details-screen.d.ts +1 -1
- package/dist/esm/types/generators/model-router/screens/list-screen.d.ts +1 -1
- package/dist/esm/types/generators/model-router/screens/update-screen.d.ts +1 -1
- package/dist/esm/types/{components → generators}/table-list/table-list.d.ts +3 -3
- package/dist/esm/types/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.d.ts +2 -2
- package/dist/esm/types/layouts/header-layout/header-layout.d.ts +1 -2
- package/dist/esm/types/providers/notification-center/notification-center.context.d.ts +0 -2
- package/dist/esm/types/providers/notification-center/notification-center.provider.d.ts +1 -1
- package/dist/esm/types/providers/tab-provider/tab-provider.provider.d.ts +1 -1
- package/dist/esm/types/utils/theme.d.ts +1 -1
- package/dist/index.d.ts +338 -288
- package/package.json +50 -44
- package/src/components/{app-bar → app-bars/app-bar}/app-bar.stories.tsx +5 -4
- package/src/components/{app-bar → app-bars/app-bar}/app-bar.test.tsx +2 -2
- package/src/components/{app-bar → app-bars/app-bar}/app-bar.tsx +1 -1
- package/src/components/{app-bar → app-bars/app-bar}/mini-app-bar/mini-app-bar.tsx +2 -2
- package/src/components/app-bars/app-bars.stories.mdx +10 -0
- package/src/components/app-bars/index.ts +1 -0
- package/src/components/components.stories.mdx +19 -0
- package/src/components/{center-container → containers/center-container}/center-container.stories.tsx +3 -3
- package/src/components/{center-container → containers/center-container}/center-container.test.tsx +1 -1
- package/src/components/containers/containers.stories.mdx +11 -0
- package/src/components/{content → containers/content}/content.stories.tsx +3 -3
- package/src/components/{content → containers/content}/content.test.tsx +1 -1
- package/src/components/containers/index.ts +2 -0
- package/src/components/{bullet → data-display/bullet}/bullet.stories.tsx +2 -2
- package/src/components/{bullet → data-display/bullet}/bullet.test.tsx +1 -1
- package/src/components/data-display/data-display.stories.mdx +12 -0
- package/src/components/{header → data-display/header}/header.dummy.ts +1 -1
- package/src/components/{header → data-display/header}/header.stories.tsx +2 -8
- package/src/components/{header → data-display/header}/header.test.tsx +2 -2
- package/src/components/{header → data-display/header}/header.tsx +2 -2
- package/src/components/data-display/index.ts +3 -0
- package/src/components/{label → data-display/label}/label.stories.tsx +2 -2
- package/src/components/{label → data-display/label}/label.test.tsx +1 -1
- package/src/components/{drawer → drawers/drawer}/__snapshots__/drawer.test.tsx.snap +3 -3
- package/src/components/{drawer → drawers/drawer}/drawer.mock.tsx +27 -0
- package/src/components/{drawer → drawers/drawer}/drawer.test.tsx +8 -8
- package/src/components/{drawer → drawers/drawer}/drawer.types.ts +12 -3
- package/src/components/{drawer → drawers/drawer}/mini-drawer/mini-drawer.stories.tsx +3 -3
- package/src/components/{drawer → drawers/drawer}/mini-drawer/mini-drawer.tsx +1 -2
- package/src/components/drawers/drawer-collapsable-item/drawer-collapsable-item.test.tsx +62 -0
- package/src/components/drawers/drawer-collapsable-item/drawer-collapsable-item.tsx +78 -0
- package/src/components/drawers/drawer-collapsable-item/index.ts +1 -0
- package/src/components/{drawer-content → drawers/drawer-content}/drawer-content.stories.tsx +3 -3
- package/src/components/drawers/drawer-content/drawer-content.test.tsx +59 -0
- package/src/components/{drawer-content → drawers/drawer-content}/drawer-content.tsx +5 -4
- package/src/components/{drawer-item → drawers/drawer-item}/drawer-item.stories.tsx +2 -3
- package/src/components/{drawer-item → drawers/drawer-item}/drawer-item.test.tsx +3 -3
- package/src/components/{drawer-item → drawers/drawer-item}/drawer-item.tsx +23 -5
- package/src/components/{drawer-section → drawers/drawer-section}/drawer-section.stories.tsx +3 -3
- package/src/components/{drawer-section → drawers/drawer-section}/drawer-section.test.tsx +1 -1
- package/src/components/drawers/drawer-section/drawer-section.tsx +65 -0
- package/src/components/drawers/drawers.stories.mdx +13 -0
- package/src/components/drawers/index.ts +4 -0
- package/src/components/feedback/feedback.stories.mdx +12 -0
- package/src/components/feedback/index.ts +2 -0
- package/src/components/{loading-area → feedback/loading-area}/loading-area.stories.tsx +2 -2
- package/src/components/{loading-area → feedback/loading-area}/loading-area.test.tsx +2 -1
- package/src/components/{query-container → feedback/query-container}/query-container.stories.tsx +2 -2
- package/src/components/{query-container → feedback/query-container}/query-container.test.tsx +2 -1
- package/src/components/index.ts +9 -18
- package/src/components/{enhanced-select → inputs/enhanced-select}/enhanced-select.stories.tsx +12 -12
- package/src/components/{enhanced-select → inputs/enhanced-select}/enhanced-select.test.tsx +9 -4
- package/src/components/{enhanced-select → inputs/enhanced-select}/enhanced-select.tsx +2 -4
- package/src/components/inputs/index.ts +2 -0
- package/src/components/inputs/inputs.stories.mdx +11 -0
- package/src/components/{sign-in → inputs/sign-in}/sign-in.stories.tsx +2 -2
- package/src/components/{sign-in → inputs/sign-in}/sign-in.test.tsx +2 -1
- package/src/components/{sign-in → inputs/sign-in}/sign-in.tsx +3 -3
- package/src/components/navigation/index.ts +1 -0
- package/src/components/{link → navigation/link}/link.tsx +2 -2
- package/src/components/navigation/navigation.stories.mdx +10 -0
- package/src/components/{tab → navigation/tab}/tab-card/tab-card.dummy.tsx +3 -3
- package/src/components/{tab → navigation/tab}/tab-card/tab-card.stories.tsx +4 -4
- package/src/components/{tab → navigation/tab}/tab-card/tab-card.test.tsx +1 -1
- package/src/components/{tab → navigation/tab}/tab-card/tab-card.tsx +3 -3
- package/src/components/{tab → navigation/tab}/tab-panel/tab-panel.test.tsx +1 -1
- package/src/{tests → components/placeholders/content-placeholder}/content-placeholder.stories.tsx +3 -4
- package/src/components/placeholders/content-placeholder/content-placeholder.tsx +17 -0
- package/src/components/placeholders/content-placeholder/index.ts +1 -0
- package/src/components/placeholders/index.ts +5 -0
- package/src/components/placeholders/lorem-ipsum-placeholder/index.ts +1 -0
- package/src/components/placeholders/lorem-ipsum-placeholder/lorem-ipsum-placeholder.stories.tsx +15 -0
- package/src/components/placeholders/lorem-ipsum-placeholder/lorem-ipsum-placeholder.tsx +26 -0
- package/src/components/{placeholder → placeholders/placeholder}/placeholder.stories.tsx +2 -2
- package/src/components/{placeholder → placeholders/placeholder}/placeholder.test.tsx +3 -2
- package/src/components/placeholders/placeholders.stories.mdx +14 -0
- package/src/components/placeholders/skeleton-card/index.ts +1 -0
- package/src/{tests → components/placeholders/skeleton-card}/skeleton-card.stories.tsx +3 -3
- package/src/components/placeholders/skeleton-card/skeleton-card.tsx +17 -0
- package/src/components/placeholders/skeleton-grid/index.ts +1 -0
- package/src/components/placeholders/skeleton-grid/skeleton-grid.stories.tsx +15 -0
- package/src/components/placeholders/skeleton-grid/skeleton-grid.tsx +20 -0
- package/src/components/{table → tables}/enhanced-remote-table/enhanced-remote-table.mock.tsx +7 -6
- package/src/components/{table → tables}/enhanced-remote-table/enhanced-remote-table.stories.tsx +1 -1
- package/src/components/{table → tables}/enhanced-remote-table/enhanced-remote-table.test.tsx +3 -3
- package/src/components/{table → tables}/enhanced-remote-table/enhanced-remote-table.tsx +8 -8
- package/src/components/{table → tables}/enhanced-table/enhanced-table-head.tsx +14 -9
- package/src/components/{table → tables}/enhanced-table/enhanced-table.mock.tsx +12 -6
- package/src/components/{table → tables}/enhanced-table/enhanced-table.stories.tsx +1 -1
- package/src/components/{table → tables}/enhanced-table/enhanced-table.test.tsx +6 -5
- package/src/components/{table → tables}/enhanced-table/enhanced-table.tsx +8 -8
- package/src/components/tables/table.stories.mdx +11 -0
- package/src/components/value-displays/group-value-card/group-value-card.mock.tsx +2 -2
- package/src/components/value-displays/group-value-card/group-value-card.stories.tsx +25 -2
- package/src/components/value-displays/group-value-card/group-value-card.test.tsx +7 -2
- package/src/components/value-displays/group-value-card/group-value-card.tsx +13 -4
- package/src/components/value-displays/index.ts +1 -0
- package/src/components/value-displays/value-boolean/value-boolean.stories.tsx +1 -1
- package/src/components/value-displays/value-boolean/value-boolean.test.tsx +15 -3
- package/src/components/value-displays/value-boolean/value-boolean.tsx +18 -18
- package/src/components/value-displays/value-card/value-card.stories.tsx +1 -1
- package/src/components/value-displays/value-card/value-card.test.tsx +1 -1
- package/src/components/value-displays/value-content/index.ts +1 -0
- package/src/components/value-displays/value-content/value-content.stories.tsx +20 -0
- package/src/components/value-displays/value-content/value-content.test.tsx +50 -0
- package/src/components/value-displays/value-content/value-content.tsx +54 -0
- package/src/components/value-displays/value-datetime/value-datetime.stories.tsx +14 -1
- package/src/components/value-displays/value-datetime/value-datetime.test.tsx +24 -5
- package/src/components/value-displays/value-datetime/value-datetime.tsx +16 -23
- package/src/components/value-displays/value-displays.stories.mdx +16 -0
- package/src/components/value-displays/value-displays.types.ts +18 -0
- package/src/components/value-displays/value-image/index.ts +1 -0
- package/src/components/value-displays/value-image/value-image.stories.tsx +28 -0
- package/src/components/value-displays/value-image/value-image.test.tsx +22 -0
- package/src/components/value-displays/value-image/value-image.tsx +24 -0
- package/src/components/value-displays/value-text/value-text.stories.tsx +12 -1
- package/src/components/value-displays/value-text/value-text.test.tsx +19 -5
- package/src/components/value-displays/value-text/value-text.tsx +16 -22
- package/src/generators/generators.mock.ts +25 -22
- package/src/generators/generators.model.test.ts +77 -0
- package/src/generators/generators.model.ts +78 -6
- package/src/generators/generators.stories.mdx +13 -0
- package/src/generators/index.ts +1 -0
- package/src/generators/model-form/model-form.test.tsx +11 -14
- package/src/generators/model-form/model-form.tsx +33 -65
- package/src/generators/model-router/model-router.test.tsx +45 -32
- package/src/generators/model-router/screens/add-screen.tsx +2 -1
- package/src/generators/model-router/screens/details-screen.tsx +2 -1
- package/src/generators/model-router/screens/list-screen.tsx +3 -2
- package/src/generators/model-router/screens/update-screen.tsx +4 -5
- package/src/generators/model-router/stories/model-router.stories.tsx +2 -2
- package/src/generators/object-details/object-details.test.tsx +2 -1
- package/src/generators/object-details/object-details.tsx +18 -9
- package/src/{components → generators}/table-list/table-list.stories.tsx +28 -18
- package/src/{components → generators}/table-list/table-list.test.tsx +13 -8
- package/src/{components → generators}/table-list/table-list.tsx +24 -13
- package/src/hooks/routing/routing.test.tsx +1 -1
- package/src/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.stories.tsx +3 -4
- package/src/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.test.tsx +2 -1
- package/src/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.tsx +3 -3
- package/src/layouts/header-layout/header-layout.stories.tsx +16 -8
- package/src/layouts/header-layout/header-layout.test.tsx +1 -1
- package/src/layouts/header-layout/header-layout.tsx +2 -2
- package/src/layouts/layouts.stories.mdx +11 -0
- package/src/providers/notification-center/notification-center.context.ts +0 -6
- package/src/providers/notification-center/notification-center.stories.tsx +2 -2
- package/src/providers/notification-center/notification-center.test.tsx +6 -7
- package/src/stories/Introduction.stories.mdx +10 -185
- package/src/stories/getting-started.stories.mdx +23 -0
- package/src/storybook.tsx +1 -1
- package/src/tests/actions.ts +4 -0
- package/src/tests/assertions.ts +18 -10
- package/src/tests/datatable-placeholder/datatable-placeholder.stories.tsx +15 -0
- package/src/tests/datatable-placeholder/datatable-placeholder.tsx +40 -0
- package/src/tests/datatable-placeholder/index.ts +1 -0
- package/src/tests/file-mock.ts +1 -0
- package/src/tests/mocks.ts +21 -0
- package/src/tests/testing-library.tsx +11 -8
- package/src/types/index.d.ts +4 -0
- package/src/types.d.ts +4 -0
- package/dist/cjs/types/components/content/content.types.d.ts +0 -4
- package/dist/cjs/types/components/link/link.d.ts +0 -7
- package/dist/cjs/types/components/tab/tab-card/tab-card.d.ts +0 -6
- package/dist/cjs/types/components/tab/tab-card/tab-card.dummy.d.ts +0 -7
- package/dist/cjs/types/components/table/enhanced-remote-table/enhanced-remote-table.d.ts +0 -13
- package/dist/cjs/types/components/table/enhanced-remote-table/enhanced-remote-table.mock.d.ts +0 -11
- package/dist/cjs/types/components/table/enhanced-table/enhanced-table-head.d.ts +0 -16
- package/dist/esm/types/components/content/content.types.d.ts +0 -4
- package/dist/esm/types/components/link/link.d.ts +0 -7
- package/dist/esm/types/components/tab/tab-card/tab-card.d.ts +0 -6
- package/dist/esm/types/components/tab/tab-card/tab-card.dummy.d.ts +0 -7
- package/dist/esm/types/components/table/enhanced-remote-table/enhanced-remote-table.d.ts +0 -13
- package/dist/esm/types/components/table/enhanced-remote-table/enhanced-remote-table.mock.d.ts +0 -11
- package/dist/esm/types/components/table/enhanced-table/enhanced-table-head.d.ts +0 -16
- package/src/components/drawer-content/drawer-content.test.tsx +0 -34
- package/src/components/drawer-section/drawer-section.tsx +0 -40
- package/src/tests/components.tsx +0 -60
- package/src/tests/index.ts +0 -4
- /package/dist/cjs/types/components/{app-bar → app-bars/app-bar}/app-bar.d.ts +0 -0
- /package/dist/cjs/types/components/{app-bar → app-bars/app-bar}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{app-bar → app-bars/app-bar}/mini-app-bar/index.d.ts +0 -0
- /package/dist/cjs/types/components/{app-bar → app-bars/app-bar}/mini-app-bar/mini-app-bar.d.ts +0 -0
- /package/dist/cjs/types/components/{center-container → containers/center-container}/center-container.d.ts +0 -0
- /package/dist/cjs/types/components/{center-container → containers/center-container}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{content → containers/content}/content.d.ts +0 -0
- /package/dist/cjs/types/components/{content → containers/content}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{bullet → data-display/bullet}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{header → data-display/header}/header.d.ts +0 -0
- /package/dist/cjs/types/components/{header → data-display/header}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{label → data-display/label}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.context.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.mixins.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.mock.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer → drawers/drawer}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer → drawers/drawer}/mini-drawer/index.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer → drawers/drawer}/mini-drawer/mini-drawer.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer-content → drawers/drawer-content}/drawer-content.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer-content → drawers/drawer-content}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer-item → drawers/drawer-item}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer-section → drawers/drawer-section}/drawer-section.mock.d.ts +0 -0
- /package/dist/cjs/types/components/{drawer-section → drawers/drawer-section}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{loading-area → feedback/loading-area}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{loading-area → feedback/loading-area}/loading-area.d.ts +0 -0
- /package/dist/cjs/types/components/{query-container → feedback/query-container}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{enhanced-select → inputs/enhanced-select}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{sign-in → inputs/sign-in}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{link → navigation/link}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{tab → navigation/tab}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{tab → navigation/tab}/tab-card/index.d.ts +0 -0
- /package/dist/cjs/types/components/{tab → navigation/tab}/tab-panel/index.d.ts +0 -0
- /package/dist/cjs/types/components/{tab → navigation/tab}/tab-panel/tab-panel.d.ts +0 -0
- /package/dist/cjs/types/components/{placeholder → placeholders/placeholder}/index.d.ts +0 -0
- /package/dist/cjs/types/components/{placeholder → placeholders/placeholder}/placeholder.mock.d.ts +0 -0
- /package/dist/cjs/types/components/{table → tables}/enhanced-remote-table/index.d.ts +0 -0
- /package/dist/cjs/types/components/{table → tables}/enhanced-table/index.d.ts +0 -0
- /package/dist/cjs/types/components/{table → tables}/index.d.ts +0 -0
- /package/dist/cjs/types/{components → generators}/table-list/index.d.ts +0 -0
- /package/dist/esm/types/components/{app-bar → app-bars/app-bar}/app-bar.d.ts +0 -0
- /package/dist/esm/types/components/{app-bar → app-bars/app-bar}/index.d.ts +0 -0
- /package/dist/esm/types/components/{app-bar → app-bars/app-bar}/mini-app-bar/index.d.ts +0 -0
- /package/dist/esm/types/components/{app-bar → app-bars/app-bar}/mini-app-bar/mini-app-bar.d.ts +0 -0
- /package/dist/esm/types/components/{center-container → containers/center-container}/center-container.d.ts +0 -0
- /package/dist/esm/types/components/{center-container → containers/center-container}/index.d.ts +0 -0
- /package/dist/esm/types/components/{content → containers/content}/content.d.ts +0 -0
- /package/dist/esm/types/components/{content → containers/content}/index.d.ts +0 -0
- /package/dist/esm/types/components/{bullet → data-display/bullet}/index.d.ts +0 -0
- /package/dist/esm/types/components/{header → data-display/header}/header.d.ts +0 -0
- /package/dist/esm/types/components/{header → data-display/header}/index.d.ts +0 -0
- /package/dist/esm/types/components/{label → data-display/label}/index.d.ts +0 -0
- /package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.context.d.ts +0 -0
- /package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.d.ts +0 -0
- /package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.mixins.d.ts +0 -0
- /package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.mock.d.ts +0 -0
- /package/dist/esm/types/components/{drawer → drawers/drawer}/index.d.ts +0 -0
- /package/dist/esm/types/components/{drawer → drawers/drawer}/mini-drawer/index.d.ts +0 -0
- /package/dist/esm/types/components/{drawer → drawers/drawer}/mini-drawer/mini-drawer.d.ts +0 -0
- /package/dist/esm/types/components/{drawer-content → drawers/drawer-content}/drawer-content.d.ts +0 -0
- /package/dist/esm/types/components/{drawer-content → drawers/drawer-content}/index.d.ts +0 -0
- /package/dist/esm/types/components/{drawer-item → drawers/drawer-item}/index.d.ts +0 -0
- /package/dist/esm/types/components/{drawer-section → drawers/drawer-section}/drawer-section.mock.d.ts +0 -0
- /package/dist/esm/types/components/{drawer-section → drawers/drawer-section}/index.d.ts +0 -0
- /package/dist/esm/types/components/{loading-area → feedback/loading-area}/index.d.ts +0 -0
- /package/dist/esm/types/components/{loading-area → feedback/loading-area}/loading-area.d.ts +0 -0
- /package/dist/esm/types/components/{query-container → feedback/query-container}/index.d.ts +0 -0
- /package/dist/esm/types/components/{enhanced-select → inputs/enhanced-select}/index.d.ts +0 -0
- /package/dist/esm/types/components/{sign-in → inputs/sign-in}/index.d.ts +0 -0
- /package/dist/esm/types/components/{link → navigation/link}/index.d.ts +0 -0
- /package/dist/esm/types/components/{tab → navigation/tab}/index.d.ts +0 -0
- /package/dist/esm/types/components/{tab → navigation/tab}/tab-card/index.d.ts +0 -0
- /package/dist/esm/types/components/{tab → navigation/tab}/tab-panel/index.d.ts +0 -0
- /package/dist/esm/types/components/{tab → navigation/tab}/tab-panel/tab-panel.d.ts +0 -0
- /package/dist/esm/types/components/{placeholder → placeholders/placeholder}/index.d.ts +0 -0
- /package/dist/esm/types/components/{placeholder → placeholders/placeholder}/placeholder.mock.d.ts +0 -0
- /package/dist/esm/types/components/{table → tables}/enhanced-remote-table/index.d.ts +0 -0
- /package/dist/esm/types/components/{table → tables}/enhanced-table/index.d.ts +0 -0
- /package/dist/esm/types/components/{table → tables}/index.d.ts +0 -0
- /package/dist/esm/types/{components → generators}/table-list/index.d.ts +0 -0
- /package/src/components/{app-bar → app-bars/app-bar}/app-bar.types.ts +0 -0
- /package/src/components/{app-bar → app-bars/app-bar}/index.ts +0 -0
- /package/src/components/{app-bar → app-bars/app-bar}/mini-app-bar/index.ts +0 -0
- /package/src/components/{center-container → containers/center-container}/center-container.tsx +0 -0
- /package/src/components/{center-container → containers/center-container}/index.ts +0 -0
- /package/src/components/{content → containers/content}/content.tsx +0 -0
- /package/src/components/{content → containers/content}/content.types.ts +0 -0
- /package/src/components/{content → containers/content}/index.ts +0 -0
- /package/src/components/{bullet → data-display/bullet}/bullet.tsx +0 -0
- /package/src/components/{bullet → data-display/bullet}/index.ts +0 -0
- /package/src/components/{header → data-display/header}/header.types.ts +0 -0
- /package/src/components/{header → data-display/header}/index.ts +0 -0
- /package/src/components/{label → data-display/label}/index.ts +0 -0
- /package/src/components/{label → data-display/label}/label.tsx +0 -0
- /package/src/components/{drawer → drawers/drawer}/drawer.context.ts +0 -0
- /package/src/components/{drawer → drawers/drawer}/drawer.mixins.ts +0 -0
- /package/src/components/{drawer → drawers/drawer}/drawer.provider.tsx +0 -0
- /package/src/components/{drawer → drawers/drawer}/drawer.tsx +0 -0
- /package/src/components/{drawer → drawers/drawer}/index.ts +0 -0
- /package/src/components/{drawer → drawers/drawer}/mini-drawer/index.ts +0 -0
- /package/src/components/{drawer-content → drawers/drawer-content}/index.ts +0 -0
- /package/src/components/{drawer-item → drawers/drawer-item}/index.ts +0 -0
- /package/src/components/{drawer-section → drawers/drawer-section}/drawer-section.mock.tsx +0 -0
- /package/src/components/{drawer-section → drawers/drawer-section}/index.ts +0 -0
- /package/src/components/{loading-area → feedback/loading-area}/index.ts +0 -0
- /package/src/components/{loading-area → feedback/loading-area}/loading-area.tsx +0 -0
- /package/src/components/{query-container → feedback/query-container}/index.ts +0 -0
- /package/src/components/{query-container → feedback/query-container}/query-container.tsx +0 -0
- /package/src/components/{enhanced-select → inputs/enhanced-select}/index.ts +0 -0
- /package/src/components/{sign-in → inputs/sign-in}/index.ts +0 -0
- /package/src/components/{link → navigation/link}/index.ts +0 -0
- /package/src/components/{tab → navigation/tab}/index.ts +0 -0
- /package/src/components/{tab → navigation/tab}/tab-card/index.ts +0 -0
- /package/src/components/{tab → navigation/tab}/tab-panel/index.ts +0 -0
- /package/src/components/{tab → navigation/tab}/tab-panel/tab-panel.tsx +0 -0
- /package/src/components/{placeholder → placeholders/placeholder}/index.ts +0 -0
- /package/src/components/{placeholder → placeholders/placeholder}/placeholder.mock.ts +0 -0
- /package/src/components/{placeholder → placeholders/placeholder}/placeholder.tsx +0 -0
- /package/src/components/{table → tables}/enhanced-remote-table/index.ts +0 -0
- /package/src/components/{table → tables}/enhanced-table/index.ts +0 -0
- /package/src/components/{table → tables}/index.ts +0 -0
- /package/src/{components → generators}/table-list/index.ts +0 -0
|
@@ -18,52 +18,16 @@ import { DesktopDatePicker, TimePicker, DateTimePicker } from "@mui/x-date-picke
|
|
|
18
18
|
import React, { ChangeEvent, FormEvent, ReactElement, useMemo } from "react";
|
|
19
19
|
import { useState } from "react";
|
|
20
20
|
import { useGetDefaultThemeColor } from "../../utils/theme";
|
|
21
|
-
import {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
const getFieldInitialState = <T extends BasicModelInstance>(
|
|
34
|
-
field: ModelField,
|
|
35
|
-
initialValues: T | undefined,
|
|
36
|
-
) => {
|
|
37
|
-
return initialValues ? initialValues[field.id] : InitialStateZeroValue[field.type];
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const getValuesInitialState = <T extends BasicModelInstance>(
|
|
41
|
-
model: Model,
|
|
42
|
-
initialValues: T | undefined,
|
|
43
|
-
): T => {
|
|
44
|
-
const obj = {} as any;
|
|
45
|
-
|
|
46
|
-
model.fields.forEach((field) => {
|
|
47
|
-
let value: any;
|
|
48
|
-
if (field.type === "group") {
|
|
49
|
-
value = {};
|
|
50
|
-
field.value.forEach((groupField) => {
|
|
51
|
-
value[groupField.id] = getFieldInitialState(
|
|
52
|
-
groupField,
|
|
53
|
-
initialValues && initialValues[field.id],
|
|
54
|
-
);
|
|
55
|
-
});
|
|
56
|
-
} else if (field.type === "date" || field.type === "time") {
|
|
57
|
-
value = (initialValues && initialValues[field.id]) || field.default;
|
|
58
|
-
} else {
|
|
59
|
-
value = getFieldInitialState(field, initialValues);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
obj[field.id] = value;
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
return obj;
|
|
66
|
-
};
|
|
21
|
+
import {
|
|
22
|
+
Model,
|
|
23
|
+
ModelField,
|
|
24
|
+
BasicModelInstance,
|
|
25
|
+
ModelFieldTypes,
|
|
26
|
+
GroupInstanceType,
|
|
27
|
+
FieldType,
|
|
28
|
+
ArrayFieldType,
|
|
29
|
+
newInstanceFromValuesOrZeroValue,
|
|
30
|
+
} from "../generators.model";
|
|
67
31
|
|
|
68
32
|
export interface ModelFormProps<T extends BasicModelInstance> {
|
|
69
33
|
model: Model;
|
|
@@ -79,19 +43,19 @@ export const ModelForm = <T extends BasicModelInstance>({
|
|
|
79
43
|
initialValues,
|
|
80
44
|
}: ModelFormProps<T>) => {
|
|
81
45
|
const valuesInitialState = useMemo(
|
|
82
|
-
() =>
|
|
46
|
+
() => newInstanceFromValuesOrZeroValue<T>(model, initialValues),
|
|
83
47
|
[model, initialValues],
|
|
84
48
|
);
|
|
85
49
|
const [values, setValues] = useState<T>(valuesInitialState);
|
|
86
50
|
|
|
87
|
-
const setKeyValue = (name: string, key: string | undefined, value:
|
|
51
|
+
const setKeyValue = (name: string, key: string | undefined, value: FieldType | null) => {
|
|
88
52
|
setValues((v) => {
|
|
89
|
-
const n: Record<string,
|
|
53
|
+
const n: Record<string, FieldType | null> = {};
|
|
90
54
|
if (key) {
|
|
91
55
|
n[key] = {
|
|
92
|
-
...v[key],
|
|
56
|
+
...(v[key] as GroupInstanceType),
|
|
93
57
|
[name]: value,
|
|
94
|
-
};
|
|
58
|
+
} as GroupInstanceType;
|
|
95
59
|
} else {
|
|
96
60
|
n[name] = value;
|
|
97
61
|
}
|
|
@@ -100,17 +64,17 @@ export const ModelForm = <T extends BasicModelInstance>({
|
|
|
100
64
|
});
|
|
101
65
|
};
|
|
102
66
|
|
|
103
|
-
const handleCheckboxChange = (e: ChangeEvent<
|
|
67
|
+
const handleCheckboxChange = (e: ChangeEvent<HTMLInputElement>, key: string | undefined) => {
|
|
104
68
|
e.preventDefault();
|
|
105
69
|
setKeyValue(e.target.name, key, e.target.checked);
|
|
106
70
|
};
|
|
107
71
|
|
|
108
|
-
const handleSelectChange = (e: SelectChangeEvent<
|
|
72
|
+
const handleSelectChange = (e: SelectChangeEvent<FieldType>, key: string | undefined) => {
|
|
109
73
|
e.preventDefault();
|
|
110
74
|
setKeyValue(e.target.name, key, e.target.value);
|
|
111
75
|
};
|
|
112
76
|
|
|
113
|
-
const handleMultiSelectChange = (e: SelectChangeEvent<
|
|
77
|
+
const handleMultiSelectChange = (e: SelectChangeEvent<FieldType>, key: string | undefined) => {
|
|
114
78
|
e.preventDefault();
|
|
115
79
|
const { value } = e.target;
|
|
116
80
|
const newValue = typeof value === "string" ? value.split(",") : value;
|
|
@@ -118,20 +82,20 @@ export const ModelForm = <T extends BasicModelInstance>({
|
|
|
118
82
|
};
|
|
119
83
|
|
|
120
84
|
const handleInputChange = (
|
|
121
|
-
e: ChangeEvent<
|
|
85
|
+
e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>,
|
|
122
86
|
key: string | undefined,
|
|
123
87
|
type: ModelFieldTypes,
|
|
124
88
|
) => {
|
|
125
89
|
e.preventDefault();
|
|
126
90
|
|
|
127
|
-
let value = e.target.value;
|
|
128
|
-
if (type === "number") {
|
|
91
|
+
let value: string | number = e.target.value;
|
|
92
|
+
if (type === "number" && typeof value === "string") {
|
|
129
93
|
value = parseInt(e.target.value);
|
|
130
94
|
}
|
|
131
95
|
setKeyValue(e.target.name, key, value);
|
|
132
96
|
};
|
|
133
97
|
|
|
134
|
-
const handleDateChange = (value:
|
|
98
|
+
const handleDateChange = (value: FieldType | null, key: string | undefined, id: string) => {
|
|
135
99
|
setKeyValue(id, key, value);
|
|
136
100
|
};
|
|
137
101
|
|
|
@@ -146,7 +110,7 @@ export const ModelForm = <T extends BasicModelInstance>({
|
|
|
146
110
|
const { id, type, name, description, xs, sm, md, lg, xl } = field;
|
|
147
111
|
|
|
148
112
|
let fieldInput: ReactElement;
|
|
149
|
-
const value = key ? values[key][id] : values[id];
|
|
113
|
+
const value = key ? (values[key] as GroupInstanceType)[id] : values[id];
|
|
150
114
|
if (type === "group") {
|
|
151
115
|
fieldInput = (
|
|
152
116
|
<Paper>
|
|
@@ -168,7 +132,11 @@ export const ModelForm = <T extends BasicModelInstance>({
|
|
|
168
132
|
<Box sx={{ height: 1, display: "flex", alignItems: "center" }}>
|
|
169
133
|
<FormControlLabel
|
|
170
134
|
control={
|
|
171
|
-
<Checkbox
|
|
135
|
+
<Checkbox
|
|
136
|
+
name={id}
|
|
137
|
+
onChange={(e) => handleCheckboxChange(e, key)}
|
|
138
|
+
checked={value as boolean}
|
|
139
|
+
/>
|
|
172
140
|
}
|
|
173
141
|
label={name}
|
|
174
142
|
/>
|
|
@@ -203,7 +171,7 @@ export const ModelForm = <T extends BasicModelInstance>({
|
|
|
203
171
|
labelId={`${id}-select-label`}
|
|
204
172
|
id={`${id}-select`}
|
|
205
173
|
value={value || []}
|
|
206
|
-
renderValue={(selected) => selected.join(", ")}
|
|
174
|
+
renderValue={(selected) => (selected as ArrayFieldType).join(", ")}
|
|
207
175
|
label={name}
|
|
208
176
|
name={id}
|
|
209
177
|
onChange={(e) => handleMultiSelectChange(e, key)}
|
|
@@ -212,7 +180,7 @@ export const ModelForm = <T extends BasicModelInstance>({
|
|
|
212
180
|
>
|
|
213
181
|
{field.value.map((fieldValue) => (
|
|
214
182
|
<MenuItem key={fieldValue} value={fieldValue}>
|
|
215
|
-
<Checkbox checked={(value || []).includes(fieldValue)} />
|
|
183
|
+
<Checkbox checked={((value as ArrayFieldType) || []).includes(fieldValue)} />
|
|
216
184
|
<ListItemText primary={fieldValue} />
|
|
217
185
|
</MenuItem>
|
|
218
186
|
))}
|
|
@@ -226,7 +194,7 @@ export const ModelForm = <T extends BasicModelInstance>({
|
|
|
226
194
|
inputFormat={field.format}
|
|
227
195
|
value={value}
|
|
228
196
|
onChange={(value) => handleDateChange(value, key, id)}
|
|
229
|
-
renderInput={(params
|
|
197
|
+
renderInput={(params) => <TextField {...params} />}
|
|
230
198
|
/>
|
|
231
199
|
);
|
|
232
200
|
} else if (type === "time") {
|
|
@@ -236,7 +204,7 @@ export const ModelForm = <T extends BasicModelInstance>({
|
|
|
236
204
|
inputFormat={field.format}
|
|
237
205
|
value={value}
|
|
238
206
|
onChange={(value) => handleDateChange(value, key, id)}
|
|
239
|
-
renderInput={(params
|
|
207
|
+
renderInput={(params) => <TextField {...params} />}
|
|
240
208
|
/>
|
|
241
209
|
);
|
|
242
210
|
} else if (type === "datetime") {
|
|
@@ -246,7 +214,7 @@ export const ModelForm = <T extends BasicModelInstance>({
|
|
|
246
214
|
inputFormat={field.format}
|
|
247
215
|
value={value}
|
|
248
216
|
onChange={(value) => handleDateChange(value, key, id)}
|
|
249
|
-
renderInput={(params
|
|
217
|
+
renderInput={(params) => <TextField {...params} />}
|
|
250
218
|
/>
|
|
251
219
|
);
|
|
252
220
|
} else {
|
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
import React, { useState } from "react";
|
|
2
2
|
import { DummyModelRouter, InternalModelRouter } from "./stories/model-router.stories";
|
|
3
|
-
import {
|
|
4
|
-
expectModelFieldInputExist,
|
|
5
|
-
expectProgressIndicator,
|
|
6
|
-
waitForProgressIndicatorToBeRemoved,
|
|
7
|
-
render,
|
|
8
|
-
screen,
|
|
9
|
-
TestRouter,
|
|
10
|
-
expectModelFieldValue,
|
|
11
|
-
expectModelFieldInputValue,
|
|
12
|
-
selectOption,
|
|
13
|
-
} from "~/tests";
|
|
14
3
|
import { data as mockData } from "./stories/templates";
|
|
15
4
|
import userEvent from "@testing-library/user-event";
|
|
16
5
|
import { getRandomItem } from "../../utils";
|
|
@@ -27,16 +16,27 @@ import { NotificationCenterProvider } from "../../providers";
|
|
|
27
16
|
import { Box } from "@mui/system";
|
|
28
17
|
import { Button } from "@mui/material";
|
|
29
18
|
import { useNavigate } from "react-router-dom";
|
|
19
|
+
import { render, screen, TestRouter } from "~/tests/testing-library";
|
|
20
|
+
import { AddScreen, ListScreen, UpdateScreen } from "./screens";
|
|
21
|
+
import { IdleRequest, LoadingRequest, SuccessRequest } from "./model-router.types";
|
|
30
22
|
import {
|
|
31
23
|
clearCheckbox,
|
|
32
24
|
clearMultiSelect,
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
selectOption,
|
|
26
|
+
typeNumericInput,
|
|
35
27
|
pickDatetime,
|
|
36
28
|
selectOptions,
|
|
37
|
-
} from "
|
|
38
|
-
import {
|
|
39
|
-
|
|
29
|
+
} from "~/tests/actions";
|
|
30
|
+
import {
|
|
31
|
+
expectProgressIndicator,
|
|
32
|
+
waitForProgressIndicatorToBeRemoved,
|
|
33
|
+
expectModelFieldInputExist,
|
|
34
|
+
expectModelFieldInputValue,
|
|
35
|
+
expectToHaveBeenCalledOnceWithMockInstance,
|
|
36
|
+
expectAlert,
|
|
37
|
+
expectModelFieldValue,
|
|
38
|
+
} from "~/tests/assertions";
|
|
39
|
+
import { mockConsoleWarn } from "~/tests/mocks";
|
|
40
40
|
|
|
41
41
|
const REQUEST_TIMEOUT = 20;
|
|
42
42
|
|
|
@@ -87,10 +87,11 @@ describe("ModelRouter", () => {
|
|
|
87
87
|
).not.toBeInTheDocument(),
|
|
88
88
|
expectListItems: async ({ data, model }: { data: MockInstance[]; model: Model }) => {
|
|
89
89
|
for (let i = 0; i < model.fields.length; ++i) {
|
|
90
|
-
const {
|
|
90
|
+
const { listable, id } = model.fields[i];
|
|
91
91
|
|
|
92
92
|
if (listable) {
|
|
93
|
-
|
|
93
|
+
const name = data[i][id] as string;
|
|
94
|
+
expect(await screen.findAllByRole("cell", { name })).toBeTruthy();
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
97
|
},
|
|
@@ -145,30 +146,36 @@ describe("ModelRouter", () => {
|
|
|
145
146
|
const lastNameElement = screen.getByRole("textbox", { name: /last name/i });
|
|
146
147
|
const genderElement = screen.getByRole("button", { name: /gender/i });
|
|
147
148
|
const ageElement = screen.getByRole("spinbutton", { name: /age/i });
|
|
148
|
-
const birthDateElement = screen.getByRole("textbox", {
|
|
149
|
+
const birthDateElement = screen.getByRole<HTMLInputElement>("textbox", {
|
|
150
|
+
name: /birth date/i,
|
|
151
|
+
});
|
|
149
152
|
const manufacturerElement = screen.getByRole("button", { name: /manufacturer/i });
|
|
150
153
|
const modelElement = screen.getByRole("button", { name: /model/i });
|
|
151
154
|
const colorElement = screen.getByRole("textbox", { name: /color/i });
|
|
152
155
|
const typeElement = screen.getByRole("button", { name: /type/i });
|
|
153
156
|
const vinElement = screen.getByRole("textbox", { name: /vin/i });
|
|
154
157
|
const vrmElement = screen.getByRole("textbox", { name: /vrm/i });
|
|
155
|
-
const timeReturnElement = screen.getByRole("textbox", {
|
|
158
|
+
const timeReturnElement = screen.getByRole<HTMLInputElement>("textbox", {
|
|
159
|
+
name: /return time/i,
|
|
160
|
+
});
|
|
156
161
|
const quantityElement = screen.getByRole("spinbutton", { name: /q/i });
|
|
157
|
-
const availableElement = screen.getByRole("checkbox", {
|
|
162
|
+
const availableElement = screen.getByRole<HTMLInputElement>("checkbox", {
|
|
163
|
+
name: /available/i,
|
|
164
|
+
});
|
|
158
165
|
const currencyElement = screen.getByRole("textbox", { name: /currency/i });
|
|
159
|
-
const tradeDateElement = screen.getByRole("textbox", {
|
|
166
|
+
const tradeDateElement = screen.getByRole<HTMLInputElement>("textbox", {
|
|
167
|
+
name: /trade date/i,
|
|
168
|
+
});
|
|
160
169
|
|
|
161
170
|
if (clear) {
|
|
162
171
|
await userEvent.clear(idElement);
|
|
163
172
|
await userEvent.clear(firstNameElement);
|
|
164
173
|
await userEvent.clear(middleNameElement);
|
|
165
174
|
await userEvent.clear(lastNameElement);
|
|
166
|
-
await userEvent.clear(ageElement);
|
|
167
175
|
await userEvent.clear(birthDateElement);
|
|
168
176
|
await userEvent.clear(colorElement);
|
|
169
177
|
await userEvent.clear(vinElement);
|
|
170
178
|
await userEvent.clear(vrmElement);
|
|
171
|
-
await userEvent.clear(quantityElement);
|
|
172
179
|
await userEvent.clear(availableElement);
|
|
173
180
|
await userEvent.clear(currencyElement);
|
|
174
181
|
await userEvent.clear(tradeDateElement);
|
|
@@ -181,7 +188,7 @@ describe("ModelRouter", () => {
|
|
|
181
188
|
await userEvent.type(middleNameElement, instance.middleName);
|
|
182
189
|
await userEvent.type(lastNameElement, instance.lastName);
|
|
183
190
|
await selectOption(genderElement, instance.gender);
|
|
184
|
-
|
|
191
|
+
typeNumericInput(ageElement, instance.age);
|
|
185
192
|
pickDatetime(birthDateElement, instance.birthDate, BirthDateFormat);
|
|
186
193
|
await selectOption(modelElement, instance.car.model);
|
|
187
194
|
await selectOption(manufacturerElement, instance.car.manufacturer);
|
|
@@ -190,7 +197,7 @@ describe("ModelRouter", () => {
|
|
|
190
197
|
await userEvent.type(vinElement, instance.car.vin);
|
|
191
198
|
await userEvent.type(vrmElement, instance.car.vrm);
|
|
192
199
|
pickDatetime(timeReturnElement, instance.car.returnTime, ReturnTimeFormat);
|
|
193
|
-
|
|
200
|
+
typeNumericInput(quantityElement, instance.quantity);
|
|
194
201
|
if (instance.available) {
|
|
195
202
|
await userEvent.click(availableElement);
|
|
196
203
|
}
|
|
@@ -788,13 +795,13 @@ describe("ModelRouter", () => {
|
|
|
788
795
|
expect(onRequestItem).toHaveBeenCalledWith(id);
|
|
789
796
|
});
|
|
790
797
|
|
|
791
|
-
it("would show a loading indicator when the request is in progress", async () => {
|
|
798
|
+
it.skip("would show a loading indicator when the request is in progress", async () => {
|
|
792
799
|
await renderComponent({ screen: "details" });
|
|
793
800
|
|
|
794
801
|
expectProgressIndicator();
|
|
795
802
|
});
|
|
796
803
|
|
|
797
|
-
it("would show the details of an instance", async () => {
|
|
804
|
+
it.skip("would show the details of an instance", async () => {
|
|
798
805
|
const { model, randomItem } = await renderComponent({ screen: "details" });
|
|
799
806
|
|
|
800
807
|
await waitForProgressIndicatorToBeRemoved();
|
|
@@ -862,13 +869,13 @@ describe("ModelRouter", () => {
|
|
|
862
869
|
expect(onRequestUpdateItem).toHaveBeenCalledWith(id);
|
|
863
870
|
});
|
|
864
871
|
|
|
865
|
-
it("would show a loading indicator while the instance is requested", async () => {
|
|
872
|
+
it.skip("would show a loading indicator while the instance is requested", async () => {
|
|
866
873
|
await renderComponent({ screen: "update" });
|
|
867
874
|
|
|
868
875
|
await expectProgressIndicator();
|
|
869
876
|
});
|
|
870
877
|
|
|
871
|
-
it("would render a form with the instance values", async () => {
|
|
878
|
+
it.skip("would render a form with the instance values", async () => {
|
|
872
879
|
const {
|
|
873
880
|
model,
|
|
874
881
|
randomItem: { item },
|
|
@@ -879,7 +886,7 @@ describe("ModelRouter", () => {
|
|
|
879
886
|
expectModelFieldInputValue(model.fields, item);
|
|
880
887
|
});
|
|
881
888
|
|
|
882
|
-
it("would make a request with the new values when the form is submitted", async () => {
|
|
889
|
+
it.skip("would make a request with the new values when the form is submitted", async () => {
|
|
883
890
|
const { model, onSubmitUpdate } = await renderComponent({ screen: "update" });
|
|
884
891
|
|
|
885
892
|
await waitForProgressIndicatorToBeRemoved();
|
|
@@ -888,7 +895,7 @@ describe("ModelRouter", () => {
|
|
|
888
895
|
expectToHaveBeenCalledOnceWithMockInstance(onSubmitUpdate, newInstance);
|
|
889
896
|
});
|
|
890
897
|
|
|
891
|
-
it("would show a loading indicator while the submit request is in progress", async () => {
|
|
898
|
+
it.skip("would show a loading indicator while the submit request is in progress", async () => {
|
|
892
899
|
const { model } = await renderComponent({ screen: "update" });
|
|
893
900
|
|
|
894
901
|
await waitForProgressIndicatorToBeRemoved();
|
|
@@ -1014,6 +1021,8 @@ describe("ModelRouter", () => {
|
|
|
1014
1021
|
});
|
|
1015
1022
|
|
|
1016
1023
|
describe("updateFeature disabled", () => {
|
|
1024
|
+
mockConsoleWarn();
|
|
1025
|
+
|
|
1017
1026
|
it("wouldn't have an option to remove an item from the list", async () => {
|
|
1018
1027
|
const { data } = await renderComponent({ updateFeature: false });
|
|
1019
1028
|
const {
|
|
@@ -1053,6 +1062,8 @@ describe("ModelRouter", () => {
|
|
|
1053
1062
|
});
|
|
1054
1063
|
|
|
1055
1064
|
describe("addFeature disabled", () => {
|
|
1065
|
+
mockConsoleWarn();
|
|
1066
|
+
|
|
1056
1067
|
it("wouldn't render a button to navigate to the add screen", async () => {
|
|
1057
1068
|
await renderComponent({ addFeature: false });
|
|
1058
1069
|
|
|
@@ -1071,6 +1082,8 @@ describe("ModelRouter", () => {
|
|
|
1071
1082
|
});
|
|
1072
1083
|
|
|
1073
1084
|
describe("detailsFeature disabled", () => {
|
|
1085
|
+
mockConsoleWarn();
|
|
1086
|
+
|
|
1074
1087
|
it("wouldn't navigate to the details screen if I click a row item", async () => {
|
|
1075
1088
|
const {
|
|
1076
1089
|
randomItem: {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Header, Content } from "~/components";
|
|
3
|
-
import { BasicModelInstance
|
|
3
|
+
import { BasicModelInstance } from "../../generators.model";
|
|
4
|
+
import { ModelForm } from "../../model-form";
|
|
4
5
|
import { HeaderLayout } from "../../../layouts";
|
|
5
6
|
import { useNotifyWhenValueChanges } from "../../../providers";
|
|
6
7
|
import { RequestState } from "../model-router.types";
|
|
@@ -4,7 +4,8 @@ import { RequestState } from "../model-router.types";
|
|
|
4
4
|
import { Content, Header } from "~/components";
|
|
5
5
|
import { HeaderLayout } from "~/layouts";
|
|
6
6
|
import { BaseScreenProps } from "./screens.types";
|
|
7
|
-
import { BasicModelInstance
|
|
7
|
+
import { BasicModelInstance } from "../../generators.model";
|
|
8
|
+
import { ObjectDetails } from "~/generators/object-details";
|
|
8
9
|
|
|
9
10
|
export interface DetailsScreenProps<T extends BasicModelInstance> extends BaseScreenProps {
|
|
10
11
|
/**
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React, { useEffect } from "react";
|
|
2
2
|
import { useNavigate } from "react-router-dom";
|
|
3
|
-
import { Content, Header, HeaderAction
|
|
4
|
-
import {
|
|
3
|
+
import { Content, Header, HeaderAction } from "~/components";
|
|
4
|
+
import { TableList, TableRowOption } from "../../table-list";
|
|
5
|
+
import { BasicModelInstance } from "../../generators.model";
|
|
5
6
|
import { useNotifyWhenValueChanges } from "~/providers";
|
|
6
7
|
import { HeaderLayout } from "../../../layouts";
|
|
7
8
|
import { RequestState } from "../model-router.types";
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React, { useEffect } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { useParams } from "react-router-dom";
|
|
3
3
|
import { Content, Header } from "~/components";
|
|
4
|
-
import { BasicModelInstance
|
|
4
|
+
import { BasicModelInstance } from "../../generators.model";
|
|
5
|
+
import { ModelForm } from "../../model-form";
|
|
5
6
|
import { useNavigateWhenValueChanges } from "~/hooks";
|
|
6
7
|
import { HeaderLayout } from "../../../layouts";
|
|
7
|
-
import {
|
|
8
|
+
import { useNotifyWhenValueChanges } from "../../../providers";
|
|
8
9
|
import { RequestState } from "../model-router.types";
|
|
9
10
|
import { BaseScreenProps } from "./screens.types";
|
|
10
11
|
|
|
@@ -48,8 +49,6 @@ export const UpdateScreen = <T extends BasicModelInstance>({
|
|
|
48
49
|
onRequestUpdateItem,
|
|
49
50
|
}: UpdateScreenProps<T>) => {
|
|
50
51
|
const { id = "" } = useParams();
|
|
51
|
-
const navigate = useNavigate();
|
|
52
|
-
const { show } = useNotificationCenter();
|
|
53
52
|
const loading = updateItemRequest.loading || submitUpdateItemRequest.loading;
|
|
54
53
|
|
|
55
54
|
useEffect(() => {
|
|
@@ -75,7 +75,7 @@ export const DummyModelRouter = (args: DummyModelRouterProps) => {
|
|
|
75
75
|
}, requestTimeout);
|
|
76
76
|
};
|
|
77
77
|
|
|
78
|
-
const handleClickDeleteItem = (item) => {
|
|
78
|
+
const handleClickDeleteItem = (item: MockInstance) => {
|
|
79
79
|
setRemoveRequestState({ idle: false, loading: true });
|
|
80
80
|
onRequestDeleteAction(item);
|
|
81
81
|
|
|
@@ -218,7 +218,7 @@ export const InternalModelRouter = () => {
|
|
|
218
218
|
};
|
|
219
219
|
|
|
220
220
|
export default {
|
|
221
|
-
title: "Generators/ModelRouter",
|
|
221
|
+
title: "Generators/ModelRouter/DummyModelRouter",
|
|
222
222
|
component: DummyModelRouter,
|
|
223
223
|
decorators: [withMemoryRouter(), withNotificationCenter, withLocalizationProvider],
|
|
224
224
|
parameters: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { expectModelFieldValue
|
|
2
|
+
import { expectModelFieldValue } from "~/tests/assertions";
|
|
3
|
+
import { render } from "~/tests/testing-library";
|
|
3
4
|
import { mockModel, createModelInstance } from "../generators.mock";
|
|
4
5
|
import { ObjectDetails } from "./object-details";
|
|
5
6
|
|
|
@@ -8,28 +8,37 @@ import {
|
|
|
8
8
|
ValueText,
|
|
9
9
|
ValueDatetime,
|
|
10
10
|
} from "../../components";
|
|
11
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
ModelField,
|
|
13
|
+
GroupField,
|
|
14
|
+
Model,
|
|
15
|
+
BasicModelInstance,
|
|
16
|
+
GroupInstanceType,
|
|
17
|
+
} from "../generators.model";
|
|
12
18
|
|
|
13
|
-
const singleDetailValueFactory = <T extends BasicModelInstance>(
|
|
19
|
+
const singleDetailValueFactory = <T extends BasicModelInstance>(
|
|
20
|
+
field: ModelField,
|
|
21
|
+
instance: T | GroupInstanceType,
|
|
22
|
+
) => {
|
|
14
23
|
const { id, name, type } = field;
|
|
15
24
|
const value = instance[id];
|
|
16
25
|
if (type === "boolean") {
|
|
17
|
-
return <ValueBoolean label={name} value={value} />;
|
|
26
|
+
return <ValueBoolean label={name} value={value as boolean} />;
|
|
18
27
|
} else if (type === "date" || type === "time" || type === "datetime") {
|
|
19
|
-
return <ValueDatetime label={name} value={value} format={field.format} />;
|
|
28
|
+
return <ValueDatetime label={name} value={value as Date} format={field.format} />;
|
|
20
29
|
}
|
|
21
30
|
return <ValueText label={name} value={value?.toString()} />;
|
|
22
31
|
};
|
|
23
32
|
|
|
24
|
-
interface ObjectDetailGroupProps
|
|
33
|
+
interface ObjectDetailGroupProps {
|
|
25
34
|
field: GroupField;
|
|
26
|
-
instance:
|
|
35
|
+
instance: GroupInstanceType;
|
|
27
36
|
}
|
|
28
37
|
|
|
29
|
-
const ObjectDetailGroup =
|
|
38
|
+
const ObjectDetailGroup = ({
|
|
30
39
|
field: { name, description, value },
|
|
31
40
|
instance,
|
|
32
|
-
}: ObjectDetailGroupProps
|
|
41
|
+
}: ObjectDetailGroupProps) => {
|
|
33
42
|
return (
|
|
34
43
|
<GroupValueCard title={name} subtitle={description}>
|
|
35
44
|
{value.map((field) => {
|
|
@@ -61,7 +70,7 @@ export const ObjectDetails = <T extends BasicModelInstance>({
|
|
|
61
70
|
if (type === "group") {
|
|
62
71
|
return (
|
|
63
72
|
<Grid item key={id} xs={12}>
|
|
64
|
-
<ObjectDetailGroup field={field} instance={instance[id]} />
|
|
73
|
+
<ObjectDetailGroup field={field} instance={instance[id] as GroupInstanceType} />
|
|
65
74
|
</Grid>
|
|
66
75
|
);
|
|
67
76
|
}
|
|
@@ -2,36 +2,46 @@ import React from "react";
|
|
|
2
2
|
import { useDemoData } from "@mui/x-data-grid-generator";
|
|
3
3
|
import { ComponentMeta } from "@storybook/react";
|
|
4
4
|
import { createTemplate } from "../../storybook";
|
|
5
|
-
import { TableList } from "./table-list";
|
|
5
|
+
import { TableList, TableListProps } from "./table-list";
|
|
6
6
|
import { action } from "@storybook/addon-actions";
|
|
7
|
+
import { BasicModelInstance } from "~/generators";
|
|
7
8
|
|
|
8
9
|
const maxColumns = 3;
|
|
9
10
|
|
|
10
11
|
export default {
|
|
11
|
-
title: "
|
|
12
|
+
title: "Generators/TableList",
|
|
12
13
|
component: TableList,
|
|
13
14
|
parameters: {
|
|
14
15
|
layout: "fullscreen",
|
|
15
16
|
},
|
|
16
17
|
} as ComponentMeta<typeof TableList>;
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
maxColumns,
|
|
23
|
-
});
|
|
24
|
-
const { rows } = data;
|
|
25
|
-
const columns = data.columns.map(({ field, headerName }) => ({
|
|
26
|
-
id: field,
|
|
27
|
-
label: headerName,
|
|
28
|
-
sort: true,
|
|
29
|
-
disablePadding: false,
|
|
30
|
-
numeric: false,
|
|
31
|
-
}));
|
|
19
|
+
interface TemplateProps<T extends BasicModelInstance> extends TableListProps<T> {
|
|
20
|
+
size: number;
|
|
21
|
+
dataSetType: "Commodity" | "Employee";
|
|
22
|
+
}
|
|
32
23
|
|
|
33
|
-
|
|
34
|
-
})
|
|
24
|
+
const Template = createTemplate(
|
|
25
|
+
<T extends BasicModelInstance>({ dataSetType, size, ...rest }: TemplateProps<T>) => {
|
|
26
|
+
const { data } = useDemoData({
|
|
27
|
+
dataSet: dataSetType,
|
|
28
|
+
rowLength: size,
|
|
29
|
+
maxColumns,
|
|
30
|
+
});
|
|
31
|
+
const { rows } = data;
|
|
32
|
+
const columns = data.columns.map(({ field, headerName }) => ({
|
|
33
|
+
id: field,
|
|
34
|
+
label: headerName || "invalid",
|
|
35
|
+
sort: true,
|
|
36
|
+
disablePadding: false,
|
|
37
|
+
numeric: false,
|
|
38
|
+
}));
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<TableList {...rest} columns={columns} data={rows as any} onClick={action("onClick row")} />
|
|
42
|
+
);
|
|
43
|
+
},
|
|
44
|
+
);
|
|
35
45
|
|
|
36
46
|
export const Default = Template.bind({});
|
|
37
47
|
Default.args = {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { render } from "~/tests/testing-library";
|
|
3
3
|
import { screen } from "@testing-library/react";
|
|
4
4
|
import userEvents from "@testing-library/user-event";
|
|
5
5
|
import { TableRowOption, TableList } from "./table-list";
|
|
6
|
-
import { HeadCell } from "
|
|
7
|
-
import { BasicModelInstance } from "
|
|
6
|
+
import { HeadCell } from "../../components/tables/enhanced-table";
|
|
7
|
+
import { BasicModelInstance } from "..";
|
|
8
|
+
import { expectProgressIndicator } from "~/tests/assertions";
|
|
8
9
|
|
|
9
|
-
const columns: HeadCell[] = [
|
|
10
|
+
const columns: HeadCell<BasicModelInstance>[] = [
|
|
10
11
|
{
|
|
11
12
|
id: "id",
|
|
12
13
|
numeric: true,
|
|
@@ -81,7 +82,7 @@ describe("TableList", () => {
|
|
|
81
82
|
defaultSort?: string;
|
|
82
83
|
loading?: boolean;
|
|
83
84
|
search?: boolean;
|
|
84
|
-
options?: TableRowOption<
|
|
85
|
+
options?: TableRowOption<BasicModelInstance>[];
|
|
85
86
|
onClick?: jest.Mock;
|
|
86
87
|
} = {}) => {
|
|
87
88
|
const instance = render(
|
|
@@ -109,8 +110,8 @@ describe("TableList", () => {
|
|
|
109
110
|
|
|
110
111
|
data.forEach(({ id, name, value }) => {
|
|
111
112
|
expect(screen.getByRole("cell", { name: id })).toBeInTheDocument();
|
|
112
|
-
expect(screen.getByRole("cell", { name: name })).toBeInTheDocument();
|
|
113
|
-
expect(screen.getByRole("cell", { name: value })).toBeInTheDocument();
|
|
113
|
+
expect(screen.getByRole("cell", { name: name as string })).toBeInTheDocument();
|
|
114
|
+
expect(screen.getByRole("cell", { name: value as string })).toBeInTheDocument();
|
|
114
115
|
});
|
|
115
116
|
});
|
|
116
117
|
|
|
@@ -149,7 +150,8 @@ describe("TableList", () => {
|
|
|
149
150
|
it("would render the items 2,3 and 4", async () => {
|
|
150
151
|
renderInstance({ search: true });
|
|
151
152
|
|
|
152
|
-
|
|
153
|
+
const search = screen.getByPlaceholderText(/search/i);
|
|
154
|
+
await userEvents.type(search, "a");
|
|
153
155
|
|
|
154
156
|
expect(screen.getByText(/item 2/i)).toBeInTheDocument();
|
|
155
157
|
expect(screen.getByText(/item 3/i)).toBeInTheDocument();
|
|
@@ -157,6 +159,8 @@ describe("TableList", () => {
|
|
|
157
159
|
|
|
158
160
|
expect(screen.queryByText(/item 1/i)).not.toBeInTheDocument();
|
|
159
161
|
expect(screen.queryByText(/item 5/i)).not.toBeInTheDocument();
|
|
162
|
+
|
|
163
|
+
await userEvents.clear(search);
|
|
160
164
|
});
|
|
161
165
|
|
|
162
166
|
it("would render all the items if I remove the search", async () => {
|
|
@@ -228,6 +232,7 @@ describe("TableList", () => {
|
|
|
228
232
|
await userEvents.click(screen.getByRole("row", { name: /item 3/i }));
|
|
229
233
|
});
|
|
230
234
|
|
|
235
|
+
// TODO: this tests are throwing a console.error
|
|
231
236
|
describe("options menu", () => {
|
|
232
237
|
it("would render a button to open the menu if doesn't have options", () => {
|
|
233
238
|
renderInstance({ options: undefined });
|