diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 3efc984..fe14077 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1 +1,5 @@ -fn main() { lr_openwrt_tool_lib::run() } +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + lr_openwrt_tool_lib::run() +} \ No newline at end of file diff --git a/src/components/login/LoginScreen.tsx b/src/components/login/LoginScreen.tsx index f78e4d7..773530a 100644 --- a/src/components/login/LoginScreen.tsx +++ b/src/components/login/LoginScreen.tsx @@ -36,6 +36,11 @@ export function LoginScreen({ setError(''); try { + console.log('LOGIN TRY', { + username: username.trim(), + passwordLength: password.length, + }); + const response = await loginApi.login( username.trim(), password, @@ -47,13 +52,12 @@ export function LoginScreen({ } setError('Credenciais inválidas.'); - } catch { - setError('Credenciais inválidas.'); + } catch (error) { + setError(`Falha no login: ${String(error)}`); } finally { setSubmitting(false); } } - return (
diff --git a/src/services/apiClient.ts b/src/services/apiClient.ts index 41bcfc5..fac75f2 100644 --- a/src/services/apiClient.ts +++ b/src/services/apiClient.ts @@ -1,21 +1,41 @@ import type { AppSettings } from '@/types/api'; const defaults: AppSettings = { - backendUrl: 'http://localhost:8080', - apiKey: 'dev-api-key', + backendUrl: 'http://146.59.230.190:8080', + apiKey: + 'b8184608fcab419da2ce9a220ee6017daaff637b627e43ebac31b6b7c3344349', }; const SETTINGS_KEY = 'lr-openwrt-tool.settings'; +function joinUrl( + baseUrl: string, + path: string, +) { + return `${baseUrl.replace(/\/+$/, '')}/${path.replace( + /^\/+/, + '', + )}`; +} + export function getSettings(): AppSettings { try { const storedSettings = localStorage.getItem(SETTINGS_KEY); + const parsed = + JSON.parse(storedSettings || '{}'); + return { ...defaults, - ...JSON.parse(storedSettings || '{}'), + ...parsed, + backendUrl: + parsed.backendUrl?.trim() || + defaults.backendUrl, + apiKey: + parsed.apiKey?.trim() || + defaults.apiKey, }; } catch { return defaults; @@ -27,18 +47,32 @@ export function saveSettings( ) { localStorage.setItem( SETTINGS_KEY, - JSON.stringify(settings), + JSON.stringify({ + ...settings, + backendUrl: + settings.backendUrl.trim(), + apiKey: settings.apiKey.trim(), + }), ); } +export function resetSettings() { + localStorage.removeItem(SETTINGS_KEY); +} + export async function apiRequest( path: string, init: RequestInit = {}, ): Promise { const settings = getSettings(); + console.log( + '[API]', + joinUrl(settings.backendUrl, path), + ); + const response = await fetch( - `${settings.backendUrl}${path}`, + joinUrl(settings.backendUrl, path), { ...init, headers: {