Skip to content

Commit

Permalink
WRR-2172: Update VirtualList qa-sampler for cases where the contents …
Browse files Browse the repository at this point in the history
…of a VirtualList change between fixed size and variable size contents (#1683)

* Update VirtualList qa-sampler

Enact-DCO-1.0-Signed-off-by: Juwon Jeong (juwon.jeong@lge.com)

* Fixed to functional component

Enact-DCO-1.0-Signed-off-by: Juwon Jeong (juwon.jeong@lge.com)

* Fixed typo

Enact-DCO-1.0-Signed-off-by: Juwon Jeong (juwon.jeong@lge.com)

* Fixed typo

Enact-DCO-1.0-Signed-off-by: Juwon Jeong (juwon.jeong@lge.com)
  • Loading branch information
juwonjeong authored Sep 23, 2024
1 parent d229e45 commit 2689b93
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions samples/sampler/stories/qa/VirtualList.js
Original file line number Diff line number Diff line change
Expand Up @@ -542,3 +542,50 @@ WithContainerItemsHaveSpottableControls.storyName = 'with container items have s
WithContainerItemsHaveSpottableControls.parameters = {
propTables: [Config]
};

const fixedItemSizes = new Array(16).fill(ri.scale(390));
const variableItemSizes = fixedItemSizes.map((size, index) => {
return index % 2 ? size * 2 : size;
});

// eslint-disable-next-line enact/prop-types, enact/display-name
const renderVirtualListItem = (variableItemSizesMode) => ({index, ...rest}) => {
return (
<Item {...rest} style={{width: variableItemSizesMode && index % 2 ? ri.scaleToRem(720) : ri.scaleToRem(360), margin: ri.scaleToRem(15)}}>
{`item ${index}`}
</Item>
);
};

export const WithChangingFixedAndVariableItemSizes = () => {
const [variableItemSizesMode, setVariableItemSizesMode] = useState(false);
const handleDataSize = useCallback(() => {
setVariableItemSizesMode(!variableItemSizesMode);
}, [variableItemSizesMode]);

return (
<Column>
<Cell shrink>
<Button size="small" onClick={handleDataSize}>Update Items</Button>
</Cell>
<br />
<br />
<Cell>
<VirtualList
dataSize={16}
direction="horizontal"
itemRenderer={renderVirtualListItem(variableItemSizesMode)}
itemSize={{
size: variableItemSizesMode ? variableItemSizes : fixedItemSizes,
minSize: Math.min(...variableItemSizes)
}}
/>
</Cell>
</Column>
);
};

WithChangingFixedAndVariableItemSizes.storyName = 'with changing fixed and variable item sizes';
WithChangingFixedAndVariableItemSizes.parameters = {
propTables: [Config]
};

0 comments on commit 2689b93

Please sign in to comment.