import React,{useEffect,useRef,useState} from 'react'; import {moduleGuides,overviewSources,overviewPage} from './workspace-overview.js'; export function OverviewRecords({source,result,navigate}){ return <>{result.facts?.length>0&&
{result.total} registo(s) nesta fonte autorizada · página {result.page} de {result.last}.{result.observed&&` Referência da fonte: ${result.observed}.`}
| Referência e descrição | Estado ou entidade | Valor ou identificação | Evidência |
|---|---|---|---|
| {r.reference}{r.detail} | {r.state} | {r.value} | {r.evidence} |
Nenhum registo nesta página e fonte autorizadas.
}{source.href?Abrir consulta completa, documentos e histórico:}
>; } export default function WorkspaceHome({context,groups=[],can=()=>false,api,navigate=()=>{},openPage=()=>{}}) { const sources=overviewSources(context,can),guide=moduleGuides[context.module_id]; const [selection,setSelection]=useState(''),[result,setResult]=useState(null),[error,setError]=useState(''),[loading,setLoading]=useState(false);const generation=useRef(0); useEffect(()=>{generation.current++;setSelection('');setResult(null);setError('');setLoading(false);return()=>{generation.current++;};},[context.token]); const source=sources.find(s=>s.id===selection); async function load(s,page=1){const current=++generation.current;setSelection(s.id);setResult(null);setError('');setLoading(true);try{const r=await api(s.path+(s.path.includes('?')?'&':'?')+'page='+page);const value=overviewPage(s,r);if(current===generation.current)setResult(value);}catch(e){if(current===generation.current)setError(e.message);}finally{if(current===generation.current)setLoading(false);}} const activeGroups=groups.filter(g=>!['start','admin'].includes(g.id)); returnÁREA DE TRABALHO
{guide?.purpose??'Escolha um módulo e uma função autorizada para trabalhar com os seus documentos.'}
{context.company.name}{context.unit&&` / ${context.unit.name}`}. Informação limitada ao contexto e à função actuais.
Seleccione uma unidade para consultar os percursos de trabalho dessa unidade.
} {guide&&Escolha a fonte a consultar. A leitura não prepara nem repete operações; cada página traz até25 registos (requisições:15). Os valores são apresentados individualmente.
A consultar a fonte autorizada…
}{error&&{error}
Não é possível concluir que existem zero registos ou saldo zero.
Leitura actual por página, sem fotografia global entre páginas. Eventos de preparação/revisão não são movimentos financeiros; não se somam os valores desta lista.
>}A mudança de módulo é explícita e conserva os controlos de acesso. Cada entrada abaixo oferece apenas as funções já autorizadas para a sua conta.
{g?.purpose}
{g?.next}
Instalação local com dados fictícios. As consultas mostram os registos existentes; mapas fiscais internos e indicadores de ensaio não comprovam conformidade legal ou operação real.
}