diff --git a/stories/55-mixed-sizes.stories.js b/stories/55-mixed-sizes.stories.js new file mode 100644 index 0000000000..b2bd8d1daf --- /dev/null +++ b/stories/55-mixed-sizes.stories.js @@ -0,0 +1,9 @@ +// @flow +import React from 'react'; +import { storiesOf } from '@storybook/react'; +import MixedSizedItems from './src/mixed-sizes/mixed-size-items'; +import MixedSizedLists from './src/mixed-sizes/mixed-size-lists'; + +storiesOf('mixed sizes', module) + .add('with a super large draggable', () => ) + .add('with a super large droppable', () => ); diff --git a/stories/src/mixed-sizes/mixed-size-items.jsx b/stories/src/mixed-sizes/mixed-size-items.jsx new file mode 100644 index 0000000000..6d2b90e376 --- /dev/null +++ b/stories/src/mixed-sizes/mixed-size-items.jsx @@ -0,0 +1,35 @@ +// @flow +import React, { useState } from 'react'; +import { quotes as initial } from '../data'; +import type { Quote } from '../types'; +import QuoteList from '../primatives/quote-list'; +import { DragDropContext, type DropResult } from '../../../src'; +import reorder from '../reorder'; + +function getQuotes() { + const large: Quote = { + ...initial[0], + content: Array.from({ length: 20 }) + .map(() => 'some really long text') + .join(' '), + }; + + const quotes: Quote[] = [large, ...initial.slice(1)]; + return quotes; +} + +export default function App() { + const [quotes, setQuotes] = useState(() => getQuotes()); + function onDragEnd(result: DropResult) { + if (!result.destination) { + return; + } + setQuotes(reorder(quotes, result.source.index, result.destination.index)); + } + return ( + +

This is a bit lame right now

+ +
+ ); +} diff --git a/stories/src/mixed-sizes/mixed-size-lists.jsx b/stories/src/mixed-sizes/mixed-size-lists.jsx new file mode 100644 index 0000000000..b82637d0f1 --- /dev/null +++ b/stories/src/mixed-sizes/mixed-size-lists.jsx @@ -0,0 +1,25 @@ +// @flow +import React, { useState } from 'react'; +import styled from '@emotion/styled'; +import { getQuotes } from '../data'; +import QuoteList from '../primatives/quote-list'; +import { DragDropContext } from '../../../src'; +import { noop } from '../../../src/empty'; + +const Parent = styled.div` + display: flex; +`; + +export default function App() { + const [first] = useState(() => getQuotes(3)); + const [second] = useState(() => getQuotes(3)); + return ( + +

This is a bit lame right now

+ + + + +
+ ); +}