Fix localizacao prova
Signed-off-by: Rodrigo Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
c72d4aad99
commit
ecf692502f
26 files changed
+628
-76
No files matched your search
@@ -17,6 +17,7 @@ import {
|
||||
ShieldCheckIcon,
|
||||
CurrencyDollarIcon,
|
||||
CalculatorIcon,
|
||||
BriefcaseIcon,
|
||||
} from "@heroicons/react/24/outline";
|
||||
import { Menu, Transition } from "@headlessui/react";
|
||||
import api from "../../services/api";
|
||||
@@ -58,8 +59,15 @@ export const MainLayout: React.FC = () => {
|
||||
|
||||
const menuItems = [
|
||||
{ path: "/dashboard", label: "Dashboard", icon: HomeIcon },
|
||||
{ path: "/processos", label: "Processos", icon: ScaleIcon },
|
||||
{ path: "/processos-administrativos", label: "Proc.Adm", icon: ScaleIcon },
|
||||
{
|
||||
path: null,
|
||||
label: "Processos",
|
||||
icon: ScaleIcon,
|
||||
subitems: [
|
||||
{ path: "/processos", label: "Judiciais", icon: ScaleIcon },
|
||||
{ path: "/processos-administrativos", label: "Proc. Admin.", icon: DocumentCheckIcon }
|
||||
]
|
||||
},
|
||||
{
|
||||
path: null,
|
||||
label: "Provas",
|
||||
|
||||
@@ -21,6 +21,13 @@ interface ProvaStatus {
|
||||
};
|
||||
ipAddress?: string;
|
||||
clientPort?: string;
|
||||
locationInfo?: {
|
||||
latitude?: number;
|
||||
longitude?: number;
|
||||
};
|
||||
latitude?: number;
|
||||
longitude?: number;
|
||||
location_permission?: string;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -212,11 +219,28 @@ export function PublicProvaStatus() {
|
||||
</div>
|
||||
|
||||
{/* Adicionar geolocalização se disponível */}
|
||||
{(status.metadata?.latitude !== undefined || status.metadata?.longitude !== undefined) && (
|
||||
{(
|
||||
(status.metadata?.latitude !== undefined && status.metadata?.latitude !== null) ||
|
||||
(status.metadata?.longitude !== undefined && status.metadata?.longitude !== null) ||
|
||||
(status.metadata?.locationInfo?.latitude !== undefined && status.metadata?.locationInfo?.latitude !== null) ||
|
||||
(status.metadata?.locationInfo?.longitude !== undefined && status.metadata?.locationInfo?.longitude !== null)
|
||||
) && (
|
||||
<div>
|
||||
<p className="text-sm text-gray-500">Geolocalização</p>
|
||||
<p className="text-gray-700">
|
||||
Coordenadas: {status.metadata.latitude || 'N/A'}, {status.metadata.longitude || 'N/A'}
|
||||
Coordenadas: {
|
||||
status.metadata?.latitude !== undefined && status.metadata?.latitude !== null
|
||||
? status.metadata.latitude
|
||||
: status.metadata?.locationInfo?.latitude !== undefined && status.metadata?.locationInfo?.latitude !== null
|
||||
? status.metadata.locationInfo.latitude
|
||||
: 'N/A'
|
||||
}, {
|
||||
status.metadata?.longitude !== undefined && status.metadata?.longitude !== null
|
||||
? status.metadata.longitude
|
||||
: status.metadata?.locationInfo?.longitude !== undefined && status.metadata?.locationInfo?.longitude !== null
|
||||
? status.metadata.locationInfo.longitude
|
||||
: 'N/A'
|
||||
}
|
||||
</p>
|
||||
<p className="text-xs text-gray-500">
|
||||
Permissão: {status.metadata.location_permission || 'não especificada'}
|
||||
|
||||
@@ -161,26 +161,6 @@ export function PublicVerificarProva() {
|
||||
result.prova.dataCriacao)}
|
||||
/>
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||
<div>
|
||||
<dt className="text-sm font-medium text-gray-500">IP:</dt>
|
||||
<dd className="mt-1 text-base text-gray-900 break-words">
|
||||
{result.verificacao?.ip ||
|
||||
result.prova.metadata?.connectionInfo?.forwardedIp ||
|
||||
(result.prova.metadata?.headers?.['x-forwarded-for'] ?
|
||||
result.prova.metadata.headers['x-forwarded-for'].split(',')[0].trim() :
|
||||
result.prova.metadata?.ipAddress) ||
|
||||
'Não disponível'}
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt className="text-sm font-medium text-gray-500">Porta:</dt>
|
||||
<dd className="mt-1 text-base text-gray-900 break-words">
|
||||
{result.verificacao?.porta ||
|
||||
result.prova.metadata?.clientPort ||
|
||||
result.prova.metadata?.connectionInfo?.socketPort ||
|
||||
'Não disponível'}
|
||||
</dd>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -231,14 +211,21 @@ export function PublicVerificarProva() {
|
||||
}
|
||||
/>
|
||||
|
||||
{/* Garantir exibição da porta */}
|
||||
{/* Garantir exibição da porta capturada no JSON da prova */}
|
||||
<DetailItem
|
||||
label="Porta de Conexão"
|
||||
value={
|
||||
result.prova.metadata.clientPort ||
|
||||
(result.prova.metadata.connectionInfo?.socketPort ?
|
||||
result.prova.metadata.connectionInfo.socketPort : '61465')
|
||||
}
|
||||
result.prova.metadata.connectionInfo?.socketPort ||
|
||||
(result.prova.metadata.userInfo?.ipAddress &&
|
||||
(() => {
|
||||
const ip = result.prova.metadata.userInfo.ipAddress;
|
||||
const match = typeof ip === 'string' ? ip.match(/:(\d+)$/) : null;
|
||||
return match ? match[1] : undefined;
|
||||
})()
|
||||
) ||
|
||||
'Não disponível'
|
||||
}
|
||||
/>
|
||||
|
||||
{/* Adicionar família IP */}
|
||||
@@ -278,11 +265,28 @@ export function PublicVerificarProva() {
|
||||
/>
|
||||
)}
|
||||
|
||||
{/* Exibir geolocalização se disponível */}
|
||||
{(result.prova.metadata.latitude !== undefined || result.prova.metadata.longitude !== undefined) && (
|
||||
{/* Exibir geolocalização capturada na prova */}
|
||||
{(
|
||||
(result.prova.metadata?.latitude !== undefined && result.prova.metadata?.latitude !== null) ||
|
||||
(result.prova.metadata?.longitude !== undefined && result.prova.metadata?.longitude !== null) ||
|
||||
(result.prova.metadata?.locationInfo?.latitude !== undefined && result.prova.metadata?.locationInfo?.latitude !== null) ||
|
||||
(result.prova.metadata?.locationInfo?.longitude !== undefined && result.prova.metadata?.locationInfo?.longitude !== null)
|
||||
) && (
|
||||
<DetailItem
|
||||
label="Coordenadas"
|
||||
value={`${result.prova.metadata.latitude || 'N/A'}, ${result.prova.metadata.longitude || 'N/A'}`}
|
||||
value={`${
|
||||
result.prova.metadata?.latitude !== undefined && result.prova.metadata?.latitude !== null
|
||||
? result.prova.metadata.latitude
|
||||
: result.prova.metadata?.locationInfo?.latitude !== undefined && result.prova.metadata?.locationInfo?.latitude !== null
|
||||
? result.prova.metadata.locationInfo.latitude
|
||||
: 'N/A'
|
||||
}, ${
|
||||
result.prova.metadata?.longitude !== undefined && result.prova.metadata?.longitude !== null
|
||||
? result.prova.metadata.longitude
|
||||
: result.prova.metadata?.locationInfo?.longitude !== undefined && result.prova.metadata?.locationInfo?.longitude !== null
|
||||
? result.prova.metadata.locationInfo.longitude
|
||||
: 'N/A'
|
||||
}`}
|
||||
/>
|
||||
)}
|
||||
|
||||
|
||||
@@ -220,7 +220,10 @@ export const VerificarProva: React.FC = () => {
|
||||
Porta:
|
||||
</Typography>
|
||||
<Typography gutterBottom>
|
||||
{prova.verificacao?.porta || prova.prova?.metadata?.clientPort || 'Não disponível'}
|
||||
{prova.prova?.metadata?.clientPort ||
|
||||
prova.prova?.metadata?.connectionInfo?.socketPort ||
|
||||
prova.prova?.metadata?.userInfo?.ipAddress?.split(':')[1] ||
|
||||
'Não disponível'}
|
||||
</Typography>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
Reference in new issue
Block a user