How to make liking something faster?

Hello Bubblers!

I have an item with a list of users data type. Then an icon that when clicked runs a workflow that adds the user to the items list of users data type and then a conditional statement on the icon that says if parents group list of users contains current user change colour.

It all works fine but my problem is that when I click the icon to like something it takes a second or two to change colour as its waiting for the workflow to complete. How Do I make this faster? I would like the colour to be instantly changed when pressed.

Thanks!

Use a custom state for the UX side of things - then use the make changes to a thing action to update the database.

That said, I don’t know why it should take 1-2 seconds do this?.. how complex is your workflow?

3 Likes

I would say custom state too.

@adamhholmes Here’s my example of cases where it takes 2 seconds. Would appreciate a response if you have an answer to it.

That’s just the good old handy dandy bubble api system.

Can’t fix what ain’t broke.

(It just takes that long, yeah.)

Hello again Adam!

The workflow is quite short really, I simply followed this tutorial:

Everything works, it’s just that its a bit too slow.

I’ve been doing a bit of searching and may try to implement a backend workflow.

Cheers!

Fortunately, that’s absolutely not true :slight_smile: Everything is Bubble can be optimized to get light-speed.

Use a custom state for the UX side of things - then use the make changes to a thing action to update the database.

That’s a good idea that I also recommend, but in my opinion it requires a bit more work to have the like icon have a default state.
Meaning when your page loads, you’ll have to set the state with the value from your database (if the user has already liked or not)

So what I can also recommend is the following:

  • Have your icon within a group is_liked with a yes/no type
  • Set the default value of your group to your actual conditional (like user's likes contains item)
  • Have your icon colour conditional to be on the parent group's yes/no
    Now, the group will take a yes or no value automatically from your conditional in the data source, and the icon inside will refer to it.

To change the value of the icon:

  • First workflow action: Display data in a group : yes/no (so the icon status is immediately changed)
  • Second workflow action: Make change to thing (Your actual workflow to change the status)

This also works really well when using API calls which take even longer to refresh, and the best: other items can now also refer to your group's yes/no to change status immediately.


A bit advanced, but if the state can be changed from other users or devices as well, then you’ll have to schedule a Reset group in 1-2 seconds, otherwise as with @adamhholmes solution, it will not change until refreshed.

1 Like

I have this exact issue. I have been troubleshooting and what I intend to do is to separate the color of the icon from the workflow. I can report back when I try this but if you get to it first I’d love to hear your thoughts. Firstly, treat the icon like a toggle. It’s either one color or the other, and clicking it will toggle these 2 colors. In theory, that should be immediate. And then I would structure the workflow: when button is clicked, and the following is true, do the following. I would hope that the toggle would continue to operate regardless of workflow delay. It would certainly take some tweaking to make sure the workflow isn’t ignored, and that the icon’s display is accurate (for example, if the user has already ‘liked’ something on the page and reloads it, the latter I anticipate would still have a delay), but I think it would help UX if the toggle felt immediate, in spite of the workflows.

1 Like

Hi vnihoul77,

When you say:

Do you mean, create a data type called is_liked and assign it to the group or do you mean name the group is_liked and then make the type of content yes/no?

Also, how do I set a default conditional?

Thanks!

This topic was automatically closed after 70 days. New replies are no longer allowed.