Skip to content

Bad priority handler in dataEditServer #58

@earnaud

Description

@earnaud

Hi,

thanks you for this amazing package.
I came across a bug when I tried to use your package, and think I grabbed its cause.

Bug description

I use a shinytree with two node levels: first one is data table names, and second one (leaves) are the different rows of the data table. A button lets the user access the selected data table (whatever is the selected row) and edit it in a modal. The currently selected table has a matching reactive (selected_table) which is given to dataEditServer as its data argument.
When testing my feature, I click on an item of the first table (5 rows), and clicks the button to display the modal. Everythnig is fine.
Then I click on an item of the second table (20 rows) and clicks the button to display the modal. Everything is fine again.
Then, I click back on an item of the first table, and clicks the button to display the modal. And there, the table is a 20-rows table containing the actual table repeated 4 times.

My investigation

I used R.utils::reassignInPackage() to customize dataEditServer() and added a browser() at the beginning of the observeEvent(input$x) (line 279 of https://github.com/DillonHammill/DataEditR/blob/master/R/dataEdit.R). This allowed me to inspect variables while the bug is occurring:

  • hot_to_r(input$x) returns the table 2 while I expected the table 1.
  • values$x returns the table 1 (not sure what has to be expected).
  • data_to_edit() returns the table 1 as expected.
    As far as I understand dataEditServer documentation, I shall expect the dataEditUI to be updated before its value is handled. This does not seem to be the case here.

I couldn't get to write a reproducible example of my case, so let me know if there are other pieces of information you would need.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions