修复一堆问题
This commit is contained in:
@@ -134,6 +134,7 @@ const ListContainer = (props) => {
|
||||
// 插入 banner 卡片
|
||||
function insertBannerCard(list) {
|
||||
if (!bannerListImage) return list;
|
||||
if (!list || !Array.isArray(list)) return list ?? [];
|
||||
return [
|
||||
...list.slice(0, Number(bannerListIndex)),
|
||||
{ type: "banner", banner_image_url: bannerListImage, banner_detail_url: bannerDetailImage },
|
||||
@@ -142,33 +143,29 @@ const ListContainer = (props) => {
|
||||
}
|
||||
|
||||
// 对于没有ntrp等级的用户每个月展示一次, 插在第二个位置后面
|
||||
// insertBannerCard 需在最后统一执行,否则前面分支直接 return 时 banner 不会被插入
|
||||
function insertEvaluateCard(list) {
|
||||
if (!evaluateFlag)
|
||||
return showNumber !== undefined ? list.slice(0, showNumber) : list;
|
||||
if (!list || list.length === 0) {
|
||||
return list;
|
||||
}
|
||||
// 如果最近一个月有测试记录,则不插入 card
|
||||
if (hasTestInLastMonth) {
|
||||
return showNumber !== undefined ? list.slice(0, showNumber) : list;
|
||||
let result: any[];
|
||||
|
||||
if (!evaluateFlag) {
|
||||
result = showNumber !== undefined ? list.slice(0, showNumber) : list;
|
||||
} else if (!list || list.length === 0) {
|
||||
result = list;
|
||||
} else if (hasTestInLastMonth) {
|
||||
result = showNumber !== undefined ? list.slice(0, showNumber) : list;
|
||||
} else if (list.length <= 2) {
|
||||
result = [...list, { type: "evaluateCard" }];
|
||||
} else {
|
||||
const [item1, item2, ...rest] = list;
|
||||
result = [
|
||||
item1,
|
||||
item2,
|
||||
{ type: "evaluateCard" },
|
||||
...(showNumber !== undefined ? rest.slice(0, showNumber - 3) : rest),
|
||||
];
|
||||
}
|
||||
|
||||
if (list.length <= 2) {
|
||||
return [...list, { type: "evaluateCard" }];
|
||||
}
|
||||
const [item1, item2, ...rest] = list;
|
||||
|
||||
let result = [
|
||||
item1,
|
||||
item2,
|
||||
{ type: "evaluateCard" },
|
||||
...(showNumber !== undefined ? rest.slice(0, showNumber - 3) : rest),
|
||||
];
|
||||
|
||||
if (bannerListImage) {
|
||||
return insertBannerCard(result);
|
||||
}
|
||||
return result;
|
||||
return insertBannerCard(result);
|
||||
}
|
||||
|
||||
const memoizedList = useMemo(
|
||||
|
||||
Reference in New Issue
Block a user