mirror of
https://github.com/roleypoly/roleypoly.git
synced 2025-04-25 03:49:11 +00:00
feat(design-system): port templates
This commit is contained in:
parent
e61f827645
commit
c8adad6c81
18 changed files with 128 additions and 60 deletions
17
src/design-system/templates/auth-login/AuthLogin.stories.tsx
Normal file
17
src/design-system/templates/auth-login/AuthLogin.stories.tsx
Normal file
|
@ -0,0 +1,17 @@
|
|||
import * as React from 'react';
|
||||
import { AuthLogin } from './AuthLogin';
|
||||
import { guild } from 'roleypoly/src/design-system/shared-types/storyData';
|
||||
|
||||
export default {
|
||||
title: 'Templates/Auth: Login',
|
||||
args: {
|
||||
botName: 'roleypoly#3266',
|
||||
},
|
||||
};
|
||||
|
||||
export const NoSlug = (args) => <AuthLogin {...args} />;
|
||||
|
||||
export const WithSlug = (args) => <AuthLogin {...args} />;
|
||||
WithSlug.args = {
|
||||
guildSlug: guild,
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
import * as React from 'react';
|
||||
import { templateStories } from 'templates/templates.story';
|
||||
import { AuthLogin } from './AuthLogin';
|
||||
import { action } from '@storybook/addon-actions';
|
||||
import { guild } from 'roleypoly/src/design-system/shared-types/storyData';
|
||||
|
||||
const story = templateStories('Login', module);
|
||||
|
||||
story.add('No Slug', () => (
|
||||
<AuthLogin botName="roleypoly#3266" onSendSecretCode={action('secret code!')} />
|
||||
));
|
||||
story.add('With Slug', () => (
|
||||
<AuthLogin
|
||||
botName="roleypoly#3266"
|
||||
guildSlug={guild}
|
||||
onSendSecretCode={action('secret code!')}
|
||||
/>
|
||||
));
|
|
@ -1,9 +1,6 @@
|
|||
import { Hero } from 'roleypoly/src/design-system/atoms/hero';
|
||||
import { AppShell } from 'roleypoly/src/design-system/organisms/app-shell';
|
||||
import {
|
||||
Preauth,
|
||||
PreauthProps,
|
||||
} from 'roleypoly/src/design-system/organisms/preauth/Preauth';
|
||||
import { Preauth, PreauthProps } from 'roleypoly/src/design-system/organisms/preauth';
|
||||
import * as React from 'react';
|
||||
|
||||
export type AuthLoginProps = PreauthProps;
|
||||
|
|
12
src/design-system/templates/auth-login/BUILD.bazel
Normal file
12
src/design-system/templates/auth-login/BUILD.bazel
Normal file
|
@ -0,0 +1,12 @@
|
|||
load("//hack/bazel/js:react.bzl", "react_library")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
react_library(
|
||||
name = "auth-login",
|
||||
deps = [
|
||||
"//src/design-system/atoms/hero",
|
||||
"//src/design-system/organisms/app-shell",
|
||||
"//src/design-system/organisms/preauth",
|
||||
],
|
||||
)
|
14
src/design-system/templates/errors/BUILD.bazel
Normal file
14
src/design-system/templates/errors/BUILD.bazel
Normal file
|
@ -0,0 +1,14 @@
|
|||
load("//hack/bazel/js:react.bzl", "react_library")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
react_library(
|
||||
name = "errors",
|
||||
deps = [
|
||||
"//src/design-system/atoms/dot-overlay",
|
||||
"//src/design-system/atoms/hero",
|
||||
"//src/design-system/molecules/error-banner",
|
||||
"//src/design-system/organisms/app-shell",
|
||||
"//src/design-system/shared-types",
|
||||
],
|
||||
)
|
|
@ -1,9 +1,9 @@
|
|||
import * as React from 'react';
|
||||
import { templateStories } from 'templates/templates.story';
|
||||
import { storiesOf } from '@storybook/react';
|
||||
import { Error } from './Errors';
|
||||
import { errorMessages } from './errorStrings';
|
||||
|
||||
const messages = templateStories('Errors/Messages', module);
|
||||
const messages = storiesOf('Templates/Errors', module);
|
||||
|
||||
for (let message in errorMessages) {
|
||||
messages.add(`${message}`, () => <Error code={message} />);
|
|
@ -1,15 +1,18 @@
|
|||
import * as React from 'react';
|
||||
import { DotOverlay } from 'roleypoly/src/design-system/atoms/dot-overlay';
|
||||
import { Hero } from 'roleypoly/src/design-system/atoms/hero';
|
||||
import {
|
||||
ErrorBanner,
|
||||
ErrorMessage,
|
||||
} from 'roleypoly/src/design-system/molecules/error-banner';
|
||||
import { AppShell } from 'roleypoly/src/design-system/organisms/app-shell';
|
||||
import * as React from 'react';
|
||||
import { ErrorMessage, getMessageFromCode } from './errorStrings';
|
||||
import { ErrorBanner } from 'roleypoly/src/design-system/organisms/error-banner';
|
||||
import { RoleypolyUser } from '@roleypoly/rpc/shared';
|
||||
import { RoleypolyUser } from 'roleypoly/src/design-system/shared-types';
|
||||
import { getMessageFromCode } from './errorStrings';
|
||||
|
||||
export type ErrorProps = {
|
||||
code: string | number;
|
||||
messageOverride?: ErrorMessage;
|
||||
user?: RoleypolyUser.AsObject | null;
|
||||
user?: RoleypolyUser | null;
|
||||
};
|
||||
|
||||
export const Error = (props: ErrorProps) => {
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
export type ErrorMessage = {
|
||||
english: string;
|
||||
japanese?: string;
|
||||
friendlyCode?: string;
|
||||
};
|
||||
import { ErrorMessage } from 'roleypoly/src/design-system/molecules/error-banner';
|
||||
|
||||
const defaultMessage: Required<ErrorMessage> = {
|
||||
english: `Something went bad. How could this happen?`,
|
||||
|
|
12
src/design-system/templates/help-page/BUILD.bazel
Normal file
12
src/design-system/templates/help-page/BUILD.bazel
Normal file
|
@ -0,0 +1,12 @@
|
|||
load("//hack/bazel/js:react.bzl", "react_library")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
react_library(
|
||||
name = "help-page",
|
||||
deps = [
|
||||
"//src/design-system/molecules/help-page-base",
|
||||
"//src/design-system/organisms/app-shell",
|
||||
"//src/design-system/shared-types",
|
||||
],
|
||||
)
|
|
@ -1,12 +1,13 @@
|
|||
import * as React from 'react';
|
||||
import { templateStories } from 'templates/templates.story';
|
||||
import { HelpPageTemplate } from './HelpPage';
|
||||
|
||||
const story = templateStories('Help Page', module);
|
||||
export default {
|
||||
title: 'Templates/Help Page',
|
||||
};
|
||||
|
||||
story.add('Base', () => (
|
||||
export const Base = () => (
|
||||
<HelpPageTemplate user={null}>
|
||||
<h1>What is the world but vibrations?</h1>
|
||||
<p>Vibrations that synchronize and tie it together, running free forever.</p>
|
||||
</HelpPageTemplate>
|
||||
));
|
||||
);
|
|
@ -1,7 +1,7 @@
|
|||
import * as React from 'react';
|
||||
import { AppShell } from 'roleypoly/src/design-system/organisms/app-shell';
|
||||
import { HelpPageBase } from 'roleypoly/src/design-system/organisms/help-page-base';
|
||||
import { RoleypolyUser } from '@roleypoly/rpc/shared';
|
||||
import { HelpPageBase } from 'roleypoly/src/design-system/molecules/help-page-base';
|
||||
import { RoleypolyUser } from 'roleypoly/src/design-system/shared-types';
|
||||
|
||||
type HelpPageProps = {
|
||||
user: RoleypolyUser.AsObject | null;
|
||||
|
|
1
src/design-system/templates/help-page/index.ts
Normal file
1
src/design-system/templates/help-page/index.ts
Normal file
|
@ -0,0 +1 @@
|
|||
export * from './HelpPage';
|
11
src/design-system/templates/landing/BUILD.bazel
Normal file
11
src/design-system/templates/landing/BUILD.bazel
Normal file
|
@ -0,0 +1,11 @@
|
|||
load("//hack/bazel/js:react.bzl", "react_library")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
react_library(
|
||||
name = "landing",
|
||||
deps = [
|
||||
"//src/design-system/organisms/app-shell",
|
||||
"//src/design-system/organisms/landing",
|
||||
],
|
||||
)
|
8
src/design-system/templates/landing/Landing.stories.tsx
Normal file
8
src/design-system/templates/landing/Landing.stories.tsx
Normal file
|
@ -0,0 +1,8 @@
|
|||
import * as React from 'react';
|
||||
import { LandingTemplate } from './Landing';
|
||||
|
||||
export default {
|
||||
title: 'Templates/Landing',
|
||||
};
|
||||
|
||||
export const Landing = () => <LandingTemplate />;
|
|
@ -1,7 +0,0 @@
|
|||
import * as React from 'react';
|
||||
import { templateStories } from 'templates/templates.story';
|
||||
import { LandingTemplate } from './Landing';
|
||||
|
||||
const story = templateStories('Landing', module);
|
||||
|
||||
story.add('Landing', () => <LandingTemplate />);
|
12
src/design-system/templates/role-picker/BUILD.bazel
Normal file
12
src/design-system/templates/role-picker/BUILD.bazel
Normal file
|
@ -0,0 +1,12 @@
|
|||
load("//hack/bazel/js:react.bzl", "react_library")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
react_library(
|
||||
name = "role-picker",
|
||||
deps = [
|
||||
"//src/design-system/organisms/app-shell",
|
||||
"//src/design-system/organisms/role-picker",
|
||||
"//src/design-system/shared-types",
|
||||
],
|
||||
)
|
|
@ -1,5 +1,4 @@
|
|||
import * as React from 'react';
|
||||
import { templateStories } from 'templates/templates.story';
|
||||
import { RolePickerTemplate, RolePickerTemplateProps } from './RolePicker';
|
||||
import {
|
||||
guildData,
|
||||
|
@ -9,10 +8,6 @@ import {
|
|||
rpUser,
|
||||
guildEnum,
|
||||
} from 'roleypoly/src/design-system/shared-types/storyData';
|
||||
import { action } from '@storybook/addon-actions';
|
||||
import { boolean } from '@storybook/addon-knobs';
|
||||
|
||||
const story = templateStories('Role Picker', module);
|
||||
|
||||
const props: RolePickerTemplateProps = {
|
||||
guildData: {
|
||||
|
@ -23,13 +18,25 @@ const props: RolePickerTemplateProps = {
|
|||
member: member,
|
||||
guild: guild,
|
||||
roles: guildRoles,
|
||||
onSubmit: action('onSubmit'),
|
||||
editable: false,
|
||||
user: rpUser,
|
||||
guildEnumeration: guildEnum,
|
||||
activeGuildId: guild.id,
|
||||
};
|
||||
|
||||
story.add('Role Picker', () => {
|
||||
return <RolePickerTemplate {...props} editable={boolean('Editable', false)} />;
|
||||
});
|
||||
export default {
|
||||
title: 'Templates/Role Picker',
|
||||
components: RolePickerTemplate,
|
||||
args: props,
|
||||
};
|
||||
|
||||
export const Default = (args) => {
|
||||
return <RolePickerTemplate {...args} />;
|
||||
};
|
||||
|
||||
export const Editable = (args) => {
|
||||
return <RolePickerTemplate {...args} />;
|
||||
};
|
||||
Editable.args = {
|
||||
editable: true,
|
||||
};
|
|
@ -4,12 +4,14 @@ import {
|
|||
RolePicker,
|
||||
RolePickerProps,
|
||||
} from 'roleypoly/src/design-system/organisms/role-picker';
|
||||
import { RoleypolyUser } from '@roleypoly/rpc/shared';
|
||||
import { GuildEnumeration } from '@roleypoly/rpc/platform';
|
||||
import {
|
||||
GuildEnumeration,
|
||||
RoleypolyUser,
|
||||
} from 'roleypoly/src/design-system/shared-types';
|
||||
|
||||
export type RolePickerTemplateProps = RolePickerProps & {
|
||||
user: RoleypolyUser.AsObject;
|
||||
guildEnumeration?: GuildEnumeration.AsObject;
|
||||
user: RoleypolyUser;
|
||||
guildEnumeration?: GuildEnumeration;
|
||||
activeGuildId?: string;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue