giseldo/neodataset huggingface dataset:
Add "Post options" pop up menu on mobile

- [ ] In the new compose, provide a "post options" link that pops open the options panel
- [ ] Implement tag menu
- [ ] Implement tag history dropdown from device storage
- [ ] Tag type ahead
- [ ] Licensing menu
- [ ] Visibility
- [ ] Paywall
- [ ] Paywall confirmation
- [ ] NSFW menu
- [ ] Light mode
- [ ] Dark mode
- [ ] e2e tests
- [ ] Unit tests

Mocks
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard9
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard13
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard14
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard15
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard16
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard17
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard18
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard21
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard22
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard22

Story points: 24.0
Keyboard activates on return to the app

### Summary

Everytime you return to the app the keyboard pops up.

### Steps to reproduce

Leave the app for the home screen or another app. Return to the app.

### Platform information

Android, 3.16.0 test build

### App version

3.16.0 Test build

### What is the current *bug* behavior?

keyboard pops up on return to the app

### What is the expected *correct* behavior?

keyboard should not pop up

### Relevant logs and/or screenshots

![keyboard_issue](/uploads/40f1b7a2a156489748b25d16f1bbbca5/keyboard_issue.mp4)

Story points: 4.0
Messenger input box partially hidden by iOS keyboard

### Summary

messenger input box partially hidden by iOS keyboard 

### Steps to reproduce

Try to send a messenger message on a small screen. Try with a font enlarged for accesssibility

### Platform information

iOS, small viewport, large font.

### App version

3.15.1

### What is the current *bug* behavior?

messenger input partially hidden by keyboard

### What is the expected *correct* behavior?

input should be completely visable

### Relevant logs and/or screenshots

![image](/uploads/44a7198358d8fd71fe74b0e4f421f176/image.png)

Story points: 2.0
Fully implement flow static analysis for react native

Now that flow has better support for Typescript, we need to update our mobile-native configuration to do static analysis at the CI level and catch any type errors / null

- [X] Upgrade our type script typing and make sure we've got our stack up to date.
- [X] Make the app compile with type script
- [X] Add static analysis checking to the CI flow
- [X] Make sure the app builds and deploys
- [ ] Roll out complete type checking so we can catch all the errors
- [ ] Enable Prettier at the CI level


Story points: 25.0
Add retry logic to images

Implement a retry logic for images with delay. This will reduce the "Error loading media" with intermittent connectivity.

Also, if all the retries fail, we can hook the component to the connectivity service to try to reload the images when the connectivity status change

![image](/uploads/b60ed97bbfe7e321b243c440062eea64/image.png)

![image](/uploads/8ae5253163fe2f3ac1ff4fd84970fc36/image.png)

Story points: 1.0
Handle expired email verification links

### Design links

* Normal verification sheet - https://www.sketch.com/s/1f4ae3ad-52df-407e-a74d-1a37bc8d0319/a/rb57mrE/r/Dnmbnk
* Verified state - https://www.sketch.com/s/1f4ae3ad-52df-407e-a74d-1a37bc8d0319/a/oY5wEr0
* Link expired state - https://www.sketch.com/s/1f4ae3ad-52df-407e-a74d-1a37bc8d0319/a/m1WYnGw

From @benhayward.ben 

When a user follows an invalid email verification link, display an error

- [ ] Display a "Your verification request has expired." error but do not trigger a resend. We don't want to create a loop caused by people clicking on the back end. Better to capture this process asynchronoysly and make sure we redisplay the verification when they resend


Based off feedback in thread: https://gitlab.com/minds/front/merge_requests/699#note_263718217

Story points: 2.0
Give old users option to do new onboarding

- [ ] Create a "Setup your account" link on the channel screen (on the existing screen for channels)
- [ ] Setup a "Finish setting up your account" that displays if the user has not completed onboarding that displays after the "verify your email" banner
- [ ] For old users, who have not completed onboarding, display the banner.
- [ ] Setup an "onboarding-reminder" feature flag so we can roll this out to specific users.

@ottman @markeharding , rolling this out. Please, review the messaging and give feedback for the simplest version of being able to re-onboard I could come up with (mobile version)

Story points: 6.0
Implement new splash screen

We have a new splash screen for mobile. This should be displayed while we clear the cache, pull in feature flags and update the offline data needed to run the app

Dark mode:
https://design.minds.com/hosted/mobile/michael/mobile%231642-navigation/
Light mode:
https://design.minds.com/hosted/mobile/michael/mobile%231642-navigation/#artboard8

- [ ] New light bulb splash screen
- [ ] light mode
- [ ] dark mode
- [ ] e2e tests to make sure it transitions and loads our data appropriately

Story points: 2.0
Temporarily disable the group and channel selectors for the new onboarding

