import styles from './Invite.module.scss'; import Button from '../../components/ui/Button'; import { ArrowLeft } from "@styled-icons/feather"; import Overline from '../../components/ui/Overline'; import { Invites } from "revolt.js/dist/api/objects"; import Preloader from '../../components/ui/Preloader'; import { takeError } from "../../context/revoltjs/util"; import { useHistory, useParams } from "react-router-dom"; import ServerIcon from '../../components/common/ServerIcon'; import UserIcon from '../../components/common/user/UserIcon'; import { useContext, useEffect, useState } from "preact/hooks"; import RequiresOnline from '../../context/revoltjs/RequiresOnline'; import { AppContext, ClientStatus, StatusContext } from "../../context/revoltjs/RevoltClient"; export default function Invite() { const history = useHistory(); const client = useContext(AppContext); const status = useContext(StatusContext); const { code } = useParams<{ code: string }>(); const [ processing, setProcessing ] = useState(false); const [ error, setError ] = useState(undefined); const [ invite, setInvite ] = useState(undefined); useEffect(() => { if (typeof invite === 'undefined' && (status === ClientStatus.ONLINE || status === ClientStatus.READY)) { client.fetchInvite(code) .then(data => setInvite(data)) .catch(err => setError(takeError(err))) } }, [ status ]); if (typeof invite === 'undefined') { return (
{ error ? : }
) } return (
history.push('/')} />
{ !processing &&
}
{ processing ? : <>

{ invite.server_name }

#{invite.channel_name}

Invited by { invite.user_name }

}
); }