mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
* Reorganized Backstage code to use a view controller and separated it from integrations code * Renamed InstalledIntegrations component to BackstageList * Added EmojiList page * Added AddEmoji page * Added custom emoji to autocomplete and text formatter * Moved system emoji to EmojiStore * Stopped trying to get emoji before logging in * Rerender posts when emojis change * Fixed submit handler on backstage pages to properly support enter * Removed debugging code * Updated javascript driver * Fixed unit tests * Fixed backstage routes * Added clientside validation to prevent users from creating an emoji with the same name as a system one * Fixed AddEmoji page to properly redirect when an emoji is created successfully * Fixed updating emoji list when an emoji is deleted * Added type prop to BackstageList to properly support using a table for the list * Added help text to EmojiList * Fixed backstage on smaller screen sizes * Disable custom emoji by default * Improved restrictions on creating emojis * Fixed non-admin users seeing the option to delete each other's emojis * Fixing gofmt * Fixed emoji unit tests * Fixed trying to get emoji from the server when it's disabled
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
import React from 'react';
|
|
|
|
import {Link} from 'react-router/es6';
|
|
|
|
export default class IntegrationOption extends React.Component {
|
|
static get propTypes() {
|
|
return {
|
|
image: React.PropTypes.string.isRequired,
|
|
title: React.PropTypes.node.isRequired,
|
|
description: React.PropTypes.node.isRequired,
|
|
link: React.PropTypes.string.isRequired
|
|
};
|
|
}
|
|
|
|
render() {
|
|
const {image, title, description, link} = this.props;
|
|
|
|
return (
|
|
<Link
|
|
to={link}
|
|
className='integration-option'
|
|
>
|
|
<img
|
|
className='integration-option__image'
|
|
src={image}
|
|
/>
|
|
<div className='integration-option__title'>
|
|
{title}
|
|
</div>
|
|
<div className='integration-option__description'>
|
|
{description}
|
|
</div>
|
|
</Link>
|
|
);
|
|
}
|
|
}
|