@patternfly/react-core 4.224.7 → 4.224.10
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/CHANGELOG.md +24 -0
- package/dist/esm/components/ContextSelector/ContextSelector.d.ts +2 -0
- package/dist/esm/components/ContextSelector/ContextSelector.d.ts.map +1 -1
- package/dist/esm/components/ContextSelector/ContextSelector.js +8 -11
- package/dist/esm/components/ContextSelector/ContextSelector.js.map +1 -1
- package/dist/esm/components/ContextSelector/ContextSelectorMenuList.d.ts.map +1 -1
- package/dist/esm/components/ContextSelector/ContextSelectorMenuList.js +2 -1
- package/dist/esm/components/ContextSelector/ContextSelectorMenuList.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelector.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelector.js +6 -6
- package/dist/esm/components/DualListSelector/DualListSelector.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControlsWrapper.js +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControlsWrapper.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorList.d.ts +1 -0
- package/dist/esm/components/DualListSelector/DualListSelectorList.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorList.js +7 -1
- package/dist/esm/components/DualListSelector/DualListSelectorList.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorTree.d.ts +3 -2
- package/dist/esm/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorTree.js.map +1 -1
- package/dist/js/components/ContextSelector/ContextSelector.d.ts +2 -0
- package/dist/js/components/ContextSelector/ContextSelector.d.ts.map +1 -1
- package/dist/js/components/ContextSelector/ContextSelector.js +7 -10
- package/dist/js/components/ContextSelector/ContextSelector.js.map +1 -1
- package/dist/js/components/ContextSelector/ContextSelectorMenuList.d.ts.map +1 -1
- package/dist/js/components/ContextSelector/ContextSelectorMenuList.js +2 -1
- package/dist/js/components/ContextSelector/ContextSelectorMenuList.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelector.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelector.js +5 -5
- package/dist/js/components/DualListSelector/DualListSelector.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControlsWrapper.js +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControlsWrapper.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorList.d.ts +1 -0
- package/dist/js/components/DualListSelector/DualListSelectorList.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorList.js +7 -1
- package/dist/js/components/DualListSelector/DualListSelectorList.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorTree.d.ts +3 -2
- package/dist/js/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorTree.js.map +1 -1
- package/dist/styles/base-no-reset.css +10 -10
- package/dist/styles/base.css +10 -10
- package/dist/umd/react-core.css +424 -392
- package/dist/umd/react-core.js +29 -24
- package/dist/umd/react-core.min.css +142 -110
- package/dist/umd/react-core.min.js +4 -4
- package/package.json +7 -7
- package/src/components/Accordion/examples/AccordionBordered.tsx +21 -21
- package/src/components/Accordion/examples/AccordionDefinitionList.tsx +21 -21
- package/src/components/ActionList/examples/ActionListMultipleGroups.tsx +4 -4
- package/src/components/ActionList/examples/ActionListSingleGroup.tsx +4 -4
- package/src/components/ActionList/examples/ActionListWithCancelButton.tsx +5 -5
- package/src/components/ActionList/examples/ActionListWithIcons.tsx +2 -2
- package/src/components/Card/examples/CardSelectableA11yHighlight.tsx +4 -4
- package/src/components/CodeBlock/examples/CodeBlockBasic.tsx +1 -1
- package/src/components/CodeBlock/examples/CodeBlockExpandable.tsx +1 -1
- package/src/components/ContextSelector/ContextSelector.tsx +11 -10
- package/src/components/ContextSelector/ContextSelectorMenuList.tsx +2 -1
- package/src/components/ContextSelector/__tests__/ContextSelector.test.tsx +2 -2
- package/src/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap +11 -7
- package/src/components/ContextSelector/__tests__/__snapshots__/ContextSelectorMenuList.test.tsx.snap +10 -0
- package/src/components/DataList/examples/DataListCompact.tsx +4 -4
- package/src/components/DataList/examples/DataListControllingText.tsx +3 -3
- package/src/components/DataList/examples/DataListDraggable.tsx +14 -7
- package/src/components/DataList/examples/DataListExpandable.tsx +3 -3
- package/src/components/DataList/examples/DataListSmGridBreakpoint.tsx +3 -3
- package/src/components/DualListSelector/DualListSelector.tsx +93 -89
- package/src/components/DualListSelector/DualListSelectorControlsWrapper.tsx +1 -1
- package/src/components/DualListSelector/DualListSelectorList.tsx +10 -4
- package/src/components/DualListSelector/DualListSelectorTree.tsx +3 -2
- package/src/components/DualListSelector/__tests__/__snapshots__/DualListSelector.test.tsx.snap +6 -20
- package/src/components/DualListSelector/examples/DualListSelector.md +3 -1
- package/src/components/DualListSelector/examples/DualListSelectorComposable.tsx +1 -1
- package/src/components/DualListSelector/examples/DualListSelectorComposableDragDrop.tsx +1 -1
- package/src/components/DualListSelector/examples/DualListSelectorComposableTree.tsx +1 -1
- package/src/components/DualListSelector/examples/{DualListSelectorTree.tsx → DualListSelectorTreeExample.tsx} +1 -1
- package/src/components/FileUpload/examples/FileUploadCustomUpload.tsx +1 -1
- package/src/components/FileUpload/examples/FileUploadSimpleText.tsx +1 -1
- package/src/components/FileUpload/examples/FileUploadTextWithEdits.tsx +1 -1
- package/src/components/FileUpload/examples/FileUploadTextWithRestrictions.tsx +2 -2
- package/src/components/InputGroup/examples/InputGroupBasic.tsx +3 -3
- package/src/components/InputGroup/examples/InputGroupWithDropdown.tsx +1 -1
- package/src/components/InputGroup/examples/InputGroupWithPopover.tsx +12 -2
- package/src/components/InputGroup/examples/InputGroupWithSiblings.tsx +7 -2
- package/src/components/InputGroup/examples/InputGroupWithTextarea.tsx +1 -1
- package/src/components/LoginPage/examples/LoginPage.md +2 -325
- package/src/components/LoginPage/examples/LoginPageBasic.tsx +144 -0
- package/src/components/LoginPage/examples/LoginPageShowHidePassword.tsx +145 -0
- package/src/components/NotificationDrawer/examples/NotificationDrawer.md +69 -68
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import brandImg2 from './brandImgColor2.svg';
|
|
3
|
+
import {
|
|
4
|
+
LoginFooterItem,
|
|
5
|
+
LoginForm,
|
|
6
|
+
LoginMainFooterBandItem,
|
|
7
|
+
LoginMainFooterLinksItem,
|
|
8
|
+
LoginPage,
|
|
9
|
+
ListItem,
|
|
10
|
+
ListVariant
|
|
11
|
+
} from '@patternfly/react-core';
|
|
12
|
+
import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
|
|
13
|
+
|
|
14
|
+
export const LoginPageHideShowPassword: React.FunctionComponent = () => {
|
|
15
|
+
const [showHelperText, setShowHelperText] = React.useState(false);
|
|
16
|
+
const [username, setUsername] = React.useState('');
|
|
17
|
+
const [isValidUsername, setIsValidUsername] = React.useState(true);
|
|
18
|
+
const [password, setPassword] = React.useState('');
|
|
19
|
+
const [isValidPassword, setIsValidPassword] = React.useState(true);
|
|
20
|
+
const [isRememberMeChecked, setIsRememberMeChecked] = React.useState(false);
|
|
21
|
+
|
|
22
|
+
const handleUsernameChange = (value: string) => {
|
|
23
|
+
setUsername(value);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const handlePasswordChange = (value: string) => {
|
|
27
|
+
setPassword(value);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const onRememberMeClick = () => {
|
|
31
|
+
setIsRememberMeChecked(!isRememberMeChecked);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const onLoginButtonClick = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
|
|
35
|
+
event.preventDefault();
|
|
36
|
+
setIsValidUsername(!!username);
|
|
37
|
+
setIsValidPassword(!!password);
|
|
38
|
+
setShowHelperText(!username || !password);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const socialMediaLoginContent = (
|
|
42
|
+
<React.Fragment>
|
|
43
|
+
<LoginMainFooterLinksItem href="#" linkComponentProps={{ 'aria-label': 'Login with Google' }}>
|
|
44
|
+
<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 488 512">
|
|
45
|
+
<path d="M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z" />
|
|
46
|
+
</svg>
|
|
47
|
+
</LoginMainFooterLinksItem>
|
|
48
|
+
<LoginMainFooterLinksItem href="#" linkComponentProps={{ 'aria-label': 'Login with Github' }}>
|
|
49
|
+
<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512">
|
|
50
|
+
<path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z" />
|
|
51
|
+
</svg>
|
|
52
|
+
</LoginMainFooterLinksItem>
|
|
53
|
+
<LoginMainFooterLinksItem href="#" linkComponentProps={{ 'aria-label': 'Login with Dropbox' }}>
|
|
54
|
+
<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 528 512">
|
|
55
|
+
<path d="M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z" />
|
|
56
|
+
</svg>
|
|
57
|
+
</LoginMainFooterLinksItem>
|
|
58
|
+
<LoginMainFooterLinksItem href="#" linkComponentProps={{ 'aria-label': 'Login with Facebook' }}>
|
|
59
|
+
<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
|
|
60
|
+
<path d="M448 56.7v398.5c0 13.7-11.1 24.7-24.7 24.7H309.1V306.5h58.2l8.7-67.6h-67v-43.2c0-19.6 5.4-32.9 33.5-32.9h35.8v-60.5c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9h-58.4v67.6h58.4V480H24.7C11.1 480 0 468.9 0 455.3V56.7C0 43.1 11.1 32 24.7 32h398.5c13.7 0 24.8 11.1 24.8 24.7z" />
|
|
61
|
+
</svg>
|
|
62
|
+
</LoginMainFooterLinksItem>
|
|
63
|
+
<LoginMainFooterLinksItem href="#" linkComponentProps={{ 'aria-label': 'Login with Gitlab' }}>
|
|
64
|
+
<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
|
65
|
+
<path d="M29.782 199.732L256 493.714 8.074 309.699c-6.856-5.142-9.712-13.996-7.141-21.993l28.849-87.974zm75.405-174.806c-3.142-8.854-15.709-8.854-18.851 0L29.782 199.732h131.961L105.187 24.926zm56.556 174.806L256 493.714l94.257-293.982H161.743zm349.324 87.974l-28.849-87.974L256 493.714l247.926-184.015c6.855-5.142 9.711-13.996 7.141-21.993zm-85.404-262.78c-3.142-8.854-15.709-8.854-18.851 0l-56.555 174.806h131.961L425.663 24.926z" />
|
|
66
|
+
</svg>
|
|
67
|
+
</LoginMainFooterLinksItem>
|
|
68
|
+
</React.Fragment>
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
const signUpForAccountMessage = (
|
|
72
|
+
<LoginMainFooterBandItem>
|
|
73
|
+
Need an account? <a href="#">Sign up.</a>
|
|
74
|
+
</LoginMainFooterBandItem>
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
const forgotCredentials = (
|
|
78
|
+
<LoginMainFooterBandItem>
|
|
79
|
+
<a href="#">Forgot username or password?</a>
|
|
80
|
+
</LoginMainFooterBandItem>
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
const listItem = (
|
|
84
|
+
<React.Fragment>
|
|
85
|
+
<ListItem>
|
|
86
|
+
<LoginFooterItem href="#">Terms of Use </LoginFooterItem>
|
|
87
|
+
</ListItem>
|
|
88
|
+
<ListItem>
|
|
89
|
+
<LoginFooterItem href="#">Help</LoginFooterItem>
|
|
90
|
+
</ListItem>
|
|
91
|
+
<ListItem>
|
|
92
|
+
<LoginFooterItem href="#">Privacy Policy</LoginFooterItem>
|
|
93
|
+
</ListItem>
|
|
94
|
+
</React.Fragment>
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
const loginForm = (
|
|
98
|
+
<LoginForm
|
|
99
|
+
showHelperText={showHelperText}
|
|
100
|
+
helperText="Invalid login credentials."
|
|
101
|
+
helperTextIcon={<ExclamationCircleIcon />}
|
|
102
|
+
usernameLabel="Username"
|
|
103
|
+
usernameValue={username}
|
|
104
|
+
onChangeUsername={handleUsernameChange}
|
|
105
|
+
isValidUsername={isValidUsername}
|
|
106
|
+
passwordLabel="Password"
|
|
107
|
+
passwordValue={password}
|
|
108
|
+
isShowPasswordEnabled
|
|
109
|
+
onChangePassword={handlePasswordChange}
|
|
110
|
+
isValidPassword={isValidPassword}
|
|
111
|
+
rememberMeLabel="Keep me logged in for 30 days."
|
|
112
|
+
isRememberMeChecked={isRememberMeChecked}
|
|
113
|
+
onChangeRememberMe={onRememberMeClick}
|
|
114
|
+
onLoginButtonClick={onLoginButtonClick}
|
|
115
|
+
loginButtonLabel="Log in"
|
|
116
|
+
/>
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
const images = {
|
|
120
|
+
lg: '/assets/images/pfbg_1200.jpg',
|
|
121
|
+
sm: '/assets/images/pfbg_768.jpg',
|
|
122
|
+
sm2x: '/assets/images/pfbg_768@2x.jpg',
|
|
123
|
+
xs: '/assets/images/pfbg_576.jpg',
|
|
124
|
+
xs2x: '/assets/images/pfbg_576@2x.jpg'
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
return (
|
|
128
|
+
<LoginPage
|
|
129
|
+
footerListVariants={ListVariant.inline}
|
|
130
|
+
brandImgSrc={brandImg2}
|
|
131
|
+
brandImgAlt="PatternFly logo"
|
|
132
|
+
backgroundImgSrc={images}
|
|
133
|
+
backgroundImgAlt="Images"
|
|
134
|
+
footerListItems={listItem}
|
|
135
|
+
textContent="This is placeholder text only. Use this area to place any information or introductory message about your application that may be relevant to users."
|
|
136
|
+
loginTitle="Log in to your account"
|
|
137
|
+
loginSubtitle="Enter your single sign-on LDAP credentials."
|
|
138
|
+
socialMediaLoginContent={socialMediaLoginContent}
|
|
139
|
+
signUpForAccountMessage={signUpForAccountMessage}
|
|
140
|
+
forgotCredentials={forgotCredentials}
|
|
141
|
+
>
|
|
142
|
+
{loginForm}
|
|
143
|
+
</LoginPage>
|
|
144
|
+
);
|
|
145
|
+
};
|
|
@@ -80,11 +80,11 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
80
80
|
<NotificationDrawerHeader count={3} onClose={this.onDrawerClose}>
|
|
81
81
|
<Dropdown
|
|
82
82
|
onSelect={this.onSelect}
|
|
83
|
-
toggle={<KebabToggle onToggle={this.onToggle(0)} id="
|
|
83
|
+
toggle={<KebabToggle onToggle={this.onToggle(0)} id="basic-kebab-toggle" />}
|
|
84
84
|
isOpen={isOpen0}
|
|
85
85
|
isPlain
|
|
86
86
|
dropdownItems={dropdownItems}
|
|
87
|
-
id="notification-0"
|
|
87
|
+
id="basic-notification-0"
|
|
88
88
|
position={DropdownPosition.right}
|
|
89
89
|
/>
|
|
90
90
|
</NotificationDrawerHeader>
|
|
@@ -99,11 +99,11 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
99
99
|
<Dropdown
|
|
100
100
|
position={DropdownPosition.right}
|
|
101
101
|
onSelect={this.onSelect}
|
|
102
|
-
toggle={<KebabToggle onToggle={this.onToggle(1)} id="toggle-id-1" />}
|
|
102
|
+
toggle={<KebabToggle onToggle={this.onToggle(1)} id="basic-toggle-id-1" />}
|
|
103
103
|
isOpen={isOpen1}
|
|
104
104
|
isPlain
|
|
105
105
|
dropdownItems={dropdownItems}
|
|
106
|
-
id="notification-1"
|
|
106
|
+
id="basic-notification-1"
|
|
107
107
|
/>
|
|
108
108
|
</NotificationDrawerListItemHeader>
|
|
109
109
|
<NotificationDrawerListItemBody timestamp="5 minutes ago">
|
|
@@ -119,11 +119,11 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
119
119
|
<Dropdown
|
|
120
120
|
position={DropdownPosition.right}
|
|
121
121
|
onSelect={this.onSelect}
|
|
122
|
-
toggle={<KebabToggle onToggle={this.onToggle(2)} id="toggle-id-2" />}
|
|
122
|
+
toggle={<KebabToggle onToggle={this.onToggle(2)} id="basic-toggle-id-2" />}
|
|
123
123
|
isOpen={isOpen2}
|
|
124
124
|
isPlain
|
|
125
125
|
dropdownItems={dropdownItems}
|
|
126
|
-
id="notification-2"
|
|
126
|
+
id="basic-notification-2"
|
|
127
127
|
/>
|
|
128
128
|
</NotificationDrawerListItemHeader>
|
|
129
129
|
<NotificationDrawerListItemBody timestamp="10 minutes ago">
|
|
@@ -141,11 +141,11 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
141
141
|
<Dropdown
|
|
142
142
|
position={DropdownPosition.right}
|
|
143
143
|
onSelect={this.onSelect}
|
|
144
|
-
toggle={<KebabToggle onToggle={this.onToggle(3)} id="toggle-id-3" />}
|
|
144
|
+
toggle={<KebabToggle onToggle={this.onToggle(3)} id="basic-toggle-id-3" />}
|
|
145
145
|
isOpen={isOpen3}
|
|
146
146
|
isPlain
|
|
147
147
|
dropdownItems={dropdownItems}
|
|
148
|
-
id="notification-3"
|
|
148
|
+
id="basic-notification-3"
|
|
149
149
|
/>
|
|
150
150
|
</NotificationDrawerListItemHeader>
|
|
151
151
|
<NotificationDrawerListItemBody timestamp="10 minutes ago">
|
|
@@ -162,11 +162,11 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
162
162
|
<Dropdown
|
|
163
163
|
position={DropdownPosition.right}
|
|
164
164
|
onSelect={this.onSelect}
|
|
165
|
-
toggle={<KebabToggle onToggle={this.onToggle(4)} id="toggle-id-4" />}
|
|
165
|
+
toggle={<KebabToggle onToggle={this.onToggle(4)} id="basic-toggle-id-4" />}
|
|
166
166
|
isOpen={isOpen4}
|
|
167
167
|
isPlain
|
|
168
168
|
dropdownItems={dropdownItems}
|
|
169
|
-
id="notification-4"
|
|
169
|
+
id="basic-notification-4"
|
|
170
170
|
/>
|
|
171
171
|
</NotificationDrawerListItemHeader>
|
|
172
172
|
<NotificationDrawerListItemBody timestamp="20 minutes ago">
|
|
@@ -183,11 +183,11 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
183
183
|
position={DropdownPosition.right}
|
|
184
184
|
direction={DropdownDirection.up}
|
|
185
185
|
onSelect={this.onSelect}
|
|
186
|
-
toggle={<KebabToggle onToggle={this.onToggle(5)} id="toggle-id-5" />}
|
|
186
|
+
toggle={<KebabToggle onToggle={this.onToggle(5)} id="basic-toggle-id-5" />}
|
|
187
187
|
isOpen={isOpen5}
|
|
188
188
|
isPlain
|
|
189
189
|
dropdownItems={dropdownItems}
|
|
190
|
-
id="notification-5"
|
|
190
|
+
id="basic-notification-5"
|
|
191
191
|
/>
|
|
192
192
|
</NotificationDrawerListItemHeader>
|
|
193
193
|
<NotificationDrawerListItemBody timestamp="30 minutes ago">
|
|
@@ -199,11 +199,11 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
199
199
|
<Dropdown
|
|
200
200
|
position={DropdownPosition.right}
|
|
201
201
|
onSelect={this.onSelect}
|
|
202
|
-
toggle={<KebabToggle onToggle={this.onToggle(6)} id="toggle-id-6" />}
|
|
202
|
+
toggle={<KebabToggle onToggle={this.onToggle(6)} id="basic-toggle-id-6" />}
|
|
203
203
|
isOpen={isOpen6}
|
|
204
204
|
isPlain
|
|
205
205
|
dropdownItems={dropdownItems}
|
|
206
|
-
id="notification-6"
|
|
206
|
+
id="basic-notification-6"
|
|
207
207
|
/>
|
|
208
208
|
</NotificationDrawerListItemHeader>
|
|
209
209
|
<NotificationDrawerListItemBody timestamp="35 minutes ago">
|
|
@@ -253,8 +253,8 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
253
253
|
this.state = {
|
|
254
254
|
isOpenMap: null,
|
|
255
255
|
firstGroupExpanded: false,
|
|
256
|
-
secondGroupExpanded:
|
|
257
|
-
thirdGroupExpanded:
|
|
256
|
+
secondGroupExpanded: false,
|
|
257
|
+
thirdGroupExpanded: true
|
|
258
258
|
};
|
|
259
259
|
this.onToggle = (id, isOpen) => {
|
|
260
260
|
this.setState({
|
|
@@ -299,11 +299,11 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
299
299
|
<NotificationDrawerHeader count={4}>
|
|
300
300
|
<Dropdown
|
|
301
301
|
onSelect={this.onSelect}
|
|
302
|
-
toggle={<KebabToggle onToggle={isOpen => this.onToggle('toggle-
|
|
303
|
-
isOpen={isOpenMap && isOpenMap['toggle-
|
|
302
|
+
toggle={<KebabToggle onToggle={isOpen => this.onToggle('groups-kebab-toggle-1', isOpen)} id="groups-kebab-toggle-1" />}
|
|
303
|
+
isOpen={isOpenMap && isOpenMap['groups-kebab-toggle-1']}
|
|
304
304
|
isPlain
|
|
305
305
|
dropdownItems={dropdownItems}
|
|
306
|
-
id="notification-
|
|
306
|
+
id="grouped-notification-1"
|
|
307
307
|
position={DropdownPosition.right}
|
|
308
308
|
/>
|
|
309
309
|
</NotificationDrawerHeader>
|
|
@@ -326,12 +326,12 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
326
326
|
position={DropdownPosition.right}
|
|
327
327
|
onSelect={this.onSelect}
|
|
328
328
|
toggle={
|
|
329
|
-
<KebabToggle onToggle={isOpen => this.onToggle('toggle-
|
|
329
|
+
<KebabToggle onToggle={isOpen => this.onToggle('groups-notification-kebab-toggle-2', isOpen)} id="groups-kebab-toggle-2" />
|
|
330
330
|
}
|
|
331
|
-
isOpen={isOpenMap && isOpenMap['toggle-
|
|
331
|
+
isOpen={isOpenMap && isOpenMap['groups-notification-kebab-toggle-2']}
|
|
332
332
|
isPlain
|
|
333
333
|
dropdownItems={dropdownItems}
|
|
334
|
-
id="notification-
|
|
334
|
+
id="grouped-notification-2"
|
|
335
335
|
/>
|
|
336
336
|
</NotificationDrawerListItemHeader>
|
|
337
337
|
<NotificationDrawerListItemBody timestamp="5 minutes ago">
|
|
@@ -348,12 +348,12 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
348
348
|
position={DropdownPosition.right}
|
|
349
349
|
onSelect={this.onSelect}
|
|
350
350
|
toggle={
|
|
351
|
-
<KebabToggle onToggle={isOpen => this.onToggle('toggle-
|
|
351
|
+
<KebabToggle onToggle={isOpen => this.onToggle('groups-kebab-toggle-3', isOpen)} id="groups-kebab-toggle-3" />
|
|
352
352
|
}
|
|
353
|
-
isOpen={isOpenMap && isOpenMap['toggle-
|
|
353
|
+
isOpen={isOpenMap && isOpenMap['groups-kebab-toggle-3']}
|
|
354
354
|
isPlain
|
|
355
355
|
dropdownItems={dropdownItems}
|
|
356
|
-
id="notification-
|
|
356
|
+
id="grouped-notification-3"
|
|
357
357
|
/>
|
|
358
358
|
</NotificationDrawerListItemHeader>
|
|
359
359
|
<NotificationDrawerListItemBody timestamp="10 minutes ago">
|
|
@@ -371,12 +371,12 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
371
371
|
position={DropdownPosition.right}
|
|
372
372
|
onSelect={this.onSelect}
|
|
373
373
|
toggle={
|
|
374
|
-
<KebabToggle onToggle={isOpen => this.onToggle('toggle-
|
|
374
|
+
<KebabToggle onToggle={isOpen => this.onToggle('groups-kebab-toggle-4', isOpen)} id="groups-kebab-toggle-4" />
|
|
375
375
|
}
|
|
376
|
-
isOpen={isOpenMap && isOpenMap['toggle-
|
|
376
|
+
isOpen={isOpenMap && isOpenMap['groups-kebab-toggle-4']}
|
|
377
377
|
isPlain
|
|
378
378
|
dropdownItems={dropdownItems}
|
|
379
|
-
id="notification-
|
|
379
|
+
id="grouped-notification-4"
|
|
380
380
|
/>
|
|
381
381
|
</NotificationDrawerListItemHeader>
|
|
382
382
|
<NotificationDrawerListItemBody timestamp="20 minutes ago">
|
|
@@ -394,12 +394,12 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
394
394
|
direction={DropdownDirection.up}
|
|
395
395
|
onSelect={this.onSelect}
|
|
396
396
|
toggle={
|
|
397
|
-
<KebabToggle onToggle={isOpen => this.onToggle('toggle-
|
|
397
|
+
<KebabToggle onToggle={isOpen => this.onToggle('groups-kebab-toggle-5', isOpen)} id="groups-kebab-toggle-5" />
|
|
398
398
|
}
|
|
399
|
-
isOpen={isOpenMap && isOpenMap['toggle-
|
|
399
|
+
isOpen={isOpenMap && isOpenMap['groups-kebab-toggle-5']}
|
|
400
400
|
isPlain
|
|
401
401
|
dropdownItems={dropdownItems}
|
|
402
|
-
id="notification-
|
|
402
|
+
id="grouped-notification-5"
|
|
403
403
|
/>
|
|
404
404
|
</NotificationDrawerListItemHeader>
|
|
405
405
|
<NotificationDrawerListItemBody timestamp="30 minutes ago">
|
|
@@ -408,13 +408,37 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
408
408
|
</NotificationDrawerListItem>
|
|
409
409
|
</NotificationDrawerList>
|
|
410
410
|
</NotificationDrawerGroup>
|
|
411
|
+
|
|
411
412
|
<NotificationDrawerGroup
|
|
412
|
-
title="Second notification group"
|
|
413
|
+
title="Second notification group. This is a long title to show how the title will be truncated if it is long and will be shown in a single line."
|
|
413
414
|
isExpanded={secondGroupExpanded}
|
|
414
|
-
count={
|
|
415
|
+
count={0}
|
|
415
416
|
onExpand={this.toggleSecondDrawer}
|
|
417
|
+
truncateTitle={1}
|
|
416
418
|
>
|
|
417
419
|
<NotificationDrawerList isHidden={!secondGroupExpanded}>
|
|
420
|
+
<EmptyState variant={EmptyStateVariant.full}>
|
|
421
|
+
<EmptyStateIcon icon={SearchIcon} />
|
|
422
|
+
<Title headingLevel="h2" size="lg">
|
|
423
|
+
No alerts found
|
|
424
|
+
</Title>
|
|
425
|
+
<EmptyStateBody>
|
|
426
|
+
There are currently no critical alerts firing. There may be firing alerts of other severities or
|
|
427
|
+
silenced critical alerts however.
|
|
428
|
+
</EmptyStateBody>
|
|
429
|
+
<EmptyStatePrimary>
|
|
430
|
+
<Button variant="link">Action</Button>
|
|
431
|
+
</EmptyStatePrimary>
|
|
432
|
+
</EmptyState>
|
|
433
|
+
</NotificationDrawerList>
|
|
434
|
+
</NotificationDrawerGroup>
|
|
435
|
+
<NotificationDrawerGroup
|
|
436
|
+
title="Third notification group"
|
|
437
|
+
isExpanded={thirdGroupExpanded}
|
|
438
|
+
count={2}
|
|
439
|
+
onExpand={this.toggleThirdDrawer}
|
|
440
|
+
>
|
|
441
|
+
<NotificationDrawerList isHidden={!thirdGroupExpanded}>
|
|
418
442
|
<NotificationDrawerListItem variant="info">
|
|
419
443
|
<NotificationDrawerListItemHeader
|
|
420
444
|
variant="info"
|
|
@@ -425,12 +449,12 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
425
449
|
position={DropdownPosition.right}
|
|
426
450
|
onSelect={this.onSelect}
|
|
427
451
|
toggle={
|
|
428
|
-
<KebabToggle onToggle={isOpen => this.onToggle('toggle-
|
|
452
|
+
<KebabToggle onToggle={isOpen => this.onToggle('groups-kebab-toggle-6', isOpen)} id="groups-kebab-toggle-6" />
|
|
429
453
|
}
|
|
430
|
-
isOpen={isOpenMap && isOpenMap['toggle-
|
|
454
|
+
isOpen={isOpenMap && isOpenMap['groups-kebab-toggle-6']}
|
|
431
455
|
isPlain
|
|
432
456
|
dropdownItems={dropdownItems}
|
|
433
|
-
id="notification-
|
|
457
|
+
id="grouped-notification-6"
|
|
434
458
|
/>
|
|
435
459
|
</NotificationDrawerListItemHeader>
|
|
436
460
|
<NotificationDrawerListItemBody timestamp="5 minutes ago">
|
|
@@ -447,12 +471,12 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
447
471
|
position={DropdownPosition.right}
|
|
448
472
|
onSelect={this.onSelect}
|
|
449
473
|
toggle={
|
|
450
|
-
<KebabToggle onToggle={isOpen => this.onToggle('toggle-
|
|
474
|
+
<KebabToggle onToggle={isOpen => this.onToggle('groups-kebab-toggle-7', isOpen)} id="groups-kebab-toggle-7" />
|
|
451
475
|
}
|
|
452
|
-
isOpen={isOpenMap && isOpenMap['toggle-
|
|
476
|
+
isOpen={isOpenMap && isOpenMap['groups-kebab-toggle-7']}
|
|
453
477
|
isPlain
|
|
454
478
|
dropdownItems={dropdownItems}
|
|
455
|
-
id="notification-
|
|
479
|
+
id="grouped-notification-7"
|
|
456
480
|
/>
|
|
457
481
|
</NotificationDrawerListItemHeader>
|
|
458
482
|
<NotificationDrawerListItemBody timestamp="10 minutes ago">
|
|
@@ -470,12 +494,12 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
470
494
|
position={DropdownPosition.right}
|
|
471
495
|
onSelect={this.onSelect}
|
|
472
496
|
toggle={
|
|
473
|
-
<KebabToggle onToggle={isOpen => this.onToggle('toggle-
|
|
497
|
+
<KebabToggle onToggle={isOpen => this.onToggle('groups-kebab-toggle-8', isOpen)} id="groups-kebab-toggle-8" />
|
|
474
498
|
}
|
|
475
|
-
isOpen={isOpenMap && isOpenMap['toggle-
|
|
499
|
+
isOpen={isOpenMap && isOpenMap['groups-kebab-toggle-8']}
|
|
476
500
|
isPlain
|
|
477
501
|
dropdownItems={dropdownItems}
|
|
478
|
-
id="notification-
|
|
502
|
+
id="grouped-notification-8"
|
|
479
503
|
/>
|
|
480
504
|
</NotificationDrawerListItemHeader>
|
|
481
505
|
<NotificationDrawerListItemBody timestamp="20 minutes ago">
|
|
@@ -493,12 +517,12 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
493
517
|
direction={DropdownDirection.up}
|
|
494
518
|
onSelect={this.onSelect}
|
|
495
519
|
toggle={
|
|
496
|
-
<KebabToggle onToggle={isOpen => this.onToggle('toggle-
|
|
520
|
+
<KebabToggle onToggle={isOpen => this.onToggle('groups-kebab-toggle-9', isOpen)} id="groups-kebab-toggle-9" />
|
|
497
521
|
}
|
|
498
|
-
isOpen={isOpenMap && isOpenMap['toggle-
|
|
522
|
+
isOpen={isOpenMap && isOpenMap['groups-kebab-toggle-9']}
|
|
499
523
|
isPlain
|
|
500
524
|
dropdownItems={dropdownItems}
|
|
501
|
-
id="notification-
|
|
525
|
+
id="grouped-notification-9"
|
|
502
526
|
/>
|
|
503
527
|
</NotificationDrawerListItemHeader>
|
|
504
528
|
<NotificationDrawerListItemBody timestamp="30 minutes ago">
|
|
@@ -507,29 +531,6 @@ class GroupNotificationDrawer extends React.Component {
|
|
|
507
531
|
</NotificationDrawerListItem>
|
|
508
532
|
</NotificationDrawerList>
|
|
509
533
|
</NotificationDrawerGroup>
|
|
510
|
-
<NotificationDrawerGroup
|
|
511
|
-
title="Third notification group. This is a long title to show how the title will be truncated if it is long and will be shown in a single line."
|
|
512
|
-
isExpanded={thirdGroupExpanded}
|
|
513
|
-
count={0}
|
|
514
|
-
onExpand={this.toggleThirdDrawer}
|
|
515
|
-
truncateTitle={1}
|
|
516
|
-
>
|
|
517
|
-
<NotificationDrawerList isHidden={!thirdGroupExpanded}>
|
|
518
|
-
<EmptyState variant={EmptyStateVariant.full}>
|
|
519
|
-
<EmptyStateIcon icon={SearchIcon} />
|
|
520
|
-
<Title headingLevel="h2" size="lg">
|
|
521
|
-
No alerts found
|
|
522
|
-
</Title>
|
|
523
|
-
<EmptyStateBody>
|
|
524
|
-
There are currently no critical alerts firing. There may be firing alerts of other severities or
|
|
525
|
-
silenced critical alerts however.
|
|
526
|
-
</EmptyStateBody>
|
|
527
|
-
<EmptyStatePrimary>
|
|
528
|
-
<Button variant="link">Action</Button>
|
|
529
|
-
</EmptyStatePrimary>
|
|
530
|
-
</EmptyState>
|
|
531
|
-
</NotificationDrawerList>
|
|
532
|
-
</NotificationDrawerGroup>
|
|
533
534
|
</NotificationDrawerGroupList>
|
|
534
535
|
</NotificationDrawerBody>
|
|
535
536
|
</NotificationDrawer>
|