giseldo/neodataset huggingface dataset:
Resolve primary and secondary background colour discrepancies

There is currently a very slight colour discrepancy between web and mobile, relating to the primary background colours that are being used. This issue relates just to dark mode.

Looks like the primary background colour in dark mode web needs to be changed from `#242A30` to `#1F252C`.

`#1F252C` is the background background colour being used within `mobile` and contained within the `style guide`

The correct colour is slight darker and more saturated and should look like the image below.

![Screenshot_2022-04-07_at_09.58.09](/uploads/4931cfa7891539dda8b2d7f424d6c3fd/Screenshot_2022-04-07_at_09.58.09.png)
 
FYI @bashynx

Story points: 1.0
SSR Bug: TypeError: Cannot read property 'custom_data' of undefined

Sentry Issue: [FRONT-SSR-43](https://sentry.io/organizations/minds-inc/issues/3077341904/?referrer=gitlab_integration)

```
TypeError: Cannot read property 'custom_data' of undefined
  File "/dist/server/main.js", line 1, in BlurhashDirective.drawCanvas
    '{snip} l;let[width,height]=[elementWidth||(null===(_e=this.entity.custom_data[0])||void 0===_e?void 0:_e.width),elementHeight||(null===(_f=this.ent {snip}
  File "/dist/server/main.js", line 1, in BlurhashDirective.ngOnInit
    '{snip} omplete&&!this.paywalled)return null;this.fullscreen&&this.drawCanvas()}ngAfterViewInit(){if(this.isLoadingComplete&&!this.paywalled)return  {snip}
  File "/dist/server/main.js", line 33, in callHook
    '{snip} ){currentView[2]+=2048,profiler(4,directive,hook);try{hook.call(directive)}finally{profiler(5,directive,hook)}}}else{profiler(4,directive,ho {snip}
  File "/dist/server/main.js", line 33, in callHooks
    '{snip} ,(lastNodeIndexFound<nodeIndexLimit||-1==nodeIndexLimit)&&(callHook(currentView,initPhase,arr,i2),currentView[18]=(4294901760&currentView[18 {snip}
  File "/dist/server/main.js", line 33, in executeInitAndCheckHooks
    '{snip} lView,hooks,initPhase,nodeIndex){(3&lView[2])===initPhase&&callHooks(lView,hooks,initPhase,nodeIndex)}function incrementInitPhaseFlags(lView {snip}
...
(5 additional frame(s) were not displayed)
```

Story points: 2.0
We're using two blues

<!---
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

We're using two blue colors in the themes file, both `$m-blue` and `$m-link`

### Platform information 

Macbook, chrome

### What is the current *bug* behavior?

Different shades of blue exist on the site

### What is the expected *correct* behavior?

We should only be using the latest blue, which is `$m-link`.  BUT it should be called `$m-blue`, because it is used for a variety of elements, not just links. 
### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

Change the `$m-blue` hex codes in the themes.scss file to those that are currently called `$m-link`

Story points: 1.0
Fix bad use of sessionMock shared state causing testbed failures

<!---
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

Unit tests are currently being very flakey - improper setup and destruction of different testbeds is likely having a knock-on effect on later run tests  I've found at least one issue with the `sessionMock` not being reset so far.

### Steps to reproduce

Run test command

### Platform information 

CI

### What is the current *bug* behavior?

Tests failing

### What is the expected *correct* behavior?

Tests should pass

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 2.0
Verified link broken in Apple mobile browser

<!---
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.
--->

Verified link broken in Apple mobile browser

User reported the "click here to request to be verified" link did not do anything on her Apple mobile browser

![1](/uploads/2798f38c884a509810eea047d398e0f7/1.png)![2](/uploads/eec3a9d55a1d1d77341d000f6816bedf/2.png)produce the issue - this is very important)

### Platform information 

unknown browser, iphone

Story points: 2.0
NSFW boost check comes after payment for onchain boosts

<!---
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

NSFW boost check comes in AFTER payment has been made for boost. This probably hasn't been flagged as an issue because boosting onchain is too expensive to be viable on mainnet.

### Steps to reproduce

