Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

125
Views
Styling a text in react based on multiple conditions

I am using react and trying to see how to style some text based on multiple condtions. The conditions are based on status. So I have a map function that is iterating over an array of rows and they all have a status field. The five status' are:

'INTRO' 'BEGINNING' 'MIDDLE' 'END' 'CONCLUSION'

So i want intro status to be green, beginning status to be blue, middle status to be red, end status to be purple, and conclusion status to be grey. I tried to do this with ternary operators but it seems it can only be achieved with two colors. For example:

{rows.map(row => (
  <TableRow key={row.id}>
    <TableCell style={{ color: row.status === 'COMPLETED' ? 'green':''}} classes={{ root: classes.tableCell }} align="center">{row.status}</TableCell>
  </TableRow>
))}

As you can see, its not that easy to do with ternary. Is there any other way to achieve this?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

You can use a switch case to have multiple conditioning like below

function cellColor(status) {
  switch(status) {
    case 'COMPLETED': 
      return 'green';
    case 'BEGINNING': 
      return 'blue'
    case 'MIDDLE': 
      return 'red'
    case 'END': 
      return 'purple'
    case 'CONCLUSION': 
      return 'grey'    
    default: 
      return ''
  }
}


<TableCell style={{ color: cellColor(row.status)}} classes={{ root: classes.tableCell }} align="center">{row.status}</TableCell>
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!