feat: 接口错误处理
This commit is contained in:
parent
0e58843896
commit
f6e393b3d2
|
@ -608,7 +608,8 @@ export function Home() {
|
||||||
// setting
|
// setting
|
||||||
const [openSettings, setOpenSettings] = useState(false);
|
const [openSettings, setOpenSettings] = useState(false);
|
||||||
const config = useChatStore((state) => state.config);
|
const config = useChatStore((state) => state.config);
|
||||||
const [isAllow, setIsAllow] = useState(true);
|
const [isAllow, setIsAllow] = useState(true); // 白名单状态
|
||||||
|
const [isRequestErr, setIsRequestErr] = useState(false); // 接口报错状态
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const urlParams = new URLSearchParams(window.location.search);
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
|
@ -620,44 +621,46 @@ export function Home() {
|
||||||
const { code, msg } = data;
|
const { code, msg } = data;
|
||||||
setIsAllow(code === 0);
|
setIsAllow(code === 0);
|
||||||
})
|
})
|
||||||
.catch((error) => console.error(error));
|
// 接口错误处理
|
||||||
|
.catch((error) => {
|
||||||
|
setIsAllow(false);
|
||||||
|
setIsRequestErr(true);
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
//const isWorkWechat = () => {
|
//const isWorkWechat = () => {
|
||||||
//获取user-agaent标识头
|
//获取user-agaent标识头
|
||||||
// const ua = window.navigator.userAgent.toLowerCase();
|
// const ua = window.navigator.userAgent.toLowerCase();
|
||||||
//判断ua和微信浏览器的标识头是否匹配
|
//判断ua和微信浏览器的标识头是否匹配
|
||||||
// if (
|
// if (
|
||||||
// ua.match(/micromessenger/i) == "micromessenger" &&
|
// ua.match(/micromessenger/i) == "micromessenger" &&
|
||||||
// ua.match(/wxwork/i) == "wxwork"
|
// ua.match(/wxwork/i) == "wxwork"
|
||||||
//) {
|
//) {
|
||||||
// return true;
|
// return true;
|
||||||
//} else {
|
//} else {
|
||||||
// return false;
|
// return false;
|
||||||
//}
|
//}
|
||||||
//};
|
//};
|
||||||
const isWorkWechat = () => {
|
const isWorkWechat = () => {
|
||||||
// 获取user-agent标识头
|
// 获取user-agent标识头
|
||||||
const userAgent = window.navigator.userAgent;
|
const userAgent = window.navigator.userAgent;
|
||||||
|
|
||||||
// 检查userAgent是否为null或undefined
|
// 检查userAgent是否为null或undefined
|
||||||
if (!userAgent) {
|
if (!userAgent) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 转换为小写
|
// 转换为小写
|
||||||
const ua = userAgent.toLowerCase();
|
const ua = userAgent.toLowerCase();
|
||||||
|
|
||||||
// 判断ua和微信浏览器的标识头是否匹配
|
// 判断ua和微信浏览器的标识头是否匹配
|
||||||
if (
|
if (/micromessenger/i.test(ua) && /wxwork/i.test(ua)) {
|
||||||
/micromessenger/i.test(ua) &&
|
return true;
|
||||||
/wxwork/i.test(ua)
|
} else {
|
||||||
) {
|
return false;
|
||||||
return true;
|
}
|
||||||
} else {
|
};
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
useSwitchTheme();
|
useSwitchTheme();
|
||||||
|
|
||||||
|
@ -677,100 +680,109 @@ const isWorkWechat = () => {
|
||||||
: styles.container
|
: styles.container
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
{!isWorkWechat() ? (
|
{
|
||||||
<h2 className="not-wx-work">请在企业微信里使用ChatGPT</h2>
|
// 接口报错
|
||||||
) : typeof isAllow === "boolean" && !isAllow ? (
|
isRequestErr ? (
|
||||||
<h2 className="not-allow">
|
<h2>服务出了点问题~</h2>
|
||||||
<span className="text">您不在白名单内,请走工单审批使用Gpt~</span>
|
) : // 不在企业微信
|
||||||
<span onClick={goApply} className={styles["button"]}>
|
!isWorkWechat() ? (
|
||||||
去申请
|
<h2 className="not-wx-work">请在企业微信里使用ChatGPT</h2>
|
||||||
</span>
|
) : // 不在白名单
|
||||||
</h2>
|
!isAllow ? (
|
||||||
) : (
|
<h2 className="not-allow">
|
||||||
<>
|
<span className="text">您不在白名单内,请走工单审批使用Gpt~</span>
|
||||||
<div
|
<span onClick={goApply} className={styles["button"]}>
|
||||||
className={
|
去申请
|
||||||
styles.sidebar + ` ${showSideBar && styles["sidebar-show"]}`
|
</span>
|
||||||
}
|
</h2>
|
||||||
>
|
) : (
|
||||||
<div className={styles["sidebar-header"]}>
|
<>
|
||||||
<div className={styles["sidebar-title"]}>ChatGPT Next</div>
|
|
||||||
<div className={styles["sidebar-sub-title"]}>
|
|
||||||
Build your own AI assistant.
|
|
||||||
</div>
|
|
||||||
<div className={styles["sidebar-logo"]}>
|
|
||||||
<ChatGptIcon />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
<div
|
||||||
className={styles["sidebar-body"]}
|
className={
|
||||||
onClick={() => {
|
styles.sidebar + ` ${showSideBar && styles["sidebar-show"]}`
|
||||||
setOpenSettings(false);
|
}
|
||||||
setShowSideBar(false);
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
<ChatList />
|
<div className={styles["sidebar-header"]}>
|
||||||
</div>
|
<div className={styles["sidebar-title"]}>ChatGPT Next</div>
|
||||||
|
<div className={styles["sidebar-sub-title"]}>
|
||||||
<div className={styles["sidebar-tail"]}>
|
Build your own AI assistant.
|
||||||
<div className={styles["sidebar-actions"]}>
|
|
||||||
<div className={styles["sidebar-action"] + " " + styles.mobile}>
|
|
||||||
<IconButton
|
|
||||||
icon={<CloseIcon />}
|
|
||||||
onClick={() => {
|
|
||||||
if (confirm(Locale.Home.DeleteChat)) {
|
|
||||||
removeSession(currentIndex);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div className={styles["sidebar-action"]}>
|
<div className={styles["sidebar-logo"]}>
|
||||||
|
<ChatGptIcon />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
className={styles["sidebar-body"]}
|
||||||
|
onClick={() => {
|
||||||
|
setOpenSettings(false);
|
||||||
|
setShowSideBar(false);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<ChatList />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className={styles["sidebar-tail"]}>
|
||||||
|
<div className={styles["sidebar-actions"]}>
|
||||||
|
<div
|
||||||
|
className={styles["sidebar-action"] + " " + styles.mobile}
|
||||||
|
>
|
||||||
|
<IconButton
|
||||||
|
icon={<CloseIcon />}
|
||||||
|
onClick={() => {
|
||||||
|
if (confirm(Locale.Home.DeleteChat)) {
|
||||||
|
removeSession(currentIndex);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className={styles["sidebar-action"]}>
|
||||||
|
<IconButton
|
||||||
|
icon={<SettingsIcon />}
|
||||||
|
onClick={() => {
|
||||||
|
setOpenSettings(true);
|
||||||
|
setShowSideBar(false);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className={styles["sidebar-action"]}>
|
||||||
|
<a href={REPO_URL} target="_blank">
|
||||||
|
<IconButton icon={<GithubIcon />} />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
<IconButton
|
<IconButton
|
||||||
icon={<SettingsIcon />}
|
icon={<AddIcon />}
|
||||||
|
text={Locale.Home.NewChat}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setOpenSettings(true);
|
createNewSession();
|
||||||
setShowSideBar(false);
|
setShowSideBar(false);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className={styles["sidebar-action"]}>
|
|
||||||
<a href={REPO_URL} target="_blank">
|
|
||||||
<IconButton icon={<GithubIcon />} />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<IconButton
|
|
||||||
icon={<AddIcon />}
|
|
||||||
text={Locale.Home.NewChat}
|
|
||||||
onClick={() => {
|
|
||||||
createNewSession();
|
|
||||||
setShowSideBar(false);
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className={styles["window-content"]}>
|
<div className={styles["window-content"]}>
|
||||||
{openSettings ? (
|
{openSettings ? (
|
||||||
<Settings
|
<Settings
|
||||||
closeSettings={() => {
|
closeSettings={() => {
|
||||||
setOpenSettings(false);
|
setOpenSettings(false);
|
||||||
setShowSideBar(true);
|
setShowSideBar(true);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
<Chat
|
<Chat
|
||||||
key="chat"
|
key="chat"
|
||||||
showSideBar={() => setShowSideBar(true)}
|
showSideBar={() => setShowSideBar(true)}
|
||||||
sideBarShowing={showSideBar}
|
sideBarShowing={showSideBar}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
)}
|
)
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue