       # config.set('poi.notify.morale.audio', audio_morale)
 
     handleShipChange: (e) ->
-      if e && e.target.value != @state.secretary
-        ship = e.target.value
-        @setState
-          secretary: ship
-        config.set('plugin.secretary.ship', ship)
-        @updateNotifyConfig(ship)
+      ship = parseInt(e.target.value)
+      return unless ship != NaN
+      @setState
+        secretary: ship
+      config.set('plugin.secretary.ship', ship)
+      @updateNotifyConfig(ship)
 
     handleAudition: (type) ->
       audio = null

  version: '0.1.2'
  reactClass: React.createClass
    getInitialState: ->
      secretary: config.get('plugin.secretary.ship')
      ships: []   # Contains ship id < 500 only.
      shipgraph: []
    componentDidMount: ->
      window.addEventListener 'game.response', @handleResponse

        <Grid>
          <Col xs=12>
            <Input type="select" value={@state.secretary} onChange={@handleShipChange}>
              <option key={0} value={0}>当前秘书舰</option>
              {
                for ship, i in @state.ships
                  continue unless ship?
