feat(app): implement EVE SSO login and waypoint setting functionality

This commit is contained in:
2025-08-09 18:49:36 +02:00
parent 98b6397dcc
commit 478a628b6f
5 changed files with 513 additions and 10 deletions

View File

@@ -1,14 +1,17 @@
import React from 'react';
import React, { useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from '@/components/ui/breadcrumb';
import { Button } from '@/components/ui/button';
import { toast } from '@/hooks/use-toast';
import { StartESILogin, ESILoginStatus } from '@/wailsjs/go/main/App';
interface HeaderProps {
title: string;
@@ -20,6 +23,20 @@ interface HeaderProps {
export const Header = ({ title, breadcrumbs = [] }: HeaderProps) => {
const navigate = useNavigate();
const [status, setStatus] = useState<string>('');
useEffect(() => {
ESILoginStatus().then(setStatus).catch(() => setStatus(''));
}, []);
const handleLogin = async () => {
try {
await StartESILogin();
toast({ title: 'EVE Login', description: 'Complete login in your browser. Reopen menu to refresh status.' });
} catch (e: any) {
toast({ title: 'Login failed', description: String(e), variant: 'destructive' });
}
};
return (
<div className="flex-shrink-0 py-4 px-4 border-b border-purple-500/20">
@@ -52,8 +69,14 @@ export const Header = ({ title, breadcrumbs = [] }: HeaderProps) => {
</div>
)}
{/* Title */}
<h1 className="text-2xl font-bold text-white">{title}</h1>
{/* Title + EVE SSO */}
<div className="flex items-center justify-between">
<h1 className="text-2xl font-bold text-white">{title}</h1>
<div className="flex items-center gap-2">
<span className="text-sm text-slate-300">{status || 'EVE: not logged in'}</span>
<Button size="sm" className="bg-purple-600 hover:bg-purple-700" onClick={handleLogin}>Log in</Button>
</div>
</div>
</div>
);
};