mirror of
https://github.com/roleypoly/roleypoly.git
synced 2025-06-16 09:39:09 +00:00
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:
parent
49e308507e
commit
2ff6588030
328 changed files with 16624 additions and 3525 deletions
11
packages/design-system/atoms/horizontal-switch/BUILD.bazel
Normal file
11
packages/design-system/atoms/horizontal-switch/BUILD.bazel
Normal file
|
@ -0,0 +1,11 @@
|
|||
load("//hack/bazel/js:react.bzl", "react_library")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
react_library(
|
||||
name = "horizontal-switch",
|
||||
deps = [
|
||||
"//src/design-system/atoms/colors",
|
||||
"//src/design-system/atoms/timings",
|
||||
],
|
||||
)
|
|
@ -0,0 +1,33 @@
|
|||
import * as React from 'react';
|
||||
import { HorizontalSwitch } from './HorizontalSwitch';
|
||||
|
||||
export default {
|
||||
title: 'Atoms/Horizontal Switch',
|
||||
component: HorizontalSwitch,
|
||||
args: {
|
||||
items: ['true', 'false'],
|
||||
value: 'true',
|
||||
},
|
||||
};
|
||||
|
||||
const Story = (args) => {
|
||||
const [value, setValue] = React.useState(args.value);
|
||||
|
||||
return (
|
||||
<HorizontalSwitch
|
||||
{...args}
|
||||
value={value}
|
||||
onChange={(a) => {
|
||||
setValue(a);
|
||||
args.onChange(a);
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export const Switch = Story.bind({});
|
||||
export const SwitchThree = Story.bind({});
|
||||
SwitchThree.args = {
|
||||
items: ['aaa', 'bbb', 'ccc'],
|
||||
value: 'aaa',
|
||||
};
|
|
@ -0,0 +1,23 @@
|
|||
import { palette } from '@roleypoly/design-system/atoms/colors';
|
||||
import { transitions } from '@roleypoly/design-system/atoms/timings';
|
||||
import styled, { css } from 'styled-components';
|
||||
|
||||
export const Item = styled.div<{ selected: boolean }>`
|
||||
padding: 10px;
|
||||
box-sizing: border-box;
|
||||
transition: background-color ease-in-out ${transitions.actionable}s;
|
||||
${(props) =>
|
||||
props.selected &&
|
||||
css`
|
||||
background-color: ${palette.taupe300};
|
||||
`}
|
||||
`;
|
||||
|
||||
export const Wrapper = styled.div`
|
||||
display: inline-flex;
|
||||
user-select: none;
|
||||
cursor: pointer;
|
||||
border: 1px solid ${palette.taupe200};
|
||||
border-radius: calc(1em + 20px);
|
||||
overflow: hidden;
|
||||
`;
|
|
@ -0,0 +1,28 @@
|
|||
import * as React from 'react';
|
||||
import { Item, Wrapper } from './HorizontalSwitch.styled';
|
||||
|
||||
export type SwitchProps = {
|
||||
items: string[];
|
||||
value: string;
|
||||
onChange: (value: string) => void;
|
||||
};
|
||||
|
||||
export const HorizontalSwitch = (props: SwitchProps) => {
|
||||
const handleClick = (item: typeof props.value) => () => {
|
||||
props.onChange?.(item);
|
||||
};
|
||||
|
||||
return (
|
||||
<Wrapper>
|
||||
{props.items.map((item, idx) => (
|
||||
<Item
|
||||
key={idx}
|
||||
selected={item === props.value}
|
||||
onClick={handleClick(item)}
|
||||
>
|
||||
{item}
|
||||
</Item>
|
||||
))}
|
||||
</Wrapper>
|
||||
);
|
||||
};
|
1
packages/design-system/atoms/horizontal-switch/index.tsx
Normal file
1
packages/design-system/atoms/horizontal-switch/index.tsx
Normal file
|
@ -0,0 +1 @@
|
|||
export * from './HorizontalSwitch';
|
Loading…
Add table
Add a link
Reference in a new issue