Send user to top of screen with action

Is anyone aware of a way to send a user back to the top of the current screen using an action?

I have a screen with a very long list of choice components in segmented mode (66 of them, to be exact), then at the end of the list is a ‘Submit’ button with a compound action attached. As part of that action sequence, I’d like to keep the user on the current screen, but send them back to the very top.

Can that be done?

I tried Link to Screen → This Item, but that reloads the screen with default component layout, which isn’t what I want.

1 Like

I’m not aware of a way to do that currently @Darren_Murphy but I’d like to know myself! What does the Submit button currently do? Add a row? If so, where are the source data values coming from?

1 Like

Hey Mark…

Yeah, it adds a row. The source data comes from a series of 66 user-specific columns which are tied to all the choice components. These get written out to a new row, and then all the user-specific values are cleared. What I want to do next is send them back to the top of the screen and ask them to do it all again (because, I’m a sadist :japanese_ogre:) …the 2nd pass actually writes another new row with a few values changed.

1 Like

Haha! I get it. Deep link an option?

Hadn’t thought about deep-linking.
Cheers, will investigate.

1 Like

Nope, don’t think deep links help in this instance.

1 Like

@Darren_Murphy great question. If you find out please let us know thanks

Does app.glideapp.io#top work?

Can you use the “Goto Tab” action?

You mean ‘Navigate to Tab’?
I did actually try that, and it just leaves me at the bottom of the screen.

This would be a great use case for the floating button that @Jeff_Hager came up with a while back. It could be added to every screen for accessibility purposes so that users can return to the top of a screen at any time.

I don’t know a way to navigate to a specific component, so I don’t think this is currently possible without some more accessibility features added.

3 Likes

Yeah, agreed.
It could be argued (probably correctly), that lots of vertical scrolling is a sign of bad design. And normally I’d try to avoid that. But sometimes you get forced into a corner and you’re left with no choice…

1 Like

I guess the ideal here would be to have a tabindex property on components, then you could simply navigate to any component on the screen. Maybe a feature request?

2 Likes

What if we created a second duplicate tab in which the visibility was controlled by the increment from the first?

66 components :cry:

4 Likes

And I thought I was a sadist… :scream:

3 Likes

As crazy as it seems, I may have no choice but to use the 2nd tab option.
sigh …clickety-click, clickety-click, clickety-click… :crazy_face::tired_face:

2 Likes

Hurry! The sooner you finish the sooner they release copying tabs / components :stuck_out_tongue_closed_eyes:

3 Likes

kill-myself

6 Likes

You could use a button that hides all items on screen the unhides them, it will take you to the top. If toggle is true then. and it just toggles does 1 action in between then toggles again. your done.

7 Likes

Superb!

So here is what I did:

  1. Created a user specific column (number type) to use as a toggle
  2. Initial state of that column is empty, so I set the visibility of all components to only show when that value is empty
  3. Then in the action sequence, the very first thing I do is increment that column (and everything on the screen disappears)
  4. Then the other actions in the sequence; add row, set columns, notification, etc
  5. And then finally, I do a set columns -> clear contents on the toggle column, and all components are back and we’ve been sent to the top of the screen.

There is a little bit of a delay between steps 3 and 5, so what I did was create another component with the opposite visibility condition (when toggle is not empty), and used this to provide some feedback for the user, eg. “Please be patient while we crunch your data…”

Great solution, (obvious really :crazy_face:), and saved me a bunch of work. Thanks!

4 Likes