Skip to content
This repository was archived by the owner on Dec 7, 2021. It is now read-only.

Commit c0201ca

Browse files
authored
Revert "feat: move asset preview to horizontal (#870)" (#874)
This reverts commit 5e25dc5.
1 parent 5e25dc5 commit c0201ca

File tree

4 files changed

+31
-58
lines changed

4 files changed

+31
-58
lines changed

src/react/components/pages/editorPage/editorPage.scss

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@
88
overflow: hidden;
99
position: relative;
1010

11-
&-bottombar {
11+
&-sidebar {
1212
display: flex;
1313
flex-grow: 1;
14-
flex-direction: row;
1514

1615
&-nav {
17-
height: 100%;
1816
width: 100%;
1917

2018
.asset-list {

src/react/components/pages/editorPage/editorPage.tsx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -187,13 +187,22 @@ export default class EditorPage extends React.Component<IEditorPageProps, IEdito
187187
icon={"fa-lock"}
188188
handler={this.handleCtrlTagHotKey} />);
189189
})}
190-
<SplitPane split="horizontal"
190+
<SplitPane split="vertical"
191+
defaultSize={this.state.thumbnailSize.width}
191192
minSize={100}
192193
maxSize={400}
193194
paneStyle={{ display: "flex" }}
194195
onChange={this.onSideBarResize}
195-
onDragFinished={this.onSideBarResizeComplete}
196-
primary={"second"}>
196+
onDragFinished={this.onSideBarResizeComplete}>
197+
<div className="editor-page-sidebar bg-lighter-1">
198+
<EditorSideBar
199+
assets={rootAssets}
200+
selectedAsset={selectedAsset ? selectedAsset.asset : null}
201+
onBeforeAssetSelected={this.onBeforeAssetSelected}
202+
onAssetSelected={this.selectAsset}
203+
thumbnailSize={this.state.thumbnailSize}
204+
/>
205+
</div>
197206
<div className="editor-page-content" onClick={this.onPageClick}>
198207
<div className="editor-page-content-main">
199208
<div className="editor-page-content-main-header">
@@ -250,15 +259,6 @@ export default class EditorPage extends React.Component<IEditorPageProps, IEdito
250259
confirmButtonColor="danger"
251260
onConfirm={this.onTagDeleted} />
252261
</div>
253-
<div className="editor-page-bottombar bg-lighter-1">
254-
<EditorSideBar
255-
assets={rootAssets}
256-
selectedAsset={selectedAsset ? selectedAsset.asset : null}
257-
onBeforeAssetSelected={this.onBeforeAssetSelected}
258-
onAssetSelected={this.selectAsset}
259-
thumbnailSize={this.state.thumbnailSize}
260-
/>
261-
</div>
262262
</SplitPane>
263263
<Alert show={this.state.showInvalidRegionWarning}
264264
title={strings.editorPage.messages.enforceTaggedRegions.title}

src/react/components/pages/editorPage/editorSideBar.test.tsx

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from "react";
22
import EditorSideBar, { IEditorSideBarProps, IEditorSideBarState } from "./editorSideBar";
33
import { ReactWrapper, mount } from "enzyme";
4-
import { AutoSizer, Grid } from "react-virtualized";
4+
import { AutoSizer, List } from "react-virtualized";
55
import MockFactory from "../../../../common/mockFactory";
66

77
describe("Editor SideBar", () => {
@@ -21,7 +21,7 @@ describe("Editor SideBar", () => {
2121
const wrapper = createComponent(props);
2222
expect(wrapper.exists()).toBe(true);
2323
expect(wrapper.find(AutoSizer).exists()).toBe(true);
24-
expect(wrapper.find(Grid).exists()).toBe(true);
24+
expect(wrapper.find(List).exists()).toBe(true);
2525
});
2626

2727
it("Initializes state without asset selected", () => {
@@ -117,8 +117,8 @@ describe("Editor SideBar", () => {
117117
};
118118

119119
const wrapper = createComponent(props);
120-
const grid = wrapper.find(Grid).instance() as Grid;
121-
const recomputeGridSizeSpy = jest.spyOn(grid, "recomputeGridSize");
120+
const list = wrapper.find(List).instance() as List;
121+
const recomputeRowHeightsSpy = jest.spyOn(list, "recomputeRowHeights");
122122

123123
wrapper.setProps({
124124
thumbnailSize: {
@@ -127,27 +127,6 @@ describe("Editor SideBar", () => {
127127
},
128128
});
129129

130-
expect(recomputeGridSizeSpy).toBeCalled();
131-
});
132-
133-
it("Correctly computes Grid column size", () => {
134-
const props: IEditorSideBarProps = {
135-
assets: testAssets,
136-
onAssetSelected: onSelectAssetHandler,
137-
thumbnailSize: {
138-
width: 175,
139-
height: 155,
140-
},
141-
};
142-
143-
const wrapper = createComponent(props);
144-
const grid = wrapper.find(Grid).instance() as Grid;
145-
const autoSizer = wrapper.find(AutoSizer).instance() as AutoSizer;
146-
autoSizer.setState({
147-
width: 150,
148-
height: 91,
149-
});
150-
151-
expect(grid.props.columnWidth()).toBe(100);
130+
expect(recomputeRowHeightsSpy).toBeCalled();
152131
});
153132
});

src/react/components/pages/editorPage/editorSideBar.tsx

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from "react";
2-
import { AutoSizer, Grid } from "react-virtualized";
2+
import { AutoSizer, List } from "react-virtualized";
33
import { IAsset, AssetState, ISize } from "../../../../models/applicationState";
44
import { AssetPreview } from "../../common/assetPreview/assetPreview";
55
import { strings } from "../../../../common/strings";
@@ -38,24 +38,23 @@ export default class EditorSideBar extends React.Component<IEditorSideBarProps,
3838
: 0,
3939
};
4040

41-
private listRef: React.RefObject<Grid> = React.createRef();
41+
private listRef: React.RefObject<List> = React.createRef();
4242

4343
public render() {
4444
return (
4545
<div className="editor-page-sidebar-nav">
4646
<AutoSizer>
4747
{({ height, width }) => (
48-
<Grid
48+
<List
4949
ref={this.listRef}
5050
className="asset-list"
51-
cellRenderer={this.rowRenderer}
52-
columnCount={this.props.assets.length}
53-
columnWidth={() => this.getColumnWidth(height)}
5451
height={height}
5552
width={width}
56-
rowCount={1}
57-
rowHeight={height}
53+
rowCount={this.props.assets.length}
54+
rowHeight={() => this.getRowHeight(width)}
5855
rowRenderer={this.rowRenderer}
56+
overscanRowCount={2}
57+
scrollToIndex={this.state.scrollToIndex}
5958
/>
6059
)}
6160
</AutoSizer>
@@ -65,7 +64,7 @@ export default class EditorSideBar extends React.Component<IEditorSideBarProps,
6564

6665
public componentDidUpdate(prevProps: IEditorSideBarProps) {
6766
if (prevProps.thumbnailSize !== this.props.thumbnailSize) {
68-
this.listRef.current.recomputeGridSize();
67+
this.listRef.current.recomputeRowHeights();
6968
}
7069

7170
if (!prevProps.selectedAsset && !this.props.selectedAsset) {
@@ -78,11 +77,8 @@ export default class EditorSideBar extends React.Component<IEditorSideBarProps,
7877
}
7978
}
8079

81-
private getColumnWidth = (height: number) => {
82-
const padding = 16;
83-
const aspectRatio = 4 / 3;
84-
85-
return (height - padding) * aspectRatio;
80+
private getRowHeight = (width: number) => {
81+
return width / (4 / 3) + 16;
8682
}
8783

8884
private selectAsset = (selectedAsset: IAsset): void => {
@@ -91,7 +87,7 @@ export default class EditorSideBar extends React.Component<IEditorSideBarProps,
9187
this.setState({
9288
scrollToIndex,
9389
}, () => {
94-
this.listRef.current.forceUpdate();
90+
this.listRef.current.forceUpdateGrid();
9591
});
9692
}
9793

@@ -106,8 +102,8 @@ export default class EditorSideBar extends React.Component<IEditorSideBarProps,
106102
this.props.onAssetSelected(asset);
107103
}
108104

109-
private rowRenderer = ({ columnIndex, key, style }): JSX.Element => {
110-
const asset = this.props.assets[columnIndex];
105+
private rowRenderer = ({ key, index, style }): JSX.Element => {
106+
const asset = this.props.assets[index];
111107
const selectedAsset = this.props.selectedAsset;
112108

113109
return (

0 commit comments

Comments
 (0)