Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
30b1fde
refactor(auth): keep one sign-in page with type option
julianosill Jan 21, 2026
100fa25
refactor(sidebar): adjust size and structure
julianosill Jan 22, 2026
d6bfa89
refactor(header): rename page titles to section titles
julianosill Jan 22, 2026
398d860
chore(breadcrumbs): reorganize component and approvals pages
julianosill Jan 22, 2026
505ecf6
chore(patient): hide all patient area pages
julianosill Jan 22, 2026
364a7b3
refactor(dashboard): create global dashboard tab buttons
julianosill Jan 22, 2026
e7d293d
refactor(dashboard): reorganize files structure and update summary cards
julianosill Jan 24, 2026
ddbf170
refactor(enums/types): move enums from types to enums folder
julianosill Jan 24, 2026
18e6992
feat(components): create `Menu`
julianosill Jan 25, 2026
bc33efb
refactor(sidebar): replace user menu with new component
julianosill Jan 25, 2026
c768da2
refactor(dashboard): replace appointments dropdown actions with new c…
julianosill Jan 25, 2026
0efb595
feat(dashboard): add cancel appointment modal
julianosill Jan 25, 2026
d8caff1
refactor(dashboard): update appointments cache revalidation
julianosill Jan 26, 2026
9d2d4ca
refactor(actions): reorganize cache tags
julianosill Jan 26, 2026
b1dcc6b
feat(appointments): implements edit functionality
julianosill Jan 26, 2026
80150ac
feat(components): create `SeactionHeader`
julianosill Feb 4, 2026
c70e0ef
chore(dashboard): update appointments card header component
julianosill Feb 4, 2026
94b634e
fix(dashboard): get only upcoming appointments
julianosill Feb 4, 2026
7d901f8
chore: create shared order and order by types
julianosill Feb 5, 2026
da11417
chore(settings): comment out the settings page to be refactored later
julianosill Feb 5, 2026
8494f29
refactor: add `orderBy` type to order mapping to ensure consistency
julianosill Feb 5, 2026
5042741
refactor(components): delete `data-table` and create `section-header`…
julianosill Feb 5, 2026
b466ec6
feat(patients): add appointment and referral buttons to patients table
julianosill Feb 5, 2026
d8411d9
refactor(params): create params key to be used as query key
julianosill Feb 5, 2026
adf6612
refactor(referrals): simplify period tab select
julianosill Feb 5, 2026
47a4e6f
chore: hide incomplete pages
julianosill Feb 5, 2026
203feab
feat(components): add label to bar chart tooltip
julianosill Feb 6, 2026
e6aac64
feat(referrals): integrate main page with api
julianosill Feb 6, 2026
50d81a2
feat(helpers): create revalidate server and client cache functions
julianosill Feb 6, 2026
10afd58
feat(components): enable future date options to filter date component
julianosill Feb 6, 2026
f5e66db
chore(enums): move query param keys to enums folder
julianosill Feb 6, 2026
d98d1ce
refactor(referrals): create new referrals list table
julianosill Feb 7, 2026
9386fb1
feat(hooks): add `getParams` method to `useParams` hook
julianosill Feb 7, 2026
8acf1b3
refactor: use `getParams` method when getting several params
julianosill Feb 7, 2026
23175ef
fix: minor fixes on breadrumbs, section tab buttons, date picker and …
julianosill Feb 7, 2026
ff3ec2c
fix(referrals): fix referred patients percentage calculation
julianosill Feb 7, 2026
42aaa6e
chore(dashboard): improve upcoming appointments card semantic
julianosill Feb 7, 2026
a7c2e8e
chore(components): update calendar styles to improve readability
julianosill Feb 7, 2026
b85c2ce
chore(filters): improve filters sizes and spacing
julianosill Feb 7, 2026
c875181
chore(modals): change cancel button label to avoid misunderstanding
julianosill Feb 7, 2026
784a682
feat(users): create main users page
julianosill Feb 7, 2026
a5f71bb
chore(team): rename table to `user-table` to avoid conflict with new …
julianosill Feb 9, 2026
6bce7a1
Revert "chore(team): rename table to `user-table` to avoid conflict w…
julianosill Feb 9, 2026
778e5d0
feat(users): create user invites page
julianosill Feb 9, 2026
ae22974
fix(users): update new user invite button label
julianosill Feb 9, 2026
7b8642a
fix(referrals): update endpoints and rename to keep consistency
julianosill Feb 10, 2026
7b23ed8
feat(appointments): create main and list pages
julianosill Feb 10, 2026
7f68a65
fix(dashboard): fix patients by gender and city endpoints
julianosill Feb 10, 2026
2d8233e
refactor(profile): update profile page and change password modal
julianosill Feb 11, 2026
6c4428f
feat(patients): add race to patients
julianosill Feb 12, 2026
5f04c61
refactor(patients): reorganize patients list
julianosill Feb 13, 2026
de4c03a
refactor(patients): update create patient form
julianosill Feb 13, 2026
c4fe904
refactor(patients): update patient details page
julianosill Feb 13, 2026
bd9fe96
feat(patients): add appointments to patient details
julianosill Feb 14, 2026
174f4b8
fix(patients): fix patient appointments request endpoint
julianosill Feb 14, 2026
11fd834
feat(patients): add referrals to patient details
julianosill Feb 14, 2026
61aa17c
feat(patients): add breadcrumbs for appointments and referrals
julianosill Feb 14, 2026
811bc5d
feat(patients): create patient history page
julianosill Feb 15, 2026
add32f0
chore(patients): rename deactivate patient modal to fix typo
julianosill Feb 16, 2026
9b9817e
feat(patients): implement patient update and patient supports requests
julianosill Feb 16, 2026
72c7f22
feat(profile): add loading state to profile page
julianosill Feb 16, 2026
afcb083
chore(components): disable decimals on bar chart axis
julianosill Feb 16, 2026
9193294
chore(components): update section title color
julianosill Feb 16, 2026
597e091
feat(patients): update patient support cards with dropdown actions menu
julianosill Feb 16, 2026
a06ecc3
feat(build): bump next and react to latest version
julianosill Feb 16, 2026
9dcbaaa
feat(build): update eslint version and config
julianosill Feb 16, 2026
2345ad7
refactor(helpers): replace `revalidateTag` with `updateTag` from next 16
julianosill Feb 16, 2026
2cae646
fix(patients): set state form to `view` after updating successfully
julianosill Feb 16, 2026
aaf6906
fix(patients): only show support card actions for active patients
julianosill Feb 16, 2026
9a3017b
feat(auth): implement new user registration
julianosill Feb 17, 2026
a3a34b6
feat(auth): implement recover and reset password
julianosill Feb 17, 2026
f60f8de
feat(users): implement update user modal
julianosill Feb 17, 2026
f25f053
test(input): update default expect classes
julianosill Feb 17, 2026
7098b3f
build: add `force-dynamic` directive to pages that requires cookies data
julianosill Feb 17, 2026
0c0c29e
fix(eslint): apply eslint errors and warnings
julianosill Feb 18, 2026
6e13ca9
chore: add `placeholderData` to list tables using `useQuery`
julianosill Feb 18, 2026
16daeb4
fix(images): remove `@images/` alias and update `AuthCard` props
julianosill Feb 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 12 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,38 +7,39 @@ O sistema otimiza o fluxo de atendimento com integração de dados em uma interf
## Tecnologias utilizadas

