"use client"; import Link from "next/link"; import { TOPICS_DISPLAY, EBOOKS_DISPLAY, VIDEO_COURSES_DISPLAY } from "@/app/data/vip.mock"; import styles from "../vip.module.css"; type TopicEbookShowcaseProps = { onLockedClick?: () => void; }; export function TopicEbookShowcase({ onLockedClick }: TopicEbookShowcaseProps) { return (
{/* 模块展示 */}

模块

{TOPICS_DISPLAY.map((t) => { const { id, href } = t; const isLocked = "locked" in t && t.locked && onLockedClick; const content = ( {isLocked && ( 🔒 )} {t.icon} {t.title} {t.desc} ); if (isLocked) { return ( ); } if (href) { return ( {content} ); } return (
{content}
); })}
{/* 视频教程展示 - 参考 digital 资源导航,至少 4 个 */}

视频教程

{VIDEO_COURSES_DISPLAY.map((v) => { const { id, href, icon, title, desc } = v; return href ? ( {icon} {title} {desc} ) : (
{icon} {title} {desc}
); })}
{/* 电子书展示 */}

电子书

{EBOOKS_DISPLAY.map((e) => { const { id, href } = e; const cardContent = ( <> 📖
《{e.title}》
{e.desc}
阅读 →
); return href ? ( {cardContent} ) : (
{cardContent}
); })}
); }