diff --git a/server/services/api/communities/detail.get.js b/server/services/api/communities/detail.get.js
new file mode 100644
index 0000000..7d4ce57
--- /dev/null
+++ b/server/services/api/communities/detail.get.js
@@ -0,0 +1,42 @@
+// _core : social/userPessoa
+
+const dbComunidade = _db.queryFirst(`
+ SELECT
+ uid,
+ nome,
+ descricao,
+ imagem,
+ (
+ SELECT count(id)
+ FROM pessoa_comunidade
+ WHERE pessoa_id = ?
+ AND comunidade_id = comunidade.id
+ ) seguindo,
+ (
+ SELECT count(id)
+ FROM pessoa_comunidade
+ WHERE comunidade_id = comunidade.id
+ ) pessoas,
+ (
+ SELECT count(id)
+ FROM publicacao
+ WHERE comunidade_id = comunidade.id
+ ) publicacoes
+ FROM comunidade
+ WHERE active = true
+ AND uid = ?::uuid
+ ORDER BY nome
+`, userPessoa().getInt("id"), _req.getString("uid"))
+
+const data = _val.map()
+
+if (dbComunidade != null) {
+ data.set("uid", dbComunidade.getString("uid"))
+ .set("name", dbComunidade.getString("nome"))
+ .set("description", dbComunidade.getString("descricao"))
+ .set("following", dbComunidade.getInt("seguindo") > 0)
+ .set("people", dbComunidade.getInt("pessoas"))
+ .set("publications", dbComunidade.getInt("publicacoes"))
+}
+
+_out.json(data)
\ No newline at end of file
diff --git a/server/services/api/communities/detail.options.js b/server/services/api/communities/detail.options.js
new file mode 100644
index 0000000..472b23f
--- /dev/null
+++ b/server/services/api/communities/detail.options.js
@@ -0,0 +1,2 @@
+
+_out.json(_val.map().set("result", true))
diff --git a/server/services/api/communities/get.js b/server/services/api/communities/get.js
index b6bf4e1..c02dfa5 100644
--- a/server/services/api/communities/get.js
+++ b/server/services/api/communities/get.js
@@ -1,23 +1,32 @@
+// _core : social/userPessoa
const dbComunidades = _db.query(`
SELECT
uid,
nome,
descricao,
- imagem
+ imagem,
+ (
+ SELECT count(id)
+ FROM pessoa_comunidade
+ WHERE pessoa_id = ?
+ AND comunidade_id = comunidade.id
+ ) seguindo
FROM comunidade
WHERE active = true
ORDER BY nome
-`)
+`, userPessoa().getInt("id"))
const data = _val.list()
for (const dbComunidade of dbComunidades) {
+
data.add(
_val.map()
.set("uid", dbComunidade.getString("uid"))
.set("name", dbComunidade.getString("nome"))
.set("description", dbComunidade.getString("descricao"))
+ .set("following", dbComunidade.getInt("seguindo") > 0)
)
}
diff --git a/website/package.json b/website/package.json
index 2a29958..222b3c7 100644
--- a/website/package.json
+++ b/website/package.json
@@ -3,6 +3,7 @@
"version": "0.1.0",
"private": true,
"dependencies": {
+ "@ant-design/icons": "^4.6.2",
"@netuno/auth-client": "^1.0.3",
"@netuno/service-client": "^1.0.7",
"@testing-library/jest-dom": "^5.11.10",
diff --git a/website/src/App.js b/website/src/App.js
index a68c871..8abd9da 100644
--- a/website/src/App.js
+++ b/website/src/App.js
@@ -14,6 +14,7 @@ import Home from './pages/Home';
import Login from './pages/Login';
import Register from './pages/Register';
import Communities from './pages/Communities';
+import Community from './pages/Community';
import Main from './pages/Main';
import Core from './Core';
@@ -95,6 +96,9 @@ function App() {