mirror of
https://github.com/roleypoly/roleypoly.git
synced 2025-04-25 11:59:11 +00:00
* chore: restructure project into yarn workspaces, remove next * fix tests, remove webapp from terraform * remove more ui deployment bits * remove pages, fix FUNDING.yml * remove isomorphism * remove next providers * fix linting issues * feat: start basis of new web ui system on CRA * chore: move types to @roleypoly/types package * chore: move src/common/utils to @roleypoly/misc-utils * chore: remove roleypoly/ path remappers * chore: renmove vercel config * chore: re-add worker-types to api package * chore: fix type linting scope for api * fix(web): craco should include all of packages dir * fix(ci): change api webpack path for wrangler * chore: remove GAR actions from CI * chore: update codeql job * chore: test better github dar matcher in lint-staged
83 lines
2.3 KiB
TypeScript
83 lines
2.3 KiB
TypeScript
import { palette } from '@roleypoly/design-system/atoms/colors';
|
|
import { HalfsiesContainer, HalfsiesItem } from '@roleypoly/design-system/atoms/halfsies';
|
|
import { SparkleOverlay } from '@roleypoly/design-system/atoms/sparkle';
|
|
import { Role } from '@roleypoly/types';
|
|
import { demoData } from '@roleypoly/types/demoData';
|
|
import chroma from 'chroma-js';
|
|
import * as React from 'react';
|
|
import { FaCheck, FaTimes } from 'react-icons/fa';
|
|
import { DiscordBase, DiscordRole } from './WhyNoRoles.styled';
|
|
|
|
const adminRoles: Role[] = [
|
|
{
|
|
id: 'roley2',
|
|
name: 'Admin',
|
|
permissions: '0',
|
|
color: chroma('hotpink').num(),
|
|
position: -1,
|
|
managed: true,
|
|
safety: 0,
|
|
},
|
|
{
|
|
id: 'roley3',
|
|
name: 'Moderator',
|
|
permissions: '0',
|
|
color: chroma('lime').num(),
|
|
position: -1,
|
|
managed: true,
|
|
safety: 0,
|
|
},
|
|
];
|
|
|
|
const roleypolyRole: Role = {
|
|
id: 'roley',
|
|
name: 'Roleypoly',
|
|
permissions: '0',
|
|
color: chroma(palette.taupe500).num(),
|
|
position: -1,
|
|
managed: true,
|
|
safety: 0,
|
|
};
|
|
|
|
const goodRoles = [...adminRoles, roleypolyRole, ...demoData];
|
|
|
|
const badRoles = [...adminRoles, ...demoData, roleypolyRole];
|
|
|
|
const MaybeWithOverlay = (props: { children: React.ReactNode; withOverlay: boolean }) => {
|
|
if (props.withOverlay) {
|
|
return (
|
|
<SparkleOverlay size={-5} repeatCount={10}>
|
|
{props.children}
|
|
</SparkleOverlay>
|
|
);
|
|
} else {
|
|
return <>{props.children}</>;
|
|
}
|
|
};
|
|
|
|
const Example = (props: { roles: Role[]; isGood: boolean }) => (
|
|
<div>
|
|
<DiscordBase>
|
|
{props.roles.map((r) => (
|
|
<MaybeWithOverlay withOverlay={props.isGood && r.name === 'Roleypoly'}>
|
|
<DiscordRole discordRole={r} isRoleypoly={r.name === 'Roleypoly'}>
|
|
{r.name}
|
|
</DiscordRole>
|
|
</MaybeWithOverlay>
|
|
))}
|
|
</DiscordBase>
|
|
</div>
|
|
);
|
|
|
|
export const WhyNoRoles = () => (
|
|
<HalfsiesContainer>
|
|
<HalfsiesItem>
|
|
<FaCheck /> Good
|
|
<Example isGood roles={goodRoles} />
|
|
</HalfsiesItem>
|
|
<HalfsiesItem>
|
|
<FaTimes /> Baddd
|
|
<Example isGood={false} roles={badRoles} />
|
|
</HalfsiesItem>
|
|
</HalfsiesContainer>
|
|
);
|