mirror of
https://github.com/FoxxMD/multi-scrobbler.git
synced 2026-07-09 17:28:28 +00:00
refactor(storybook): organize storybook file and loglical
Some checks are pending
Publish Docker image to Dockerhub / test (push) Waiting to run
Publish Docker image to Dockerhub / Build OCI Images (push) Blocked by required conditions
Publish Docker image to Dockerhub / Build OCI Images-1 (push) Blocked by required conditions
Publish Docker image to Dockerhub / Merge OCI Images and Push (push) Blocked by required conditions
Some checks are pending
Publish Docker image to Dockerhub / test (push) Waiting to run
Publish Docker image to Dockerhub / Build OCI Images (push) Blocked by required conditions
Publish Docker image to Dockerhub / Build OCI Images-1 (push) Blocked by required conditions
Publish Docker image to Dockerhub / Merge OCI Images and Push (push) Blocked by required conditions
This commit is contained in:
parent
e04965eb35
commit
3e7bbab5b0
26 changed files with 105 additions and 528 deletions
Binary file not shown.
|
|
@ -1,58 +0,0 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
|
||||
import { fn } from 'storybook/test';
|
||||
|
||||
import { Button } from './Button.js';
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Example/Button',
|
||||
component: Button,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
layout: 'centered',
|
||||
},
|
||||
// This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
|
||||
tags: ['autodocs'],
|
||||
// More on argTypes: https://storybook.js.org/docs/api/argtypes
|
||||
argTypes: {
|
||||
backgroundColor: { control: 'color' },
|
||||
},
|
||||
// Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#story-args
|
||||
args: { onClick: fn() },
|
||||
});
|
||||
|
||||
// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
|
||||
export const Primary = meta.story({
|
||||
args: {
|
||||
primary: true,
|
||||
label: 'Button',
|
||||
},
|
||||
});
|
||||
|
||||
export const Secondary = meta.story({
|
||||
args: {
|
||||
label: 'Button',
|
||||
},
|
||||
});
|
||||
|
||||
export const Large = meta.story({
|
||||
args: {
|
||||
size: 'large',
|
||||
label: 'Button',
|
||||
},
|
||||
});
|
||||
|
||||
export const Small = meta.story({
|
||||
args: {
|
||||
size: 'small',
|
||||
label: 'Button',
|
||||
},
|
||||
});
|
||||
|
||||
export const Mine = meta.story({
|
||||
args: {
|
||||
primary: false,
|
||||
label: "Button"
|
||||
}
|
||||
});
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
import React from 'react';
|
||||
|
||||
import './button.css';
|
||||
|
||||
export interface ButtonProps {
|
||||
/** Is this the principal call to action on the page? */
|
||||
primary?: boolean;
|
||||
/** What background color to use */
|
||||
backgroundColor?: string;
|
||||
/** How large should the button be? */
|
||||
size?: 'small' | 'medium' | 'large';
|
||||
/** Button contents */
|
||||
label: string;
|
||||
/** Optional click handler */
|
||||
onClick?: () => void;
|
||||
}
|
||||
|
||||
/** Primary UI component for user interaction */
|
||||
export const Button = ({
|
||||
primary = false,
|
||||
size = 'medium',
|
||||
backgroundColor,
|
||||
label,
|
||||
...props
|
||||
}: ButtonProps) => {
|
||||
const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary';
|
||||
return (
|
||||
<button
|
||||
type="button"
|
||||
className={['storybook-button', `storybook-button--${size}`, mode].join(' ')}
|
||||
style={{ backgroundColor }}
|
||||
{...props}
|
||||
>
|
||||
{label}
|
||||
</button>
|
||||
);
|
||||
};
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
|
||||
import { AppHeader } from "../client/components/AppHeader.js";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
|
||||
const meta = preview.meta({
|
||||
title: 'Example/Header',
|
||||
component: AppHeader,
|
||||
// This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
|
||||
tags: ['autodocs'],
|
||||
parameters: {
|
||||
// More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
|
||||
layout: 'padded',
|
||||
},
|
||||
render: function Render(args) {
|
||||
return (<AppHeader/>)
|
||||
},
|
||||
decorators: [
|
||||
(Story) => (<Provider><Story/></Provider>),
|
||||
]
|
||||
});
|
||||
|
||||
export const LoggedIn = meta.story({
|
||||
args: {
|
||||
user: {
|
||||
name: 'Jane Doe',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const LoggedOut = meta.story();
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
import React from 'react';
|
||||
|
||||
import { Button } from './Button';
|
||||
import './header.css';
|
||||
|
||||
type User = {
|
||||
name: string;
|
||||
};
|
||||
|
||||
export interface HeaderProps {
|
||||
user?: User;
|
||||
onLogin?: () => void;
|
||||
onLogout?: () => void;
|
||||
onCreateAccount?: () => void;
|
||||
}
|
||||
|
||||
export const Header = ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps) => (
|
||||
<header>
|
||||
<div className="storybook-header">
|
||||
<div>
|
||||
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" fillRule="evenodd">
|
||||
<path
|
||||
d="M10 0h12a10 10 0 0110 10v12a10 10 0 01-10 10H10A10 10 0 010 22V10A10 10 0 0110 0z"
|
||||
fill="#FFF"
|
||||
/>
|
||||
<path
|
||||
d="M5.3 10.6l10.4 6v11.1l-10.4-6v-11zm11.4-6.2l9.7 5.5-9.7 5.6V4.4z"
|
||||
fill="#555AB9"
|
||||
/>
|
||||
<path
|
||||
d="M27.2 10.6v11.2l-10.5 6V16.5l10.5-6zM15.7 4.4v11L6 10l9.7-5.5z"
|
||||
fill="#91BAF8"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
<h1>Acme</h1>
|
||||
</div>
|
||||
<div>
|
||||
{user ? (
|
||||
<>
|
||||
<span className="welcome">
|
||||
Welcome, <b>{user.name}</b>!
|
||||
</span>
|
||||
<Button size="small" onClick={onLogout} label="Log out" />
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<Button size="small" onClick={onLogin} label="Log in" />
|
||||
<Button primary size="small" onClick={onCreateAccount} label="Sign up" />
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
);
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
|
||||
import { expect, userEvent, within } from 'storybook/test';
|
||||
|
||||
import { Page } from './Page.js';
|
||||
|
||||
const meta = preview.meta({
|
||||
title: 'Example/Page',
|
||||
component: Page,
|
||||
parameters: {
|
||||
// More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
|
||||
layout: 'fullscreen',
|
||||
},
|
||||
});
|
||||
|
||||
export const LoggedOut = meta.story();
|
||||
|
||||
// More on component testing: https://storybook.js.org/docs/writing-tests/interaction-testing
|
||||
export const LoggedIn = meta.story({
|
||||
play: async ({ canvasElement }) => {
|
||||
const canvas = within(canvasElement);
|
||||
const loginButton = canvas.getByRole('button', { name: /Log in/i });
|
||||
await expect(loginButton).toBeInTheDocument();
|
||||
await userEvent.click(loginButton);
|
||||
await expect(loginButton).not.toBeInTheDocument();
|
||||
|
||||
const logoutButton = canvas.getByRole('button', { name: /Log out/i });
|
||||
await expect(logoutButton).toBeInTheDocument();
|
||||
},
|
||||
});
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
import React from 'react';
|
||||
|
||||
import { Header } from './Header';
|
||||
import './page.css';
|
||||
|
||||
type User = {
|
||||
name: string;
|
||||
};
|
||||
|
||||
export const Page: React.FC = () => {
|
||||
const [user, setUser] = React.useState<User>();
|
||||
|
||||
return (
|
||||
<article>
|
||||
<Header
|
||||
user={user}
|
||||
onLogin={() => setUser({ name: 'Jane Doe' })}
|
||||
onLogout={() => setUser(undefined)}
|
||||
onCreateAccount={() => setUser({ name: 'Jane Doe' })}
|
||||
/>
|
||||
|
||||
<section className="storybook-page">
|
||||
<h2>Pages in Storybook</h2>
|
||||
<p>
|
||||
We recommend building UIs with a{' '}
|
||||
<a href="https://componentdriven.org" target="_blank" rel="noopener noreferrer">
|
||||
<strong>component-driven</strong>
|
||||
</a>{' '}
|
||||
process starting with atomic components and ending with pages.
|
||||
</p>
|
||||
<p>
|
||||
Render pages with mock data. This makes it easy to build and review page states without
|
||||
needing to navigate to them in your app. Here are some handy patterns for managing page
|
||||
data in Storybook:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Use a higher-level connected component. Storybook helps you compose such data from the
|
||||
"args" of child component stories
|
||||
</li>
|
||||
<li>
|
||||
Assemble data in the page component from your services. You can mock these services out
|
||||
using Storybook.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Get a guided tutorial on component-driven development at{' '}
|
||||
<a href="https://storybook.js.org/tutorials/" target="_blank" rel="noopener noreferrer">
|
||||
Storybook tutorials
|
||||
</a>
|
||||
. Read more in the{' '}
|
||||
<a href="https://storybook.js.org/docs" target="_blank" rel="noopener noreferrer">
|
||||
docs
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
<div className="tip-wrapper">
|
||||
<span className="tip">Tip</span> Adjust the width of the canvas with the{' '}
|
||||
<svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" fillRule="evenodd">
|
||||
<path
|
||||
d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0 01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0 010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z"
|
||||
id="a"
|
||||
fill="#999"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
Viewports addon in the toolbar
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
);
|
||||
};
|
||||
|
|
@ -1,30 +1,30 @@
|
|||
import '../client/wdyr.js';
|
||||
import preview from "../../.storybook/preview.js";
|
||||
import '../../client/wdyr.js';
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
import { http, HttpResponse, delay, sse } from 'msw';
|
||||
|
||||
import { fn } from 'storybook/test';
|
||||
import { Container } from '@chakra-ui/react';
|
||||
import { ListContainerFetchable, ListContainerFilterable, ActivityList } from "../client/components/playActivity/ActivityList.js";
|
||||
import {Provider} from "../client/components/Provider.js";
|
||||
import { generateJsonPlays, generatePlay, normalizePlays } from "../core/PlayTestUtils.js";
|
||||
import { ErrorLike, JsonPlayObject, PlayState, qsOptions } from "../core/Atomic.js";
|
||||
import {playWithLifecycleScrobble, generatePlayWithLifecycle, randomPlayState} from '../core/tests/utils/fixtures.js'
|
||||
import { generateArray } from "../core/DataUtils.js";
|
||||
import { ListContainerFetchable, ListContainerFilterable, ActivityList } from "../../client/components/playActivity/ActivityList.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { generateJsonPlays, generatePlay, normalizePlays } from "../../core/PlayTestUtils.js";
|
||||
import { ErrorLike, JsonPlayObject, PlayState, qsOptions } from "../../core/Atomic.js";
|
||||
import {playWithLifecycleScrobble, generatePlayWithLifecycle, randomPlayState} from '../../core/tests/utils/fixtures.js'
|
||||
import { generateArray } from "../../core/DataUtils.js";
|
||||
import dayjs from "dayjs";
|
||||
import qs from 'qs';
|
||||
import { asJsonPlayObject } from "../core/PlayMarshalUtils.js";
|
||||
import { generatePlayApiCommon, generatePlayApiCommonDetailed, generatePlayApiCommonDetailedList } from "../core/tests/utils/apiFixtures.js";
|
||||
import { MsSseEvent, PlayApiCommonDetailed } from "../core/Api.js";
|
||||
import { CompareDateBetween, PaginatedResponse } from "../backend/common/database/drizzle/repositories/BaseRepository.js";
|
||||
import { QueryPlaysOptsJson } from '../backend/common/database/drizzle/repositories/PlayRepository.js';
|
||||
import { asJsonPlayObject } from "../../core/PlayMarshalUtils.js";
|
||||
import { generatePlayApiCommon, generatePlayApiCommonDetailed, generatePlayApiCommonDetailedList } from "../../core/tests/utils/apiFixtures.js";
|
||||
import { MsSseEvent, PlayApiCommonDetailed } from "../../core/Api.js";
|
||||
import { CompareDateBetween, PaginatedResponse } from "../../backend/common/database/drizzle/repositories/BaseRepository.js";
|
||||
import { QueryPlaysOptsJson } from '../../backend/common/database/drizzle/repositories/PlayRepository.js';
|
||||
import { SSEProvider } from "@flamefrontend/sse-runtime-react";
|
||||
import { sseProviderOptions } from '../client/AppNext.js';
|
||||
import { sseProviderOptions } from '../../client/AppNext.js';
|
||||
import { faker } from '@faker-js/faker';
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/Activity List',
|
||||
title: 'Activities/List',
|
||||
component: ActivityList,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -10,7 +10,7 @@ import { ActivitySummarySkeleton } from "../../client/components/ActivityDetail.
|
|||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Static Components/Activity List Skeleton',
|
||||
title: 'Activities/List Skeleton',
|
||||
component: ActivitySummarySkeleton
|
||||
,
|
||||
parameters: {
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
import { Container } from '@chakra-ui/react';
|
||||
|
||||
import { fn } from 'storybook/test';
|
||||
import { ErrorAlert } from "../client/components/ErrorAlert.js";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { ErrorLike } from "../core/Atomic.js";
|
||||
import { PlayStateFilter } from "../client/components/playActivity/ListFilters.js";
|
||||
import { ErrorAlert } from "../../client/components/ErrorAlert.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { ErrorLike } from "../../core/Atomic.js";
|
||||
import { PlayStateFilter } from "../../client/components/playActivity/ListFilters.js";
|
||||
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/List Filters/Play State',
|
||||
title: 'Activities/List Filters/Play State',
|
||||
component: PlayStateFilter,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
import preview from "../../../.storybook/preview.js";
|
||||
import preview from "../../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
import { Container } from '@chakra-ui/react';
|
||||
|
||||
import { fn } from 'storybook/test';
|
||||
import { PlayDateRangeFilter } from "../../client/components/playActivity/ListFilters.js";
|
||||
import { Provider } from "../../client/components/Provider.js";
|
||||
import { PlayDateRangeFilter } from "../../../client/components/playActivity/ListFilters.js";
|
||||
import { Provider } from "../../../client/components/Provider.js";
|
||||
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/List Filters/Play Date Range',
|
||||
title: 'Activities/List Filters/Play Date Range',
|
||||
component: PlayDateRangeFilter,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
import preview from "../../../.storybook/preview.js";
|
||||
import preview from "../../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
import { Container } from '@chakra-ui/react';
|
||||
|
||||
import { fn } from 'storybook/test';
|
||||
import { PhraseFilter } from "../../client/components/playActivity/ListFilters.js";
|
||||
import { Provider } from "../../client/components/Provider.js";
|
||||
import { PhraseFilter } from "../../../client/components/playActivity/ListFilters.js";
|
||||
import { Provider } from "../../../client/components/Provider.js";
|
||||
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/List Filters/Phrase',
|
||||
title: 'Activities/List Filters/Phrase',
|
||||
component: PhraseFilter,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
.storybook-button {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
border: 0;
|
||||
border-radius: 3em;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
.storybook-button--primary {
|
||||
background-color: #555ab9;
|
||||
color: white;
|
||||
}
|
||||
.storybook-button--secondary {
|
||||
box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset;
|
||||
background-color: transparent;
|
||||
color: #333;
|
||||
}
|
||||
.storybook-button--small {
|
||||
padding: 10px 16px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.storybook-button--medium {
|
||||
padding: 11px 20px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.storybook-button--large {
|
||||
padding: 12px 24px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
|
@ -1,19 +1,19 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
import { http, HttpResponse, delay, sse } from 'msw';
|
||||
|
||||
import { Container, Box } from '@chakra-ui/react';
|
||||
import { DeadLetterIndicator } from "../client/components/msComponent/Stats.js";
|
||||
import { sseProviderOptions } from "../client/AppNext.js";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { DeadLetterIndicator } from "../../client/components/msComponent/Stats.js";
|
||||
import { sseProviderOptions } from "../../client/AppNext.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { SSEProvider } from "@flamefrontend/sse-runtime-react";
|
||||
import { generateClientApiJson, generateSourceApiJson, generateSourcePlayerJson, LOG_MESSAGE_FIXTURE, logsApiResponse } from "../core/tests/utils/apiFixtures.js";
|
||||
import { MsSseEvent } from "../core/Api.js";
|
||||
import { generateClientApiJson, generateSourceApiJson, generateSourcePlayerJson, LOG_MESSAGE_FIXTURE, logsApiResponse } from "../../core/tests/utils/apiFixtures.js";
|
||||
import { MsSseEvent } from "../../core/Api.js";
|
||||
import { faker } from "@faker-js/faker";
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/Component Details/Stat Dead',
|
||||
title: 'Component/Details/Stat Dead',
|
||||
component: DeadLetterIndicator,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,18 +1,18 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
import { http, HttpResponse, delay, sse } from 'msw';
|
||||
|
||||
import { Container, Box } from '@chakra-ui/react';
|
||||
import { CountLiveIndicator } from "../client/components/msComponent/Stats.js";
|
||||
import { sseProviderOptions } from "../client/AppNext.js";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { CountLiveIndicator } from "../../client/components/msComponent/Stats.js";
|
||||
import { sseProviderOptions } from "../../client/AppNext.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { SSEProvider } from "@flamefrontend/sse-runtime-react";
|
||||
import { generateClientApiJson, generateSourceApiJson, generateSourcePlayerJson, LOG_MESSAGE_FIXTURE, logsApiResponse } from "../core/tests/utils/apiFixtures.js";
|
||||
import { MsSseEvent } from "../core/Api.js";
|
||||
import { generateClientApiJson, generateSourceApiJson, generateSourcePlayerJson, LOG_MESSAGE_FIXTURE, logsApiResponse } from "../../core/tests/utils/apiFixtures.js";
|
||||
import { MsSseEvent } from "../../core/Api.js";
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/Component Details/Stats Count',
|
||||
title: 'Component/Details/Stats Count',
|
||||
component: CountLiveIndicator,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,19 +1,19 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
import { http, HttpResponse, delay, sse } from 'msw';
|
||||
|
||||
import { Container, Box } from '@chakra-ui/react';
|
||||
import { QueuedIndicator } from "../client/components/msComponent/Stats.js";
|
||||
import { sseProviderOptions } from "../client/AppNext.js";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { QueuedIndicator } from "../../client/components/msComponent/Stats.js";
|
||||
import { sseProviderOptions } from "../../client/AppNext.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { SSEProvider } from "@flamefrontend/sse-runtime-react";
|
||||
import { generateClientApiJson, generateSourceApiJson, generateSourcePlayerJson, LOG_MESSAGE_FIXTURE, logsApiResponse } from "../core/tests/utils/apiFixtures.js";
|
||||
import { MsSseEvent } from "../core/Api.js";
|
||||
import { MsSseEvent } from "../../core/Api.js";
|
||||
import { faker } from "@faker-js/faker";
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/Component Details/Stat Queued',
|
||||
title: 'Component/Details/Stat Queued',
|
||||
component: QueuedIndicator,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,21 +1,21 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
import { http, HttpResponse, delay, sse } from 'msw';
|
||||
|
||||
import { Container } from '@chakra-ui/react';
|
||||
import { MSComponentSummary } from "../client/components/msComponent/MSComponentSummary.js";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { generateClientApiJson, generateSourceApiJson, generateSourcePlayerJson } from "../core/tests/utils/apiFixtures.js";
|
||||
import { MsSseEvent } from "../core/Api.js";
|
||||
import { MSComponentSummary } from "../../client/components/msComponent/MSComponentSummary.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { generateClientApiJson, generateSourceApiJson, generateSourcePlayerJson } from "../../core/tests/utils/apiFixtures.js";
|
||||
import { MsSseEvent } from "../../core/Api.js";
|
||||
import { SSEProvider } from "@flamefrontend/sse-runtime-react";
|
||||
import { sseProviderOptions } from "../client/AppNext.js";
|
||||
import { sseProviderOptions } from "../../client/AppNext.js";
|
||||
import { faker } from "@faker-js/faker";
|
||||
import { withRouter, reactRouterParameters } from 'storybook-addon-remix-react-router';
|
||||
import dayjs from "dayjs";
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/ComponentSummary',
|
||||
title: 'Component/Summary',
|
||||
component: MSComponentSummary,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -43,7 +43,7 @@ const meta = preview.meta({
|
|||
return (<MSComponentSummary {...args} />)
|
||||
},
|
||||
decorators: [
|
||||
(Story) => (<Provider><Container maxWidth="4xl"><Story/></Container></Provider>),
|
||||
(Story) => (<Provider><Container maxWidth="4xl"><SSEProvider<MsSseEvent> options={sseProviderOptions}><Story/></SSEProvider></Container></Provider>),
|
||||
withRouter
|
||||
]
|
||||
// Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#story-args
|
||||
|
|
@ -62,10 +62,6 @@ export const SourceSummaryFetchable = meta.story({
|
|||
fetchable: true,
|
||||
componentId: 1,
|
||||
},
|
||||
decorators: [
|
||||
(Story) =>
|
||||
(<Provider><Container maxWidth="4xl"><SSEProvider<MsSseEvent> options={sseProviderOptions}><Story/></SSEProvider></Container></Provider>),
|
||||
],
|
||||
parameters: {
|
||||
msw: {
|
||||
handlers: [
|
||||
|
|
@ -106,10 +102,6 @@ export const ClientSummaryFetchable = meta.story({
|
|||
fetchable: true,
|
||||
componentId: 1,
|
||||
},
|
||||
decorators: [
|
||||
(Story) =>
|
||||
(<Provider><Container maxWidth="4xl"><SSEProvider<MsSseEvent> options={sseProviderOptions}><Story/></SSEProvider></Container></Provider>),
|
||||
],
|
||||
parameters: {
|
||||
msw: {
|
||||
handlers: [
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
.storybook-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
padding: 15px 20px;
|
||||
font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
.storybook-header svg {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.storybook-header h1 {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 6px 0 6px 10px;
|
||||
font-weight: 700;
|
||||
font-size: 20px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.storybook-header button + button {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.storybook-header .welcome {
|
||||
margin-right: 10px;
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
.storybook-page {
|
||||
margin: 0 auto;
|
||||
padding: 48px 20px;
|
||||
max-width: 600px;
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
.storybook-page h2 {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 0 0 4px;
|
||||
font-weight: 700;
|
||||
font-size: 32px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.storybook-page p {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.storybook-page a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.storybook-page ul {
|
||||
margin: 1em 0;
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
.storybook-page li {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.storybook-page .tip {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-right: 10px;
|
||||
border-radius: 1em;
|
||||
background: #e7fdd8;
|
||||
padding: 4px 12px;
|
||||
color: #357a14;
|
||||
font-weight: 700;
|
||||
font-size: 11px;
|
||||
line-height: 12px;
|
||||
}
|
||||
|
||||
.storybook-page .tip-wrapper {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
font-size: 13px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.storybook-page .tip-wrapper svg {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-top: 3px;
|
||||
margin-right: 4px;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
.storybook-page .tip-wrapper svg path {
|
||||
fill: #1ea7fd;
|
||||
}
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
import { http, HttpResponse, delay, sse } from 'msw';
|
||||
|
||||
import { Container } from '@chakra-ui/react';
|
||||
import { ComponentDetailedDesktop } from "../client/components/msComponent/MSComponentDetailed.js";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { generateClientApiJson, generateFakeError, generatePlayApiCommonDetailed, generatePlayApiCommonDetailedList, generateSourceApiJson, generateSourcePlayerJson } from "../core/tests/utils/apiFixtures.js";
|
||||
import { MsSseEvent, PlayApiCommonDetailed } from "../core/Api.js";
|
||||
import { ComponentDetailedDesktop } from "../../client/components/msComponent/MSComponentDetailed.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { generateClientApiJson, generateFakeError, generatePlayApiCommonDetailed, generatePlayApiCommonDetailedList, generateSourceApiJson, generateSourcePlayerJson } from "../../core/tests/utils/apiFixtures.js";
|
||||
import { MsSseEvent, PlayApiCommonDetailed } from "../../core/Api.js";
|
||||
import { SSEProvider } from "@flamefrontend/sse-runtime-react";
|
||||
import { sseProviderOptions } from "../client/AppNext.js";
|
||||
import { sseProviderOptions } from "../../client/AppNext.js";
|
||||
import { faker } from "@faker-js/faker";
|
||||
import { PaginatedResponse } from "../backend/common/database/drizzle/repositories/BaseRepository.js";
|
||||
import { PaginatedResponse } from "../../backend/common/database/drizzle/repositories/BaseRepository.js";
|
||||
import dayjs from "dayjs";
|
||||
import { serializeError } from "serialize-error";
|
||||
|
||||
|
|
@ -18,7 +18,7 @@ let livePlayData: PlayApiCommonDetailed[] = [];
|
|||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/Component Detailed',
|
||||
title: 'Pages/Component Detailed',
|
||||
component: ComponentDetailedDesktop,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,20 +1,20 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
|
||||
import { Container } from '@chakra-ui/react';
|
||||
import { MSComponentList } from "../client/components/msComponent/MSComponentList.js";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { generateClientApiJson, generateSourceApiJson, generateSourcePlayerJson } from "../core/tests/utils/apiFixtures.js";
|
||||
import { generateArray } from "../core/DataUtils.js";
|
||||
import { MSComponentList } from "../../client/components/msComponent/MSComponentList.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { generateClientApiJson, generateSourceApiJson, generateSourcePlayerJson } from "../../core/tests/utils/apiFixtures.js";
|
||||
import { generateArray } from "../../core/DataUtils.js";
|
||||
import { faker } from "@faker-js/faker";
|
||||
import { MsSseEvent } from "../core/Api.js";
|
||||
import { MsSseEvent } from "../../core/Api.js";
|
||||
import { SSEProvider } from "@flamefrontend/sse-runtime-react";
|
||||
import { sseProviderOptions } from "../client/AppNext.js";
|
||||
import { sseProviderOptions } from "../../client/AppNext.js";
|
||||
import { withRouter, reactRouterParameters } from 'storybook-addon-remix-react-router';
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/ComponentList',
|
||||
title: 'Pages/Components List',
|
||||
component: MSComponentList,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
|
||||
import { Container, Box } from '@chakra-ui/react';
|
||||
import { MobileSidebarNav } from "../client/components/MobileMenu";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { MobileSidebarNav } from "../../client/components/MobileMenu.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { withRouter, reactRouterParameters } from 'storybook-addon-remix-react-router';
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/MobileSidebar',
|
||||
title: 'Static Components/Mobile Sidebar',
|
||||
component: MobileSidebarNav,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
|
||||
import { Container, Box } from '@chakra-ui/react';
|
||||
import { SideNavItems, NAV_LINKS } from "../client/components/SideNav";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { generateClientApiJson, generateSourceApiJson, generateSourcePlayerJson } from "../core/tests/utils/apiFixtures.js";
|
||||
import { SideNavItems, NAV_LINKS } from "../../client/components/SideNav.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { generateClientApiJson, generateSourceApiJson, generateSourcePlayerJson } from "../../core/tests/utils/apiFixtures.js";
|
||||
import { withRouter, reactRouterParameters } from 'storybook-addon-remix-react-router';
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/NavbarItems',
|
||||
title: 'Static Components/Navbar Items',
|
||||
component: SideNavItems,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
|
||||
import { fn } from 'storybook/test';
|
||||
import { PlayData } from "../client/components/PlayData.js";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { PlayData } from "../../client/components/PlayData.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { Container } from '@chakra-ui/react';
|
||||
import { generateArtistCredits, generateArtists, generateJsonPlay, generatePlay, withBrainz } from "../core/PlayTestUtils.js"
|
||||
import { generateArtistCredits, generateArtists, generateJsonPlay, generatePlay, withBrainz } from "../../core/PlayTestUtils.js"
|
||||
import clone from "clone";
|
||||
import { asJsonPlayObject } from '../core/PlayMarshalUtils.js';
|
||||
import { JsonPlayObject } from "../core/Atomic.js";
|
||||
import { asJsonPlayObject } from '../../core/PlayMarshalUtils.js';
|
||||
import { JsonPlayObject } from "../../core/Atomic.js";
|
||||
|
||||
type PropsAndCustomArgs = React.ComponentProps<typeof PlayData> & {
|
||||
includeAlbumArtists?: boolean;
|
||||
|
|
@ -18,7 +18,7 @@ type PropsAndCustomArgs = React.ComponentProps<typeof PlayData> & {
|
|||
};
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.type<{args: PropsAndCustomArgs}>().meta({
|
||||
title: 'Examples/PlayInfo',
|
||||
title: 'Static Components/Play Info',
|
||||
component: PlayData,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,18 +1,18 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
|
||||
import { fn } from 'storybook/test';
|
||||
import { Container } from '@chakra-ui/react';
|
||||
import { ActivityTimeline } from "../client/components/ActivityTimeline";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { generateJsonPlays } from "../core/PlayTestUtils.js";
|
||||
import { generatePlayApiCommonDetailed } from "../core/tests/utils/apiFixtures.js";
|
||||
import { generatePlayWithLifecycle, playWithLifecycleScrobble } from "../core/tests/utils/fixtures.js";
|
||||
import { asJsonPlayObject } from '../core/PlayMarshalUtils.js';
|
||||
import { ActivityTimeline } from "../../client/components/ActivityTimeline.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { generateJsonPlays } from "../../core/PlayTestUtils.js";
|
||||
import { generatePlayApiCommonDetailed } from "../../core/tests/utils/apiFixtures.js";
|
||||
import { generatePlayWithLifecycle, playWithLifecycleScrobble } from "../../core/tests/utils/fixtures.js";
|
||||
import { asJsonPlayObject } from '../../core/PlayMarshalUtils.js';
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/ActivityTimline',
|
||||
title: 'Timelines/Play',
|
||||
component: ActivityTimeline,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
import preview from "../../.storybook/preview.js";
|
||||
import preview from "../../../.storybook/preview.js";
|
||||
import React from 'react';
|
||||
|
||||
import { fn } from 'storybook/test';
|
||||
import { Container } from '@chakra-ui/react';
|
||||
import { TransformSteps } from "../client/components/TransformSteps.js";
|
||||
import {Provider} from "../client/components/Provider";
|
||||
import { generateJsonPlays, generatePlay } from "../core/PlayTestUtils.js";
|
||||
import {generatePlayWithLifecycle} from '../core/tests/utils/fixtures'
|
||||
import { asJsonPlayObject } from "../core/PlayMarshalUtils.js";
|
||||
import { TransformSteps } from "../../client/components/TransformSteps.js";
|
||||
import {Provider} from "../../client/components/Provider.js";
|
||||
import { generateJsonPlays, generatePlay } from "../../core/PlayTestUtils.js";
|
||||
import {generatePlayWithLifecycle} from '../../core/tests/utils/fixtures.js'
|
||||
import { asJsonPlayObject } from "../../core/PlayMarshalUtils.js";
|
||||
|
||||
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
||||
const meta = preview.meta({
|
||||
title: 'Examples/TransformSteps',
|
||||
title: 'Timelines/Play Transform Steps',
|
||||
component: TransformSteps,
|
||||
parameters: {
|
||||
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
||||
Loading…
Add table
Add a link
Reference in a new issue