giseldo/neodataset huggingface dataset:
Develop refined and consistent dropdown menu

There seems to be multiple variations of the dropdown menu through the web app. Styles differ from instance to instance as shown below.

![Screenshot_2022-04-08_at_11.10.04](/uploads/7eca42c9e761ad6877e67b458c525a87/Screenshot_2022-04-08_at_11.10.04.png)

See [updated designs](https://www.figma.com/file/EkJej3mKP2lSzmWTLoqlXD/Minds-Design-System?node-id=1179%3A15815) including both light and dark modes.

## Design Notes
* Material icons are optional
* The hover colour is the border colour
* Include a simple transition on hover of 150ms
* Would be nice to quickly fade in/out the menu as it is mounted/unmounted

## Acceptance Criteria

- [ ] Create/Update storybook component
- [ ]  Remove any legacy components and refactor their references
- [ ] Provide steps in MR of every component that has been changed to assist with QA

Story points: 5.0
Channel recommendations include channels that have blocked you

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

Users have reported that the channel recommendations they get include channels that have blocked them.

https://www.minds.com/newsfeed/1355657502728916998

![image](/uploads/b8780c499ce0ff93132e716c1fb4bec5/image.png)

### Steps to reproduce

Use 3x accounts.

- Account A: Subscribe to Account B.
- Account B: Block Account C.
- Account C: Subscribe to Account A.
- Account C: Navigate to channel recommendations: https://www.minds.com/discovery/suggestions/user

### Platform information 

- MacOS + Chrome

### What is the current *bug* behavior?

- Account B appears in the channel recommendations for Account C.

### What is the expected *correct* behavior?

- Channel recommendations does not suggest channels that have blocked you.

### Relevant logs and/or screenshots

![image](/uploads/726b2b6d1fa98ebb11e9f398af4db9e3/image.png)

![image](/uploads/4f77709f4039682d70c4b004e21946b8/image.png)

## Acceptance criteria

- [ ] Do **NOT** include as part of the ACL. Include at the API level in a filter only.

Story points: 3.0
Language sidebar prompt, Layout issue

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

The language change prompt in the sidebar can break the layout if the language name string is long (see screenshot).

### Steps to reproduce

- Set your browser language to something other than English
- Set your Minds language to English
- Navigate to the Newsfeed

### Platform information 

- MacOS + Chrome

### What is the current *bug* behavior?

- The button breaks out of the boundaries of the sidebar component

### What is the expected *correct* behavior?

- The button fits inside the layout

### Relevant logs and/or screenshots

![image](/uploads/63e2a31f397a39b5a72eee81e9113646/image.png)

### Possible fixes

A. Allow the string to wrap to a second line
B. Reduce font size for the string / overflow with ellipses in case it's still long
C. Change the button copy to just "Change Language"

Story points: 0.0
Experiment: Change name of Discovery to Explore

<!---
Please read this!

The Defintion of Ready (DoR) can be found at https://developers.minds.com/docs/handbook/how-we-work/#definition-of-ready-dor

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "Type::Feature" label and verify the feature you're about to submit isn't a duplicate.
--->

## Goal

<!---
Clearly outline the goal of the issue and why we are doing it
--->

Change the Navigation menu item of Discovery to Explore to see if we can increase traffic to the page

## What needs to be done

<!---
Clearly detail what needs to be done to achieve the goal set out above
--->

Change the navigation menu name

## QA

<!---
Consideration is given to how the issue will be demoed and tested prior to being deployed
--->

...

## UX/Design

<!---
Sufficient wireframes have been presented and understood by the development team. Full mockups are not required and re-usable components are encouraged.
--->
Change: On web, change the text of the `Discovery` navigation item to `Explore`.

![image](/uploads/1b7c1877a95618b25212a30e16f091aa/image.png)

## Personas

<!---
Who does this user impact and why
--->

...

## Experiment

Hypothesis: By changing the name of the Discovery item in the nav bar, we can increase usage of the Discovery / Top page.


<!-- Describe the change you'd like to test, and your hypothesis for its positive impact -->

## Measures
### Improvement category

This experiment aims to improve:
- Increase the number of users who view the Discovery feed

<!--

- User growth
- Retention
- Team velocity
- Spam impact
- Minds revenue
- Creator revenue
- Boost value

-->

### Direct measure

The primary metric we expect to improve with this change:
- Page / Screen views of /discovery/top

Additional metrics we want to watch:
- Upvotes
- Reminds
- Comments

Segment by:
- Newly registered users
- Already-active users

### Counter metric

To ensure we're not over-optimizing for one metric, we'll also look at impacts on this counter metric:
- None

## Acceptance Criteria

<!--
Everyone should be able to understand what is expected to be delivered
--->

- [ ] Change the text from Discovery to Explore
- [ ] Introduce a new experiment and have setup on growthbook

## Definition of Ready Checklist

- [x] Definition Of Done (DoD)
- [ ] Acceptance criteria
- [ ] Weighted
- [ ] QA
- [x] UX/Design
- [ ] Personas
- [ ] Experiments

Story points: 1.0
Standardize sidebar components for feeds

To make the site more predictable and enable better A-B test controls, we should standardize the components that appear for logged-in users in the sidebar of feeds including:

- Newsfeed
- Discovery feeds
- Search feeds

This table outlines the different sidebar components, which appear in which feed *currently*, and which should appear in the new shared, standardized layout. Numbers represent the order of appearance, from top to bottom.

| Component                          | Newsfeed | Discovery | Standardized |
|------------------------------------|----------|-----------|--------------|
| Complete to earn tokens            | 1        |           | 1            |
| The community-owned social network |          | 1         |              |
| Boost (channel)                    | 2        |           | 3            |
| Trending tags                      | 3        | 2         | 2            |
| Suggested channels                 |          |           |              |
| Boost (post)                       | 4        |           | 4            |
| Boost (channel)                    | 5        |           | 5            |
| Boost (channel)                    | 6        |           | 6            |

## Acceptance

- [ ] As a logged-in user, when viewing the Newsfeed, Discovery feeds, or Search feeds on a desktop browser, the sidebar displays the same components, in the same order.
- [ ] The contents of `Suggested channels` and `Trending tags` components are contextually matched to the feed they appear against.

Story points: 1.0
Let users hide in-feed components (Channel Recommendations, Highlights)

We should add the option for users to temporarily hide components that appear in feeds, including Channel Recommendations and Highlights.

## Acceptance

- [ ] When a user encounters a hideable in-feed component, they have an interface that lets them choose to hide the component.
- [ ] If the user chooses to hide the component, the component disappears from the page.
- [ ] Every time the user visits a feed during their logged in session, the in-feed channel recommendations component does not appear.
- [ ] If the user chooses to hide in-feed channel recommendations, this DOES NOT impact their appearance in dynamic contexts such as when it appears after clicking the subscribe button.

## Design notes

**Important: See related menu refactor task here -> https://gitlab.com/minds/minds/-/issues/3058**

- [Recommended channel design - ellipsis](https://www.figma.com/file/EkJej3mKP2lSzmWTLoqlXD/Minds-Design-System?node-id=333%3A2374) and [Active menu](https://www.figma.com/file/EkJej3mKP2lSzmWTLoqlXD/Minds-Design-System?node-id=1179%3A16526)
- Language TBC. I see @markryansallee specified `Remove fro Newsfeed`, designs however state `Remove from Feed` which may be seen as more general and usable on channels, or elsewhere (e.g. discovery)

Story points: 3.0
Measure signup attempts


<!---
Please read this!

The Definition of Ready (DoR) can be found at https://developers.minds.com/docs/handbook/how-we-work/#definition-of-ready-dor

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "Type::Feature" label and verify the feature you're about to submit isn't a duplicate.
--->

## Goal

Enable the product dev team to understand what % of signup attempts are completed, in order to measure the impact of future changes to the signup process.

## What needs to be done

<!---
Clearly detail what needs to be done to achieve the goal set out above
--->

Fire a new event when a signup is attempted.

- [ ] When the signup modal is displayed
- [ ] When a user visits the minds.com/register page


## QA

<!---
Consideration is given to how the issue will be demoed and tested prior to being deployed
--->


## UX/Design

No design

## Personas

This impacts the Minds product dev team.

## Experiments

No experiment.

## Acceptance Criteria

<!--
Everyone should be able to understand what is expected to be delivered
--->

- [ ] Register a 'view' generic event for the register form
- [ ] Ensure the register modal fires a `signup start` event 
- [ ] Ensure minds.com/register fires a `signup start` event
- [ ] Create Growthbook metric for 'register form view' that is Binomial
- [ ] In Growthbook, we can apply a `Signup completion rate` metric to understand the impacts of changes to the site.

## Definition of Ready Checklist

- [ ] Definition Of Done (DoD)
- [ ] Acceptance criteria
- [ ] Weighted
- [ ] QA
- [ ] UX/Design
- [ ] Personas
- [ ] Experiments

Story points: 3.0
Users are clicking expired email verification links

### Target problem

A high percentage of users who create accounts on Minds don't use the app after 2 hours. Tasman has identified a common pattern with these users:

- They haven't verified their email address
- They have multiple events showing them clicking the "Resend" button on email verification

### Hypothesis

- Verification emails end up in the user's spam folder and get missed
- If a user clicks "Resend" and later finds the emails in their spam folder, they may follow a verification link in an older verification email -- which will have expired and give them an error.

- [ ] Re-using the same verification link rather than generating a new one every time the user clicks "resend," will result in a higher % of users who register. OR not expiring previous verification links after a new one is sent will have the same effect.

### What is the primary metric that this change is aimed to improve?

Daily registrations (email verifications) / Daily signups (new accounts created), can be measured in the [Growth Dashboard](https://analytics.minds.com/superset/dashboard/32/?native_filters=%28NATIVE_FILTER-jhvp9Gs1E%3A%28__cache%3A%28label%3AAuthentic%2CvalidateMessage%3A%21f%2CvalidateStatus%3A%21f%2Cvalue%3A%21%28Authentic%29%29%2CextraFormData%3A%28filters%3A%21%28%28col%3Aaccount_type%2Cop%3AIN%2Cval%3A%21%28Authentic%29%29%29%29%2CfilterState%3A%28label%3AAuthentic%2CvalidateMessage%3A%21f%2CvalidateStatus%3A%21f%2Cvalue%3A%21%28Authentic%29%29%2Cid%3ANATIVE_FILTER-jhvp9Gs1E%2CownState%3A%28%29%29%29).

### What is the current state of this metric, and what is the improvement goal?

Currently conversion is ~30%; 90%+ seems like a realistic goal for an action with such strong intent as signup.

### Size estimate

(Size estimate -- from Design + Dev -- required to deliver this change. Is just an estimate)

### Acceptance
- [ ] If the user generates multiple verification emails via the "Resend" button, following the `Verify Address` button in any email will verify the user's address.
- [ ] Keep links valid for 24 hours

Story points: 3.0
Ad-hoc push notifications tool / interface

### Target problem
Most Minds app users do not get frequent push notifications because they don't get daily engagement on their content. Because many are not reminded of Minds through notifications, they forget to check into the app daily.

### Hypothesis

By sending more regular general push notifications (e.g. Watch Minds on Joe Rogan), we can remind many users to check into Minds daily.

### What is the primary metric that this change is aimed to improve?

DAU, Check-ins

### What counter metric will ensure that an increase in the primary metric is a positive for the product?

% of users with push notifications enabled / Minds has access to send them notifications

### Size estimate

(Size estimate -- from Design + Dev -- required to deliver this change. Is just an estimate)

### Acceptance Criteria

- API endpoint (restricted to only admins) to trigger ad-hoc push notifications
- API to support basic reporting of notification
- CLI for testing and/or manual triggers
- Abstraction of sender lists for future targeting support. Initial implementation to go to all devices
- Backend runner to subscribe to events
- Fields to support Title, Message, Link/URI
- Database to store (timestamp, author, title, body, uri, counter, status)
- Frontend to live in admin panel

Story points: 13.0
Deep-link for comment reply push notification doesn't work

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

- Given I'm on a mobile device,
- and I have the mobile app installed,
- and I receive a push notification for a comment / reply,
- when I tap the push notification,
- then the Minds app launches,
- and I see the last screen I visited within the app.

### Steps to reproduce

Follow steps above.

### Platform information 

iOS 15.3.x, iPhone 12 Mini, latest Test Flight build

### What is the current *bug* behavior?

Tapping the notification launches the app, but does NOT navigate me to the relevant reply / conversation.

### What is the expected *correct* behavior?

Tapping the notification launches the app, and DOES navigate me to the relevant reply / conversation.

Story points: 2.0
Regenerative Recommendations

### Target problem

channel recommendations previously had horizontal scrolling which made it easier for the user to see more recommendations. But now we only show three.

### Hypothesis

When the user chooses to subscribe to any recommendations, It's a good opportunity to show them more recommendations. There are two ways we can do this:

1. easy: replace the recommendation by another rec
2. complex: replace the recommendation by another rec and also grow the recommendation widget to a size of 5

### What is the primary metric that this change is aimed to improve?

channels subscribed
channels subscribed / channel recommendation widget shown

### What is the current state of this metric, and what is the improvement goal?

(Current value of the metric, target value of the metric)

### How does this change affect the desired metric?

(Explain how the proposed change relates to the metric)

### What counter metric will ensure that an increase in the primary metric is a positive for the product?

(Metric, KPI, and how it can be monitored)

### Size estimate

3

Story points: 3.0
Some comment replies not visible

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

I'm getting notified about replies from a specific user, but when I follow the notification to the reply, the reply does not appear.

### Steps to reproduce

- Navigate to [this conversation](https://www.minds.com/newsfeed/1350911860785811474?focusedCommentUrn=urn:comment:1350911860785811474:1350913480915423241:1350926330568380430:0:1350930778808127503)
- Click the `Hide replies` / `View 1 reply` button back and forth

### Platform information 

- MacOS + Chrome

### What is the current *bug* behavior?

- The reply is never displayed

----

Note: On the mobile app (iPhone), I am able to view the reply.

### What is the expected *correct* behavior?

- The reply is displayed when `View 1 reply` is clicked, and the reply is hidden when `Hide replies` is clicked.

### Relevant logs and/or screenshots

![image](/uploads/41c512b31dcc9b84c4e45c0fd51a1c77/image.png)

![image](/uploads/bf3e6894a1739ab78b56ecc56ed3789d/image.png)

Story points: 0.0
Growthbook metrics additions

Another batch of metrics we'd like to add to Growthbook to understand the impact of changes.

- [x] Activity post views
- [ ] ~Conversations (comments with comments)~ (currently unable to figure this out)
- [x] Has blocked a user
- [x] Sessions
- [ ] ~~Has given a tip~~
- [ ] ~~Has subscribed to Minds+~~
- [ ] ~~Has subscribed to channel membership~~
- [ ] ~[Signup attempt](https://gitlab.com/minds/minds/-/issues/3029)~

Story points: 3.0
h1 on new homepage

The spec for the new homepage included wrapping the Minds logo in an h1 tag. That turned out to be contentious, so spinning off a separate task to discuss / implement a final solution.

----

The goal is to have an H1 on the page that semantically reads "Minds" for search purposes. This will help reinforce the page title tag so that the page continues to rank for the search query `minds`. It is imperative that Minds continues to rank #1 for the search query `minds`, which is responsible for [most of our search referrals](https://datastudio.google.com/u/0/reporting/525f323a-f2b5-47ea-82ad-181972a5ebd3/page/39caC).

Since we don't have a non-logo version of the word "Minds" on the new homepage, wrapping the Minds logo in an h1 and applying the `alt="Minds"` tag to the logo image is an option for achieving the goal.

Some supporting links:

- [Google's YouTube channel: Should I include my logo text using `alt` or CSS?](https://www.youtube.com/watch?v=fBLvn_WkDJ4)
- [Google's YouTube channel: Multiple h1s per page](https://www.youtube.com/watch?v=WsgrSxCmMbM)
- [Stack Overflow discussion about H1 logos](https://stackoverflow.com/questions/25405769/using-a-h1-logo-in-html5)

Story points: 1.0
Add push notification setting for web

In order to support [Web Push Notifications](https://gitlab.com/minds/front/-/issues/5029), we will add a toggle to the [existing notifications settings screen ](https://www.minds.com/settings/account/push-notifications)to allow a user to enable/disable notifications for the browser.


## Acceptance
- [ ] There is a screen in Settings that exposes toggles for all notification categories
- [ ] The status of these toggles is synchronized between the mobile and and the web app
- [ ] The user will receive notifications for the categories that are toggled on
- [ ] The user will not receive notifications for the categories that are toggled off
- [ ] The user can toggle on/off notifications for mobile app and web browser independently

Story points: 3.0
Restart notifications summary emails

In order to re-engage users who haven't signed into Minds recently, we will periodically send them emails with a summary of unread notifications.

We already have an email template for doing this. Evaluate the suitability of this existing template for the goals of the tasks and restart the delivery of these emails.

## Acceptance
- Given a user has email notifications enabled with a frequency of weekly OR periodically,
- and the user has unread notifications,
- and the user hasn't already been emailed about these notifications,
- when it's [Saturday morning],
- then the user receives an email with a summary of their unread notifications and a call to action to check into Minds.
---
- Given a user has email notifications enabled with a frequency of daily,
...
- when it's [a new day],
...
---
- Given a user creates a new account,
- when the user navigates to [Settings > Account > Email notifications](https://www.minds.com/settings/account/email-notifications-v2),
- then the Notification Frequency default setting is set to Daily.
- [ ] Truncate text of notifications to 200 characters

Story points: 1.0
Create new SendGrid contacts lists

In order to give non-technical members of the team the flexibility to send ad-hoc emails to Minds users, we will create new contact lists within SendGrid that automatically update / sync with Minds data to reflect the changing state of users.

- [ ] Active users: All Minds users who have been on Minds within the past 30 days.
- [ ] Formerly core: Users who have not been on Minds within the past 30 days, but who were once `Core` users.
- [x] Twitter sync: Users with Twitter sync set up.
- [ ] YouTube sync: Users with YouTube sync set up.
- [ ] Users with memberships: Users with Membership tiers.
- [ ] Crypto users: Users who have connected crypto wallets.

## Acceptance
- [ ] The new contact lists described above are available as [segments in SendGrid](https://mc.sendgrid.com/contacts).
- [ ] The contacts lists include all users who match the conditions described above.
- [ ] As new users match those conditions over time, they're added to the appropriate contact lists.
- [ ] As users no longer match those conditions over time, they're removed from the appropriate contact lists.

Story points: 3.0
Unable to connect to Metamask wallet on mobile web

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

On mobile web, we present the user the option to connect to Metamask. However, the button doesn't allow me to follow through.

### Steps to reproduce

- Install the Metamask app.
- Log into Minds on a mobile browser.
- Navigate to `Wallet` and click `Join rewards`
- When the `Connect Wallet` modal appears, click on the Metamask icon

### Platform information 

- iPhone 12 Mini
- iOS 15.3.x

### What is the current *bug* behavior?

- The browser navigates to a metamask.com URL and links to the App Store to install the Metamask app.
- Clicking on the "Install app" button on metamask.com launches the Metamask app with a "Deeplink not supported" error.

### What is the expected *correct* behavior?

- ~~Metamask app should open and connect to Minds~~
- Remove ability for mobile. Display a toaster saying "Sorry, this feature is unavailable on mobile. Please use a desktop.".

### Relevant logs and/or screenshots

![image](/uploads/ff07b62d597343d52be7b70e183d8c56/image.png)

![image](/uploads/307fe5818b1dd98a5e85d14b92c38c28/image.png)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 2.0