mirror of
https://github.com/atom/atom.git
synced 2026-01-23 13:58:08 -05:00
25 lines
925 B
CoffeeScript
25 lines
925 B
CoffeeScript
React = require 'react-atom-fork'
|
|
{div} = require 'reactionary-atom-fork'
|
|
{isEqualForProperties} = require 'underscore-plus'
|
|
HighlightComponent = require './highlight-component'
|
|
|
|
module.exports =
|
|
HighlightsComponent = React.createClass
|
|
displayName: 'HighlightsComponent'
|
|
|
|
render: ->
|
|
div className: 'highlights', @renderHighlights()
|
|
|
|
renderHighlights: ->
|
|
{editor, highlightDecorations, lineHeightInPixels} = @props
|
|
|
|
highlightComponents = []
|
|
for markerId, {screenRange, decorations} of highlightDecorations
|
|
for decoration in decorations
|
|
highlightComponents.push(HighlightComponent({key: "#{markerId}-#{decoration.class}", screenRange, decoration, editor, lineHeightInPixels}))
|
|
|
|
highlightComponents
|
|
|
|
shouldComponentUpdate: (newProps) ->
|
|
not isEqualForProperties(newProps, @props, 'highlightDecorations', 'lineHeightInPixels', 'defaultCharWidth', 'scopedCharacterWidthsChangeCount')
|