forked from patternfly/patternfly-react
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathButtonCircle.tsx
More file actions
68 lines (64 loc) · 2.81 KB
/
ButtonCircle.tsx
File metadata and controls
68 lines (64 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import { Button, Flex } from '@patternfly/react-core';
import RhMicronsCloseIcon from '@patternfly/react-icons/dist/esm/icons/rh-microns-close-icon';
import PlusCircleIcon from '@patternfly/react-icons/dist/esm/icons/plus-circle-icon';
import CopyIcon from '@patternfly/react-icons/dist/esm/icons/copy-icon';
import RhUiNotificationFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-notification-fill-icon';
import UploadIcon from '@patternfly/react-icons/dist/esm/icons/upload-icon';
interface LoadingPropsType {
spinnerAriaValueText: string;
spinnerAriaLabelledBy?: string;
spinnerAriaLabel?: string;
isLoading: boolean;
}
export const ButtonCircle: React.FunctionComponent = () => {
const [isUploading, setIsUploading] = useState<boolean>(false);
const uploadingProps = {} as LoadingPropsType;
uploadingProps.spinnerAriaValueText = 'Loading circle variant example';
uploadingProps.spinnerAriaLabel = 'Uploading circle variant example data';
uploadingProps.isLoading = isUploading;
return (
<Flex columnGap={{ default: 'columnGapSm' }}>
<Button isCircle icon={<PlusCircleIcon />} aria-label="Add primary circle variant example" />
<Button
variant="secondary"
isCircle
icon={<PlusCircleIcon />}
aria-label="Add secondary circle variant example"
/>
<Button variant="tertiary" isCircle icon={<PlusCircleIcon />} aria-label="Add tertiary circle variant example" />
<Button variant="danger" isCircle icon={<PlusCircleIcon />} aria-label="Add danger circle variant example" />
<Button variant="warning" isCircle icon={<PlusCircleIcon />} aria-label="Add warning circle variant example" />
<Button variant="link" isCircle icon={<PlusCircleIcon />} aria-label="Add link circle variant example" />
<Button variant="control" isCircle icon={<CopyIcon />} aria-label="Copy control circle variant example" />
<Button variant="plain" isCircle icon={<RhMicronsCloseIcon />} aria-label="Remove plain circle variant example" />
<Button
variant="stateful"
isCircle
icon={<RhUiNotificationFillIcon />}
aria-label="Stateful unread circle variant example"
/>
<Button
variant="stateful"
state="read"
isCircle
icon={<RhUiNotificationFillIcon />}
aria-label="Stateful read circle variant example"
/>
<Button
variant="stateful"
state="attention"
isCircle
icon={<RhUiNotificationFillIcon />}
aria-label="Stateful attention circle variant example"
/>
<Button
variant="plain"
isCircle
{...(!isUploading && { 'aria-label': 'Upload circle variant example' })}
onClick={() => setIsUploading(!isUploading)}
icon={<UploadIcon />}
{...uploadingProps}
/>
</Flex>
);
};