fix: Add WNW_CONFIG type definitions and fix TypeScript errors
This commit is contained in:
@@ -266,7 +266,7 @@ function Header({ onFullscreen, fullscreen, showToggle = true }: { onFullscreen:
|
|||||||
|
|
||||||
const handleLogout = async () => {
|
const handleLogout = async () => {
|
||||||
try {
|
try {
|
||||||
await fetch(window.WNW_CONFIG.restUrl + '/auth/logout', {
|
await fetch((window.WNW_CONFIG?.restUrl || '') + '/auth/logout', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
credentials: 'include',
|
credentials: 'include',
|
||||||
});
|
});
|
||||||
@@ -465,7 +465,7 @@ function AuthWrapper() {
|
|||||||
// In standalone mode, trust the initial PHP auth check
|
// In standalone mode, trust the initial PHP auth check
|
||||||
// PHP uses wp_signon which sets proper WordPress cookies
|
// PHP uses wp_signon which sets proper WordPress cookies
|
||||||
if (window.WNW_CONFIG?.standaloneMode) {
|
if (window.WNW_CONFIG?.standaloneMode) {
|
||||||
setIsAuthenticated(window.WNW_CONFIG.isAuthenticated);
|
setIsAuthenticated(window.WNW_CONFIG.isAuthenticated ?? false);
|
||||||
setIsChecking(false);
|
setIsChecking(false);
|
||||||
} else {
|
} else {
|
||||||
// In wp-admin mode, always authenticated
|
// In wp-admin mode, always authenticated
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export function Login() {
|
|||||||
setError('');
|
setError('');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch(window.WNW_CONFIG.restUrl + '/auth/login', {
|
const response = await fetch((window.WNW_CONFIG?.restUrl || '') + '/auth/login', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
@@ -118,7 +118,7 @@ export function Login() {
|
|||||||
{/* Footer Links */}
|
{/* Footer Links */}
|
||||||
<div className="mt-6 space-y-3">
|
<div className="mt-6 space-y-3">
|
||||||
<a
|
<a
|
||||||
href={window.WNW_CONFIG.wpAdminUrl}
|
href={window.WNW_CONFIG?.wpAdminUrl || '/wp-admin'}
|
||||||
className="flex items-center justify-center gap-2 text-sm text-blue-600 hover:text-blue-700 dark:text-blue-400 transition-colors"
|
className="flex items-center justify-center gap-2 text-sm text-blue-600 hover:text-blue-700 dark:text-blue-400 transition-colors"
|
||||||
>
|
>
|
||||||
<ArrowLeft className="w-4 h-4" />
|
<ArrowLeft className="w-4 h-4" />
|
||||||
@@ -127,7 +127,7 @@ export function Login() {
|
|||||||
|
|
||||||
<div className="text-center">
|
<div className="text-center">
|
||||||
<a
|
<a
|
||||||
href={window.WNW_CONFIG.siteUrl + '/wp-login.php?action=lostpassword'}
|
href={(window.WNW_CONFIG?.siteUrl || '') + '/wp-login.php?action=lostpassword'}
|
||||||
className="text-sm text-gray-600 hover:text-gray-700 dark:text-gray-400 transition-colors"
|
className="text-sm text-gray-600 hover:text-gray-700 dark:text-gray-400 transition-colors"
|
||||||
>
|
>
|
||||||
{__('Forgot password?')}
|
{__('Forgot password?')}
|
||||||
@@ -138,7 +138,7 @@ export function Login() {
|
|||||||
|
|
||||||
{/* Site Info */}
|
{/* Site Info */}
|
||||||
<div className="text-center mt-6 text-sm text-gray-600 dark:text-gray-400">
|
<div className="text-center mt-6 text-sm text-gray-600 dark:text-gray-400">
|
||||||
{window.WNW_CONFIG.siteName}
|
{window.WNW_CONFIG?.siteName || 'WooNooW'}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
28
admin-spa/src/types/window.d.ts
vendored
28
admin-spa/src/types/window.d.ts
vendored
@@ -16,11 +16,39 @@ interface WNW_WC_MENUS {
|
|||||||
items?: any[];
|
items?: any[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface WNW_CONFIG {
|
||||||
|
standaloneMode?: boolean;
|
||||||
|
restUrl?: string;
|
||||||
|
wpAdminUrl?: string;
|
||||||
|
siteUrl?: string;
|
||||||
|
siteName?: string;
|
||||||
|
isAuthenticated?: boolean;
|
||||||
|
currentUser?: {
|
||||||
|
id: number;
|
||||||
|
name: string;
|
||||||
|
email: string;
|
||||||
|
};
|
||||||
|
user?: {
|
||||||
|
id: number;
|
||||||
|
name: string;
|
||||||
|
email: string;
|
||||||
|
};
|
||||||
|
store?: {
|
||||||
|
currency: string;
|
||||||
|
currencySymbol: string;
|
||||||
|
currencyPosition: string;
|
||||||
|
thousandSeparator: string;
|
||||||
|
decimalSeparator: string;
|
||||||
|
decimals: number;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
interface Window {
|
interface Window {
|
||||||
WNW_API?: WNW_API_Config;
|
WNW_API?: WNW_API_Config;
|
||||||
wnw?: WNW_Config;
|
wnw?: WNW_Config;
|
||||||
WNW_WC_MENUS?: WNW_WC_MENUS;
|
WNW_WC_MENUS?: WNW_WC_MENUS;
|
||||||
|
WNW_CONFIG?: WNW_CONFIG;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user