We want to roll out our new onboarding ui, but the recommendations need to be overhauled. We'll be turning them back on when get the recommendations engine sorted out. Let's try to get onboarding turned on by Monday
- [x] enable the new onboarding ff by default
- [x] disable (but keep) the suggested channels onboarding step
- [x] disable (but keep) the suggested groups onboarding step
- [x] onboarding should flow as normal
- [x] disable the e2e tests that check for groups and onboarding

Story points: 2.0
New Posts have a scheduled time of now bar


### Summary

When you create a new image or video post. It will have a schedule release time of the current time when posted. 

### Steps to reproduce

1. Make an image or video post

### Platform information

Android

### App version

3.15.0

### What is the current *bug* behavior?

New Posts have scheduled time now banner

### What is the expected *correct* behavior?

Posts that aren't scheduled should not have a scheduled time bar on them.

### Relevant logs and/or screenshots

![Screenshot_20200204-143916_Minds](/uploads/d70301914ee9023da4d241e173120b03/Screenshot_20200204-143916_Minds.jpg)

Story points: 2.0
Onboarding 3.15.0 Clean up

- [ ] Android date picker used for Date of Birth is Optimized for Calendar Scheduling.  Use a different datepicker, or somehow tweak the mode of the datepicker so it is easier to go back multiple years.

![Screenshot_20200130-100730_Minds](/uploads/ce5184c2e37ff459bd7265e87f626987/Screenshot_20200130-100730_Minds.jpg)

Story points: 4.0
Compose post actions bottom bar

Implement the post actions bottom bar


Clicking on the post options button should slide up a panel that allows for advanced configuration
### Options
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard9
- [ ] Tagging
- [ ] NSFW
- [ ] Scheduling post
- [ ] Monetize
- [ ] Visibility
- [ ] License

Story points: 8.0
Compose top bar


Implement the meatball menu on the top right on the new composer modal

Owners and admins should be able to toggle the option. 

Non owners and non admins should see the menus as read only with what is currently selected. They should see the top level text "Visibility" and "License" replaced with the currently selected option

Owner/admin needs to be able to toggle licensing just like on the current blogs editor. 

Owner/admin needs to be able to toggle visibility like the old media viewer


### License screen
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard17

### Visibility 
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard18



- [ ] Clicking the meatball menu should display the toolbar
- [ ] Bring over the existing meatball menu so we can have existing functionality
- [ ] Put the two new toggles on the top
- [ ] Admins and owners should be able to interact with the meatball menu
- [ ] None owners should only see read only information
- [ ] light mode
- [ ] dark mode
- [ ] unit tests
- [ ] e2e tests
- [ ] responsive design
- [ ] point MR 3.16.0 branch

Story points: 6.0
The plus button on the new nav bar should open the new capture screen

On the new nav ui, the plus button needs to open a new composer component that can switch between video, camera and text

### Video capture
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard1

### Image capture
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard2

### Text capture
https://design.minds.com/hosted/mobile/michael/mobile%231687-composer/#artboard5

- [ ] setup a new feature flag called "compose" and make it unleash-able
- [ ] Default to the video capture and enable the local device video capture
- [ ] Allow switching between the video, image and text modes
- [ ] Light mode
- [ ] dark mode
- [ ] behind a "compose" feature flag that responds to the new unleash changes on the backend
- [ ] unit tests
- [ ] e2e tests

Story points: 8.0
Old landing page still accessible on mobile


### Summary

Onle landing page is still accessible

### Steps to reproduce

From login
1. Join Minds Now
2. Click back button
3. See old landing page
4. fill out information to register a new channel
5. go to new registration to fill out information again

### Platform information

Android

### App version

3.15.0

### What is the current *bug* behavior?

Can navigate to old landing page

### What is the expected *correct* behavior?

Old landing page should auto redirect to new login.

### Relevant logs and/or screenshots

![old_landing](/uploads/45a8e1f59b826b88df5b908d6464ed1e/old_landing.mp4)

Story points: 1.0
Document unleash client functionality on the repository and launch our Beta

We need to have full usage instructions on how to use our unleash client. This should be as community facing as possible, so we can send it over to Unleash and get the accolades we deserve.

- [ ] Add a status badge to show the state of our tests
- [ ] Make sure master is protected and we can only push in via MRs
- [ ] Document environment variables and configuration
- [ ] Installation instructions
- [ ] Document using our strategies
- [ ] Document Gitlab integration
- [ ] Publish our vendor package

When this is done, I'll send it over to the unleash maintainers for linking and feedback

Story points: 4.0
3.15 onboarding issues for iOS

- [x] Cannot scroll through hashtag selector

![RPReplay_Final1579840418](/uploads/3dac2fd9fece65137a43ff0a5a5c5fdc/RPReplay_Final1579840418.MP4)

