[SearchPanel] TVirtualGridList 적용
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
|
||||
.infoWrap {
|
||||
.size(@w: calc(100% - 150px), @h: 100%);
|
||||
padding-left: 24px;
|
||||
padding: 0 24px;
|
||||
.flex(@direction: column, @alignCenter: flex-start);
|
||||
|
||||
.title {
|
||||
|
||||
@@ -1,51 +1,29 @@
|
||||
import React, { useCallback } from "react";
|
||||
import React from "react";
|
||||
|
||||
import { VirtualGridList } from "@enact/sandstone/VirtualList";
|
||||
import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
|
||||
import ri from "@enact/ui/resolution";
|
||||
|
||||
import TVirtualGridList from "../../../../components/TVirtualGridList/TVirtualGridList";
|
||||
import SearchItemCard from "./SearchItemCard/SearchItemCard";
|
||||
import css from "./SearchItemResults.module.less";
|
||||
|
||||
const LIST_ITEM_CONF = {
|
||||
ITEM_WIDTH: 561 * 2,
|
||||
ITEM_HEIGHT: 150 * 2,
|
||||
SPACING: 30 * 2,
|
||||
};
|
||||
|
||||
const Container = SpotlightContainerDecorator(
|
||||
{ leaveFor: { right: "" }, enterTo: "last-focused" },
|
||||
"div"
|
||||
);
|
||||
|
||||
export default function SearchItemResults({ itemDatas, itemCount, ...rest }) {
|
||||
const renderItem = useCallback(
|
||||
({ index, ...rest }) => {
|
||||
const itemData = itemDatas[index];
|
||||
|
||||
return (
|
||||
<SearchItemCard {...rest} key={itemDatas.contentId} {...itemData} />
|
||||
);
|
||||
},
|
||||
[itemDatas]
|
||||
);
|
||||
|
||||
return (
|
||||
<Container className={css.container}>
|
||||
{itemDatas && (
|
||||
<VirtualGridList
|
||||
<TVirtualGridList
|
||||
className={css.grid}
|
||||
items={itemDatas}
|
||||
dataSize={itemDatas.length}
|
||||
direction="horizontal"
|
||||
itemRenderer={renderItem}
|
||||
itemSize={{
|
||||
minWidth: ri.scale(LIST_ITEM_CONF.ITEM_WIDTH),
|
||||
minHeight: ri.scale(LIST_ITEM_CONF.ITEM_HEIGHT),
|
||||
}}
|
||||
spacing={ri.scale(LIST_ITEM_CONF.SPACING)}
|
||||
scrollMode="translate"
|
||||
horizontalScrollbar="hidden"
|
||||
noScrollByWheel
|
||||
itemCard={SearchItemCard}
|
||||
itemWidth={561}
|
||||
itemHeight={150}
|
||||
spacing={30}
|
||||
/>
|
||||
)}
|
||||
</Container>
|
||||
|
||||
@@ -9,9 +9,4 @@
|
||||
|
||||
.grid {
|
||||
height: 150px;
|
||||
overflow: unset;
|
||||
|
||||
> div {
|
||||
overflow: unset !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,51 +1,29 @@
|
||||
import React, { useCallback } from "react";
|
||||
import React from "react";
|
||||
|
||||
import VirtualGridList from "@enact/sandstone/VirtualList";
|
||||
import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
|
||||
import ri from "@enact/ui/resolution";
|
||||
|
||||
import TVirtualGridList from "../../../../components/TVirtualGridList/TVirtualGridList";
|
||||
import SearchShowCard from "./SearchShowCard/SearchShowCard";
|
||||
import css from "./SearchShowResults.module.less";
|
||||
|
||||
const LIST_ITEM_CONF = {
|
||||
ITEM_WIDTH: 344 * 2,
|
||||
ITEM_HEIGHT: 281 * 2,
|
||||
SPACING: 0,
|
||||
};
|
||||
|
||||
const Container = SpotlightContainerDecorator(
|
||||
{ leaveFor: { right: "" }, enterTo: "last-focused" },
|
||||
"div"
|
||||
);
|
||||
|
||||
export default function SearchShowResults({ showDatas, showCount, ...rest }) {
|
||||
const renderItem = useCallback(
|
||||
({ index, ...rest }) => {
|
||||
const showData = showDatas[index];
|
||||
|
||||
return (
|
||||
<SearchShowCard {...rest} key={showData.contentId} {...showData} />
|
||||
);
|
||||
},
|
||||
[showDatas]
|
||||
);
|
||||
|
||||
return (
|
||||
<Container className={css.container}>
|
||||
{showDatas && (
|
||||
<VirtualGridList
|
||||
<TVirtualGridList
|
||||
className={css.grid}
|
||||
items={showDatas}
|
||||
dataSize={showDatas.length}
|
||||
direction="horizontal"
|
||||
itemRenderer={renderItem}
|
||||
itemSize={{
|
||||
minWidth: ri.scale(LIST_ITEM_CONF.ITEM_WIDTH),
|
||||
minHeight: ri.scale(LIST_ITEM_CONF.ITEM_HEIGHT),
|
||||
}}
|
||||
spacing={ri.scale(LIST_ITEM_CONF.SPACING)}
|
||||
scrollMode="translate"
|
||||
horizontalScrollbar="hidden"
|
||||
noScrollByWheel
|
||||
itemCard={SearchShowCard}
|
||||
itemWidth={344}
|
||||
itemHeight={281}
|
||||
spacing={0}
|
||||
/>
|
||||
)}
|
||||
</Container>
|
||||
|
||||
@@ -9,9 +9,4 @@
|
||||
|
||||
.grid {
|
||||
height: 281px;
|
||||
overflow: unset;
|
||||
|
||||
> div {
|
||||
overflow: unset !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,11 @@
|
||||
import React, { useCallback } from "react";
|
||||
import React from "react";
|
||||
|
||||
import { VirtualGridList } from "@enact/sandstone/VirtualList";
|
||||
import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
|
||||
import ri from "@enact/ui/resolution";
|
||||
|
||||
import TVirtualGridList from "../../../../components/TVirtualGridList/TVirtualGridList";
|
||||
import SearchThemeCard from "./SearchThemeCard/SearchThemeCard";
|
||||
import css from "./SearchThemeResults.module.less";
|
||||
|
||||
const LIST_ITEM_CONF = {
|
||||
ITEM_WIDTH: 560 * 2,
|
||||
ITEM_HEIGHT: 140 * 2,
|
||||
SPACING: 30 * 2,
|
||||
};
|
||||
|
||||
const Container = SpotlightContainerDecorator(
|
||||
{ leaveFor: { right: "" }, enterTo: "last-focused" },
|
||||
"div"
|
||||
@@ -23,33 +16,18 @@ export default function SearchThemeResults({
|
||||
themeCount,
|
||||
...rest
|
||||
}) {
|
||||
const renderItem = useCallback(
|
||||
({ index, ...rest }) => {
|
||||
const themeData = themeDatas[index];
|
||||
|
||||
return (
|
||||
<SearchThemeCard {...rest} key={themeData.contentId} {...themeData} />
|
||||
);
|
||||
},
|
||||
[themeDatas]
|
||||
);
|
||||
|
||||
return (
|
||||
<Container className={css.container}>
|
||||
{themeDatas && (
|
||||
<VirtualGridList
|
||||
<TVirtualGridList
|
||||
className={css.grid}
|
||||
items={themeDatas}
|
||||
dataSize={themeDatas.length}
|
||||
direction="horizontal"
|
||||
itemRenderer={renderItem}
|
||||
itemSize={{
|
||||
minWidth: ri.scale(LIST_ITEM_CONF.ITEM_WIDTH),
|
||||
minHeight: ri.scale(LIST_ITEM_CONF.ITEM_HEIGHT),
|
||||
}}
|
||||
spacing={ri.scale(LIST_ITEM_CONF.SPACING)}
|
||||
scrollMode="translate"
|
||||
horizontalScrollbar="hidden"
|
||||
noScrollByWheel
|
||||
itemCard={SearchThemeCard}
|
||||
itemWidth={560}
|
||||
itemHeight={130}
|
||||
spacing={30}
|
||||
/>
|
||||
)}
|
||||
</Container>
|
||||
|
||||
@@ -9,9 +9,4 @@
|
||||
|
||||
.grid {
|
||||
height: 141px;
|
||||
overflow: unset;
|
||||
|
||||
> div {
|
||||
overflow: unset !important;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user