import { Match, Show, Switch } from "solid-js"; import { Trans } from "@lingui-solid/solid/macro"; import { useNavigate } from "@solidjs/router"; import { useMutation } from "@tanstack/solid-query"; import { ServerPublicInvite } from "stoat.js"; import { Avatar, Dialog, DialogProps, Row } from "@revolt/ui"; import { useModals } from ".."; import { Modals } from "../types"; /** * Modal to join a server */ export function InviteModal(props: DialogProps & Modals & { type: "invite" }) { const navigate = useNavigate(); const { showError } = useModals(); const join = useMutation(() => ({ mutationFn: () => (props.invite as ServerPublicInvite).join(), onSuccess(server) { navigate(server.path); }, onError: showError, })); return ( {(props.invite as ServerPublicInvite).serverName} } actions={[ { text: Cancel }, { text: ( Open} > Join ), onClick: join.mutateAsync, }, ]} isDisabled={join.isPending} scrimBackground={ props.invite instanceof ServerPublicInvite ? props.invite.serverBanner?.originalUrl : undefined } > You're already part of this server.} > You've been invited to join this server.
Would you like to join?
); }