mirror of
https://github.com/stoatchat/for-legacy-web.git
synced 2026-03-06 17:11:55 +00:00
Zero error milestone.
This commit is contained in:
@@ -57,7 +57,7 @@ export type Screen =
|
||||
}
|
||||
| {
|
||||
type: "create_role";
|
||||
server: string;
|
||||
server: Server;
|
||||
callback: (id: string) => void;
|
||||
}
|
||||
))
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useHistory } from "react-router";
|
||||
import { Server } from "revolt.js/dist/maps/Servers";
|
||||
import { ulid } from "ulid";
|
||||
|
||||
import { Text } from "preact-i18n";
|
||||
@@ -81,7 +82,7 @@ type SpecialProps = { onClose: () => void } & (
|
||||
| "set_custom_status"
|
||||
| "add_friend";
|
||||
}
|
||||
| { type: "create_role"; server: string; callback: (id: string) => void }
|
||||
| { type: "create_role"; server: Server; callback: (id: string) => void }
|
||||
);
|
||||
|
||||
export function SpecialInputModal(props: SpecialProps) {
|
||||
@@ -134,10 +135,7 @@ export function SpecialInputModal(props: SpecialProps) {
|
||||
}
|
||||
field={<Text id="app.settings.permissions.role_name" />}
|
||||
callback={async (name) => {
|
||||
const role = await client.servers.createRole(
|
||||
props.server,
|
||||
name,
|
||||
);
|
||||
const role = await props.server.createRole(name);
|
||||
props.callback(role.id);
|
||||
}}
|
||||
/>
|
||||
@@ -151,7 +149,7 @@ export function SpecialInputModal(props: SpecialProps) {
|
||||
field={<Text id="app.context_menu.custom_status" />}
|
||||
defaultValue={client.user?.status?.text}
|
||||
callback={(text) =>
|
||||
client.users.editUser({
|
||||
client.users.edit({
|
||||
status: {
|
||||
...client.user?.status,
|
||||
text: text.trim().length > 0 ? text : undefined,
|
||||
@@ -166,7 +164,14 @@ export function SpecialInputModal(props: SpecialProps) {
|
||||
<InputModal
|
||||
onClose={onClose}
|
||||
question={"Add Friend"}
|
||||
callback={(username) => client.users.addFriend(username)}
|
||||
callback={(username) =>
|
||||
client
|
||||
.req(
|
||||
"PUT",
|
||||
`/users/${username}/friend` as "/users/id/friend",
|
||||
)
|
||||
.then(undefined)
|
||||
}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { observer } from "mobx-react-lite";
|
||||
import { useHistory } from "react-router-dom";
|
||||
import { Channels, Servers, Users } from "revolt.js/dist/api/objects";
|
||||
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";
|
||||
import { User } from "revolt.js/dist/maps/Users";
|
||||
import { ulid } from "ulid";
|
||||
|
||||
import styles from "./Prompt.module.scss";
|
||||
@@ -9,9 +12,6 @@ import { useContext, useEffect, useState } from "preact/hooks";
|
||||
|
||||
import { TextReact } from "../../../lib/i18n";
|
||||
|
||||
import { Channel, Server, User } from "../../../mobx";
|
||||
import { useData } from "../../../mobx/State";
|
||||
|
||||
import Message from "../../../components/common/messaging/Message";
|
||||
import UserIcon from "../../../components/common/user/UserIcon";
|
||||
import InputBox from "../../../components/ui/InputBox";
|
||||
@@ -21,7 +21,7 @@ import Radio from "../../../components/ui/Radio";
|
||||
|
||||
import { Children } from "../../../types/Preact";
|
||||
import { AppContext } from "../../revoltjs/RevoltClient";
|
||||
import { mapMessage, takeError } from "../../revoltjs/util";
|
||||
import { takeError } from "../../revoltjs/util";
|
||||
import { useIntermediate } from "../Intermediate";
|
||||
|
||||
interface Props {
|
||||
@@ -60,7 +60,7 @@ type SpecialProps = { onClose: () => void } & (
|
||||
| { type: "leave_server"; target: Server }
|
||||
| { type: "delete_server"; target: Server }
|
||||
| { type: "delete_channel"; target: Channel }
|
||||
| { type: "delete_message"; target: Channels.Message }
|
||||
| { type: "delete_message"; target: MessageI }
|
||||
| {
|
||||
type: "create_invite";
|
||||
target: Channel;
|
||||
@@ -104,9 +104,7 @@ export const SpecialPromptModal = observer((props: SpecialProps) => {
|
||||
name = props.target.username;
|
||||
break;
|
||||
case "close_dm":
|
||||
name = client.users.get(
|
||||
client.channels.getRecipient(props.target._id),
|
||||
)?.username;
|
||||
name = props.target.recipient?.username;
|
||||
break;
|
||||
default:
|
||||
name = props.target.name;
|
||||
@@ -137,27 +135,19 @@ export const SpecialPromptModal = observer((props: SpecialProps) => {
|
||||
try {
|
||||
switch (props.type) {
|
||||
case "unfriend_user":
|
||||
await client.users.removeFriend(
|
||||
props.target._id,
|
||||
);
|
||||
await props.target.removeFriend();
|
||||
break;
|
||||
case "block_user":
|
||||
await client.users.blockUser(
|
||||
props.target._id,
|
||||
);
|
||||
await props.target.blockUser();
|
||||
break;
|
||||
case "leave_group":
|
||||
case "close_dm":
|
||||
case "delete_channel":
|
||||
await client.channels.delete(
|
||||
props.target._id,
|
||||
);
|
||||
props.target.delete();
|
||||
break;
|
||||
case "leave_server":
|
||||
case "delete_server":
|
||||
await client.servers.delete(
|
||||
props.target._id,
|
||||
);
|
||||
props.target.delete();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -203,11 +193,7 @@ export const SpecialPromptModal = observer((props: SpecialProps) => {
|
||||
setProcessing(true);
|
||||
|
||||
try {
|
||||
await client.channels.deleteMessage(
|
||||
props.target.channel,
|
||||
props.target._id,
|
||||
);
|
||||
|
||||
props.target.deleteMessage();
|
||||
onClose();
|
||||
} catch (err) {
|
||||
setError(takeError(err));
|
||||
@@ -229,7 +215,7 @@ export const SpecialPromptModal = observer((props: SpecialProps) => {
|
||||
id={`app.special.modals.prompt.confirm_delete_message_long`}
|
||||
/>
|
||||
<Message
|
||||
message={mapMessage(props.target)}
|
||||
message={props.target}
|
||||
head={true}
|
||||
contrast
|
||||
/>
|
||||
@@ -247,8 +233,8 @@ export const SpecialPromptModal = observer((props: SpecialProps) => {
|
||||
useEffect(() => {
|
||||
setProcessing(true);
|
||||
|
||||
client.channels
|
||||
.createInvite(props.target._id)
|
||||
props.target
|
||||
.createInvite()
|
||||
.then((code) => setCode(code))
|
||||
.catch((err) => setError(takeError(err)))
|
||||
.finally(() => setProcessing(false));
|
||||
@@ -306,10 +292,13 @@ export const SpecialPromptModal = observer((props: SpecialProps) => {
|
||||
setProcessing(true);
|
||||
|
||||
try {
|
||||
await client.members.kickMember(
|
||||
props.target._id,
|
||||
props.user._id,
|
||||
);
|
||||
client.members
|
||||
.get({
|
||||
server: props.target._id,
|
||||
user: props.user._id,
|
||||
})
|
||||
?.kick();
|
||||
|
||||
onClose();
|
||||
} catch (err) {
|
||||
setError(takeError(err));
|
||||
@@ -357,11 +346,9 @@ export const SpecialPromptModal = observer((props: SpecialProps) => {
|
||||
setProcessing(true);
|
||||
|
||||
try {
|
||||
await client.servers.banUser(
|
||||
props.target._id,
|
||||
props.user._id,
|
||||
{ reason },
|
||||
);
|
||||
await props.target.banUser(props.user._id, {
|
||||
reason,
|
||||
});
|
||||
onClose();
|
||||
} catch (err) {
|
||||
setError(takeError(err));
|
||||
@@ -420,14 +407,11 @@ export const SpecialPromptModal = observer((props: SpecialProps) => {
|
||||
|
||||
try {
|
||||
const channel =
|
||||
await client.servers.createChannel(
|
||||
props.target._id,
|
||||
{
|
||||
type,
|
||||
name,
|
||||
nonce: ulid(),
|
||||
},
|
||||
);
|
||||
await props.target.createChannel({
|
||||
type,
|
||||
name,
|
||||
nonce: ulid(),
|
||||
});
|
||||
|
||||
history.push(
|
||||
`/server/${props.target._id}/channel/${channel._id}`,
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
import { X } from "@styled-icons/boxicons-regular";
|
||||
import { observer } from "mobx-react-lite";
|
||||
import { Channel } from "revolt.js/dist/maps/Channels";
|
||||
|
||||
import styles from "./ChannelInfo.module.scss";
|
||||
|
||||
import { Channel } from "../../../mobx";
|
||||
|
||||
import Modal from "../../../components/ui/Modal";
|
||||
|
||||
import Markdown from "../../../components/markdown/Markdown";
|
||||
import { useClient } from "../../revoltjs/RevoltClient";
|
||||
import { useForceUpdate } from "../../revoltjs/hooks";
|
||||
import { getChannelName } from "../../revoltjs/util";
|
||||
|
||||
interface Props {
|
||||
@@ -26,12 +23,11 @@ export const ChannelInfo = observer(({ channel, onClose }: Props) => {
|
||||
return null;
|
||||
}
|
||||
|
||||
const client = useClient();
|
||||
return (
|
||||
<Modal visible={true} onClose={onClose}>
|
||||
<div className={styles.info}>
|
||||
<div className={styles.header}>
|
||||
<h1>{getChannelName(client, channel, true)}</h1>
|
||||
<h1>{getChannelName(channel, true)}</h1>
|
||||
<div onClick={onClose}>
|
||||
<X size={36} />
|
||||
</div>
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
import {
|
||||
Attachment,
|
||||
AttachmentMetadata,
|
||||
EmbedImage,
|
||||
} from "revolt.js/dist/api/objects";
|
||||
import { Attachment, AttachmentMetadata } from "revolt-api/types/Autumn";
|
||||
import { EmbedImage } from "revolt-api/types/January";
|
||||
|
||||
import styles from "./ImageViewer.module.scss";
|
||||
import { useContext, useEffect } from "preact/hooks";
|
||||
|
||||
import AttachmentActions from "../../../components/common/messaging/attachments/AttachmentActions";
|
||||
import EmbedMediaActions from "../../../components/common/messaging/embed/EmbedMediaActions";
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import { observer } from "mobx-react-lite";
|
||||
import { User } from "revolt.js/dist/maps/Users";
|
||||
|
||||
import styles from "./UserPicker.module.scss";
|
||||
import { Text } from "preact-i18n";
|
||||
|
||||
import { User } from "../../../mobx";
|
||||
|
||||
import Modal from "../../../components/ui/Modal";
|
||||
|
||||
import { Friend } from "../../../pages/friends/Friend";
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import { Users } from "revolt.js/dist/api/objects";
|
||||
import { RelationshipStatus } from "revolt-api/types/Users";
|
||||
|
||||
import styles from "./UserPicker.module.scss";
|
||||
import { Text } from "preact-i18n";
|
||||
import { useState } from "preact/hooks";
|
||||
|
||||
import { useData } from "../../../mobx/State";
|
||||
|
||||
import UserCheckbox from "../../../components/common/user/UserCheckbox";
|
||||
import Modal from "../../../components/ui/Modal";
|
||||
|
||||
import { useClient } from "../../revoltjs/RevoltClient";
|
||||
|
||||
interface Props {
|
||||
omit?: string[];
|
||||
onClose: () => void;
|
||||
@@ -19,7 +19,7 @@ export function UserPicker(props: Props) {
|
||||
const [selected, setSelected] = useState<string[]>([]);
|
||||
const omit = [...(props.omit || []), "00000000000000000000000000"];
|
||||
|
||||
const store = useData();
|
||||
const client = useClient();
|
||||
|
||||
return (
|
||||
<Modal
|
||||
@@ -33,11 +33,11 @@ export function UserPicker(props: Props) {
|
||||
},
|
||||
]}>
|
||||
<div className={styles.list}>
|
||||
{[...store.users.values()]
|
||||
{[...client.users.values()]
|
||||
.filter(
|
||||
(x) =>
|
||||
x &&
|
||||
x.relationship === Users.Relationship.Friend &&
|
||||
x.relationship === RelationshipStatus.Friend &&
|
||||
!omit.includes(x._id),
|
||||
)
|
||||
.map((x) => (
|
||||
|
||||
Reference in New Issue
Block a user