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 ; if (channel.channel_type === "DirectMessage") { return ( <> {prefixType && "@"} {channel.recipient!.username} ); } if (channel.channel_type === "TextChannel" && prefixType) { return <>#{channel.name}; } return <>{channel.name}; }