1. Make NSFW post.
2. Try to boost onchain.
3. Observe payment modal pops up.
4. After accepting, boost is rejected.

### Platform information 

Web

### What is the current *bug* behavior?

Boost payment is taken for a boost that is invalid

### What is the expected *correct* behavior?

Should check BEFORE the first call for the boost is made on the front-end, so no payment is taken.

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

See expected correct behavior

Story points: 1.0
Login modal doesn't close automatically post route change after clicking forgot password

<!---
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

Login modal doesn't close on forgot password click.

### Steps to reproduce

1. Go to the homepage.
2. Open login modal.
3. Click forgot password.
4. Observe you are redirected to forgot password page but the modal does not close.
 
### Platform information 

Web, Firefox / Ubuntu

### What is the current *bug* behavior?

Modal does not close on move to the forgot password page.

### What is the expected *correct* behavior?

Modal dismiss should be called.

### Relevant logs and/or screenshots

![image](/uploads/92591688d04abf01d6fe82779a1440bf/image.png)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 2.0
Investigate improving the efficiency of our holding rewards calculations

<!---
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 query used to gather data on holding rewards is very slow. We should investigate using BigQuery or a bespoke TheGraph sub-graph to speed up the process - in turn speeding up reward calculation times for everyone in daily estimates.

### Steps to reproduce

1. Run rewards calculations on production

### Platform information 

Engine side

### What is the current *bug* behavior?

Query needs optimization.

### What is the expected *correct* behavior?

Query should run much quicker.

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

- BigQuery is one option. - possibly something like https://gist.github.com/ameensol/bcd9bf9c1ed92ba4c539706f5d94aa9e
- TheGraph is another, with a bespoke sub-index.
- There may be other alternatives.

Story points: 3.0
Remove "Username will be released back to the public" from Delete Channel Prompt

### Summary

Deleting your account currently does not release your username back to the public. Many users have deleted their accounts expecting to create a new account by the same username and start over.
Remove "Username will be released back to the public" from Delete Account prompt until this is fixed.
![image](/uploads/2307c7a12ba558be43112c71c1c28cc3/image.png)

Story points: 0.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 |
|------------------------------------|----------|-----------|--------------|
| Language prompt                    | 1        |           | 1            |
| Complete to earn tokens            | 2        |           | 2            |
| The community-owned social network |          | 1         |              |
| Boost (channel)                    | 3        |           | 4            |
| Trending tags                      | 4        | 2         | 3            |
| Suggested channels                 |          |           |              |
| Boost (post)                       | 5        |           | 5            |
| Boost (channel)                    | 6        |           | 6            |
| Boost (channel)                    | 7        |           | 7            |

## 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 `Trending tags` components are contextually matched to the feed they appear against.

Story points: 1.0
Upvotes & Downvotes popup falls off the screen

### Summary

Upvotes & Downvotes both fall off screen along with the channel subscribe buttons. 

### Steps to reproduce

1. Open minds url on mobile web browser.
2. Login successfully. 
3. Navigate to one of your posts with Upvotes & Downvotes.
4. Tap on Upvotes, notice that the popup falls off the screen.
5. Tap on Downvotes, notice that the popup falls off the screen.

### Platform information 

iOS & Android - Samsung Galaxy S21 v12 on Chrome & iPhone 11 Pro v15.0.1 on Chrome

### What is the current *bug* behavior?

Menu falls off the screen

### What is the expected *correct* behavior?

Menu should be responsive for mobile device

### Relevant logs and/or screenshots

Android: ![image](/uploads/1cd90757bd09a9ab630cd5ed08adff2c/image.png)

iOS: ![image](/uploads/9202c042958ee6158af83f3a19c568d4/image.png)

Story points: 0.0
Wrong "registration:notemail" error when invalid email is entered

### Summary

When invalid email is entered, it does not through invalid email message next to email textbox, instead throws "registration:notemail" below captcha. 

### Steps to reproduce

1. Open minds web. 
2. Tap on Join Now.
3. Enter all fields and use invalid email in email field.
4. Tap on Join Now.
5. Notice the wrong unfriendly error message. 

