You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除预览模式功能?实现未登录用户查看完整出版物

解决方案:让未登录用户查看完整出版物内容

根据你提供的代码和问题描述,只删除前端isPreviewMode相关代码无效的核心原因是:前端的预览状态和内容完整性完全由后端接口返回的数据决定。以下是具体修改方案:

一、前端快速修复(无需改动后端即可生效)

如果需要快速让前端展示完整内容,可以强制覆盖后端返回的预览状态:

  1. 强制关闭预览模式
    找到getPublicationDetail函数,修改isPreviewMode的赋值逻辑,不管后端返回什么都设为false:
const getPublicationDetail = async () => {
  let param = '/' + queryKey[3];

  try {
    await fetchRequest({ method: 'GET', path: 'info' + param }).then(
      (response) => {
        setCategoryList(response.categories || []);
        setQuickLinkList(response.quickLinks || []);
        const responseData = response.data || {};
        setPublicationData(responseData);
        // 强制关闭预览模式,忽略后端返回值
        setIsPreviewMode(false); 
      }
    );
  } catch (error) {
    console.log(error);
  }
};
  1. 移除预览遮罩和登录引导按钮
    直接删除return语句中{isPreviewMode && (...)}这段代码,也就是以下部分:
{isPreviewMode && (
  <>
    <Box
      w={{ md: 'calc(60% - 100px)', base: '100%' }}
      position="absolute"
      marginTop="-150px"
      display="block"
      height="150px"
      backgroundImage="linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.9) 100%)"
    />
    <Center>
      <CustomButton
        text="BACA SELENGKAPNYA"
        variant="transparent"
        icon="none"
        w=""
        onClick={() => navigate(AUTH + LOGIN)}
      />
    </Center>
  </>
)}

二、后端核心修改(彻底解决问题)

前端修改只是临时方案,真正的问题根源在后端接口。你需要找到处理GET /info/${param}的后端代码,完成以下修改:

  • 移除判断用户登录状态的逻辑,不再根据登录状态截断出版物内容
  • 确保接口返回的data.content是完整的出版物文本
  • 强制将返回的isPreviewMode字段设为false

三、可选:开放下载功能给未登录用户

如果客户同时需要未登录用户也能下载出版物,可以移除下载按钮的登录校验:
将右侧栏中的:

{loginInfo.isLogin && (
  <CustomButton
    w="100%"
    text="UNDUH"
    icon="download"
    variant="white"
    onClick={handleButtonClick}
  />
)}

改为:

<CustomButton
  w="100%"
  text="UNDUH"
  icon="download"
  variant="white"
  onClick={handleButtonClick}
/>

同时需要检查后端info/download接口是否有登录校验,若有则同步移除。

内容的提问来源于stack exchange,提问作者Estherak23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 10:35:54