@onewelcome/react-lib-components 0.3.0 → 1.0.1
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/LICENSE +202 -21
- package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -2
- package/dist/Button/BaseButton.d.ts +1 -1
- package/dist/Button/Button.d.ts +1 -1
- package/dist/Button/IconButton.d.ts +1 -1
- package/dist/ContextMenu/ContextMenu.d.ts +1 -1
- package/dist/ContextMenu/ContextMenuItem.d.ts +1 -1
- package/dist/DataGrid/DataGridActions/DataGridActions.d.ts +1 -1
- package/dist/DataGrid/DataGridActions/DataGridColumnsToggle.d.ts +1 -1
- package/dist/DataGrid/DataGridBody/DataGridCell.d.ts +1 -1
- package/dist/DataGrid/DataGridBody/DataGridRow.d.ts +1 -1
- package/dist/DataGrid/DataGridHeader/DataGridHeader.d.ts +1 -1
- package/dist/DataGrid/DataGridHeader/DataGridHeaderCell.d.ts +1 -1
- package/dist/Form/Checkbox/Checkbox.d.ts +1 -1
- package/dist/Form/Fieldset/Fieldset.d.ts +1 -1
- package/dist/Form/FormControl/FormControl.d.ts +1 -1
- package/dist/Form/FormGroup/FormGroup.d.ts +1 -1
- package/dist/Form/FormHelperText/FormHelperText.d.ts +1 -1
- package/dist/Form/FormSelectorWrapper/FormSelectorWrapper.d.ts +1 -1
- package/dist/Form/Input/Input.d.ts +2 -3
- package/dist/Form/Label/Label.d.ts +1 -1
- package/dist/Form/Radio/Radio.d.ts +1 -1
- package/dist/Form/Select/Option.d.ts +1 -1
- package/dist/Form/Select/Select.d.ts +1 -2
- package/dist/Form/Select/Select.interfaces.d.ts +22 -0
- package/dist/Form/Select/SelectService.d.ts +12 -0
- package/dist/Form/Textarea/Textarea.d.ts +1 -1
- package/dist/Form/Toggle/Toggle.d.ts +1 -1
- package/dist/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.d.ts +1 -1
- package/dist/Form/Wrapper/InputWrapper/InputWrapper.d.ts +1 -1
- package/dist/Form/Wrapper/RadioWrapper/RadioWrapper.d.ts +1 -1
- package/dist/Form/Wrapper/SelectWrapper/SelectWrapper.d.ts +1 -2
- package/dist/Form/Wrapper/TextareaWrapper/TextareaWrapper.d.ts +1 -1
- package/dist/Form/Wrapper/Wrapper/Wrapper.d.ts +1 -1
- package/dist/Icon/Icon.d.ts +1 -1
- package/dist/Link/Link.d.ts +3 -4
- package/dist/Notifications/BaseModal/BaseModal.d.ts +1 -1
- package/dist/Notifications/BaseModal/BaseModalActions/BaseModalActions.d.ts +2 -2
- package/dist/Notifications/BaseModal/BaseModalContent/BaseModalContent.d.ts +1 -1
- package/dist/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.d.ts +2 -2
- package/dist/Notifications/Dialog/Dialog.d.ts +1 -1
- package/dist/Notifications/Dialog/DialogActions/DialogActions.d.ts +1 -1
- package/dist/Notifications/Dialog/DialogTitle/DialogTitle.d.ts +1 -1
- package/dist/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.d.ts +1 -1
- package/dist/Notifications/SlideInModal/SlideInModal.d.ts +1 -1
- package/dist/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.d.ts +11 -0
- package/dist/Notifications/Snackbar/SnackbarProvider/SnackbarStateProvider.d.ts +3 -0
- package/dist/Notifications/Snackbar/useSnackbar.d.ts +5 -1
- package/dist/Pagination/Pagination.d.ts +1 -1
- package/dist/Popover/Popover.d.ts +1 -1
- package/dist/Skeleton/Skeleton.d.ts +1 -1
- package/dist/StatusIndicator/StatusIndicator.d.ts +1 -1
- package/dist/Tabs/TabButton.d.ts +1 -1
- package/dist/Tabs/TabPanel.d.ts +1 -1
- package/dist/TextEllipsis/TextEllipsis.d.ts +1 -1
- package/dist/Tiles/Tile.d.ts +1 -1
- package/dist/Tiles/Tiles.d.ts +1 -1
- package/dist/Tooltip/Tooltip.d.ts +1 -1
- package/dist/Wizard/BaseWizardSteps/BaseWizardSteps.d.ts +1 -2
- package/dist/Wizard/Wizard.d.ts +0 -1
- package/dist/Wizard/WizardSteps/WizardSteps.d.ts +1 -1
- package/dist/Wizard/wizardStateReducer.d.ts +1 -3
- package/dist/_BaseStyling_/BaseStyling.d.ts +10 -4
- package/dist/react-lib-components.cjs.development.js +1158 -1559
- package/dist/react-lib-components.cjs.development.js.map +1 -1
- package/dist/react-lib-components.cjs.production.min.js +1 -1
- package/dist/react-lib-components.cjs.production.min.js.map +1 -1
- package/dist/react-lib-components.esm.js +1158 -1559
- package/dist/react-lib-components.esm.js.map +1 -1
- package/package.json +31 -24
- package/src/Breadcrumbs/Breadcrumbs.module.scss +16 -0
- package/src/Breadcrumbs/Breadcrumbs.test.tsx +17 -1
- package/src/Breadcrumbs/Breadcrumbs.tsx +18 -2
- package/src/Button/BaseButton.module.scss +16 -0
- package/src/Button/BaseButton.test.tsx +16 -0
- package/src/Button/BaseButton.tsx +16 -0
- package/src/Button/Button.module.scss +16 -0
- package/src/Button/Button.test.tsx +16 -0
- package/src/Button/Button.tsx +16 -0
- package/src/Button/IconButton.module.scss +16 -0
- package/src/Button/IconButton.test.tsx +16 -0
- package/src/Button/IconButton.tsx +16 -0
- package/src/ContextMenu/ContextMenu.module.scss +16 -0
- package/src/ContextMenu/ContextMenu.test.tsx +16 -0
- package/src/ContextMenu/ContextMenu.tsx +16 -0
- package/src/ContextMenu/ContextMenuItem.module.scss +16 -0
- package/src/ContextMenu/ContextMenuItem.tsx +16 -0
- package/src/DataGrid/DataGrid.module.scss +16 -0
- package/src/DataGrid/DataGrid.test.tsx +16 -0
- package/src/DataGrid/DataGrid.tsx +16 -0
- package/src/DataGrid/DataGridActions/DataGridActions.module.scss +16 -0
- package/src/DataGrid/DataGridActions/DataGridActions.test.tsx +16 -0
- package/src/DataGrid/DataGridActions/DataGridActions.tsx +16 -0
- package/src/DataGrid/DataGridActions/DataGridColumnsToggle.module.scss +16 -0
- package/src/DataGrid/DataGridActions/DataGridColumnsToggle.test.tsx +16 -0
- package/src/DataGrid/DataGridActions/DataGridColumnsToggle.tsx +16 -0
- package/src/DataGrid/DataGridBody/DataGridBody.module.scss +16 -0
- package/src/DataGrid/DataGridBody/DataGridBody.test.tsx +16 -0
- package/src/DataGrid/DataGridBody/DataGridBody.tsx +16 -0
- package/src/DataGrid/DataGridBody/DataGridCell.module.scss +16 -0
- package/src/DataGrid/DataGridBody/DataGridCell.test.tsx +16 -0
- package/src/DataGrid/DataGridBody/DataGridCell.tsx +16 -0
- package/src/DataGrid/DataGridBody/DataGridRow.module.scss +16 -0
- package/src/DataGrid/DataGridBody/DataGridRow.test.tsx +16 -0
- package/src/DataGrid/DataGridBody/DataGridRow.tsx +16 -0
- package/src/DataGrid/DataGridHeader/DataGridHeader.module.scss +17 -1
- package/src/DataGrid/DataGridHeader/DataGridHeader.test.tsx +16 -0
- package/src/DataGrid/DataGridHeader/DataGridHeader.tsx +16 -0
- package/src/DataGrid/DataGridHeader/DataGridHeaderCell.module.scss +16 -0
- package/src/DataGrid/DataGridHeader/DataGridHeaderCell.test.tsx +16 -0
- package/src/DataGrid/DataGridHeader/DataGridHeaderCell.tsx +16 -0
- package/src/DataGrid/datagrid.interfaces.ts +16 -0
- package/src/Form/Checkbox/Checkbox.module.scss +20 -6
- package/src/Form/Checkbox/Checkbox.test.tsx +16 -0
- package/src/Form/Checkbox/Checkbox.tsx +16 -0
- package/src/Form/Fieldset/Fieldset.module.scss +16 -0
- package/src/Form/Fieldset/Fieldset.test.tsx +16 -0
- package/src/Form/Fieldset/Fieldset.tsx +21 -3
- package/src/Form/Form.module.scss +16 -0
- package/src/Form/Form.test.tsx +16 -0
- package/src/Form/Form.tsx +16 -0
- package/src/Form/FormControl/FormControl.module.scss +16 -0
- package/src/Form/FormControl/FormControl.test.tsx +16 -0
- package/src/Form/FormControl/FormControl.tsx +16 -0
- package/src/Form/FormGroup/FormGroup.module.scss +16 -0
- package/src/Form/FormGroup/FormGroup.test.tsx +16 -0
- package/src/Form/FormGroup/FormGroup.tsx +17 -1
- package/src/Form/FormHelperText/FormHelperText.module.scss +16 -0
- package/src/Form/FormHelperText/FormHelperText.test.tsx +16 -0
- package/src/Form/FormHelperText/FormHelperText.tsx +16 -0
- package/src/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss +16 -0
- package/src/Form/FormSelectorWrapper/FormSelectorWrapper.test.tsx +16 -0
- package/src/Form/FormSelectorWrapper/FormSelectorWrapper.tsx +16 -0
- package/src/Form/Input/Input.module.scss +64 -5
- package/src/Form/Input/Input.test.tsx +16 -0
- package/src/Form/Input/Input.tsx +19 -57
- package/src/Form/Label/Label.module.scss +16 -0
- package/src/Form/Label/Label.test.tsx +16 -0
- package/src/Form/Label/Label.tsx +16 -0
- package/src/Form/Radio/Radio.module.scss +20 -6
- package/src/Form/Radio/Radio.test.tsx +16 -0
- package/src/Form/Radio/Radio.tsx +16 -0
- package/src/Form/Select/Option.test.tsx +16 -0
- package/src/Form/Select/Option.tsx +16 -0
- package/src/Form/Select/Select.interfaces.ts +39 -0
- package/src/Form/Select/Select.module.scss +28 -13
- package/src/Form/Select/Select.test.tsx +16 -57
- package/src/Form/Select/Select.tsx +36 -190
- package/src/Form/Select/SelectService.ts +204 -0
- package/src/Form/Textarea/Textarea.module.scss +16 -0
- package/src/Form/Textarea/Textarea.test.tsx +16 -0
- package/src/Form/Textarea/Textarea.tsx +16 -0
- package/src/Form/Toggle/Toggle.module.scss +17 -1
- package/src/Form/Toggle/Toggle.test.tsx +16 -0
- package/src/Form/Toggle/Toggle.tsx +16 -0
- package/src/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss +16 -0
- package/src/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.test.tsx +16 -0
- package/src/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.tsx +16 -0
- package/src/Form/Wrapper/InputWrapper/InputWrapper.module.scss +27 -3
- package/src/Form/Wrapper/InputWrapper/InputWrapper.test.tsx +16 -0
- package/src/Form/Wrapper/InputWrapper/InputWrapper.tsx +16 -0
- package/src/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss +16 -0
- package/src/Form/Wrapper/RadioWrapper/RadioWrapper.test.tsx +16 -0
- package/src/Form/Wrapper/RadioWrapper/RadioWrapper.tsx +16 -0
- package/src/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss +16 -0
- package/src/Form/Wrapper/SelectWrapper/SelectWrapper.test.tsx +17 -19
- package/src/Form/Wrapper/SelectWrapper/SelectWrapper.tsx +17 -15
- package/src/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss +41 -33
- package/src/Form/Wrapper/TextareaWrapper/TextareaWrapper.test.tsx +16 -0
- package/src/Form/Wrapper/TextareaWrapper/TextareaWrapper.tsx +23 -7
- package/src/Form/Wrapper/Wrapper/Wrapper.module.scss +37 -21
- package/src/Form/Wrapper/Wrapper/Wrapper.test.tsx +16 -0
- package/src/Form/Wrapper/Wrapper/Wrapper.tsx +16 -0
- package/src/Form/form.interfaces.ts +16 -0
- package/src/Icon/Icon.module.scss +16 -0
- package/src/Icon/Icon.test.tsx +16 -0
- package/src/Icon/Icon.tsx +16 -0
- package/src/Link/Link.module.scss +21 -5
- package/src/Link/Link.test.tsx +16 -0
- package/src/Link/Link.tsx +18 -8
- package/src/Notifications/BaseModal/BaseModal.module.scss +16 -0
- package/src/Notifications/BaseModal/BaseModal.test.tsx +16 -0
- package/src/Notifications/BaseModal/BaseModal.tsx +16 -0
- package/src/Notifications/BaseModal/BaseModalActions/BaseModalActions.module.scss +16 -0
- package/src/Notifications/BaseModal/BaseModalActions/BaseModalActions.test.tsx +16 -0
- package/src/Notifications/BaseModal/BaseModalActions/BaseModalActions.tsx +20 -4
- package/src/Notifications/BaseModal/BaseModalContent/BaseModalContent.module.scss +16 -0
- package/src/Notifications/BaseModal/BaseModalContent/BaseModalContent.test.tsx +16 -0
- package/src/Notifications/BaseModal/BaseModalContent/BaseModalContent.tsx +16 -0
- package/src/Notifications/BaseModal/BaseModalContext.ts +16 -0
- package/src/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.module.scss +16 -0
- package/src/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.test.tsx +16 -0
- package/src/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.tsx +17 -1
- package/src/Notifications/Dialog/Dialog.module.scss +16 -0
- package/src/Notifications/Dialog/Dialog.test.tsx +18 -2
- package/src/Notifications/Dialog/Dialog.tsx +16 -0
- package/src/Notifications/Dialog/DialogActions/DialogActions.module.scss +16 -0
- package/src/Notifications/Dialog/DialogActions/DialogActions.test.tsx +16 -0
- package/src/Notifications/Dialog/DialogActions/DialogActions.tsx +17 -1
- package/src/Notifications/Dialog/DialogTitle/DialogTitle.module.scss +16 -0
- package/src/Notifications/Dialog/DialogTitle/DialogTitle.test.tsx +16 -0
- package/src/Notifications/Dialog/DialogTitle/DialogTitle.tsx +16 -0
- package/src/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.test.tsx +16 -0
- package/src/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.tsx +16 -0
- package/src/Notifications/DiscardChangesModal/DiscardChangesModal.test.tsx +16 -0
- package/src/Notifications/DiscardChangesModal/DiscardChangesModal.tsx +16 -0
- package/src/Notifications/Modal/Modal.tsx +16 -0
- package/src/Notifications/Modal/ModalActions/ModalActions.tsx +16 -0
- package/src/Notifications/Modal/ModalContent/ModalContent.tsx +16 -0
- package/src/Notifications/Modal/ModalHeader/ModalHeader.tsx +16 -0
- package/src/Notifications/SlideInModal/SlideInModal.module.scss +16 -0
- package/src/Notifications/SlideInModal/SlideInModal.test.tsx +16 -0
- package/src/Notifications/SlideInModal/SlideInModal.tsx +16 -0
- package/src/Notifications/Snackbar/SnackbarContainer/SnackbarContainer.module.scss +19 -0
- package/src/Notifications/Snackbar/SnackbarContainer/SnackbarContainer.test.tsx +16 -0
- package/src/Notifications/Snackbar/SnackbarContainer/SnackbarContainer.tsx +57 -2
- package/src/Notifications/Snackbar/SnackbarItem/SnackbarItem.module.scss +18 -0
- package/src/Notifications/Snackbar/SnackbarItem/SnackbarItem.test.tsx +16 -0
- package/src/Notifications/Snackbar/SnackbarItem/SnackbarItem.tsx +34 -1
- package/src/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.test.tsx +18 -2
- package/src/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.tsx +38 -2
- package/src/Notifications/Snackbar/SnackbarProvider/SnackbarStateProvider.tsx +22 -1
- package/src/Notifications/Snackbar/interfaces.ts +16 -0
- package/src/Notifications/Snackbar/useSnackbar.ts +25 -1
- package/src/Pagination/Pagination.module.scss +17 -1
- package/src/Pagination/Pagination.test.tsx +17 -1
- package/src/Pagination/Pagination.tsx +16 -0
- package/src/Popover/Popover.module.scss +17 -1
- package/src/Popover/Popover.test.tsx +16 -0
- package/src/Popover/Popover.tsx +22 -0
- package/src/Skeleton/Skeleton.module.scss +16 -0
- package/src/Skeleton/Skeleton.test.tsx +17 -1
- package/src/Skeleton/Skeleton.tsx +16 -0
- package/src/StatusIndicator/StatusIndicator.module.scss +16 -0
- package/src/StatusIndicator/StatusIndicator.test.tsx +16 -0
- package/src/StatusIndicator/StatusIndicator.tsx +16 -0
- package/src/Tabs/Tab.test.tsx +16 -0
- package/src/Tabs/Tab.tsx +16 -0
- package/src/Tabs/TabButton.module.scss +20 -0
- package/src/Tabs/TabButton.test.tsx +16 -0
- package/src/Tabs/TabButton.tsx +16 -0
- package/src/Tabs/TabPanel.module.scss +20 -0
- package/src/Tabs/TabPanel.test.tsx +16 -0
- package/src/Tabs/TabPanel.tsx +16 -0
- package/src/Tabs/Tabs.module.scss +18 -2
- package/src/Tabs/Tabs.test.tsx +16 -0
- package/src/Tabs/Tabs.tsx +17 -1
- package/src/TextEllipsis/TextEllipsis.module.scss +16 -0
- package/src/TextEllipsis/TextEllipsis.test.tsx +16 -0
- package/src/TextEllipsis/TextEllipsis.tsx +16 -0
- package/src/Tiles/Tile.module.scss +18 -2
- package/src/Tiles/Tile.test.tsx +16 -0
- package/src/Tiles/Tile.tsx +16 -0
- package/src/Tiles/Tiles.module.scss +16 -0
- package/src/Tiles/Tiles.test.tsx +16 -0
- package/src/Tiles/Tiles.tsx +16 -0
- package/src/Tooltip/Tooltip.module.scss +17 -1
- package/src/Tooltip/Tooltip.test.tsx +26 -0
- package/src/Tooltip/Tooltip.tsx +18 -1
- package/src/Typography/Typography.module.scss +16 -0
- package/src/Typography/Typography.test.tsx +16 -0
- package/src/Typography/Typography.tsx +16 -0
- package/src/Wizard/BaseWizardSteps/BaseWizardSteps.module.scss +19 -7
- package/src/Wizard/BaseWizardSteps/BaseWizardSteps.test.tsx +16 -1
- package/src/Wizard/BaseWizardSteps/BaseWizardSteps.tsx +18 -19
- package/src/Wizard/Wizard.test.tsx +16 -1
- package/src/Wizard/Wizard.tsx +23 -8
- package/src/Wizard/WizardActions/WizardActions.test.tsx +16 -1
- package/src/Wizard/WizardActions/WizardActions.tsx +16 -0
- package/src/Wizard/WizardStateProvider.tsx +16 -0
- package/src/Wizard/WizardSteps/WizardSteps.test.tsx +16 -1
- package/src/Wizard/WizardSteps/WizardSteps.tsx +17 -2
- package/src/Wizard/wizardStateReducer.ts +18 -8
- package/src/_BaseStyling_/BaseStyling.test.tsx +16 -0
- package/src/_BaseStyling_/BaseStyling.tsx +41 -16
- package/src/hooks/useAnimation.test.tsx +16 -0
- package/src/hooks/useAnimation.ts +16 -0
- package/src/hooks/useBodyClick.test.tsx +16 -0
- package/src/hooks/useBodyClick.ts +16 -0
- package/src/hooks/useFormSelector.test.ts +16 -0
- package/src/hooks/useFormSelector.ts +16 -0
- package/src/hooks/usePosition.test.tsx +16 -0
- package/src/hooks/usePosition.ts +16 -0
- package/src/hooks/useRepeater.test.tsx +16 -0
- package/src/hooks/useRepeater.ts +16 -0
- package/src/hooks/useScroll.test.tsx +16 -0
- package/src/hooks/useScroll.ts +16 -0
- package/src/hooks/useSpacing.test.ts +16 -0
- package/src/hooks/useSpacing.ts +16 -0
- package/src/hooks/useWrapper.test.ts +16 -0
- package/src/hooks/useWrapper.ts +16 -0
- package/src/index.ts +16 -0
- package/src/interfaces.ts +16 -0
- package/src/mixins.module.scss +22 -7
- package/src/readyclasses.module.scss +16 -0
- package/src/types.d.ts +16 -0
- package/src/util/helper.test.tsx +16 -0
- package/src/util/helper.tsx +16 -0
- package/src/Link/types.d.ts +0 -9
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { ComponentPropsWithRef, useState } from "react";
|
|
2
18
|
import { BaseModal } from "../BaseModal/BaseModal";
|
|
3
19
|
import { BaseModalContent } from "../BaseModal/BaseModalContent/BaseModalContent";
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
.actions {
|
|
2
18
|
margin: 1.5rem 1.25rem 1.25rem;
|
|
3
19
|
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { useEffect, useRef } from "react";
|
|
2
18
|
import { DialogActions, Props } from "./DialogActions";
|
|
3
19
|
import { render } from "@testing-library/react";
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { ComponentPropsWithRef } from "react";
|
|
2
18
|
import {
|
|
3
19
|
BaseModalActions,
|
|
@@ -9,7 +25,7 @@ export interface Props extends ComponentPropsWithRef<any>, BaseModalActionsProps
|
|
|
9
25
|
align: "left" | "right";
|
|
10
26
|
}
|
|
11
27
|
|
|
12
|
-
export const DialogActions = React.forwardRef<
|
|
28
|
+
export const DialogActions = React.forwardRef<HTMLDivElement, Props>(
|
|
13
29
|
({ children, align, ...rest }: Props, ref) => {
|
|
14
30
|
return (
|
|
15
31
|
<BaseModalActions
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
.header {
|
|
2
18
|
margin: 1.5rem 1.25rem 1.25rem;
|
|
3
19
|
}
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { useEffect, useRef } from "react";
|
|
2
18
|
import { DialogTitle, Props } from "./DialogTitle";
|
|
3
19
|
import { render, getByText } from "@testing-library/react";
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { ComponentPropsWithRef } from "react";
|
|
2
18
|
import { Typography } from "../../../Typography/Typography";
|
|
3
19
|
import classes from "./DialogTitle.module.scss";
|
package/src/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.test.tsx
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { useEffect, useRef } from "react";
|
|
2
18
|
import { DiscardChangesDialog, Props } from "./DiscardChangesDialog";
|
|
3
19
|
import { render } from "@testing-library/react";
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { ComponentPropsWithRef } from "react";
|
|
2
18
|
import { Dialog } from "../../Dialog/Dialog";
|
|
3
19
|
import { Typography } from "../../../Typography/Typography";
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { useEffect, useRef } from "react";
|
|
2
18
|
import { DiscardChangesModal, Props } from "./DiscardChangesModal";
|
|
3
19
|
import { findByTestId, getAllByRole, render, waitFor } from "@testing-library/react";
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { Fragment, useState } from "react";
|
|
2
18
|
import { Modal, Props as ModalProps } from "../Modal/Modal";
|
|
3
19
|
import { ModalHeader, Props as ModalHeaderProps } from "../Modal/ModalHeader/ModalHeader";
|
|
@@ -1 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
export { BaseModal as Modal, Props } from "../BaseModal/BaseModal";
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
export {
|
|
2
18
|
BaseModalActions as ModalActions,
|
|
3
19
|
Props
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
export {
|
|
2
18
|
BaseModalContent as ModalContent,
|
|
3
19
|
Props
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
export {
|
|
2
18
|
BaseModalHeader as ModalHeader,
|
|
3
19
|
Props
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
.slide-in-modal {
|
|
2
18
|
justify-content: flex-end;
|
|
3
19
|
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { useEffect, useRef } from "react";
|
|
2
18
|
import { SlideInModal } from "./SlideInModal";
|
|
3
19
|
import { Props } from "../Modal/Modal";
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { TransitionEventHandler, useState, useRef } from "react";
|
|
2
18
|
import { Props as ModalProps, Modal } from "../Modal/Modal";
|
|
3
19
|
import classes from "./SlideInModal.module.scss";
|
|
@@ -1,7 +1,26 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
.snackbars {
|
|
2
18
|
position: fixed;
|
|
3
19
|
z-index: 20;
|
|
4
20
|
width: 100%;
|
|
21
|
+
transition: height 0.2s ease-in-out;
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
5
24
|
|
|
6
25
|
&.bottom {
|
|
7
26
|
bottom: 3.5rem;
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React from "react";
|
|
2
18
|
import { SnackbarContainer, Props } from "./SnackbarContainer";
|
|
3
19
|
import { render } from "@testing-library/react";
|
|
@@ -1,5 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import React, { useContext, useEffect, useState } from "react";
|
|
2
18
|
import classes from "./SnackbarContainer.module.scss";
|
|
19
|
+
import { SnackbarContext } from "../SnackbarProvider/SnackbarStateProvider";
|
|
3
20
|
|
|
4
21
|
export interface Placement {
|
|
5
22
|
vertical: "top" | "bottom";
|
|
@@ -13,11 +30,49 @@ export interface Props {
|
|
|
13
30
|
className?: string;
|
|
14
31
|
}
|
|
15
32
|
|
|
33
|
+
const useSnackbarContainerHeightAnimation = () => {
|
|
34
|
+
const { snackbars } = useContext(SnackbarContext);
|
|
35
|
+
const [height, setHeight] = useState(0);
|
|
36
|
+
const [justifyContent, setJustifyContent] = useState<"flex-start" | "flex-end">("flex-start");
|
|
37
|
+
const spaceBetweenSnackbars = 8;
|
|
38
|
+
const exceedsMaximumVisibleSnackbars = snackbars.length >= 3;
|
|
39
|
+
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
const allHeights = snackbars.map(snackbar => snackbar.height);
|
|
42
|
+
|
|
43
|
+
let totalHeight = allHeights.reduce((prev, curr) => prev + curr, 0);
|
|
44
|
+
|
|
45
|
+
totalHeight += (Math.min(snackbars.length, 3) - 1) * spaceBetweenSnackbars;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Once we reach the maximum amount of snackbars, they will start to disappear. We have to wait with reversing the justify-content until the last snackbar
|
|
49
|
+
* has completed their animationIn. This is around 500ms. Then we want to reverse it, because otherwise whenever a snackbar disappears they shift up
|
|
50
|
+
* and then down again, which looks really bad.
|
|
51
|
+
* */
|
|
52
|
+
if (exceedsMaximumVisibleSnackbars)
|
|
53
|
+
setTimeout(() => {
|
|
54
|
+
setJustifyContent("flex-end");
|
|
55
|
+
}, 500);
|
|
56
|
+
|
|
57
|
+
if (height > totalHeight && justifyContent !== "flex-end") {
|
|
58
|
+
setJustifyContent("flex-end");
|
|
59
|
+
} else if (height < totalHeight && justifyContent !== "flex-start") {
|
|
60
|
+
setJustifyContent("flex-start");
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
setHeight(totalHeight);
|
|
64
|
+
}, [snackbars]);
|
|
65
|
+
|
|
66
|
+
return { height, justifyContent };
|
|
67
|
+
};
|
|
68
|
+
|
|
16
69
|
export const SnackbarContainer = ({ placement, children, zIndex, className, ...rest }: Props) => {
|
|
70
|
+
const { height, justifyContent } = useSnackbarContainerHeightAnimation();
|
|
71
|
+
|
|
17
72
|
return (
|
|
18
73
|
<div
|
|
19
74
|
{...rest}
|
|
20
|
-
style={{ zIndex }}
|
|
75
|
+
style={{ zIndex, height, justifyContent }}
|
|
21
76
|
className={`${classes["snackbars"]} ${classes[placement.horizontal]} ${
|
|
22
77
|
classes[placement.vertical]
|
|
23
78
|
} ${className ?? ""}`}
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
@import "../../../readyclasses.module.scss";
|
|
2
18
|
|
|
3
19
|
.snackbar {
|
|
@@ -6,6 +22,8 @@
|
|
|
6
22
|
display: flex;
|
|
7
23
|
width: 100%;
|
|
8
24
|
box-sizing: border-box;
|
|
25
|
+
transition: height 0.2s ease-in-out;
|
|
26
|
+
flex-grow: 0;
|
|
9
27
|
|
|
10
28
|
&.info {
|
|
11
29
|
background-color: var(--snackbar-info-background-color);
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React from "react";
|
|
2
18
|
import { render, getByRole, waitFor } from "@testing-library/react";
|
|
3
19
|
import { SnackbarItem, Props } from "./SnackbarItem";
|
|
@@ -1,4 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import React, { useContext, useEffect, useRef } from "react";
|
|
2
18
|
import { IconButton } from "../../../Button/IconButton";
|
|
3
19
|
import { Icon, Icons } from "../../../Icon/Icon";
|
|
4
20
|
import { Variant, Actions } from "../interfaces";
|
|
@@ -6,6 +22,7 @@ import classes from "./SnackbarItem.module.scss";
|
|
|
6
22
|
import readyclasses from "../../../readyclasses.module.scss";
|
|
7
23
|
import { useAnimation } from "../../../hooks/useAnimation";
|
|
8
24
|
import { Typography } from "../../../Typography/Typography";
|
|
25
|
+
import { SnackbarContext } from "../SnackbarProvider/SnackbarStateProvider";
|
|
9
26
|
|
|
10
27
|
const textColor = "var(--snackbar-text-color)";
|
|
11
28
|
|
|
@@ -20,6 +37,19 @@ export interface Props {
|
|
|
20
37
|
actions?: Actions;
|
|
21
38
|
}
|
|
22
39
|
|
|
40
|
+
const useRegisterSnackbarHeight = (
|
|
41
|
+
singleSnackbarRef: React.RefObject<HTMLDivElement>,
|
|
42
|
+
snackbarId: string
|
|
43
|
+
) => {
|
|
44
|
+
const ctx = useContext(SnackbarContext);
|
|
45
|
+
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
if (singleSnackbarRef.current) {
|
|
48
|
+
ctx.setSnackbarHeight(snackbarId, singleSnackbarRef.current.getBoundingClientRect().height);
|
|
49
|
+
}
|
|
50
|
+
}, [singleSnackbarRef.current]);
|
|
51
|
+
};
|
|
52
|
+
|
|
23
53
|
export const SnackbarItem = ({
|
|
24
54
|
id,
|
|
25
55
|
title,
|
|
@@ -34,6 +64,8 @@ export const SnackbarItem = ({
|
|
|
34
64
|
const onAnimationEnd = () => onClose(id);
|
|
35
65
|
const { ref, animationStarted, startAnimation } = useAnimation<HTMLDivElement>(onAnimationEnd);
|
|
36
66
|
|
|
67
|
+
useRegisterSnackbarHeight(ref, id);
|
|
68
|
+
|
|
37
69
|
useEffect(() => {
|
|
38
70
|
timerHandler.current = setTimeout(() => startAnimation(), duration);
|
|
39
71
|
return () => {
|
|
@@ -72,6 +104,7 @@ export const SnackbarItem = ({
|
|
|
72
104
|
return (
|
|
73
105
|
<div
|
|
74
106
|
ref={ref}
|
|
107
|
+
aria-live="polite"
|
|
75
108
|
className={`${classes["snackbar"]} ${classes[variant]} ${
|
|
76
109
|
animationStarted ? readyclasses["slide-out"] : readyclasses["slide-in"]
|
|
77
110
|
}`}
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import React, { useEffect, useState } from "react";
|
|
2
18
|
import {
|
|
3
19
|
render,
|
|
@@ -164,8 +180,8 @@ describe("handlers", () => {
|
|
|
164
180
|
const parentErrorSnackbar = errorSnackbar.closest(".snackbar")!;
|
|
165
181
|
const parentSuccessSnackbar = successSnackbar.closest(".snackbar")!;
|
|
166
182
|
|
|
167
|
-
|
|
168
|
-
|
|
183
|
+
fireEvent.animationEnd(parentErrorSnackbar);
|
|
184
|
+
fireEvent.animationEnd(parentSuccessSnackbar);
|
|
169
185
|
|
|
170
186
|
await waitFor(() => expect(onCloseHandler).toHaveBeenCalledTimes(2));
|
|
171
187
|
});
|