- [x] Suggested groups are missing avatars

![IMG_4155](/uploads/641a1f9872a59b075b0410453d81fb82/IMG_4155.PNG)

- [x] Suggested groups and channels you join/subscribe do not populate in the newsfeed when you land there

- [x] Location does not populate on your channel description when you land there

- [x] Sizing issues with skip buttons, "No thanks ill do this later" and terms check box

![IMG_4147](/uploads/4caacac4d7713d1c088e75ede936a17b/IMG_4147.PNG)

![IMG_4155](/uploads/cf572d153b1e975bd04be181c5dd68be/IMG_4155.PNG)

- [x] Continue button when entering a phone number is confusing as it takes you to next slide before verifying / finishing steps

![IMG_4153](/uploads/f9fc47af5c6d4bee6b326b77db60cc0d/IMG_4153.PNG)

- [x] Unnecessary "newsfeed" screen and first onboarding screen appear briefly after you complete onboarding steps

![IMG_4149](/uploads/f8ce7970daf4af272f5c30ebd5921c92/IMG_4149.PNG)

- [x] Onboarding wizard appeared for "jack" account which is an existing account, should not appear for existing accounts

- [x] Onboarding wizard appeared for new created channel after quitting/relaunching app despite completion

![Untitled](/uploads/ac134f53ad5da57f477750725e14c5ce/Untitled.mp4)

- [x] Tooltips have no information in them

![IMG_4148](/uploads/40faca3c92fec4c482a5a3dfa02b652b/IMG_4148.PNG)

- [x] Group and channel recommendations are not changing based on hashtag selections 

- [x] Email verification bar skews top-bar avatar and looks broken

![IMG_4145](/uploads/4acf3c318e6233530fc43ddd04f07613/IMG_4145.PNG)

- [x] First onboarding screen seems to appear twice with slight glitch 

![RPReplay_Final1579888036](/uploads/5b33b9600b5438ca7d4ffee9e09a9342/RPReplay_Final1579888036.MP4)

- [ ] Back button either takes you to beginning of onboarding or completely exits you from onboarding - it should just take you to prior screen

![RPReplay_Final1579888144](/uploads/e090c025b7a1b78c3d0e12c926093bca/RPReplay_Final1579888144.MP4)

- [x] Suggested channels would not load (only happened once)

![RPReplay_Final1579888119](/uploads/50832be7f0382b8754eb09544bed4158/RPReplay_Final1579888119.MP4)

- [x] Top (1Y) defaults in Discovery section, but when you toggle away it is no longer a filtering option

- [x] Top feeds are not pulling enough results 

Story points: 8.0
Android signup screen overflowing and layout issues

# Login screen cut off
![Screenshot_20200124-095730](/uploads/7cdaea9df75bc233e80f5fd2e03580be/Screenshot_20200124-095730.png)

# Screens cut off vertically
![Screenshot_20200124-101005](/uploads/9f52f490b1301119e1d4caaf8ebd756a/Screenshot_20200124-101005.png)

# Phone number year truncated

![Screenshot_20200124-101356](/uploads/0d49d1fd76abd62907ed20f1953cd6a1/Screenshot_20200124-101356.png)

- [ ] On my motorola X4, the new login screen is a bit too wide. The terms and acceptance checkbox cuts off the right and there's a scroll bar

- [ ] The screens are also flowing off the bottom of the screen

- [ ] The date picker is cut off and doesn't show the year

Story points: 4.0
TypeError: undefined is not an object (evaluating 'o.some')

IOS, 3.15.0

Install the app
Try to onboard a new user with the urls pointed to Walrus. (handled in the build)
Crash after account creation

