@ftdata/core
v0.0.12
Published
 <br>
Readme
@ftdata/core
Pacote interno que fornece a base para aplicações web Fulltrack, incluindo autenticação, internacionalização e configuração global. Contém hooks e tipos reutilizáveis usados em projetos internos.
Funcionalidades
- Shell principal para aplicações web Fulltrack
- Hooks para autenticação, configuração, idioma, permissões, sessão e settings
- Tipos e interfaces para configuração, ambiente, navbar, idiomas, usuário e settings
- Constantes de configuração
- Integração com
react-i18nextpara internacionalização
Executando localmente
pnpm install
pnpm build # ← builda a lib
pnpm dev # ← Observa mudanças e builda em tempo real.Como usar
O principal export da biblioteca é o AppCore, que funciona como um wrapper central da aplicação, gerenciando autenticação, idioma, configuração, sessão e rotas. Os hooks também estão disponíveis, mas seu uso é opcional.
Importação
import { AppCore, DEFAULT_CONFIG } from '@ftdata/core';Exemplo de uso
import "@ftdata/ui/base.css"; // ← consulte a doc @ftdata/ui
import { AppCore, DEFAULT_CONFIG } from '@ftdata/core';
import httpInstance from './libs/http'; // ← consulte a doc @ftdata/http
import Welcome from './pages/Welcome';
import Settings from './pages/Settings';
import Report from './pages/Report';
const ROUTES = [
{ path: '/', element: <Welcome /> },
{ path: '/settings', element: <Settings /> },
{ path: '/reports', element: <Report /> },
];
function App() {
return (
<AppCore config={{ ...DEFAULT_CONFIG, httpInstance, routes: ROUTES }} />
);
}
export default App;Configuração mínima do AppCore
As informações que você precisa fornecer ao AppCore podem ser resumidas em tópicos:
module: nome do módulo da aplicação. Serve para identificar o módulo nas configurações internas. (opcional)namespace: número usado para requisições de traduções. Por padrão, é '114'. (opcional)navbar: configurações do que aparece na barra de navegação, permitindo customizar a interface principal. (opcional)changeCompanies: habilita a opção de trocar de empresa no sistema.attendance: habilita a exibição do painel de ponto/frequência.alerts: habilita notificações de alertas no navbar.notifications: habilita notificações gerais.breadcrumb: exibe ou oculta o breadcrumb da navegação.wiki: habilita link ou acesso ao wiki interno.
environment: configuração do ambiente da aplicação. (obrigatório)S3_URL: URL do bucket S3 para armazenamento e recursos.
httpInstance: instância do@ftdata/httpusada para chamadas HTTP. (obrigatório)routes: array de rotas da aplicação, cada uma compatheelement. Define a navegação do app. (opcional)
Observações:
- A maioria das configurações podem ser herdadas do
DEFAULT_CONFIG, mas são totalmente customizáveis.-
AppCorejá gerencia todo o fluxo da aplicação, então o uso de hooks é opcional.
Hooks
| Nome | Descrição |
| ------------------ | ------------------------------------------------------------------------------------------ |
| useAuth | Gerencia autenticação do usuário, login, logout e dados do usuário autenticado. |
| useConfiguration | Permite acessar e modificar configurações globais da aplicação. |
| useLanguage | Gerencia o idioma da aplicação e integra com o sistema de internacionalização (i18next). |
| usePermissions | Controla permissões e regras de acesso do usuário. |
| useSession | Gerencia informações da sessão atual do usuário. |
| useSettings | Permite acessar e modificar configurações personalizadas do usuário. |
| useTranslation | Hook para internacionalização, baseado no react-i18next. |
Componentes
| Nome | Descrição |
| ---------------- | ------------------------------------------------------------------------------------------ |
| AppCore | Wrapper central da aplicação, gerencia autenticação, idioma, configuração, sessão e rotas. |
| WithPermission | Componente para renderização condicional por permissão. |
Tipos e Interfaces
| Nome | Descrição |
| -------------------- | ---------------------------------------------- |
| IConfig | Interface para configuração global do AppCore. |
| IEnvironmentConfig | Interface para configuração de ambiente. |
| INavbarConfig | Interface para configuração da navbar. |
| UserType | Tipo para dados do usuário. |
| SettingsType | Tipo para configurações personalizadas. |
| LanguageType | Tipo para idiomas suportados. |
Constantes
| Nome | Descrição |
| ---------------- | ------------------------------- |
| DEFAULT_CONFIG | Configuração padrão do AppCore. |
Para importar:
import { AppCore, useAuth, IConfig, DEFAULT_CONFIG, ... } from '@ftdata/core';
