mirror of
https://github.com/atom/atom.git
synced 2026-01-22 21:38:10 -05:00
26 lines
997 B
CoffeeScript
26 lines
997 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() if @isMounted()
|
|
|
|
renderHighlights: ->
|
|
{editor, highlightDecorations, lineHeightInPixels} = @props
|
|
|
|
highlightComponents = []
|
|
for markerId, {startPixelPosition, endPixelPosition, decorations} of highlightDecorations
|
|
for decoration in decorations
|
|
highlightComponents.push(HighlightComponent({editor, key: "#{markerId}-#{decoration.class}", startPixelPosition, endPixelPosition, decoration, lineHeightInPixels}))
|
|
|
|
highlightComponents
|
|
|
|
shouldComponentUpdate: (newProps) ->
|
|
not isEqualForProperties(newProps, @props, 'highlightDecorations', 'lineHeightInPixels', 'defaultCharWidth', 'scopedCharacterWidthsChangeCount')
|