diff --git a/packages/react/src/components/syncFeedback/SyncFeedback.tsx b/packages/react/src/components/syncFeedback/SyncFeedback.tsx index 6373830483..017cf0ca12 100644 --- a/packages/react/src/components/syncFeedback/SyncFeedback.tsx +++ b/packages/react/src/components/syncFeedback/SyncFeedback.tsx @@ -2,7 +2,16 @@ import * as React from 'react'; import {Svg} from '../svg/Svg'; export interface ISyncFeedbackProps { + /** + * The label of the current state + * + * @default 'Saving changes...' for 'SYNCING', 'Changes saved' for 'SUCCESS', and 'Changes could not be saved.' for 'ERROR'. + */ feedback?: string; + /** + * The current state of the sync feedback component + * Either 'SYNCING', 'SUCCESS', 'ERROR' or 'NONE' + */ state: string; } @@ -17,7 +26,7 @@ export const DEFAULT_SYNC_FEEDBACK_SYNCING_LABEL: string = 'Saving changes...'; export const DEFAULT_SYNC_FEEDBACK_SUCCESS_LABEL: string = 'Changes saved'; export const DEFAULT_SYNC_FEEDBACK_ERROR_LABEL: string = 'Changes could not be saved.'; -export class SyncFeedback extends React.Component { +export class SyncFeedback extends React.PureComponent { render() { const classes = ['sync-feedback']; if (this.props.state === SyncFeedbackState.ERROR) { diff --git a/packages/website/src/examples/SyncFeedback/SyncFeedback.example.tsx b/packages/website/src/examples/SyncFeedback/SyncFeedback.example.tsx new file mode 100644 index 0000000000..bcbf0af386 --- /dev/null +++ b/packages/website/src/examples/SyncFeedback/SyncFeedback.example.tsx @@ -0,0 +1,33 @@ +import {SyncFeedback, SyncFeedbackState} from '@coveord/plasma-react'; +import * as React from 'react'; + +export default () => ( + + + + + + + + + + + + + + + + + + + +
NONE + +
SYNCING + +
SUCCESS + +
ERROR + +
+); diff --git a/packages/website/src/examples/SyncFeedback/SyncFeedbackLabel.example.tsx b/packages/website/src/examples/SyncFeedback/SyncFeedbackLabel.example.tsx new file mode 100644 index 0000000000..4a7ae0228c --- /dev/null +++ b/packages/website/src/examples/SyncFeedback/SyncFeedbackLabel.example.tsx @@ -0,0 +1,10 @@ +import {SyncFeedback, SyncFeedbackState} from '@coveord/plasma-react'; +import * as React from 'react'; + +export default () => ( + <> + + + + +); diff --git a/packages/website/src/pages/feedback/SyncFeedback.tsx b/packages/website/src/pages/feedback/SyncFeedback.tsx index 1b497d79a4..3dab98b8fd 100644 --- a/packages/website/src/pages/feedback/SyncFeedback.tsx +++ b/packages/website/src/pages/feedback/SyncFeedback.tsx @@ -1,45 +1,16 @@ +import code from '@examples/SyncFeedback/SyncFeedback.example.tsx'; +import label from '@examples/SyncFeedback/SyncFeedbackLabel.example.tsx'; import * as React from 'react'; -import {SyncFeedback, SyncFeedbackState} from '@coveord/plasma-react'; +import {PageLayout} from '../../building-blocs/PageLayout'; -import PlasmaComponent from '../../building-blocs/PlasmaComponent'; - -// start-print -export class SyncFeedbackExample extends React.Component { - render() { - return ( - -
- -
-
- A SyncFeedback component on state NONE is invisible. - -
-
- There is a default feedback message for each state - - - -
-
- You can pass a custom feedback message - - - -
-
-
-
- ); - } -} -export default SyncFeedbackExample; +export default () => ( + +);