package components import ( "github.com/LazyBachelor/LazyPM/internal/models" "github.com/LazyBachelor/LazyPM/pkg/web/components/base" ) type DashboardPageProps struct { ActiveIssues []models.Issue ClosedIssues []models.Issue SelectedIssue *models.Issue SelectedID string BaseURL string QueryParam string EmptyText string DisplayOwner string DisplayAssignee string } templ DashboardPage(props DashboardPageProps) {

Issues

@base.Table( []templ.Component{ base.PlainText("ID"), base.PlainText("Title"), base.PlainText("Status"), base.PlainText("Type"), base.PlainText("Priority"), }, []templ.Component{ DashboardIssueRows(props.ActiveIssues, props.SelectedID, props.BaseURL, props.QueryParam), }, templ.Attributes{}, )

Closed issues

@base.Table( []templ.Component{ base.PlainText("ID"), base.PlainText("Title"), base.PlainText("Status"), base.PlainText("Type"), base.PlainText("Priority"), }, []templ.Component{ DashboardIssueRows(props.ClosedIssues, props.SelectedID, props.BaseURL, props.QueryParam), }, templ.Attributes{}, )
if props.SelectedIssue != nil {
View full page
@IssueDetailCard(IssueDetailCardProps{ Issue: *props.SelectedIssue, DisplayOwner: props.DisplayOwner, DisplayAssignee: props.DisplayAssignee, })
} else {

{ props.EmptyText }

Create an issue
}
} templ DashboardIssueRows(issues []models.Issue, selectedID string, baseURL string, queryParam string) { if len(issues) == 0 { No issues } else { for _, issue := range issues { if issue.ID == selectedID { { issue.ID } { issue.Title } @StatusBadge(issue.Status) @TypeBadge(issue.IssueType) @PriorityBadge(issue.Priority) } else { { issue.ID } { issue.Title } @StatusBadge(issue.Status) @TypeBadge(issue.IssueType) @PriorityBadge(issue.Priority) } } } }