Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to conditionally hide a Workbook.Column from dispay #26

Open
coolbeatz71 opened this issue Apr 14, 2021 · 2 comments
Open

How to conditionally hide a Workbook.Column from dispay #26

coolbeatz71 opened this issue Apr 14, 2021 · 2 comments

Comments

@coolbeatz71
Copy link

coolbeatz71 commented Apr 14, 2021

I would like to hide a column using a condition:

{colToExport.created_at && (
          <Workbook.Column
            label='Date Time'
            value={(params: any) =>
              moment(params.created_at).format('MMM Do, YYYY, HH:mm')
            }
          />
        )}

But I am getting an error can't find props of null.

A quick look at the code, I can see such code: column.props.label or column.props.value.

I want whether there is a better way of doing it, or if It is possible to add another prop like hide which will receive a boolean to hide or not the ExcelColumn from export

@coolbeatz71 coolbeatz71 changed the title How to conditionally hide a column from dispay How to conditionally hide a ExcelColumn from dispay Apr 14, 2021
@coolbeatz71 coolbeatz71 changed the title How to conditionally hide a ExcelColumn from dispay How to conditionally hide a Workbook.Column from dispay Apr 14, 2021
@dadamssg
Copy link
Member

While not the most elegant solution you could put all of your columns in an array and filter out the nulls.

<Workbook.Sheet data={data1} name="Sheet A">
    {[
       <Workbook.Column key='foo' label="Foo" value="foo"/>,
       colToExport.created_at &&  <Workbook.Column key='created_at' label="Date Time" value={() => {}}/>,
       <Workbook.Column key='bar' label="Bar" value="bar"/>
     ].filter(Boolean)}
</Workbook.Sheet>

@coolbeatz71
Copy link
Author

While not the most elegant solution you could put all of your columns in an array and filter out the nulls.

<Workbook.Sheet data={data1} name="Sheet A">
    {[
       <Workbook.Column key='foo' label="Foo" value="foo"/>,
       colToExport.created_at &&  <Workbook.Column key='created_at' label="Date Time" value={() => {}}/>,
       <Workbook.Column key='bar' label="Bar" value="bar"/>
     ].filter(Boolean)}
</Workbook.Sheet>

I will give it a try. But I was planning to raise a PR to solve this issue. But I don't know if the repo maintainer is active

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants