diff options
Diffstat (limited to 'app/History/IssueEvent.hs')
-rw-r--r-- | app/History/IssueEvent.hs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/History/IssueEvent.hs b/app/History/IssueEvent.hs index 0900f13..93bd133 100644 --- a/app/History/IssueEvent.hs +++ b/app/History/IssueEvent.hs @@ -2,7 +2,10 @@ module History.IssueEvent (IssueEvent (..)) where import History.CommitHash (CommitHash) import Issue (Issue) +import Issue.Render qualified as I import Patch (Patch) +import Render ((<<<)) +import Render qualified as P data IssueEvent = IssueCreated @@ -22,3 +25,28 @@ data IssueEvent patch :: Patch } deriving (Show) + +instance P.Render IssueEvent where + render = P.render . P.Detailed + +instance P.Render (P.Detailed IssueEvent) where + render (P.Detailed issueEvent) = + P.Summarized issueEvent + <<< P.hardline @P.AnsiStyle + <<< issueEvent.patch + +instance P.Render (P.Summarized IssueEvent) where + render (P.Summarized issueEvent) = + case issueEvent of + IssueCreated {hash, issue} -> + P.Summarized hash + <<< P.styled [P.color P.Green] "created" + <<< I.IssueTitle issue + IssueChanged {hash, issue} -> + P.Summarized hash + <<< P.styled [P.color P.Green] "changed" + <<< I.IssueTitle issue + IssueDeleted {hash, issue} -> + P.Summarized hash + <<< P.styled [P.color P.Green] "deleted" + <<< I.IssueTitle issue |