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! }> Add Roleypoly > ); const managerMessage = (id: string) => ( <> You might have the permissions to add it to the server. }> Add Roleypoly > ); const userMessage = (name: string) => { return ( <> If you think this is a mistake, please contact staff for {name}. { // void router.push('/'); }} color="muted" size="small" icon={} > Go back > ); };