diff --git a/src/features/Projects/pages/ListProjectPage/Components/CapabilitiesInput/CapabilitiesInput.stories.tsx b/src/features/Projects/pages/ListProjectPage/Components/CapabilitiesInput/CapabilitiesInput.stories.tsx new file mode 100644 index 0000000..2839537 --- /dev/null +++ b/src/features/Projects/pages/ListProjectPage/Components/CapabilitiesInput/CapabilitiesInput.stories.tsx @@ -0,0 +1,21 @@ +import { ComponentStory, ComponentMeta } from '@storybook/react'; +import { WrapFormController } from 'src/utils/storybook/utils'; +import CapabilitiesInput from './CapabilitiesInput'; + +export default { + title: 'Projects/List Project Page/Inputs/Capabilites Input', + component: CapabilitiesInput, + argTypes: { + backgroundColor: { control: 'color' }, + }, +} as ComponentMeta; + + +const Template: ComponentStory = (args) => WrapFormController('v', [])() + + +export const Default = Template.bind({}); +Default.args = { +} + + diff --git a/src/features/Projects/pages/ListProjectPage/Components/CapablitiesInput/CapablitiesInput.tsx b/src/features/Projects/pages/ListProjectPage/Components/CapabilitiesInput/CapabilitiesInput.tsx similarity index 97% rename from src/features/Projects/pages/ListProjectPage/Components/CapablitiesInput/CapablitiesInput.tsx rename to src/features/Projects/pages/ListProjectPage/Components/CapabilitiesInput/CapabilitiesInput.tsx index d267179..72830a0 100644 --- a/src/features/Projects/pages/ListProjectPage/Components/CapablitiesInput/CapablitiesInput.tsx +++ b/src/features/Projects/pages/ListProjectPage/Components/CapabilitiesInput/CapabilitiesInput.tsx @@ -8,7 +8,7 @@ interface Props { onChange?: (v: string[]) => void; } -export default function CapablitiesInput(props: Props) { +export default function CapabilitiesInput(props: Props) { const handleClick = (clickedValue: string) => { diff --git a/src/features/Projects/pages/ListProjectPage/Components/CategoriesInput/CategoriesInput.stories.tsx b/src/features/Projects/pages/ListProjectPage/Components/CategoriesInput/CategoriesInput.stories.tsx new file mode 100644 index 0000000..e12ce6f --- /dev/null +++ b/src/features/Projects/pages/ListProjectPage/Components/CategoriesInput/CategoriesInput.stories.tsx @@ -0,0 +1,20 @@ +import { ComponentStory, ComponentMeta } from '@storybook/react'; +import { WrapFormController } from 'src/utils/storybook/utils'; +import CategoriesInput from './CategoriesInput'; + +export default { + title: 'Projects/List Project Page/Inputs/Categories Input', + component: CategoriesInput, + argTypes: { + backgroundColor: { control: 'color' }, + }, +} as ComponentMeta; + + +const Template: ComponentStory = (args) => WrapFormController('v', [])() + +export const Default = Template.bind({}); +Default.args = { +} + + diff --git a/src/features/Projects/pages/ListProjectPage/Components/ExtrasTab/ExtrasTab.stories.tsx b/src/features/Projects/pages/ListProjectPage/Components/ExtrasTab/ExtrasTab.stories.tsx new file mode 100644 index 0000000..ceb7a6f --- /dev/null +++ b/src/features/Projects/pages/ListProjectPage/Components/ExtrasTab/ExtrasTab.stories.tsx @@ -0,0 +1,20 @@ +import { ComponentStory, ComponentMeta } from '@storybook/react'; +import ExtrasTab from './ExtrasTab'; + +export default { + title: 'Projects/List Project Page/Tabs/Extras', + component: ExtrasTab, + argTypes: { + backgroundColor: { control: 'color' }, + }, +} as ComponentMeta; + + +const Template: ComponentStory = (args) => + + +export const Default = Template.bind({}); +Default.args = { +} + + diff --git a/src/features/Projects/pages/ListProjectPage/Components/ProjectDetailsTab/ProjectDetailsTab.stories.tsx b/src/features/Projects/pages/ListProjectPage/Components/ProjectDetailsTab/ProjectDetailsTab.stories.tsx new file mode 100644 index 0000000..6303394 --- /dev/null +++ b/src/features/Projects/pages/ListProjectPage/Components/ProjectDetailsTab/ProjectDetailsTab.stories.tsx @@ -0,0 +1,20 @@ +import { ComponentStory, ComponentMeta } from '@storybook/react'; +import ProjectDetailsTab from './ProjectDetailsTab'; + +export default { + title: 'Projects/List Project Page/Tabs/Project Details', + component: ProjectDetailsTab, + argTypes: { + backgroundColor: { control: 'color' }, + }, +} as ComponentMeta; + + +const Template: ComponentStory = (args) => + + +export const Default = Template.bind({}); +Default.args = { +} + + diff --git a/src/features/Projects/pages/ListProjectPage/Components/ProjectDetailsTab/ProjectDetailsTab.tsx b/src/features/Projects/pages/ListProjectPage/Components/ProjectDetailsTab/ProjectDetailsTab.tsx index abfa9d2..0a7bb04 100644 --- a/src/features/Projects/pages/ListProjectPage/Components/ProjectDetailsTab/ProjectDetailsTab.tsx +++ b/src/features/Projects/pages/ListProjectPage/Components/ProjectDetailsTab/ProjectDetailsTab.tsx @@ -11,7 +11,7 @@ import Card from "src/Components/Card/Card"; import { FaDiscord, FaTwitter } from "react-icons/fa"; import { FiCamera, FiGithub, FiTwitter } from "react-icons/fi"; import CategoriesInput from "../CategoriesInput/CategoriesInput"; -import CapablitiesInput from "../CapablitiesInput/CapablitiesInput"; +import CapabilitiesInput from "../CapabilitiesInput/CapabilitiesInput"; interface IProjectDetails { @@ -267,7 +267,7 @@ export default function ProjectDetailsTab({ data, onClose }: Props) { control={control} name="capabilities" render={({ field: { onChange, value } }) => ( - diff --git a/src/features/Projects/pages/ListProjectPage/Components/RecruitRolesInput/RecruiterRolesInput.stories.tsx b/src/features/Projects/pages/ListProjectPage/Components/RecruitRolesInput/RecruiterRolesInput.stories.tsx new file mode 100644 index 0000000..81dd2fa --- /dev/null +++ b/src/features/Projects/pages/ListProjectPage/Components/RecruitRolesInput/RecruiterRolesInput.stories.tsx @@ -0,0 +1,21 @@ +import { ComponentStory, ComponentMeta } from '@storybook/react'; +import { WrapFormController } from 'src/utils/storybook/utils'; +import RecruitRolesInput from './RecruitRolesInput'; + +export default { + title: 'Projects/List Project Page/Inputs/Recruiter Roles Input', + component: RecruitRolesInput, + argTypes: { + backgroundColor: { control: 'color' }, + }, +} as ComponentMeta; + + +const Template: ComponentStory = (args) => WrapFormController('v', [])() + + +export const Default = Template.bind({}); +Default.args = { +} + + diff --git a/src/features/Projects/pages/ListProjectPage/Components/TeamMembersInput/TeamMembersInput.stories.tsx b/src/features/Projects/pages/ListProjectPage/Components/TeamMembersInput/TeamMembersInput.stories.tsx new file mode 100644 index 0000000..0427410 --- /dev/null +++ b/src/features/Projects/pages/ListProjectPage/Components/TeamMembersInput/TeamMembersInput.stories.tsx @@ -0,0 +1,21 @@ +import { ComponentStory, ComponentMeta } from '@storybook/react'; +import { WrapFormController } from 'src/utils/storybook/utils'; +import TeamMembersInput from './TeamMembersInput'; + +export default { + title: 'Projects/List Project Page/Inputs/Team Members Input', + component: TeamMembersInput, + argTypes: { + backgroundColor: { control: 'color' }, + }, +} as ComponentMeta; + + +const Template: ComponentStory = (args) => WrapFormController('v', [])() + + +export const Default = Template.bind({}); +Default.args = { +} + + diff --git a/src/features/Projects/pages/ListProjectPage/Components/TeamTab/TeamTab.stories.tsx b/src/features/Projects/pages/ListProjectPage/Components/TeamTab/TeamTab.stories.tsx new file mode 100644 index 0000000..a2a7fa2 --- /dev/null +++ b/src/features/Projects/pages/ListProjectPage/Components/TeamTab/TeamTab.stories.tsx @@ -0,0 +1,20 @@ +import { ComponentStory, ComponentMeta } from '@storybook/react'; +import TeamTab from './TeamTab'; + +export default { + title: 'Projects/List Project Page/Tabs/Team', + component: TeamTab, + argTypes: { + backgroundColor: { control: 'color' }, + }, +} as ComponentMeta; + + +const Template: ComponentStory = (args) => + + +export const Default = Template.bind({}); +Default.args = { +} + + diff --git a/src/features/Projects/pages/ListProjectPage/Components/TournamentsInput/TournamentsInput.stories.tsx b/src/features/Projects/pages/ListProjectPage/Components/TournamentsInput/TournamentsInput.stories.tsx new file mode 100644 index 0000000..aa7f5b3 --- /dev/null +++ b/src/features/Projects/pages/ListProjectPage/Components/TournamentsInput/TournamentsInput.stories.tsx @@ -0,0 +1,21 @@ +import { ComponentStory, ComponentMeta } from '@storybook/react'; +import { WrapFormController } from 'src/utils/storybook/utils'; +import TournamentsInput from './TournamentsInput'; + +export default { + title: 'Projects/List Project Page/Inputs/Tournaments Input', + component: TournamentsInput, + argTypes: { + backgroundColor: { control: 'color' }, + }, +} as ComponentMeta; + + +const Template: ComponentStory = (args) => WrapFormController('v', [])() + + +export const Default = Template.bind({}); +Default.args = { +} + + diff --git a/src/utils/storybook/decorators.tsx b/src/utils/storybook/decorators.tsx index 4170b69..1756607 100644 --- a/src/utils/storybook/decorators.tsx +++ b/src/utils/storybook/decorators.tsx @@ -16,7 +16,7 @@ import "src/styles/index.scss"; import 'react-loading-skeleton/dist/skeleton.css' import { ApolloProvider } from '@apollo/client'; import { apolloClient } from '../apollo'; -import { FormProvider, useForm, UseFormProps } from 'react-hook-form'; +import { FormProvider, useForm, UseFormProps, Controller } from 'react-hook-form'; import ModalsContainer from 'src/Components/Modals/ModalsContainer/ModalsContainer'; @@ -123,6 +123,7 @@ export function WrapForm(options?: Partial>): Decorator } + export const WithModals: DecoratorFn = (Component) => <> diff --git a/src/utils/storybook/utils.tsx b/src/utils/storybook/utils.tsx index 060c12b..35caa96 100644 --- a/src/utils/storybook/utils.tsx +++ b/src/utils/storybook/utils.tsx @@ -1,3 +1,5 @@ +import React, { ReactElement, ReactNode } from "react" +import { Controller, useForm } from "react-hook-form" import { RootState } from "src/redux/store" export type ModifyArgs = Partial<{ @@ -8,3 +10,30 @@ export type ModifyArgs = Partial<{ }> + +export function WrapFormController(key: K, defaultValue: V) { + + const Func = (Story: ReactElement) => { + const { control } = useForm({ + defaultValues: { + [key]: defaultValue as any + } + }) + return { + console.log(value); + return React.cloneElement(Story, { value, onChange, onBlur }) + // + }} + /> + } + + return Func; + +}