import React from 'react';
import {
localized,
PropTypes,
APIError,
MailspringAPIRequest,
Message,
DraftEditingSession,
} from 'mailspring-exports';
import { MetadataComposerToggleButton } from 'mailspring-component-kit';
import { PLUGIN_ID, PLUGIN_NAME } from './link-tracking-constants';
export default class LinkTrackingButton extends React.Component<{
draft: Message;
session: DraftEditingSession;
}> {
static displayName = 'LinkTrackingButton';
static containersRequired: false;
static propTypes = {
draft: PropTypes.object.isRequired,
session: PropTypes.object.isRequired,
};
shouldComponentUpdate(nextProps) {
return (
nextProps.draft.metadataForPluginId(PLUGIN_ID) !==
this.props.draft.metadataForPluginId(PLUGIN_ID)
);
}
_errorMessage(error) {
if (
error instanceof APIError &&
MailspringAPIRequest.TimeoutErrorCodes.includes(error.statusCode)
) {
return localized(
`Link tracking does not work offline. Please re-enable when you come back online.`
);
}
return localized(
`Unfortunately, link tracking servers are currently not available. Please try again later. Error: %@`,
error.message
);
}
render() {
if (this.props.draft.plaintext) {
return ;
}
return (
);
}
}