mirror of
https://github.com/revoltchat/revite.git
synced 2024-11-10 01:03:36 -05:00
Clean up system message code. Fixes #3
This commit is contained in:
parent
64cfb1f233
commit
bb6ac68c8e
3 changed files with 9 additions and 68 deletions
|
@ -113,7 +113,7 @@
|
||||||
"react-scroll": "^1.8.2",
|
"react-scroll": "^1.8.2",
|
||||||
"redux": "^4.1.0",
|
"redux": "^4.1.0",
|
||||||
"revolt-api": "0.5.1-alpha.10-patch.0",
|
"revolt-api": "0.5.1-alpha.10-patch.0",
|
||||||
"revolt.js": "5.0.0-alpha.18-patch.0",
|
"revolt.js": "5.0.0-alpha.19",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"sass": "^1.35.1",
|
"sass": "^1.35.1",
|
||||||
"shade-blend-color": "^1.0.0",
|
"shade-blend-color": "^1.0.0",
|
||||||
|
|
|
@ -11,16 +11,14 @@ import {
|
||||||
MessageSquareEdit,
|
MessageSquareEdit,
|
||||||
} from "@styled-icons/boxicons-solid";
|
} from "@styled-icons/boxicons-solid";
|
||||||
import { observer } from "mobx-react-lite";
|
import { observer } from "mobx-react-lite";
|
||||||
|
import { SystemMessage as SystemMessageI } from "revolt-api/types/Channels";
|
||||||
import { Message } from "revolt.js/dist/maps/Messages";
|
import { Message } from "revolt.js/dist/maps/Messages";
|
||||||
import { User } from "revolt.js/dist/maps/Users";
|
|
||||||
import styled from "styled-components";
|
import styled from "styled-components";
|
||||||
|
|
||||||
import { attachContextMenu } from "preact-context-menu";
|
import { attachContextMenu } from "preact-context-menu";
|
||||||
|
|
||||||
import { TextReact } from "../../../lib/i18n";
|
import { TextReact } from "../../../lib/i18n";
|
||||||
|
|
||||||
import { useClient } from "../../../context/revoltjs/RevoltClient";
|
|
||||||
|
|
||||||
import UserShort from "../user/UserShort";
|
import UserShort from "../user/UserShort";
|
||||||
import MessageBase, { MessageDetail, MessageInfo } from "./MessageBase";
|
import MessageBase, { MessageDetail, MessageInfo } from "./MessageBase";
|
||||||
|
|
||||||
|
@ -33,18 +31,6 @@ const SystemContent = styled.div`
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
type SystemMessageParsed =
|
|
||||||
| { type: "text"; content: string }
|
|
||||||
| { type: "user_added"; user: User; by: User }
|
|
||||||
| { type: "user_remove"; user: User; by: User }
|
|
||||||
| { type: "user_joined"; user: User }
|
|
||||||
| { type: "user_left"; user: User }
|
|
||||||
| { type: "user_kicked"; user: User }
|
|
||||||
| { type: "user_banned"; user: User }
|
|
||||||
| { type: "channel_renamed"; name: string; by: User }
|
|
||||||
| { type: "channel_description_changed"; by: User }
|
|
||||||
| { type: "channel_icon_changed"; by: User };
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
attachContext?: boolean;
|
attachContext?: boolean;
|
||||||
message: Message;
|
message: Message;
|
||||||
|
@ -67,54 +53,9 @@ const iconDictionary = {
|
||||||
|
|
||||||
export const SystemMessage = observer(
|
export const SystemMessage = observer(
|
||||||
({ attachContext, message, highlight, hideInfo }: Props) => {
|
({ attachContext, message, highlight, hideInfo }: Props) => {
|
||||||
const client = useClient();
|
const data = message.asSystemMessage;
|
||||||
|
const SystemMessageIcon =
|
||||||
let data: SystemMessageParsed;
|
iconDictionary[data.type as SystemMessageI["type"]] ?? InfoCircle;
|
||||||
const content = message.content;
|
|
||||||
if (typeof content === "object") {
|
|
||||||
switch (content.type) {
|
|
||||||
case "text":
|
|
||||||
data = content;
|
|
||||||
break;
|
|
||||||
case "user_added":
|
|
||||||
case "user_remove":
|
|
||||||
data = {
|
|
||||||
type: content.type,
|
|
||||||
user: client.users.get(content.id)!,
|
|
||||||
by: client.users.get(content.by)!,
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
case "user_joined":
|
|
||||||
case "user_left":
|
|
||||||
case "user_kicked":
|
|
||||||
case "user_banned":
|
|
||||||
data = {
|
|
||||||
type: content.type,
|
|
||||||
user: client.users.get(content.id)!,
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
case "channel_renamed":
|
|
||||||
data = {
|
|
||||||
type: "channel_renamed",
|
|
||||||
name: content.name,
|
|
||||||
by: client.users.get(content.by)!,
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
case "channel_description_changed":
|
|
||||||
case "channel_icon_changed":
|
|
||||||
data = {
|
|
||||||
type: content.type,
|
|
||||||
by: client.users.get(content.by)!,
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
data = { type: "text", content: JSON.stringify(content) };
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
data = { type: "text", content };
|
|
||||||
}
|
|
||||||
|
|
||||||
const SystemMessageIcon = iconDictionary[data.type] ?? InfoCircle;
|
|
||||||
|
|
||||||
const SystemIcon = styled(SystemMessageIcon)`
|
const SystemIcon = styled(SystemMessageIcon)`
|
||||||
height: 1.33em;
|
height: 1.33em;
|
||||||
|
|
|
@ -3572,10 +3572,10 @@ revolt-api@0.5.1-alpha.10-patch.0:
|
||||||
resolved "https://registry.yarnpkg.com/revolt-api/-/revolt-api-0.5.1-alpha.10-patch.0.tgz#97d31bec7dfa4573567097443acb059c4feaac20"
|
resolved "https://registry.yarnpkg.com/revolt-api/-/revolt-api-0.5.1-alpha.10-patch.0.tgz#97d31bec7dfa4573567097443acb059c4feaac20"
|
||||||
integrity sha512-UyM890HkGlYNQOxpHuEpUsJHLt8Ujnjg9/zPEDGpbvS4iy0jmHX23Hh8tOCfb/ewxbNrtT3G1HpSWKOneW/vYg==
|
integrity sha512-UyM890HkGlYNQOxpHuEpUsJHLt8Ujnjg9/zPEDGpbvS4iy0jmHX23Hh8tOCfb/ewxbNrtT3G1HpSWKOneW/vYg==
|
||||||
|
|
||||||
revolt.js@5.0.0-alpha.18-patch.0:
|
revolt.js@5.0.0-alpha.19:
|
||||||
version "5.0.0-alpha.18-patch.0"
|
version "5.0.0-alpha.19"
|
||||||
resolved "https://registry.yarnpkg.com/revolt.js/-/revolt.js-5.0.0-alpha.18-patch.0.tgz#38ac237bac9f4b935a456bc276eaed2d471b6023"
|
resolved "https://registry.yarnpkg.com/revolt.js/-/revolt.js-5.0.0-alpha.19.tgz#51f75d02d173e6f6de1b10fae22ba31a99785f76"
|
||||||
integrity sha512-D4M3cYbF/MRDd3rVcWJ9DSQctecRnc/0QltFjgr9XhkFHkVkCn32CDUnklMgQdh1uE8C8t7jaJsCV5DdalxUXg==
|
integrity sha512-D4HWszUozO4ss252GZw1k0m8p2yjnFtzAARUGo2bJsBYlC00l61hg2xsAvXcemfFParh9x6hAK9xq7olcAt6KA==
|
||||||
dependencies:
|
dependencies:
|
||||||
axios "^0.19.2"
|
axios "^0.19.2"
|
||||||
eventemitter3 "^4.0.7"
|
eventemitter3 "^4.0.7"
|
||||||
|
|
Loading…
Reference in a new issue