BetterDiscordApp-rauenzi/renderer/src/ui/emoteicon.jsx

36 lines
1.6 KiB
React
Raw Normal View History

import {React, WebpackModules} from "modules";
2020-07-24 10:59:16 +02:00
import EmoteModule from "../builtins/emotes/emotes";
const ContextMenuActions = WebpackModules.getByProps("openContextMenu");
2020-07-24 10:59:16 +02:00
const {MenuItem, MenuGroup} = WebpackModules.find(m => m.MenuRadioItem && !m.default);
const ContextMenu = WebpackModules.getByProps("default", "MenuStyle").default;
const {ComponentDispatch} = WebpackModules.getByProps("ComponentDispatch");
2020-07-24 10:59:16 +02:00
export default class EmoteIcon extends React.Component {
render() {
return <div className="bd-emote-item" onClick={this.handleOnClick.bind(this)} onContextMenu={this.handleOnContextMenu.bind(this)}>
2020-07-24 10:59:16 +02:00
<img src={this.props.url} alt={this.props.emote} title={this.props.emote}/>
</div>;
2020-07-24 10:59:16 +02:00
}
2020-07-24 10:59:16 +02:00
handleOnClick() {
this.insertText(this.props.emote);
}
2020-07-24 10:59:16 +02:00
handleOnContextMenu(e) {
ContextMenuActions.openContextMenu(e, () => <ContextMenu navId="EmoteContextMenu" onClose={ContextMenuActions.closeContextMenu}>
2020-07-24 10:59:16 +02:00
<MenuGroup>
<MenuItem label={EmoteModule.isFavorite(this.props.emote) ? "Remove Favorite" : "Add Favorite"} id="favorite" action={this.handlefavorite.bind(this)} onClose={ContextMenuActions.closeContextMenu}/>
2020-07-24 10:59:16 +02:00
</MenuGroup>
</ContextMenu>);
}
2020-07-24 10:59:16 +02:00
handlefavorite() {
ContextMenuActions.closeContextMenu();
2020-07-24 10:59:16 +02:00
EmoteModule.isFavorite(this.props.emote) ? EmoteModule.removeFavorite(this.props.emote) : EmoteModule.addFavorite(this.props.emote, this.props.url);
}
2020-07-24 10:59:16 +02:00
insertText(emote) {
ComponentDispatch.dispatchToLastSubscribed("INSERT_TEXT", {content: emote});
2020-07-24 10:59:16 +02:00
}
}