import preview from "../../../.storybook/preview.js";
import React from 'react';
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 type {MsSseEvent} from "../../core/Api.js";
import { SSEProvider } from "@flamefrontend/sse-runtime-react";
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: '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
layout: 'padded',
reactRouter: reactRouterParameters({
location: {
path: '/'
},
routing: {
path: '/',
useStoryElement: true
}
}),
},
// 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
// args: {
// data: generatePlayApiCommonDetailed(),
// },
// argTypes: {
// componentType: {
// control: { type: 'select' },
// options: ['source', 'client'],
// }
// },
render: function Render(args) {
return ()
},
decorators: [
withRouter,
(Story) => ( options={sseProviderOptions}>),
]
// 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
});
// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
export const Simple = meta.story({
args: {
components: [generateSourceApiJson(), generateClientApiJson()]
}
});
export const Many = meta.story({
args: {
components: [...generateArray(7, () => generateSourceApiJson()),...generateArray(4, () => generateClientApiJson())]
}
});
export const WithSourcePlayers = meta.story({
args: {
components: [...generateArray(3, () => {
if(faker.datatype.boolean()) {
return generateSourceApiJson({players: {test: generateSourcePlayerJson(undefined, {art: true})}});
}
return generateSourceApiJson();
}),...generateArray(3, () => generateClientApiJson())]
}
});