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

[HOLD for payment 2023-03-21] [$1000] [Feature] Create autosuggestion UI for :emoji_codes: #12188

Closed
roryabraham opened this issue Oct 27, 2022 · 114 comments
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Daily KSv2 Design Engineering Internal Requires API changes or must be handled by Expensify staff NewFeature Something to build that is a new item.

Comments

@roryabraham
Copy link
Contributor

roryabraham commented Oct 27, 2022

Let's add an auto-suggestion UI for emojis so that they can be added inline in messages. Right now, typing :smile: works, but only if you know that it works. Let's make it easier to add emojis to messages using an inline emoji selector.

image

It will work like this:

  1. As soon as you type colon and two more characters without a space (e.g. :sm) we start searching (using the suggestEmojis function)
  2. We display the matches in the auto-suggestion modal, in the order returned by the function, with the closest match at the top
    a. We display the top suggestion highlighted.
    b. Pressing enter or tab selects the highlighted option.
    c. The arrow keys allow you to cycle through the options. The list should “wrap”, such that if you have the first element in the list highlighted and you press ArrowUp, then you are taken to the last element to the list. Similarly, if you have the last element in the list highlighted and you press ArrowDown, then you are taken back up to the first element in the list
    d. Every time your search query updates (i.e: you type another letter), then the first item is refocused. The reason for this is that when you update the search query we should assume that the “best result” is the one displayed first in the list, so that’s the one you’re most likely to want
  3. If there are no matches, we don't display the auto-suggestion modal
  4. If the user types a space or a colon (e.g. :smi or :smi:) we stop searching and don't show the auto-suggestion modal
  5. If they tap, click, press enter, or press tab on one of the emoji options then we finish the text (e.g. :smi becomes :smile: ) and add a space so that the user can continue typing
    a. When we finish the text, we should just replace it with the actual emoji code from emoji.js (which is returned by the search method) instead of the :<name>: since that would then need to be converted again
@roryabraham roryabraham added External Added to denote the issue can be worked on by a contributor Engineering Daily KSv2 NewFeature Something to build that is a new item. Design labels Oct 27, 2022
@melvin-bot
Copy link

melvin-bot bot commented Oct 27, 2022

Current assignee @shawnborton is eligible for the Design assigner, not assigning anyone new.

@melvin-bot
Copy link

melvin-bot bot commented Oct 27, 2022

