| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| --- | ||
| title: 'Spinner' | ||
| cssPrefix: 'pf-c-spinner' | ||
| typescript: true | ||
| propComponents: ['Spinner'] | ||
| section: 'experimental' | ||
| --- | ||
|
|
||
| import { Spinner } from '@patternfly/react-core/dist/esm/experimental'; | ||
| import { Alert } from '@patternfly/react-core'; | ||
|
|
||
| <Alert variant="danger" title="Warning"> | ||
| Use this component at your own risk, it's currently under development and is subject | ||
| to change. | ||
| </Alert> | ||
|
|
||
| ## Spinner | ||
|
|
||
| ```js | ||
| import React from 'react'; | ||
| import { Spinner } from '@patternfly/react-core/dist/esm/experimental'; | ||
|
|
||
| SpinnerSimple = () => (<Spinner/>); | ||
| ``` | ||
|
|
||
| # Spinner size variations | ||
|
|
||
| ```js | ||
| import React from 'react'; | ||
| import { Spinner } from '@patternfly/react-core/dist/esm/experimental'; | ||
|
|
||
| SpinnerSizeVariations = () => ( | ||
| <React.Fragment> | ||
| <Spinner size="sm"/> | ||
| <Spinner size="md"/> | ||
| <Spinner size="lg"/> | ||
| <Spinner size="xl"/> | ||
| </React.Fragment> | ||
| ); | ||
| ``` | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| import * as React from 'react'; | ||
| import { shallow } from 'enzyme'; | ||
| import { Spinner } from './Spinner'; | ||
|
|
||
| test('simple spinner', () => { | ||
| const view = shallow(<Spinner/>); | ||
| expect(view).toMatchSnapshot(); | ||
| }); | ||
|
|
||
| test('small spinner', () => { | ||
| const view = shallow(<Spinner/>); | ||
| expect(view).toMatchSnapshot(); | ||
| }); | ||
|
|
||
| test('medium spinner', () => { | ||
| const view = shallow(<Spinner/>); | ||
| expect(view).toMatchSnapshot(); | ||
| }); | ||
|
|
||
| test('large spinner', () => { | ||
| const view = shallow(<Spinner/>); | ||
| expect(view).toMatchSnapshot(); | ||
| }); | ||
|
|
||
| test('extra large spinner', () => { | ||
| const view = shallow(<Spinner/>); | ||
| expect(view).toMatchSnapshot(); | ||
| }); |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| import * as React from 'react'; | ||
| import styles from '@patternfly/react-styles/css/components/Spinner/spinner'; | ||
| import { css, getModifier } from '@patternfly/react-styles'; | ||
| import { Omit } from '../../../helpers/typeUtils'; | ||
|
|
||
| export enum spinnerSize { | ||
| sm = 'sm', | ||
| md = 'md', | ||
| lg = 'lg', | ||
| xl = 'xl' | ||
| } | ||
|
|
||
| export interface SpinnerProps | ||
| extends Omit<React.HTMLProps<HTMLSpanElement>, 'size'> { | ||
| /** Additional classes added to the Spinner. */ | ||
| className?: string; | ||
| /** Size variant of progress. */ | ||
| size?: 'sm' | 'md' | 'lg' | 'xl'; | ||
| /** Aria value text */ | ||
| 'aria-valuetext'?: string; | ||
| } | ||
|
|
||
| export const Spinner: React.FunctionComponent<SpinnerProps> = ({ | ||
| className = '', | ||
| size = 'xl', | ||
| 'aria-valuetext': ariaValueText = 'Loading...', | ||
| ...props | ||
| }) => ( | ||
| <span | ||
| className={css(styles.spinner, getModifier(styles, size))} | ||
| role="progressbar" | ||
| aria-valuetext={ariaValueText} | ||
| {...props} | ||
| > | ||
| <span className={css(styles.spinnerClipper)} /> | ||
| <span className={css(styles.spinnerLeadBall)} /> | ||
| <span className={css(styles.spinnerTailBall)} /> | ||
| </span> | ||
| ); |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,91 @@ | ||
| // Jest Snapshot v1, https://goo.gl/fbAQLP | ||
|
|
||
| exports[`extra large spinner 1`] = ` | ||
| <span | ||
| aria-valuetext="Loading..." | ||
| className="pf-c-spinner pf-m-xl" | ||
| role="progressbar" | ||
| > | ||
| <span | ||
| className="pf-c-spinner__clipper" | ||
| /> | ||
| <span | ||
| className="pf-c-spinner__lead-ball" | ||
| /> | ||
| <span | ||
| className="pf-c-spinner__tail-ball" | ||
| /> | ||
| </span> | ||
| `; | ||
|
|
||
| exports[`large spinner 1`] = ` | ||
| <span | ||
| aria-valuetext="Loading..." | ||
| className="pf-c-spinner pf-m-xl" | ||
| role="progressbar" | ||
| > | ||
| <span | ||
| className="pf-c-spinner__clipper" | ||
| /> | ||
| <span | ||
| className="pf-c-spinner__lead-ball" | ||
| /> | ||
| <span | ||
| className="pf-c-spinner__tail-ball" | ||
| /> | ||
| </span> | ||
| `; | ||
|
|
||
| exports[`medium spinner 1`] = ` | ||
| <span | ||
| aria-valuetext="Loading..." | ||
| className="pf-c-spinner pf-m-xl" | ||
| role="progressbar" | ||
| > | ||
| <span | ||
| className="pf-c-spinner__clipper" | ||
| /> | ||
| <span | ||
| className="pf-c-spinner__lead-ball" | ||
| /> | ||
| <span | ||
| className="pf-c-spinner__tail-ball" | ||
| /> | ||
| </span> | ||
| `; | ||
|
|
||
| exports[`simple spinner 1`] = ` | ||
| <span | ||
| aria-valuetext="Loading..." | ||
| className="pf-c-spinner pf-m-xl" | ||
| role="progressbar" | ||
| > | ||
| <span | ||
| className="pf-c-spinner__clipper" | ||
| /> | ||
| <span | ||
| className="pf-c-spinner__lead-ball" | ||
| /> | ||
| <span | ||
| className="pf-c-spinner__tail-ball" | ||
| /> | ||
| </span> | ||
| `; | ||
|
|
||
| exports[`small spinner 1`] = ` | ||
| <span | ||
| aria-valuetext="Loading..." | ||
| className="pf-c-spinner pf-m-xl" | ||
| role="progressbar" | ||
| > | ||
| <span | ||
| className="pf-c-spinner__clipper" | ||
| /> | ||
| <span | ||
| className="pf-c-spinner__lead-ball" | ||
| /> | ||
| <span | ||
| className="pf-c-spinner__tail-ball" | ||
| /> | ||
| </span> | ||
| `; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| export * from './Spinner'; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,4 @@ | ||
| export * from './Button'; | ||
| export * from './Badge'; | ||
| export * from './Drawer'; | ||
| export * from './Spinner'; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| describe('Spinner Demo Test', () => { | ||
| it('Navigate to demo section', () => { | ||
| cy.visit('http://localhost:3000/'); | ||
| cy.get('#spinner-demo-nav-item-link').click(); | ||
| cy.url().should('eq', 'http://localhost:3000/spinner-demo-nav-link'); | ||
| }); | ||
| it('Verify small spinner', () => { | ||
| cy.get('.pf-c-spinner.pf-m-sm').should('exist'); | ||
| }); | ||
| it('Verify medium spinner', () => { | ||
| cy.get('.pf-c-spinner.pf-m-md').should('exist'); | ||
| }); | ||
| it('Verify large spinner', () => { | ||
| cy.get('.pf-c-spinner.pf-m-lg').should('exist'); | ||
| }); | ||
|
|
||
| it('Verify extra large spinner', () => { | ||
| cy.get('.pf-c-spinner.pf-m-xl').should('exist'); | ||
| }); | ||
| }); |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| import React from 'react'; | ||
| import { Spinner, SpinnerProps } from '@patternfly/react-core/dist/esm/experimental'; | ||
|
|
||
| export class SpinnerDemo extends React.Component<SpinnerProps> { | ||
|
|
||
| componentDidMount() { | ||
| window.scrollTo(0, 0); | ||
| } | ||
|
|
||
| render() { | ||
| return ( | ||
| <React.Fragment> | ||
| <Spinner/> | ||
| <span> | ||
| <div>Size variations</div> | ||
| <Spinner size="sm"/> | ||
| <Spinner size="md"/> | ||
| <Spinner size="lg"/> | ||
| <Spinner size="xl"/> | ||
| </span> | ||
| </React.Fragment> | ||
| ); | ||
| } | ||
| } |
| Back | FazBrowse Home | New Git URL |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low QualityFor this to show up properly on -org, we are using a new stage: 'early' in the frontmatter. I'll address this in a follow-up PR.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.