From 7c6138e93c704945b2fdaa610c1281b87740746b Mon Sep 17 00:00:00 2001 From: Yvens Giacomini <31545881+superaura@users.noreply.github.com> Date: Tue, 14 Jan 2025 21:07:34 +0000 Subject: [PATCH 1/2] build: install `swr` --- package-lock.json | 25 ++++++++++++++++++++++++- package.json | 3 ++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b4cf73f..775eb0b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,8 @@ "node-pg-migrate": "7.6.1", "pg": "8.12.0", "react": "18.3.1", - "react-dom": "18.3.1" + "react-dom": "18.3.1", + "swr": "2.2.5" }, "devDependencies": { "@commitlint/cli": "19.4.0", @@ -10648,6 +10649,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swr": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz", + "integrity": "sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==", + "license": "MIT", + "dependencies": { + "client-only": "^0.0.1", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -11024,6 +11038,15 @@ "punycode": "^2.1.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index 830f1b7..01d4818 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,8 @@ "node-pg-migrate": "7.6.1", "pg": "8.12.0", "react": "18.3.1", - "react-dom": "18.3.1" + "react-dom": "18.3.1", + "swr": "2.2.5" }, "devDependencies": { "@commitlint/cli": "19.4.0", From 80510e174a9ad2c81fb0d37d937a841094c10b03 Mon Sep 17 00:00:00 2001 From: Yvens Giacomini <31545881+superaura@users.noreply.github.com> Date: Tue, 14 Jan 2025 21:10:02 +0000 Subject: [PATCH 2/2] feat: add first version of `/status` page --- pages/status/index.js | 101 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 pages/status/index.js diff --git a/pages/status/index.js b/pages/status/index.js new file mode 100644 index 0000000..44b1a25 --- /dev/null +++ b/pages/status/index.js @@ -0,0 +1,101 @@ +import useSWR from "swr"; + +async function fetchAPI(key) { + const response = await fetch(key); + const responseBody = await response.json(); + console.log(responseBody); + return responseBody; +} + +export default function StatusPage() { + return ( + <> +

+ Status – Clone TabNews +

+ + + ); +} + +function UpdateAt() { + const { isLoading, data } = useSWR("/api/v1/status", fetchAPI, { + refreshInterval: 2000, + }); + + let updatedAtText, + databaseVersionText, + databaseMaxConnectionsText, + databaseOpenedConnectionsText = "Carregando..."; + + if (!isLoading && data) { + updatedAtText = new Date(data.update_at).toLocaleString("pt-BR"); + databaseVersionText = data.dependencies.database.version; + databaseMaxConnectionsText = data.dependencies.database.max_connections; + databaseOpenedConnectionsText = + data.dependencies.database.opened_connections; + } + + return ( +
+
+

+ Última atualização: {updatedAtText} +

+
+
+
+

Banco de Dados:

+

+ Versão: + {databaseVersionText} +

+

+ Limite de conexões: + + {databaseMaxConnectionsText} + +

+

+ Conexões abertas: + + {databaseOpenedConnectionsText} + +

+
+
+
+ ); +} +//