import { navigate } from '@reach/router'; import { Avatar, utils } from '@roleypoly/design-system/atoms/avatar'; import { Button } from '@roleypoly/design-system/atoms/button'; import { DotOverlay } from '@roleypoly/design-system/atoms/dot-overlay'; import { Hero } from '@roleypoly/design-system/atoms/hero'; import { AccentTitle, CompletelyStylelessLink, SmallTitle, } from '@roleypoly/design-system/atoms/typography'; import { evaluatePermission } from '@roleypoly/misc-utils/hasPermission'; import { GuildSlug, UserGuildPermissions } from '@roleypoly/types'; import * as React from 'react'; import { FaDiscord } from 'react-icons/fa'; import { GoArrowLeft } from 'react-icons/go'; import { FlexLine, FlexWrap } from './ServerSetup.styled'; export type ServerSetupProps = { guildSlug: GuildSlug; }; export const ServerSetup = (props: ServerSetupProps) => ( <>
{utils.initialsFromName(props.guildSlug.name)}
  Roleypoly isn't in {props.guildSlug.name}
{renderMessage(props.guildSlug)}
); const renderMessage = ({ id, permissionLevel, name }: GuildSlug) => { if (evaluatePermission(permissionLevel, UserGuildPermissions.Admin)) { return adminMessage(id); } else if (evaluatePermission(permissionLevel, UserGuildPermissions.Manager)) { return managerMessage(id); } else { return userMessage(name); } }; const adminMessage = (id: string) => ( <> You're an admin of this server, click the button to get started!
); const managerMessage = (id: string) => ( <> You might have the permissions to add it to the server.
); const userMessage = (name: string) => { return ( <> If you think this is a mistake, please contact staff for {name}. ); };