fix: Login flow - remove reload, sync auth state reactively

This commit is contained in:
dwindown
2025-11-04 23:19:53 +07:00
parent 4e1eb22c8f
commit e8e380231e
4 changed files with 12 additions and 7 deletions

View File

@@ -405,6 +405,13 @@ function AuthWrapper() {
const location = useLocation();
useEffect(() => {
// Check if config was updated (e.g., after login)
if (window.WNW_CONFIG?.isAuthenticated !== isAuthenticated) {
setIsAuthenticated(window.WNW_CONFIG.isAuthenticated);
setIsChecking(false);
return;
}
if (window.WNW_CONFIG?.standaloneMode) {
fetch(window.WNW_CONFIG.restUrl + '/auth/check', {
credentials: 'include',
@@ -414,12 +421,13 @@ function AuthWrapper() {
setIsAuthenticated(data.authenticated);
if (data.authenticated && data.user) {
window.WNW_CONFIG.currentUser = data.user;
window.WNW_CONFIG.isAuthenticated = true;
}
})
.catch(() => setIsAuthenticated(false))
.finally(() => setIsChecking(false));
}
}, []);
}, [location.pathname, isAuthenticated]);
if (isChecking) {
return (

View File

@@ -37,11 +37,8 @@ export function Login() {
window.WNW_CONFIG.currentUser = data.user;
window.WNW_CONFIG.nonce = data.nonce;
// Redirect to dashboard
// Redirect to dashboard (no reload needed, auth state is updated)
navigate('/dashboard');
// Reload to ensure all auth state is fresh
window.location.reload();
} else {
setError(data.message || __('Invalid username or password'));
}

View File

@@ -58,7 +58,7 @@ $js_url .= '?ver=' . $version;
<link rel="stylesheet" href="<?php echo esc_url( $css_url ); ?>">
</head>
<body class="woonoow-standalone">
<div id="woonoow-admin-root"></div>
<div id="woonoow-admin-app"></div>
<script>
// Minimal config - no WordPress bloat

View File

@@ -91,7 +91,7 @@ class StandaloneAdmin {
<link rel="stylesheet" href="<?php echo esc_url( $css_url ); ?>">
</head>
<body class="woonoow-standalone">
<div id="woonoow-admin-root"></div>
<div id="woonoow-admin-app"></div>
<script>
// Minimal config - no WordPress bloat