feat(categories): include uncategorised channels; add category / channel; delete category

This commit is contained in:
Paul
2021-10-30 19:38:18 +01:00
parent 8bbe8d46ae
commit 30b36986a3
3 changed files with 297 additions and 255 deletions

View File

@@ -1,5 +1,6 @@
import { observer } from "mobx-react-lite";
import { useHistory } from "react-router-dom";
import { TextChannel, VoiceChannel } from "revolt-api/types/Channels";
import { Channel } from "revolt.js/dist/maps/Channels";
import { Message as MessageI } from "revolt.js/dist/maps/Messages";
import { Server } from "revolt.js/dist/maps/Servers";
@@ -60,7 +61,7 @@ type SpecialProps = { onClose: () => void } & (
| { type: "leave_server"; target: Server }
| { type: "delete_server"; target: Server }
| { type: "delete_channel"; target: Channel }
| { type: "delete_bot"; target: string; name: string; cb: () => void }
| { type: "delete_bot"; target: string; name: string; cb?: () => void }
| { type: "delete_message"; target: MessageI }
| {
type: "create_invite";
@@ -70,7 +71,11 @@ type SpecialProps = { onClose: () => void } & (
| { type: "ban_member"; target: Server; user: User }
| { type: "unfriend_user"; target: User }
| { type: "block_user"; target: User }
| { type: "create_channel"; target: Server }
| {
type: "create_channel";
target: Server;
cb?: (channel: TextChannel | VoiceChannel) => void;
}
| { type: "create_category"; target: Server }
);
@@ -158,7 +163,7 @@ export const SpecialPromptModal = observer((props: SpecialProps) => {
break;
case "delete_bot":
client.bots.delete(props.target);
props.cb();
props.cb?.();
break;
}
@@ -424,9 +429,14 @@ export const SpecialPromptModal = observer((props: SpecialProps) => {
nonce: ulid(),
});
history.push(
`/server/${props.target._id}/channel/${channel._id}`,
);
if (props.cb) {
props.cb(channel);
} else {
history.push(
`/server/${props.target._id}/channel/${channel._id}`,
);
}
onClose();
} catch (err) {
setError(takeError(err));
@@ -472,7 +482,6 @@ export const SpecialPromptModal = observer((props: SpecialProps) => {
}
case "create_category": {
const [name, setName] = useState("");
const history = useHistory();
return (
<PromptModal