feat: server members API + member list in sidebar + fix chat input

Backend:
- Add GET /api/v1/servers/{serverID}/members endpoint
- Wire MemberHandler routes in main.go

Frontend:
- Create member store (fetchMembers by server ID)
- MemberList now fetches members from API instead of empty props
- ChatArea: show channel name instead of ID, add error display,
  add flex-1 + min-w-0 to input for proper sizing, error handling
  on sendMessage
This commit is contained in:
root
2026-06-29 17:51:32 +00:00
parent bb67a7652e
commit 23902de912
5 changed files with 240 additions and 80 deletions
+16 -4
View File
@@ -97,6 +97,7 @@ func main() {
// Permissions checker
permissionsChecker := permissions.NewChecker(database.DB)
memberHandler := server.NewMemberHandler(database.DB)
r := chi.NewRouter()
r.Use(chimw.Logger)
@@ -134,11 +135,22 @@ func main() {
// Servers
r.Route("/servers", func(r chi.Router) {
server.NewHandler(database.DB).RegisterRoutes(r)
serverHandler := server.NewHandler(database.DB)
r.Post("/", serverHandler.Create)
r.Get("/", serverHandler.List)
// Channels (nested under servers)
r.Route("/{serverID}/channels", func(r chi.Router) {
channel.NewHandler(database.DB, permissionsChecker).RegisterRoutes(r)
r.Route("/{serverID}", func(r chi.Router) {
r.Get("/", serverHandler.Get)
r.Patch("/", serverHandler.Update)
r.Delete("/", serverHandler.Delete)
// Server members
memberHandler.RegisterRoutes(r)
// Channels (nested under servers)
r.Route("/channels", func(r chi.Router) {
channel.NewHandler(database.DB, permissionsChecker).RegisterRoutes(r)
})
})
})