### Platform information 
All browsers

### What is the current *bug* behavior?

"registration:notemail" error is thrown

### What is the expected *correct* behavior?

An appropriate error message should be passed back from the server.

Edit: BH - Old text here read: `Invalid Email error should be thrown next to the textbox`.

### Relevant logs and/or screenshots

![RegistrationErrorEmail](/uploads/ad1674b61058021a14fcf55cd438b71b/RegistrationErrorEmail.mov)

Mobile vs Web Example:
![image](/uploads/5e977e1f0288ce9c0c1283e029533acf/image.png)

Story points: 1.0
Spike: Minds video analysis

<!---
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

<!---
Clearly outline the goal of the issue and why we are doing it
--->

Audit Minds video tools and determine best course of action to achieve full feature-set and analytics, audio, playlists, recommendations etc. 

## What needs to be done

<!---
Clearly detail what needs to be done to achieve the goal set out above
--->

Currently Minds is on Plyr. Plyr is migrating to Vidstack https://github.com/sampotts/plyr/issues/2408

Vidstack includes player, uploader and analytics for video https://www.vidstack.io/

Other options are:

- https://videojs.com
- https://github.com/kaltura
- https://ableplayer.github.io/ableplayer/
- https://www.mediaelementjs.com/
- https://medium.com/paypal-tech/introducing-an-accessible-html5-video-player-95b760286c88
- Mobile video needs to be considered separately. @msantang78 what are we currently using?


## 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.
--->

## Mobile

<!---
Does a mobile card need to be created? Any notes for mobile?
--->

- [ ] Is Mobile Required?

## Personas

<!---
Who does this user impact and why (optional)
--->


## Experiments

<!---
Experiments are not required, but it should be made clear if one is expected. If experiments are required, the hypothesis should be outlined.
--->


## Acceptance Criteria

<!--
Everyone should be able to understand what is expected to be delivered
--->

- [ ] Epic created with scope agreed
- [ ] Tasks built out
- [ ] Support live stream viewing
- [ ] Proof of concept, if proposing a new player

## Definition of Ready Checklist

- [ ] Definition Of Done (DoD)
- [ ] Acceptance criteria
- [ ] Weighted
- [ ] QA
- [ ] UX/Design
- [ ] Personas
- [ ] Experiments

Story points: 5.0
Password change form in settings broken

