     latest = @state.latest
     for updateObject, index in updateData
       latest[updateObject[1]] = updateObject[4]
+    isUpdateAvailable = updateData.length > 0
     if isfirst && updateData.length > 0
       title = __ 'Plugin update'
       content = ""

              content = "#{content} #{child}"
      content = "#{content} #{__ "have newer version. Please update your plugins."}"
      notify content,
        type: title
        icon: path.join(ROOT, 'assets', 'img', 'material', '7_big.png')
    @setState
      latest: latest
      checking: false
  checkUpdate: (callback, isfirst) ->
    npm.load {prefix: "#{PLUGIN_PATH}", registry: mirror[@state.mirror].server}, (err) ->
      npm.config.set 'depth', 1

    for plugin, index in plugins
      plugin.version = @state.latest[plugin.packageName]
      updating[index] = false
    @checkUpdate(@solveUpdate, false)
    @setState
      updating: updating
      updatingAll: false
  handleUpdateAll: (callback) ->
    if !@props.disabled
      updating = @state.updating
      toUpdate = []
      for plugin, index in plugins
        if semver.lt(plugin.version, @state.latest[plugin.packageName]) && @state.removeStatus[index] == 0
          updating[index] = true
          toUpdate.push plugin.packageName
      npm.load {prefix: "#{PLUGIN_PATH}", registry: mirror[@state.mirror].server}, (err) ->
        npm.commands.update toUpdate, (er, data) ->
          callback()
      @setState
        updating: updating
        updatingAll: true
  handleRemoveComplete: (index) ->
    removeStatus = @state.removeStatus
    removeStatus[index] = 2
