Rymrk
Rymrk

Reputation: 216

Hide/Unhide actions icons based on state.vallue value reactjs

I want to hide the approved/disapproved button if the data.STATUS is equal to APPROVED in MaterialTable.

const [data, setData] = useState([
{ID: 1, STATUS: "APPROVED"},
{ID: 2, STATUS: "FOR APPROVAL"},
{ID: 3, STATUS: "REJECTED"},
]);

<MaterialTable 
                icons={tableIcons}
                columns={columns}
                data={data}
                title="List of Advisory"
                style={{
                    overflowX: 'auto'
                }}
actions={[
 {
                        icon: tableIcons.Edit,
                        tooltip: 'Edit Advisory',
                        onClick: (event, rowData) => selectedAdvisory(rowData, 'Edit')
                    },
{
                icon: tableIcons.Delete,
                tooltip: 'Delete Advisory',
                onClick: (event, rowData) => selectedAdvisory(rowData, 'Delete')
              },
                    {
                        icon: tableIcons.ThumbsUpDownIcon,
                        tooltip: 'Approved/Disapproved Advisory',
                        onClick: (event, rowData) => selectedAdvisory(rowData, 'ApproveDisapprove')
                    },

{
                icon: tableIcons.PageviewIcon,
                tooltip: 'Preview',
                onClick: (event, rowData) => alert('You are about to view' + rowData.ADVISORYID)
              }

]}
                localization={{
                    header:{actions:'Actions'}
                }}
            />

I want to hide the Approved/Disapproved icon on action column if the STATUS is APPROVED. Thank you in advance

Material UI: https://material-ui.com/components/tables/ Material table: https://www.npmjs.com/package/material-table https://material-table.com/#/docs/get-started

Upvotes: 1

Views: 298

Answers (1)

JayDee
JayDee

Reputation: 102

Add/Put the action icons/buttons in columns property.

{ title: 'Actions', sorting: false, render: rowData =>
<Link to={`#`}
onClick={dosomething}
style={{display: rowData.state==='approved' ? 'none' : 'block'}}
onClick={dosomething}
<Approveicon>
</Link> }

so the actions per column can be controlled

Upvotes: 1

Related Questions