[James0r](https://github.com/james0r) via [Github](https://github.com/Minds/minds/issues/175)

@ https://www.minds.com/settings/account/password

Steps to reproduce:

    Enter current password
    Enter new password
    Confirm password

Update Password submission button still has disabled attribute and not accepting pointer events.

Browser: Version 100.0.4896.45 (Official Build) beta (arm64)
OS: MacOS 12.2

Story points: 2.0
Null hashtag in trending

<!---
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

A null hashtag is being returned from the engine.

### Steps to reproduce

Unsure how to replicate locally yet but it's returned on prod currently.

### Platform information 

Engine

### What is the current *bug* behavior?

A null hashtag is being returned as trending

### What is the expected *correct* behavior?

No null hashtag should be returned - ideally shouldn't even be picked up by the trending queries.

### Relevant logs and/or screenshots

![image](/uploads/c0ccc9646c4123486ca053b3a73e793f/image.png)

Happening at:
* https://www.minds.com/api/v3/discovery/tags?trending_tags_v2=false
* https://www.minds.com/api/v3/discovery/tags?trending_tags_v2=true

BUT NOT when omitting the query param:
* https://www.minds.com/api/v3/discovery/tags

```
{
	"4": {
		"selected": false,
		"value": "freedom",
		"posts_count": 53,
		"votes_count": 36,
		"type": "trending"
	},
	"5": {
		"selected": false,
		"value": "",
		"posts_count": 45,
		"votes_count": 59,
		"type": "trending"
	}
}
```

### Possible fixes

Story points: 1.0
PoC for our own Rich Embed Scraper

<!---
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

<!---
Clearly outline the goal of the issue and why we are doing it
--->

We should look into building our own in-house rich-embed scraper to generate our own previews for media.

* Should be capable of taking URLs with and without protocols - honoring the canonical tag if present.
* Security should be thoroughly discussed in advance. - should possibly be a dedicated service ring-fenced off.
* Should be locked such that it can be used only from on-site.
* Should have functional parity with existing rich embed scraping solution.
* Should be able to correctly handle SSR enabled sites (www.minds.com).
* Should utilize caching.
* Should NOT allow access to paywalled, private, closed or otherwise restricted Minds content.
* Should discuss whether we allow generation of rich embeds for links that aren't available logged out.

##### Deliverable

Prototype exploring the above, trying to see what pitfalls exist.

##### Resources to evaluate:

* https://github.com/fusonic/opengraph

## What needs to be done

<!---
Clearly detail what needs to be done to achieve the goal set out above
--->


## 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.
--->


## Personas

<!---
Who does this user impact and why (optional)
--->


## Experiments

<!---
Experiments are not required, but it should be made clear if one is expected. If experiments are required, the hypothesis should be outlined.
--->


## Acceptance Criteria

<!--
Everyone should be able to understand what is expected to be delivered
--->

- [x] Implement https://metascraper.js.org/ as microservice
- [x] Spec tests
- [x] Feature flag for phased control

## Definition of Ready Checklist

- [x] Definition Of Done (DoD)
- [x] Acceptance criteria
- [ ] Weighted
- [ ] QA
- [ ] UX/Design
- [ ] Personas
- [ ] Experiments

Story points: 5.0
Clicks on homepage nav open homepage with sidebar

<!---
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

Clicks on homepage nav open homepage with sidebar

### Steps to reproduce

Open homepage
Click on topbar Minds logo

### Platform information 

Web

### What is the current *bug* behavior?

Opens sidebar and shows searchbar at top

### What is the expected *correct* behavior?

Should just reload on homepage, else return to homepage if logged out, else return to newsfeed if logged in.

### Relevant logs and/or screenshots

![image](/uploads/d4f3a3e1969a95d864e1eda242be4a35/image.png)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 1.0
Verify phone input malformed

<!---
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

See screenshot

### Steps to reproduce

Verify phone from onboarding widget

### Platform information 

Web

### What is the current *bug* behavior?

Malformed input

### What is the expected *correct* behavior?

Input shouldn't be malformed

### Relevant logs and/or screenshots

![image](/uploads/9bdb157c205c9baa13fe061f13750ec7/image.png)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 1.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/70880210366a3da936d3271deef30540/image.png)

![image](/uploads/4cc8ca5bf07f877632290796dbb6ec6a/image.png)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 2.0
Navigation icons are misaligned

<!---
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 icons in the main site navigation are misaligned on staging.

### Steps to reproduce

- Go to minds.com
- Log into the Newsfeed
- Observe the navigation

### Platform information 

- MacOS + Chrome
- Appears in both full desktop + mobile sizes

### What is the current *bug* behavior?

The icons are not aligned correctly.

### What is the expected *correct* behavior?

The icons should be horizontally centered with each other.

### Relevant logs and/or screenshots

*Comparison overlay of implementation versus design*
Really just the `Minds+` is off.

![Screenshot_2022-03-09_at_16.20.08](/uploads/937f8e0af9c332ae8dee9ececfd59e83/Screenshot_2022-03-09_at_16.20.08.png)

![image](/uploads/411a3b0ddf68a457674f3f1e8c113130/image.png)

Story points: 1.0
Tooltip buttons not displaying text on hover in wallet

<!---
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

Reported by @Mozgus at https://gitlab.com/minds/front/-/issues/5348#note_866257224

Tooltip buttons not displaying text on hover in the wallet.

### Steps to reproduce

1. Go to the wallet
2. Hover tooltips in the vertical accordion dropdown.

### Platform information 

Web Chrome and Firefox

### What is the current *bug* behavior?

Cannot hover info buttons in wallet.

### What is the expected *correct* behavior?

Tooltip text should load

### Relevant logs and/or screenshots

![image](/uploads/2fe9f330d4fd799c7d264198e784bcb1/image.png)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 2.0