import React, { useState } from 'react' import Reset from './components/decorator-reset' import { Meta } from '@storybook/react' import { useControls } from '../src' export default { title: 'Hook/Dependency', decorators: [Reset], } as Meta /** * 1. A mounts. A change deps → inputs change * 2. A mounts. B mounts → inputs don't change * 3. A mounts. B mounts. A deps change → inputs change * 4. A mounts. B mounts. B deps change → inputs change * 5. A mounts. A unmounts. B mounts → inputs change * 6. Multiple instances of A mounts. A change deps → inputs change */ // 1. A mounts. A change deps → inputs change export const AddingInputs = () => { const [n, setN] = React.useState(1) const inputs = Array(n) .fill(0) .reduce((acc, _, i) => Object.assign(acc, { [`input${i}`]: i }), {}) const values = useControls(inputs, [n]) return (
{JSON.stringify(values, null, ' ')}
{JSON.stringify(values, null, ' ')}
{JSON.stringify(options, null, ' ')}
Showing component {showB ? 'A & B' : 'A'}
>
)
}
// 5. A mounts. A unmounts. B mounts → inputs change
export const SwitchComponents = () => {
const [showB, setShowB] = React.useState(false)
return (
<>
{showB ? : }
Showing component {showB ? 'B' : 'A'}
>
)
}