f96q/kptboard

View on GitHub
app/javascripts/components/Alert.js

Summary

Maintainability
A
0 mins
Test Coverage
import React, { useEffect }  from 'react'
import { useDispatch, useSelector } from 'react-redux'
import { actions } from '../actionCreators'

export const Alert = (props) => {
  const { alert } = useSelector(state => ({
    alert: state.app.alert
  }))

  const dispatch = useDispatch()

  useEffect(() => {
    if (alert.messages.length == 0) {
      return
    }
    setTimeout(() => dispatch(actions.app.clearAlert({})), 5000)
  }, [])

  if (alert.messages.length == 0 || alert.type == null) {
    return null
  }
  return (
    <div className={`Alert is-${alert.type}`}>
      <div className="Alert-messages">{alert.messages.map((message, i) => (<div key={`message-${i + 1}`} className="Alert-message">{message}</div>))}</div>
    </div>
  )
}