import React from 'react'
import Reset from './components/decorator-reset'
import { StoryFn, Meta } from '@storybook/react'
import { folder, useControls } from '../src'
export default {
title: 'Misc/Folders',
decorators: [Reset],
} as Meta
const Template: StoryFn = (args) => {
const values = useControls(
args.name,
{
foo: 0,
bar: false,
},
args.options
)
const otherValues = useControls('Another Folder', {
foo: 0,
bar: false,
})
return (
{JSON.stringify({ ...values, ...otherValues }, null, ' ')}
)
}
export const Simple = Template.bind({})
Simple.args = { name: 'Regular folder' }
export const Collapsed = Template.bind({})
Collapsed.args = {
options: { collapsed: true },
name: 'collapsedFolder',
}
export const Color = Template.bind({})
Color.args = {
options: { color: 'yellow' },
name: 'withColor',
}
const FolderHelperTemplate: StoryFn = (args) => {
const values = useControls({
myFolder: folder(
{
x: '#ff005b',
y: true,
z: 'hello',
},
{ collapsed: args.collapsed }
),
})
return (
{JSON.stringify(values, null, ' ')}
)
}
export const FolderHelper = FolderHelperTemplate.bind({})
FolderHelper.args = { collapsed: true }
export const NestedFolders = () => {
const values = useControls('Named Folder', {
foo: 0,
'First Folder': folder({
x: 0,
y: 1,
'Second Folder': folder({
a: 'hello',
b: 'ff005b',
}),
'Third Collapsed Folder': folder(
{
e: 'hello',
f: 'ff005b',
},
{
collapsed: true,
}
),
}),
})
return (
{JSON.stringify(values, null, ' ')}
)
}
export const OrderedFolders = () => {
const values = useControls(() => ({
last: folder({ firstVal: 0 }, { order: 1, collapsed: true }),
middle: folder({ secondVal: 0 }, { order: -1, collapsed: true }),
first: { value: 0, order: -2 },
}))
return (
{JSON.stringify(values, null, ' ')}
)
}