Commit Graph

154 Commits

Author SHA1 Message Date
Paul Frazee 107760d551 Add better onboard testing (#4007) 2024-05-13 20:23:31 -07:00
Hailey fd704bfd44 add a Login notifications request (#4006) 2024-05-13 19:51:12 -07:00
Eric Bailey 95514e3af7 [Reduced Onboarding] Fix forward/backward nav with profile step (#3997)
* WIP

* Fix forward-backward to profile step

* [Reduced Onboarding] Add avatar metric (#3999)

* Add prop to finished event

* Fix type

* Use separate event
2024-05-13 16:54:12 -05:00
Hailey d3406c89cf Move request for notifications permissions to HomeReadyScreen (#3977)
* cleanup the current logic

* add statsig logs

* implement requests for permissions where needed

* oops

* let `addPushTokenListener` handle the token registration

* place new log event type with the other `notifications` type

* place registration next to handler

* more organization

* only call `gate()` if permission is not yet granted

* be more specific to prevent gate pollution

* nit

* make `token` non-optional in `registerToken`

* remove `prevDid`, move `registerPushToken` into `useEffect`

* keep it outside actually

* nit
2024-05-13 09:19:35 -07:00
Eric Bailey 4e37e2f59b [Reduced Onboarding] Add profile step (#3933)
* Onboarding avatar creator or upload (#2860)

* add screen to onboarding flow

* update base

* add icon

* fix icon

* fix after merge

* create flatlist

* add emoji list

* add state context, pressables

* select/update

* add camera icon

* add photo selection button

* image selection

* cleanup

* add most needed icons

* fix icon naming

* add icons

* export path strings for emoji

* canvas drawing for web

* types

* move breakpoints to individual steps

* create canvas

* canvas working 🎉

* update state

* it works!

* working on both platforms

* remove comments

* remove log

* remove unused web canvas

* animate picture selection/removal

* compress images on web correctly

* add times icon

* scrollable horizontal flatlist on web

* prefetch

* adjustments

* add more assets

* remove unused smiles

* add all the icons

* adjust color options

* animate grow/shrink selections

* change layout on tablet/desktop

* better web layout

* fix path

* adjust web layout

* organize

* organize imports and cleanup styles

* make generated images smaller

* implement design changes

use row for buttons on web

use RNGH FlatList

random color at start

improve logic

update dialog for web

update dialog style on mobile

some more progress

create dialog

simplify context

start implementing design

* rm change

* cleanup imports

* trigger a pr label

* Formatting

---------

Co-authored-by: Eric Bailey <git@esb.lol>
(cherry picked from commit 087186e386)

* UI tweaks

* Revert layout change

* Gate avi upload

* Support returning to profile step

* Add Statsig

---------

Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-05-11 05:37:23 +01:00
Hailey 17e3b946cb Handle push notifications for DMs (#3895)
* add some better handling for notifications

prep merge

move `useNotificationsListener` into shell

progress

better structure

only show messages notifications while using app if it is the current account

progress

only emit on native

current chat emitter

only show alerts for the current chat

type

add logs

setup handlers

* remove event emitter

* just needs cleanup

* oops

* remove unnecessary `queryClient` param

* few fixes

* cleanup

* nit

* remove folds

* remove comment

* simplify if

* add back invalidate

* comment out other navigations for now

* rename type

* handle various navigation cases

* push to conversation from notification

* update badge in all cases except `chat-message`

* ensure no duplicate notifications

* rm unused `animationOnReplace`

* revert to using `goBack` in the conversation header

* add todo comment
2024-05-09 10:04:05 -07:00
Eric Bailey 1341845537 Add gate, a:a swap onboarding state (#3930) 2024-05-09 11:34:36 -05:00
Hailey b34d224207 remove hide_vertical_scrollbars test (#3855) 2024-05-06 20:59:36 +01:00
Samuel Newman 6da18e3dcf Only run "disable min shell on foregrounding" behaviour if on the home screen (#3825)
* change useEffect to useFocusEffect

* v2 -> v3
2024-05-02 21:27:54 +01:00
Samuel Newman ce85375c85 [Clipclops] New routes with placeholder screens (#3725)
* add new routes with placeholder screens

* gate content

* add filled envelope style

* swap filled state

* switch to `useAgent`
2024-04-27 05:54:18 +01:00
dan e2a59449df Remove old Suggested Follows logic (#3689) 2024-04-24 17:45:11 +01:00
dan 096725110a [Statsig] Add test gates and events (#3659)
* [Statsig] Add test gates and events

* Better types
2024-04-23 04:47:13 +01:00
Hailey cbb817b5b7 GIF Viewer (#3605)
* ios player

autoplay after recycle

remove all items from AVPlayer queue

recurururururursion

use managers in the view

add prefetch

make sure player items stay in order

add controller and item managers

start of the view

create module, ios

* android player

smoother

basic caching

prep cache

somewhat works

backup

other files

android impl

blegh

lets go

touchup

add prefetch to js

use caching

* bogus testing commit

* add dims to type

* save

* add the dimensions to the embed info

* add a new case

* add a new case

* limit this case to giphy

* use gate

* Revert "bogus testing commit"

This reverts commit b3c8751b71.

* add web player base

* flip mp4/webp

* basic mp4 player for web

* move some stuff into `ExternalLinkEmbed` instead

* use a class component for web

* remove extra component

* add `onPlayerStateChange` event type on web

* layer properly

* fix tests

* add new test

* about ready. native portions done, a few touch ups on web needed

show placeholder on ios

fix type

rm log

display thumbnail until video is ready to play

add oncanplay, playsinline

remove unused method

add `isLoaded` change event

release player when finished

apply gc to the view

cleanup logs

android gc

rm log

automatic gc for assets

make `nativeRef` private

remove unnecessary `await`

cleanup

rev log

only play on prepare whenever needed

rm unused

perfperfperf

rm var

comment + android width

native height calculations

rm pressable

add event dispatcher on android

add event dispatcher on ios

* ready to test ios

fix autoplay ios

clean

oops

* autoplay on web

* normalize across all platforms

add check for `ALT:`

separate gif embed logic to another file

handle permissions requests

flatten web styles

normalize styles

normalize styles

prefetch functions

pause animatable on foreground android

nits

one more oops

idk where that code went

lint

rethink the usage

wrap up

android

clear bg

update gradle

more android

rename dir

update android namespace

web

ios

add deps

use webp

rm unused

update types

use webp on mobile

* rm gate from types

* remove unused event param

* only start placeholder op if doesn't exist in disk cache

* fix gifs animating on app resume android

* remove comment

* add `isLoaded` for ios

* add `isLoaded` to Android

* onload for web

* add visual loading state

* rm a log

* implement isloaded for android

* dialogs

* replace `webpSource` with `source`

* update prop name

* Move to Tenor for GIFs (#3654)

* update some urls

* right order for dimensions

* add GIF coder for ios

* remove giphy check

* rewrite tenor urls

* remove all the unnecessary stuff for consent

* rm print

* rm log

* check if id and filename are strings

* full size playback controls

* pass tests

* add accessibility to gifs

* use `onPlay` and `onPause`

* rm unused logic for description

* add accessibility label to the controls

* add gif into to external embed in composer

* make it optional

* gif dimensions

* make the jsx look nicer

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-04-23 02:54:15 +01:00
dan fe9b3f0432 Ungate profile scroll fix (#3655) 2024-04-23 00:54:59 +01:00
Hailey 243769e657 remove gate from updates (#3646) 2024-04-22 21:06:25 +01:00
Hailey c0ca891501 Player improvement pre-reqs (#3618)
* add dims to type

* save

* add the dimensions to the embed info

* add a new case

* add a new case

* limit this case to giphy

* use gate

* flip mp4/webp

* fix tests

* add new test
2024-04-19 23:31:20 +01:00
dan ade2ea6172 Ungate Top/Latest search (#3627) 2024-04-19 21:58:18 +01:00
dan c42a557417 [Statsig] Send locale info (#3621) 2024-04-19 15:51:41 +01:00
dan 55aea348c2 [Statsig] Update experiments (#3617) 2024-04-19 15:23:47 +01:00
Samuel Newman ba1c4834ab Add GIF select to composer (#3600)
* create dialog with flatlist in it

* use alf for composer photos/camera/gif buttons

* add gif icons

* focus textinput on gif dialog close

* add giphy API + gif grid

* web support

* add consent confirmation

* track gif select

* desktop web consent styles

* use InlineLinkText instead of Link

* add error/loading state

* hide sideborders on web

* disable composer buttons where necessary

* skip cardyb and set thumbnail directly

* switch legacy analytics to statsig

* remove autoplay prop

* disable photo/gif buttons if external media is present

* memoize listmaybeplaceholder

* fix pagination

* don't set `value` of TextInput, clear via ref

* remove console.log

* close modal if press escape

* pass alt text in the description

* Fix typo

* Rm dialog

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-19 03:42:26 +01:00
dan bef7d8a325 [Statsig] Slightly block the UI on gates (#3608) 2024-04-18 17:53:51 +01:00
dan 6101c32bd9 [Statsig] Prefetch configs for other accounts (#3607)
* Poll both current and other accounts

* Make createStatsigOptions a function

* Pass prefetchUsers with the initial request

* Add initializeCalled check

* Be resilient to object identity changes

* Decrease poll interval to 1 minute
2024-04-18 16:26:05 +01:00
dan 41b5b5b283 Add our own cache in front of Statsig (#3604) 2024-04-18 15:28:24 +01:00
dan 02becdf449 [Statsig] Make gate checks lazily (#3594) 2024-04-18 04:39:29 +01:00
dan 71c427cea8 Make ref_ always strings (#3583)
* Make ref_ always strings

* Harden types
2024-04-16 21:55:12 +01:00
dan a66c9d0bc4 Always send ref_ params (#3582) 2024-04-16 21:28:39 +01:00
dan 1390b1dc9e [Statsig] Send ref source (#3531)
* [Statsig] Send ref source

* Add is web check

* Fix types
2024-04-13 12:09:49 +01:00
Hailey c3821fdc31 Remove vertical scrollbars from views on native (#3429)
* remove vertical scrollbars

* add to a few missing lists

* gate this change

* use `hide_vertical_scroll_indicators`

* fix gate lint

* fix bool
2024-04-12 15:22:09 -07:00
Eric Bailey 1f61109cfa Profile card hover preview (#3508)
* feat: initial user card hover

* feat: flesh it out some more

* fix: initialize middlewares once

* chore: remove floating-ui react-native

* chore: clean up

* Update moderation apis, fix lint

* Refactor profile hover card to alf

* Clean up

* Debounce, fix positioning when loading

* Fix going away

* Close on all link presses

* Tweak styles

* Disable on mobile web

* cleanup some of the changes pt. 1

* cleanup some of the changes pt. 2

* cleanup some of the changes pt. 3

* cleanup some of the changes pt. 4

* Re-revert files

* Fix handle presentation

* Don't follow yourself, silly

* Collapsed notifications group

* ProfileCard

* Tree view replies

* Suggested follows

* Fix hover-back-on-card edge case

* Moar

---------

Co-authored-by: Mary <git@mary.my.id>
Co-authored-by: Hailey <me@haileyok.com>
2024-04-12 17:01:32 -05:00
Hailey f91aa37c6b Enable updates for production behind receive_updates gate (#3496)
* add gate type

* gate the updates

* enable updates in `production`

* web placeholder for `useOTAUpdates()`

* update comment
2024-04-12 14:51:53 -07:00
dan bedb0c3fbd Use getSuggestions endpoint behind the gate (#3499)
* Move suggested follows out of the component

* Add new suggestions implementation

* Put new endpoint behind the gate

* Make bottom less weird
2024-04-12 13:02:15 +01:00
Hailey e3e8f10538 Added new_profile_scroll_component to Gate type (#3487)
* added to the types

* alphabetical pls

---------

Co-authored-by: dan <dan.abramov@gmail.com>
2024-04-11 23:59:13 +01:00
dan 310d865440 [Statsig] Mark Testflight as staging tier (#3470) 2024-04-10 20:08:46 +01:00
dan 427f3a848d [Statsig] Typecheck gates (#3467)
* Typecheck gates

* Lint against untyped useGate()

* Alphabetic
2024-04-10 19:36:37 +01:00
Samuel Newman 353a963920 Search - extra tabs (#3408)
* add extra tab to search and translate tab names

* add feature gate

* flatten pager children

* Revert "flatten pager children"

This reverts commit 0050d42558.

* have pager children as array

* move gate to custom hook

* bundle titles and pages together

* remove comment

* Fix a crash

* Use Views as children

---------

Co-authored-by: dan <dan.abramov@gmail.com>
2024-04-10 16:02:13 +01:00
dan c300d4cab6 [Statsig] Instrument feed display (#3455)
* [Statsig] Instrument feed display

* Back out leftover change
2024-04-09 15:09:42 -07:00
dan 887fedabea [Statsig] Track like/follow metadata (#3435)
* Track becoming mutuals

* Track poster/liker status

* Track post and followee clout

* Track follower and liker clout

* Extract utility
2024-04-08 18:38:51 +01:00
dan 8188f61e7d [Experiment] Turn off interval polling for Discover (#3431)
* Include feed URL in feed events

* [Experiment] Turn off polling interval for Discover
2024-04-08 17:21:44 +01:00
dan 1150007d37 Auto-expand follow suggestions on web (#3432) 2024-04-08 17:20:58 +01:00
dan df7f9856bb Use logger.error instead of rethrow (#3323) 2024-03-21 14:39:19 -07:00
dan 55fb81867b [Statsig] Protect against early logEvent call crashing (#3315)
* [Statsig] Check if initialized

* Never interrupt the caller
2024-03-21 17:01:55 +00:00
dan 396d183dfc [Statsig] Onboarding and routing events (#3302) 2024-03-21 11:04:02 +00:00
dan 20337ceef1 [Statsig] Track active time (#3289) 2024-03-19 20:25:37 -07:00
dan 3d8d1dd173 [Statsig] Track login/logout (#3286)
* [Statsig] Track login/logout

* Fix missing attribution
2024-03-19 20:24:05 -07:00
dan b6c9d34e45 [Statsig] Track feed refresh (#3283) 2024-03-19 17:56:31 -07:00
dan ebf8644df9 Track notification open (#3274) 2024-03-19 13:19:11 -07:00
dan 5bec587717 [Statsig] Include OS and track app state changes (#3273)
* Include platform in identify

* Track back/foregrounding
2024-03-19 13:11:26 -07:00
dan 1c25c76645 [Statsig] Track posting, end reached (#3206)
* Track post create

* Track feed endReached
2024-03-14 00:21:42 +00:00
dan 7eaa573b57 [Statsig] Track likes, reposts, follows (#3195)
* [Statsig] Track likes

* Move tracking to intent

* Track repost/unrepost

* Track profile follows/unfollows

* Less copy paste

* Reorder
2024-03-13 22:31:51 +00:00
dan f1d55f49fa Send route name with Statsig events (#3194)
* Add types to Statsig events

* Send route name with events
2024-03-13 03:29:03 +00:00