Skip to content

Commit

Permalink
feat(react): remove large overlay (#1205)
Browse files Browse the repository at this point in the history
BREAKING CHANGE: Removed variant property from Loader/LoaderOverlay components.
  • Loading branch information
orest-s authored Dec 5, 2023
1 parent 301c546 commit e93ae35
Show file tree
Hide file tree
Showing 7 changed files with 4 additions and 86 deletions.
6 changes: 0 additions & 6 deletions docs/pages/components/Loader.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,6 @@ import { Loader } from '@deque/cauldron-react'
name: 'label',
type: 'string',
description: 'The desired label will be rendered offscreen. If not provided, aria-hidden="true" will be applied to the element.',
},
{
name: 'variant',
type: ['small', 'large'],
description: 'Loader variant, this property will be removed in a future version.',
deprecated: true
}
]}
/>
Expand Down
6 changes: 0 additions & 6 deletions docs/pages/components/LoaderOverlay.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,6 @@ function LoaderOverlayExample() {
type: 'string',
description: 'A primary label for the loader',
},
{
name: 'variant',
type: ['small', 'large'],
description: 'Loader variant, this property will be removed in a future version.',
deprecated: true
},
{
name: 'focusOnInitialRender',
type: 'boolean',
Expand Down
10 changes: 0 additions & 10 deletions packages/react/__tests__/src/components/Loader/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,6 @@ test('sets expected role attributes given an aria-label', () => {
expect(loaderNode.getAttribute('role')).toBe('alert');
});

test('sets loader variants', () => {
const small = mount(<Loader variant="small" />);
const large = mount(<Loader variant="large" />);
const smallNode = small.getDOMNode();
const largeNode = large.getDOMNode();

expect(smallNode.classList.contains('Loader--small')).toBe(true);
expect(largeNode.classList.contains('Loader--large')).toBe(true);
});

test('returns no axe violations', async () => {
const withLabel = shallow(<Loader label="hi" />);
const withoutLabel = shallow(<Loader />);
Expand Down
24 changes: 0 additions & 24 deletions packages/react/__tests__/src/components/LoaderOverlay/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,30 +13,6 @@ test('handles classNames/additional attributes properly', () => {
expect(node.getAttribute('role')).toBe('alert');
});

test('handles variants', () => {
const small = mount(
<LoaderOverlay
className="baz"
role="alert"
label="loading"
variant="small"
/>
);
const large = mount(
<LoaderOverlay
className="baz"
role="alert"
label="loading"
variant="large"
/>
);
const smallNode = small.getDOMNode();
const largeNode = large.getDOMNode();

expect(smallNode.classList.contains('Loader__overlay--small')).toBe(true);
expect(largeNode.classList.contains('Loader__overlay--large')).toBe(true);
});

test('handles focus', () => {
const loaderOverlay = mount(
<LoaderOverlay
Expand Down
14 changes: 2 additions & 12 deletions packages/react/src/components/Loader/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ import classNames from 'classnames';

export interface LoaderProps extends React.HTMLAttributes<HTMLDivElement> {
label?: string;
variant?: 'large' | 'small';
}

const Loader = React.forwardRef<HTMLDivElement, LoaderProps>(
({ className, variant = 'small', label, ...props }: LoaderProps, ref) => {
({ className, label, ...props }: LoaderProps, ref) => {
if (label?.length) {
props['role'] = 'alert';
props.children = <Offscreen>{label}</Offscreen>;
Expand All @@ -17,16 +16,7 @@ const Loader = React.forwardRef<HTMLDivElement, LoaderProps>(
}

return (
<div
ref={ref}
className={classNames(
'Loader',
className,
variant === 'large' && 'Loader--large',
variant === 'small' && 'Loader--small'
)}
{...props}
/>
<div ref={ref} className={classNames('Loader', className)} {...props} />
);
}
);
Expand Down
14 changes: 2 additions & 12 deletions packages/react/src/components/LoaderOverlay/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import useSharedRef from '../../utils/useSharedRef';

export interface LoaderOverlayProps
extends React.HTMLAttributes<HTMLDivElement> {
variant?: 'large' | 'small';
label?: string;
focusOnInitialRender?: boolean;
children?: React.ReactNode;
Expand All @@ -19,7 +18,6 @@ const LoaderOverlay = forwardRef<HTMLDivElement, LoaderOverlayProps>(
(
{
className,
variant,
label,
children,
focusOnInitialRender,
Expand Down Expand Up @@ -65,21 +63,13 @@ const LoaderOverlay = forwardRef<HTMLDivElement, LoaderOverlayProps>(
return (
<Wrapper {...wrapperProps}>
<div
className={classNames(
'Loader__overlay',
className,
variant === 'large'
? 'Loader__overlay--large'
: variant === 'small'
? 'Loader__overlay--small'
: ''
)}
className={classNames('Loader__overlay', className)}
ref={overlayRef}
tabIndex={-1}
{...other}
>
<div className="Loader__overlay__loader">
<Loader variant={variant} />
<Loader />
<AxeLoader />
</div>
{label ? (
Expand Down
16 changes: 0 additions & 16 deletions packages/styles/loader.css
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,6 @@
--loader-overlay-background-color: var(--accent-medium);
}

.Loader--large {
--loader-ring-size: 192px;
--loader-ring-thickness: 16px;
--loader-inner-ring-size: calc(var(--loader-ring-thickness) * 0.5);
}

.Loader {
margin: 50px auto;
position: relative;
Expand Down Expand Up @@ -95,11 +89,6 @@
margin-bottom: var(--space-small);
}

.Loader__overlay--large .Loader__overlay__loader {
min-height: 192px;
min-width: 192px;
}

.Loader__overlay__label {
color: var(--loader-text-color);
font-size: var(--text-size-normal);
Expand All @@ -121,11 +110,6 @@
width: calc(var(--loader-ring-size) * 0.7);
}

.Loader__overlay--large svg {
height: 120px;
width: 120px;
}

@keyframes spin {
0% {
transform: rotate(0deg);
Expand Down

0 comments on commit e93ae35

Please sign in to comment.