Triggered auto assignment to @stephanieelliott (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

@roryabraham roryabraham added Weekly KSv2 and removed Daily KSv2 labels Oct 27, 2022
@melvin-bot
Copy link

melvin-bot bot commented Oct 27, 2022

Triggered auto assignment to Contributor-plus team member for initial proposal review - @mananjadhav (External)

@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Oct 27, 2022
@melvin-bot
Copy link

melvin-bot bot commented Oct 27, 2022

Current assignees @stitesExpensify and @roryabraham are eligible for the External assigner, not assigning anyone new.

@melvin-bot melvin-bot bot changed the title Create autosuggestion UI for :emoji_codes: [$250] Create autosuggestion UI for :emoji_codes: Oct 27, 2022
@roryabraham
Copy link
Contributor Author

@stephanieelliott I think we should probably start this issue at $1000

@stephanieelliott
Copy link
Contributor

Thanks @roryabraham!

Posted the job to Upwork :https://www.upwork.com/jobs/~01a345ace891dbce3d

@getusha
Copy link
Contributor

getusha commented Oct 28, 2022

Should the emoji popup appear after we typed :emojicode: or while we typing e.g :emo... and suggestions will start to appear
What do you think?

@mananjadhav
Copy link
Collaborator

@getusha It'll start showing up the top 5 suggestions as you start typing the :emo... code.

@stitesExpensify
Copy link
Contributor

This is a (really old) mockup we made when we first started thinking about this feature months ago. From this slack thread it sounds like @shawnborton is going to take another look at it though and potentially make some changes
2022-10-28_09-19-21

@shawnborton
Copy link
Contributor

Yup, happy to take a fresh look here. Did we ever have mobile mocks for this one too?

@stitesExpensify
Copy link
Contributor

stitesExpensify commented Oct 28, 2022

Yup, happy to take a fresh look here. Did we ever have mobile mocks for this one too?

No, not that I could find at least.

@getusha
Copy link
Contributor

getusha commented Oct 28, 2022

isn't that great if the suggested emojies aligned horizontally?

@afmire877
Copy link
Contributor

What is there a list of emojis that should be available, as there could be literally infinite?

I found this list => https://unicode.org/emoji/charts/full-emoji-list.html but as a user, I would not expect some of these.

@stitesExpensify
Copy link
Contributor

This is our list of emojis https://github.com/Expensify/App/blob/main/assets/emojis.js

There is already a trie data structure that will get suggestions here. This issue is mostly just UI and keybinds utilizing the existing code

@getusha
Copy link
Contributor

getusha commented Oct 29, 2022

@stitesExpensify @shawnborton @mananjadhav
Take a look at this.

New.Expensify.2.mp4

What do you think about this. Kindly share your idea and I will submit the proposal.

@stitesExpensify
Copy link
Contributor

Looks like Shawn is OOO, so let's move forward with the static version! @perunt LMK when the PR is ready for review!

@mananjadhav
Copy link
Collaborator

Quick bump here as @shawnborton is back I guess.

@shawnborton
Copy link
Contributor

Works for me too!

@JmillsExpensify
Copy link

Confirming that everything is unblocked now?

@stitesExpensify
Copy link
Contributor

Yep! The PR is being reviewed

@MelvinBot
Copy link

@JmillsExpensify, @shawnborton, @mananjadhav, @stitesExpensify, @roryabraham, @perunt Whoops! This issue is 2 days overdue. Let's get this updated quick!

@JmillsExpensify
Copy link

Still working through the linked PR.

@MelvinBot
Copy link

@JmillsExpensify, @shawnborton, @mananjadhav, @stitesExpensify, @roryabraham, @perunt Eep! 4 days overdue now. Issues have feelings too...

@MelvinBot
Copy link

@JmillsExpensify, @shawnborton, @mananjadhav, @stitesExpensify, @roryabraham, @perunt Still overdue 6 days?! Let's take care of this!

@stitesExpensify
Copy link
Contributor

stitesExpensify commented Mar 1, 2023 via email

@stitesExpensify
Copy link
Contributor

2 approvals, just waiting for a final C+ review and we'll be good to go!

@JmillsExpensify
Copy link

Let's get this one over the finish line this week! Can we resolve conflicts in the PR, make the requested updates, and merge today?

@stitesExpensify
Copy link
Contributor

Yep it was just updated again last night and should be merged today!

@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Daily KSv2 labels Mar 14, 2023
@melvin-bot melvin-bot bot changed the title [$1000] [Feature] Create autosuggestion UI for :emoji_codes: [HOLD for payment 2023-03-21] [$1000] [Feature] Create autosuggestion UI for :emoji_codes: Mar 14, 2023
@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Mar 14, 2023
@MelvinBot
Copy link

Reviewing label has been removed, please complete the "BugZero Checklist".

@MelvinBot
Copy link

MelvinBot commented Mar 14, 2023

The solution for this issue has been 🚀 deployed to production 🚀 in version 1.2.83-3 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2023-03-21. 🎊

After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

  • External issue reporter
  • Contributor that fixed the issue
  • Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

  • Merged PR within 3 business days of assignment - 50% bonus
  • Merged PR more than 9 business days after assignment - 50% penalty

@melvin-bot melvin-bot bot added Daily KSv2 Overdue and removed Weekly KSv2 labels Mar 20, 2023
@roryabraham
Copy link
Contributor Author

@JmillsExpensify bump for C+ payment

@melvin-bot melvin-bot bot removed the Overdue label Mar 22, 2023
@JmillsExpensify
Copy link

Sorry for the delay! On it.

@JmillsExpensify
Copy link

@mananjadhav hired you for the Upwork job: https://www.upwork.com/jobs/~0170a22b1e34ba0ade.

@mananjadhav
Copy link
Collaborator

Accepted @JmillsExpensify

@JmillsExpensify
Copy link

Awesome, all paid out! We should be all done here, closing the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Daily KSv2 Design Engineering Internal Requires API changes or must be handled by Expensify staff NewFeature Something to build that is a new item.
Projects
None yet
Development

No branches or pull requests