- **Typescript**: Tipagem estática para maior segurança no desenvolvimento;
- **Next.js 15**: Framework React para renderização híbrida e roteamento eficiente;
- **Next.js 16**: Framework React para renderização híbrida e roteamento eficiente;
- **Tailwind CSS**: Framework CSS utilitário;
- **React Hook Form + Zod**: Gerenciamento de formulários com validação robusta.

## Como executar localmente

### Pré-requisitos

- Node.js (versão 18 ou superior)
- npm
- Node.js - versão 20.9.0 (LTS) ou superior
- NPM (Node package manager)
- Docker

### Passos para Configuração
### Instalação e configuração

#### 1. Clone o repositório
#### 1. Clone o repositório e instale as dependências

```bash
git clone https://github.com/ipecode-br/abnmo-frontend
cd abnmo-frontend
npm install
```

#### 2. Configure variáveis de ambiente
#### 2. Configure as variáveis de ambiente

Copie o arquivo de exemplo `env.sample` e renomoeie para `.env.local`. Ou crie um arquivo com o mesmo nome contendo as seguintes variáveis de ambiente:
Copie o arquivo de exemplo `env.sample` e renomeie para `.env.local` ou execute o comando:

```
NEXT_PUBLIC_API_URL=
```bash
cp env.sample .env.local
```

#### 3. Instale dependências e inicie a aplicação
#### 3. Inicie a aplicação

```bash
npm install
npm run dev
```

Expand Down
3 changes: 1 addition & 2 deletions env.sample
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
NEXT_PUBLIC_API_URL="http://localhost:3333"
NEXT_PUBLIC_API_IBGE="https://servicodados.ibge.gov.br/api/v1"
NEXT_PUBLIC_API_URL="http://localhost:3333"
53 changes: 19 additions & 34 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,48 +1,33 @@
import { dirname } from 'node:path'
import { fileURLToPath } from 'node:url'

import { FlatCompat } from '@eslint/eslintrc'
import pluginJs from '@eslint/js'
import eslintConfigPrettier from 'eslint-config-prettier'
import { defineConfig, globalIgnores } from 'eslint/config'
import nextVitals from 'eslint-config-next/core-web-vitals'
import nextTs from 'eslint-config-next/typescript'
import prettier from 'eslint-config-prettier/flat'
import eslintPluginPrettier from 'eslint-plugin-prettier'
import pluginReact from 'eslint-plugin-react'
import simpleImportSort from 'eslint-plugin-simple-import-sort'
import tseslint from 'typescript-eslint'

const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)

const compat = new FlatCompat({
baseDirectory: __dirname,
})

const eslintConfig = [
...compat.extends('next/core-web-vitals', 'next/typescript'),
eslintConfigPrettier,
pluginJs.configs.recommended,
pluginReact.configs.flat.recommended,
...tseslint.configs.recommended,
{
ignores: ['.next/**', 'node_modules/**'],
},
const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
prettier,
globalIgnores([
'.next/**',
'out/**',
'build/**',
'next-env.d.ts',
'node_modules/**',
]),
{
files: ['**/*.{js,mjs,cjs,ts,jsx,tsx}', './*.{js,mjs,cjs,ts,jsx,tsx}'],
files: ['**/*.{js,mjs,cjs,ts,jsx,tsx}'],
plugins: {
prettier: eslintPluginPrettier,
'simple-import-sort': simpleImportSort,
},
settings: {
react: { version: 'detect' },
prettier: eslintPluginPrettier,
},
rules: {
'prettier/prettier': 'error',
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
// ignore
'react/react-in-jsx-scope': 'off',
'@typescript-eslint/no-empty-object-type': 'off',
'prettier/prettier': 'error',
},
},
]
])

export default eslintConfig
Loading