import { Routes, Route, Navigate } from 'react-router-dom';
import { useEffect } from 'react';
import LoginPage from './pages/LoginPage';
import PartnerAppRoutes from './PartnerAppRoutes';
import { handlePartnerWechatCallback, handlePartnerWechatLoginResult } from './lib/wechat-auth';
import { isLoggedIn } from './lib/api';
import { isWechatEnv } from './lib/weixin';
import { useLocation, useNavigate } from 'react-router-dom';
function WechatOAuthHandler() {
const location = useLocation();
const navigate = useNavigate();
useEffect(() => {
if (!isWechatEnv() || !location.search.includes('code=')) return;
if (location.pathname === '/login') return;
void handlePartnerWechatCallback()
.then((result) => {
if (!result || !handlePartnerWechatLoginResult(result)) return;
const params = new URLSearchParams(location.search);
params.delete('code');
params.delete('state');
const qs = params.toString();
navigate(`${location.pathname}${qs ? `?${qs}` : ''}`, { replace: true });
})
.catch(() => {
/* 页面内组件会提示 */
});
}, [location.pathname, location.search, navigate]);
return null;
}
export default function App() {
return (
<>
} />
: } />
>
);
}