Page MenuHomePhabricator

When a user clicks a link in a dialog: we close the dialog; but might prefer to transition it away with the navigation event under Quicksand so "Back" can reopen it
Open, WishlistPublic

Description

Reproduction instructions:

  • Enable "Persistent Chat" to activate Quicksand.
  • Click "Create Subtask" on a task after configuring multiple available subtypes.
  • Choose a subtype.

Expected behavior:

  • Clicking an option closes the dialog and navigates.

Actual behavior:

  • Clicking an option navigates behind the dialog but does not close it.

See downstream: https://phabricator.wikimedia.org/T220897

Event Timeline

epriestley created this task.

This likely affects other similar dialogs. The fix is to duct-tape something in Quicksand to something in the "click an area to click a link" behavior, most likely.

D20573 will fix this, but perhaps not in the most graceful way possible.

When you perform a navigation event by clicking a link and have Quicksand enabled, we currently replace only the document content with the new link content. This is mostly intentional, since the whole goal of Quicksand in the first place is to avoid repainting the chat element.

However, since we only redraw the content pane, we don't redraw dialogs -- they stick around in their current state, similar to the persistent chat panel and persistent page header.

D20573 fixes this by closing dialogs when you click them. This is similar to existing behavior where we close dialogs when you submit them.

Arguably, we might prefer to transition the dialog out when you navigate with Quicksand, then transition it back in on "Back". The impact is this:

  • You go to create a subtask, and click "Create Subtask".
  • You're prompted with a subtask dialog, and choose "New Duck Subtask".
  • On the next page, you realize you made a mistake, and actually wanted to choose "New Goose Subtask".
  • You click "Back", intending to change your selection.

The old behavior (before D20573) was that you would go "Back" to the dialog if Quicksand was disabled. The new behavior will take you back to the task page, but the dialog won't still be open.

Arguably, we might prefer the old "Back" behavior.

This is probably an issue to revisit if/when T10469 happens. I am wildly unsympathetic to that task but plan to implement it anyway, mostly out of spite.

I'm going to realign this task around that straggling behavioral issue.

epriestley renamed this task from With Quicksand enabled, "Choose Subtype" dialog on "Create Subtask" workflow is not dismissed by making a selection to When a user clicks a link in a dialog: we close the dialog; but might prefer to transition it away with the navigation event under Quicksand so "Back" can reopen it.Jun 6 2019, 1:57 AM
epriestley lowered the priority of this task from Low to Wishlist.

D20573 has one issue where the "Select" buttons in the "Merge Duplicates In" dialog are now closing the dialog. We might be missing a JX.pass() / e.prevent() (hopefully) or might need to get slightly more creative in distinguishing between navigation links and javascript magic links.