mirror of
https://github.com/stoatchat/for-legacy-web.git
synced 2026-03-07 01:15:28 +00:00
feat: add ability to leave groups / servers silently
This commit is contained in:
@@ -20,6 +20,7 @@ import BanMember from "./components/BanMember";
|
||||
import Changelog from "./components/Changelog";
|
||||
import ChannelInfo from "./components/ChannelInfo";
|
||||
import Clipboard from "./components/Clipboard";
|
||||
import ConfirmLeave from "./components/ConfirmLeave";
|
||||
import Confirmation from "./components/Confirmation";
|
||||
import CreateBot from "./components/CreateBot";
|
||||
import CreateCategory from "./components/CreateCategory";
|
||||
@@ -240,9 +241,9 @@ export const modalController = new ModalControllerExtended({
|
||||
changelog: Changelog,
|
||||
channel_info: ChannelInfo,
|
||||
clipboard: Clipboard,
|
||||
leave_group: Confirmation,
|
||||
leave_group: ConfirmLeave,
|
||||
close_dm: Confirmation,
|
||||
leave_server: Confirmation,
|
||||
leave_server: ConfirmLeave,
|
||||
delete_server: Confirmation,
|
||||
delete_channel: Confirmation,
|
||||
delete_bot: Confirmation,
|
||||
|
||||
52
src/controllers/modals/components/ConfirmLeave.tsx
Normal file
52
src/controllers/modals/components/ConfirmLeave.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
import { Text } from "preact-i18n";
|
||||
|
||||
import { ModalForm } from "@revoltchat/ui";
|
||||
|
||||
import { TextReact } from "../../../lib/i18n";
|
||||
|
||||
import { ModalProps } from "../types";
|
||||
|
||||
/**
|
||||
* Confirmation modal
|
||||
*/
|
||||
export default function ConfirmLeave(
|
||||
props: ModalProps<"leave_group" | "leave_server">,
|
||||
) {
|
||||
const name = props.target.name;
|
||||
|
||||
return (
|
||||
<ModalForm
|
||||
{...props}
|
||||
title={
|
||||
<Text
|
||||
id={`app.special.modals.prompt.confirm_leave`}
|
||||
fields={{ name }}
|
||||
/>
|
||||
}
|
||||
description={
|
||||
<TextReact
|
||||
id={`app.special.modals.prompt.confirm_leave_long`}
|
||||
fields={{ name: <b>{name}</b> }}
|
||||
/>
|
||||
}
|
||||
data={{
|
||||
silently_leave: {
|
||||
title: <Text id="app.special.modals.prompt.silent_leave" />,
|
||||
description: (
|
||||
<Text id="app.special.modals.prompt.members_not_notified" />
|
||||
),
|
||||
},
|
||||
}}
|
||||
schema={{
|
||||
silently_leave: "checkbox",
|
||||
}}
|
||||
callback={({ silently_leave }) =>
|
||||
props.target.delete(silently_leave)
|
||||
}
|
||||
submit={{
|
||||
palette: "error",
|
||||
children: <Text id="app.special.modals.actions.leave" />,
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -14,9 +14,7 @@ import { ModalProps } from "../types";
|
||||
*/
|
||||
export default function Confirmation(
|
||||
props: ModalProps<
|
||||
| "leave_group"
|
||||
| "close_dm"
|
||||
| "leave_server"
|
||||
| "delete_server"
|
||||
| "delete_channel"
|
||||
| "delete_bot"
|
||||
@@ -31,8 +29,6 @@ export default function Confirmation(
|
||||
delete_server: ["confirm_delete", "delete"],
|
||||
delete_channel: ["confirm_delete", "delete"],
|
||||
delete_bot: ["confirm_delete", "delete"],
|
||||
leave_group: ["confirm_leave", "leave"],
|
||||
leave_server: ["confirm_leave", "leave"],
|
||||
unfriend_user: ["unfriend_user", "remove"],
|
||||
block_user: ["block_user", "block"],
|
||||
};
|
||||
@@ -79,10 +75,8 @@ export default function Confirmation(
|
||||
case "block_user":
|
||||
await props.target.blockUser();
|
||||
break;
|
||||
case "leave_group":
|
||||
case "close_dm":
|
||||
case "delete_channel":
|
||||
case "leave_server":
|
||||
case "delete_server":
|
||||
if (props.type != "delete_channel") history.push("/");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user