Sentry Issue: [MOBILE-V2](https://sentry.io/organizations/minds-inc/issues/1464597359/?referrer=gitlab_integration)

```
TypeError: undefined is not an object (evaluating 'o.some')
  File "src/onboarding/OnboardingScreen.js", line 71, in render
    if (!completed_items.some(r => r == 'suggested_hashtags')) {
  File "app:///[native code]", in ml
  File "app:///[native code]", in fl
  File "src/navigation/NavigationService.js", line 35, in push
    _navigator.dispatch(
  File "src/onboarding/OnboardingStore.js", line 49, in call
    NavigationService.push(onboarding);
...
(29 additional frame(s) were not displayed)
```

Story points: 2.0
Simplify and audit our feature flags

We're rolling out our new unleash feature flag service

For mobile that consumes that talks to the FF api and ships with a config file not much is going to change. The export and the service will return what flags are white listed in https://gitlab.com/minds/engine/issues/1318

For the ongoing rewrite, we need to combine the various onboarding, nav and product pages into one new-design flag

* [ ] make sure the feature flags defaults defined in the app are up to date
* [ ] combine new design flags into new-design
* [ ] audit feature flags on app. Remove any that are no longer in use
* [ ] make sure app responds to turning the feature flags on and off via gitlab's unleash api

Story points: 4.0
Implement dark mode / light mode switcher

- [ ] Add a button to the settings menu to switch between light mode and dark mode
- [ ] Have the setting persist locally so when a user logs in, they will have their selected mode
- [ ] Make sure switching is performant
- [ ] Should be behind a ```dark-mode``` feature flag controllable by unleash
@msantang78, @juanmsolaro set up the dark mode styles for the app. We can turn them on with a switch. This card is for adding the user toggle and making sure that we won't have performance problems with switching themes in mobx

Story points: 4.0
Error: Sorry, it looks like there was an error.

Sentry Issue: [MOBILE-BY](https://sentry.io/organizations/minds-inc/issues/1370005384/?referrer=gitlab_integration)

```
Error: Sorry, it looks like there was an error.
    at src/channel/ChannelService.(ChannelService.js:150)
    logService.exception('[ChannelService]', err);
...
(8 additional frame(s) were not displayed)
```

Story points: 6.0
TypeError: JSON.stringify cannot serialize cyclic structures.

Sentry Issue: [MOBILE-KP](https://sentry.io/organizations/minds-inc/issues/1399015970/?referrer=gitlab_integration)

```
TypeError: JSON.stringify cannot serialize cyclic structures.
  File "app:///[native code]", in stringify
  File "src/common/services/sql/entities.storage.js", line 27, in call
    {snip} xecuteSql('REPLACE INTO entities (urn, data, updated) values (?,?,?)', [entity.urn, JSON.stringify(entity), Math.floor(Date.now() / 1000)]);
  File "app:///[native code]", in callImmediates
  File "app:///[native code]", in value
  File "app:///[native code]", in value
...
(14 additional frame(s) were not displayed)
```

Story points: 4.0
Error: bad base-64

Sentry Issue: [MOBILE-BS](https://sentry.io/organizations/minds-inc/issues/1369966992/?referrer=gitlab_integration)

```
Error: bad base-64
    at src/common/services/crypto.service.value(crypto.service.js:31)
    return this.publicKeys;
    at src/messenger/conversation/Message.(Message.js:52)
    setTimeout(() => {
...
(4 additional frame(s) were not displayed)
```

Story points: 4.0
Social Compass review

- [ ] ~~The social compass is not shown (dismiss value is undefined)~~
- [ ] ~~We should add error handling on the request with a try again option (the first time I tried it failed and the screen was empty)~~
- [ ] ~~After I tap to continue the loading indicator of the button stops but the prompt is not closed. (we should close it or show some feedback)~~

Story points: 2.0
Add date range to the feed filter

Proposer date range filtering -> https://www.sketch.com/s/b7570ac0-3b2e-4a91-bca0-f9c5942fc89f/a/7y998EY/play

The channel's feeds date range filter is missing on mobile

The feed filter on mobile currently have the following options

![Screen_Shot_2021-11-30_at_14.35.10](/uploads/c0a4caf42569c596aa7e1c251f318485/Screen_Shot_2021-11-30_at_14.35.10.png)

@michaelfbradley We need to add the date range filter into the options

FYI: I implemented a date picket with the bottom sheet too, so from a developer perspective, it would be simpler to implement something similar to what the web has. Show the `from` and `to` dates, and open the calendar when the user taps on one of them

![Screen_Shot_2021-11-30_at_14.37.02](/uploads/eab8bb4eeb85484d30757b8a65b726a6/Screen_Shot_2021-11-30_at_14.37.02.png)

Story points: 3.0
Update react native share

<!---
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

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### 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: 1.0
Update axios package

<!---
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

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### 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: 1.0
New composer UX review

After testing the new composer I found the following issues:

- [x] The input shrinks if there is a preview (Android)

![input-android](/uploads/dc5b6615dafc7d780c17ef1867bd8bbc/input-android.mp4)

- [x] If you tap on monetization or tag, and then open the options, it will open the one you selected previously (we need to reset the internal navigator)
- [x] Can't cancel the media upload (tapping the delete while uploading should cancel the upload) 
- [x] If you tap twice on the composer tab it opens two composer screens
- [x] Options bottom sheet can't be closed by dragging it down from the content

Story points: 3.0
Merge 4.19.1 changes into 4.20.0

<!---
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

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### 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: 1.0
Android full screen post header shadow is too big

<!---
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

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### 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: 1.0
Comments bottom-sheet is sometimes not opening

<!---
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 comment bottom sheet is sometimes not opening after opening the full-screen view of the post (by tapping the comment button on the main feed)

Story points: 1.0