import React, { useState, useEffect, useCallback, memo } from "react"; import { View, Image, Text } from "@tarojs/components"; import Taro from "@tarojs/taro"; import { useUserInfo, useUserActions } from "@/store/userStore"; // import { getCurrentFullPath } from "@/utils"; import evaluateService, { StageType } from "@/services/evaluateService"; import DocCopy from "@/static/ntrp/ntrp_doc_copy.svg"; import ArrowRight from "@/static/ntrp/ntrp_arrow_right_color.svg"; import { EvaluateScene, useEvaluate, EvaluateCallback, } from "@/store/evaluateStore"; import styles from "./index.module.scss"; function NTRPTestEntryCard(props: { type: EvaluateScene; evaluateCallback?: EvaluateCallback; }) { const [testFlag, setTestFlag] = useState(false); const { type, evaluateCallback } = props; const userInfo = useUserInfo(); const { setCallback } = useEvaluate(); const { fetchUserInfo } = useUserActions(); console.log(userInfo); useEffect(() => { if (!userInfo.id) { fetchUserInfo(); } evaluateService.getLastResult().then((res) => { setTestFlag(res.code === 0 && res.data.has_ntrp_level); }); }, [userInfo.id]); const handleTest = useCallback( function () { switch (type) { case EvaluateScene.list: setCallback({ type, next: () => { Taro.redirectTo({ url: "/game_pages/list/index" }); }, onCancel: () => { // Taro.redirectTo({ url: "/game_pages/list/index" }); Taro.navigateBack(); }, }); break; case EvaluateScene.share: setCallback({ type, next: () => { Taro.redirectTo({ url: "/main_pages/index" }); }, onCancel: () => { Taro.redirectTo({ url: "/main_pages/index" }); }, }); break; case EvaluateScene.detail: case EvaluateScene.publish: setCallback(evaluateCallback as EvaluateCallback); break; case EvaluateScene.user: setCallback({ type, next: () => { Taro.redirectTo({ url: "/main_pages/index" }); }, onCancel: () => { // Taro.redirectTo({ url: "/user_pages/myself/index" }); Taro.navigateBack(); }, }); break; case EvaluateScene.userEdit: setCallback({ type, next: () => { Taro.redirectTo({ url: "/game_pages/list/index" }); }, onCancel: () => { // Taro.redirectTo({ url: "/user_pages/edit/index" }); Taro.navigateBack(); }, }); break; default: setCallback({ type, next: () => { Taro.redirectTo({ url: "/main_pages/index" }); }, onCancel: () => { Taro.redirectTo({ url: "/main_pages/index" }); }, }); } Taro.navigateTo({ url: `/other_pages/ntrp-evaluate/index?stage=${ testFlag ? StageType.INTRO : StageType.TEST }`, }); }, [setCallback] ); return type === EvaluateScene.list ? ( 快速测一测✏️ 你的 ( NTRP ) 水平? 快速测试 {/* avatar side */} ) : ( 不知道自己的 ( NTRP ) 水平? 快速测试 {/* avatar side */} ); } export default memo(NTRPTestEntryCard); // export default NTRPTestEntryCard;