-
Paul Kaplan authoredPaul Kaplan authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
index.jsx 7.48 KiB
import React from 'react';
import {FormattedMessage} from 'react-intl';
import keyMirror from 'keymirror';
import successImage from '../assets/icon--success.svg';
const AlertTypes = keyMirror({
STANDARD: null,
EXTENSION: null,
INLINE: null
});
const AlertLevels = {
SUCCESS: 'success',
INFO: 'info',
WARN: 'warn'
};
const alerts = [
{
alertId: 'createSuccess',
alertType: AlertTypes.STANDARD,
clearList: ['createSuccess', 'creating', 'createCopySuccess', 'creatingCopy',
'createRemixSuccess', 'creatingRemix', 'saveSuccess', 'saving'],
content: (
<FormattedMessage
defaultMessage="New project created."
description="Message indicating that project was successfully created"
id="gui.alerts.createsuccess"
/>
),
iconURL: successImage,
level: AlertLevels.SUCCESS,
maxDisplaySecs: 5
},
{
alertId: 'createCopySuccess',
alertType: AlertTypes.STANDARD,
clearList: ['createSuccess', 'creating', 'createCopySuccess', 'creatingCopy',
'createRemixSuccess', 'creatingRemix', 'saveSuccess', 'saving'],
content: (
<FormattedMessage
defaultMessage="Project saved as a copy."
description="Message indicating that project was successfully created"
id="gui.alerts.createcopysuccess"
/>
),
iconURL: successImage,
level: AlertLevels.SUCCESS,
maxDisplaySecs: 5
},
{
alertId: 'createRemixSuccess',
alertType: AlertTypes.STANDARD,
clearList: ['createSuccess', 'creating', 'createCopySuccess', 'creatingCopy',
'createRemixSuccess', 'creatingRemix', 'saveSuccess', 'saving'],
content: (
<FormattedMessage
defaultMessage="Project saved as a remix."
description="Message indicating that project was successfully created"
id="gui.alerts.createremixsuccess"
/>
),
iconURL: successImage,
level: AlertLevels.SUCCESS,
maxDisplaySecs: 5
},
{
alertId: 'creating',
alertType: AlertTypes.STANDARD,
clearList: ['createSuccess', 'creating', 'createCopySuccess', 'creatingCopy',
'createRemixSuccess', 'creatingRemix', 'saveSuccess', 'saving'],
content: (
<FormattedMessage
defaultMessage="Creating new…"
description="Message indicating that project is in process of creating"
id="gui.alerts.creating"
/>
),
iconSpinner: true,
level: AlertLevels.SUCCESS
},
{
alertId: 'creatingCopy',
alertType: AlertTypes.STANDARD,
clearList: ['createSuccess', 'creating', 'createCopySuccess', 'creatingCopy',
'createRemixSuccess', 'creatingRemix', 'saveSuccess', 'saving'],
content: (
<FormattedMessage
defaultMessage="Copying project…"
description="Message indicating that project is in process of copying"
id="gui.alerts.creatingCopy"
/>
),
iconSpinner: true,
level: AlertLevels.SUCCESS
},
{
alertId: 'creatingRemix',
alertType: AlertTypes.STANDARD,
clearList: ['createSuccess', 'creating', 'createCopySuccess', 'creatingCopy',
'createRemixSuccess', 'creatingRemix', 'saveSuccess', 'saving'],
content: (
<FormattedMessage
defaultMessage="Remixing project…"
description="Message indicating that project is in process of remixing"
id="gui.alerts.creatingRemix"
/>
),
iconSpinner: true,
level: AlertLevels.SUCCESS
},
{
alertId: 'creatingError',
clearList: ['createSuccess', 'creating', 'createCopySuccess', 'creatingCopy',
'createRemixSuccess', 'creatingRemix', 'saveSuccess', 'saving'],
closeButton: true,
content: (
<FormattedMessage
defaultMessage="Could not create the project. Please try again!"
description="Message indicating that project could not be created"
id="gui.alerts.creatingError"
/>
),
level: AlertLevels.WARN
},
{
alertId: 'savingError',
clearList: ['createSuccess', 'creating', 'createCopySuccess', 'creatingCopy',
'createRemixSuccess', 'creatingRemix', 'saveSuccess', 'saving'],
showDownload: true,
showSaveNow: true,
closeButton: false,
content: (
<FormattedMessage
defaultMessage="Project could not save."
description="Message indicating that project could not be saved"
id="gui.alerts.savingError"
/>
),
level: AlertLevels.WARN
},
{
alertId: 'saveSuccess',
alertType: AlertTypes.INLINE,
clearList: ['saveSuccess', 'saving', 'savingError'],
content: (
<FormattedMessage
defaultMessage="Project saved."
description="Message indicating that project was successfully saved"
id="gui.alerts.savesuccess"
/>
),
iconURL: successImage,
level: AlertLevels.SUCCESS,
maxDisplaySecs: 3
},
{
alertId: 'saving',
alertType: AlertTypes.INLINE,
clearList: ['saveSuccess', 'saving', 'savingError'],
content: (
<FormattedMessage
defaultMessage="Saving project…"
description="Message indicating that project is in process of saving"
id="gui.alerts.saving"
/>
),
iconSpinner: true,
level: AlertLevels.INFO
},
{
alertId: 'cloudInfo',
alertType: AlertTypes.STANDARD,
clearList: ['cloudInfo'],
content: (
<FormattedMessage
defaultMessage="Please note, cloud variables only support numbers, not letters or symbols. {learnMoreLink}" // eslint-disable-line max-len
description="Info about cloud variable limitations"
id="gui.alerts.cloudInfo"
values={{
learnMoreLink: (
<a
href="https://scratch.mit.edu/info/faq/#clouddata"
rel="noopener noreferrer"
target="_blank"
>
<FormattedMessage
defaultMessage="Learn more."
description="Link text to cloud var faq"
id="gui.alerts.cloudInfoLearnMore"
/>
</a>
)
}}
/>
),
closeButton: true,
level: AlertLevels.SUCCESS,
maxDisplaySecs: 15
},
{
alertId: 'importingAsset',
alertType: AlertTypes.STANDARD,
clearList: [],
content: (
<FormattedMessage
defaultMessage="Importing…"
description="Message indicating that project is in process of importing"
id="gui.alerts.importing"
/>
),
iconSpinner: true,
level: AlertLevels.SUCCESS
}
];
export {
alerts as default,
AlertLevels,
AlertTypes
};