import {defineMessages, FormattedMessage, intlShape, injectIntl} from 'react-intl'; import PropTypes from 'prop-types'; import React from 'react'; import Modal from '../../containers/modal.jsx'; import styles from './invalid-project-modal.css'; const messages = defineMessages({ title: { defaultMessage: 'Error', description: 'Title of modal that appears when a project could not be loaded', id: 'tw.invalidProject.title' } }); const formatError = error => { let message; if (error && error.stack) { message = `${error}\n\nStack:\n${error.stack}`; } else { message = `${error}`; } return `${message}\n\n---\n\nURL: ${location.href}\nUser-Agent: ${navigator.userAgent}`; }; const errorMatches = (error, regex) => regex.test(`${error}`); const isZipCorruptionWithSignatureIntact = error => ( errorMatches(error, /Corrupted zip|uncompressed data size mismatch/) ); const isJSONValidationError = error => errorMatches(error, /validationError/); const InvalidProjectModal = props => (