mirror of
https://github.com/stoatchat/for-legacy-web.git
synced 2026-03-07 01:15:28 +00:00
57 lines
1.4 KiB
TypeScript
57 lines
1.4 KiB
TypeScript
import { Channel } from "revolt.js";
|
|
|
|
import { Text } from "preact-i18n";
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
export function takeError(error: any): string {
|
|
if (error.response) {
|
|
const type = error.response.data?.type;
|
|
if (type) {
|
|
return type;
|
|
}
|
|
|
|
switch (error.response.status) {
|
|
case 429:
|
|
return "TooManyRequests";
|
|
case 401:
|
|
case 403:
|
|
return "Unauthorized";
|
|
default:
|
|
return "UnknownError";
|
|
}
|
|
} else if (error.request) {
|
|
return "NetworkError";
|
|
}
|
|
|
|
console.error(error);
|
|
return "UnknownError";
|
|
}
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
export function mapError(error: any): never {
|
|
throw takeError(error);
|
|
}
|
|
|
|
export function getChannelName(
|
|
channel: Channel,
|
|
prefixType?: boolean,
|
|
): Children {
|
|
if (channel.channel_type === "SavedMessages")
|
|
return <Text id="app.navigation.tabs.saved" />;
|
|
|
|
if (channel.channel_type === "DirectMessage") {
|
|
return (
|
|
<>
|
|
{prefixType && "@"}
|
|
{channel.recipient!.username}
|
|
</>
|
|
);
|
|
}
|
|
|
|
if (channel.channel_type === "TextChannel" && prefixType) {
|
|
return <>#{channel.name}</>;
|
|
}
|
|
|
|
return <>{channel.name}</>;
|
|
}
|