feat(17-01): wire ChatMainContent with real discussion view (GREEN)

- Replace ChatMainContent() stub with ChatMainContent(data DiscussionTabData)
- Renders .ui-card container with .message-own/.message-other rows and .message-bubble
- Update GetChatPage handler to pass views.NewDiscussionTabData()
- Run templ generate; TestChatMainContentRendersBubbleClasses passes
- Full go test ./... -count=1 exits 0
This commit is contained in:
Arthur Belleville 2026-05-17 09:38:43 +02:00
parent dd1133d7cc
commit 81ccaeb107
No known key found for this signature in database
3 changed files with 413 additions and 279 deletions

View file

@ -128,7 +128,7 @@ func (h *AuthHandler) GetPlanningPage() http.HandlerFunc {
func (h *AuthHandler) GetChatPage() http.HandlerFunc {
return h.renderAppPage("/chat", func(user PublicUser) templ.Component {
return views.ChatMainContent()
return views.ChatMainContent(views.NewDiscussionTabData())
})
}

View file

@ -163,8 +163,36 @@ templ PlanningMainContent() {
@AppSectionMainContent("Planning", "Visualisez le rythme de l'équipe, les jalons à venir et les arbitrages de charge.")
}
templ ChatMainContent() {
@AppSectionMainContent("Discussions", "Retrouvez les conversations importantes, les décisions récentes et les échanges à relancer.")
templ ChatMainContent(data DiscussionTabData) {
<div id="discussion-messages" class="ui-card">
if len(data.Messages) == 0 {
@ui.EmptyState(ui.EmptyStateProps{
Title: "No messages yet",
Description: "Start the discussion.",
Icon: ui.UIIcon("message-circle"),
})
} else {
for _, msg := range data.Messages {
if msg.IsOwn {
<div class="message-row message-own">
<div class="message-meta">
<span class="message-author">{ msg.Author }</span>
<span>{ msg.Timestamp }</span>
</div>
<div class="message-bubble">{ msg.Body }</div>
</div>
} else {
<div class="message-row message-other">
<div class="message-meta">
<span class="message-author">{ msg.Author }</span>
<span>{ msg.Timestamp }</span>
</div>
<div class="message-bubble">{ msg.Body }</div>
</div>
}
}
}
</div>
}
templ FilesMainContent() {

File diff suppressed because it is too large Load diff