Refactor node packages to yarn workspaces & ditch next.js for CRA. (#161)

* 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
This commit is contained in:
41666 2021-03-12 18:04:49 -05:00 committed by GitHub
parent 49e308507e
commit 2ff6588030
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
328 changed files with 16624 additions and 3525 deletions

View file

@ -0,0 +1,10 @@
import * as React from 'react';
import { HelpStoryWrapper } from '../../molecules/help-page-base/storyDecorator';
import { WhyNoRoles } from './WhyNoRoles';
export default {
title: 'Organisms/Help Pages',
decorators: [HelpStoryWrapper],
};
export const WhyNoRoles_ = () => <WhyNoRoles />;

View file

@ -0,0 +1,39 @@
import { numberToChroma, palette } from '@roleypoly/design-system/atoms/colors';
import { Role } from '@roleypoly/types';
import styled, { css } from 'styled-components';
export const DiscordBase = styled.div`
background-color: ${palette.discord100};
border: solid 1px rgba(0, 0, 0, 0.15);
border-radius: 3px;
padding: 10px;
user-select: none;
width: 250px;
`;
const hover = (roleColor: string) => css`
color: #efefef;
background-color: ${roleColor};
cursor: pointer;
`;
export const DiscordRole = styled.div<{
discordRole: Role;
isRoleypoly: boolean;
}>`
/* stylelint-disable function-name-case, function-whitespace-after */
/* Disabled due to postcss bug parsing the below functions as CSS and not a JS interpolation */
padding: 6px 10px;
color: ${(props) => numberToChroma(props.discordRole.color).css()};
border-radius: 3px;
:hover {
${(props) => hover(numberToChroma(props.discordRole.color).alpha(0.5).css())}
}
${(props) =>
props.isRoleypoly &&
hover(numberToChroma(props.discordRole.color).alpha(0.5).css())}
`;

View file

@ -0,0 +1,83 @@
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>
);

View file

@ -0,0 +1 @@
export * from './WhyNoRoles';