Skip to content

Instantly share code, notes, and snippets.

@dmitryrogozhny
Created August 11, 2017 10:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dmitryrogozhny/7b309780cc909b4fde6545a8739b28a4 to your computer and use it in GitHub Desktop.
Save dmitryrogozhny/7b309780cc909b4fde6545a8739b28a4 to your computer and use it in GitHub Desktop.
viewCommentsPanel : String -> List Message -> Html Msg
viewCommentsPanel reviewedText comments =
div [ class "proofread-panel" ]
(viewHighlightedText reviewedText 0 comments)
viewHighlightedText : String -> Int -> List Message -> List (Html Msg)
viewHighlightedText reviewedText lastProcessedIndex comments =
case comments of
[] ->
let
restOfText =
String.slice lastProcessedIndex (String.length reviewedText) reviewedText
in
span [ class "text" ] [ text restOfText ] :: []
comment :: xComments ->
let
leftText =
String.slice lastProcessedIndex comment.offset reviewedText
commentEndIndex =
comment.offset + comment.length
commentText =
String.slice comment.offset commentEndIndex reviewedText
in
span [ class "text" ] [ text leftText ]
:: span
[ class "comment"
, attribute "id" (toString comment.offset)
, handleOnMouseEnter SetActiveComment
, handleOnMouseLeave ResetActiveComment
, handleOnClick SetActiveComment
]
[ text commentText ]
:: viewHighlightedText reviewedText commentEndIndex xComments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment