Commit Graph

609 Commits (9096655955829b15b99ee72a16c3edd14c11a2f1)

Author SHA1 Message Date
surfdude29 cd02922b03
use ISO 3166-1 alpha-2 names for UK and Virgin Islands (US) (#2585) 2024-01-20 12:57:19 -08:00
Paul Frazee e175984506
Improve country-code handling for text verification (#2579) 2024-01-19 16:11:18 -08:00
Mary 4bd95b5ef2
Set start time on YouTube embeds (#2565)
* fix: set start time on yt embeds

* fix: re-encode to be on the safe side

* chore: fix embed tests
2024-01-18 21:25:57 -08:00
Eric Bailey 9803e17449
Use new palette values for main palette (#2566)
* Use new palette values for main palette

* Drawer bg in dark mode
2024-01-18 20:54:20 -08:00
Paul Frazee 8372c0c261
Fix the fallback to discover behavior on the home feed (#2546) 2024-01-16 10:01:41 -08:00
Paul Frazee a7d617c7a6
Add a new home feed-api wrapper and give a header indicating the fallback behavior (#2534)
* Add a new home feed-api wrapper and give a header indicating the fallback behavior

* Sneak in a quick fix: use the correct text color in the delete modal

* Use imported constant
2024-01-15 15:03:54 -08:00
Cooper Edmunds 7df0b7ade1
Add accept-language header (#2457) 2024-01-15 13:19:47 -08:00
Mary 7f4d3dc999
feat: from:me search syntax 2024-01-12 09:56:14 +07:00
Mary 0b2daa787c
Use the RichText facets when copying post text (#2481)
* feat: serialize rich text to string

* feat: wire richTextToString to copy post text
2024-01-10 22:56:45 -08:00
bnewbold 231c528c88
remove deprecated search.bsky.social code (#2461) 2024-01-10 22:52:22 -08:00
Paul Frazee 7ab4be6f7d
Reduce polling (#2465)
* Move profile and preference polling to polls-on-foreground

* Refetch prefs on feeds screen refresh since polling no longer occurs

* Reduce notifications polling by 50% if there's already an unread

* Disable feed polling if we know we have content

* Disable the hard refresh after 1 hour in case it's the cause of the random feed refresh bug

* Fix types
2024-01-10 22:27:14 -08:00
Hailey 928a626c2e
support intl tenor links (#2438)
* support intl tenor links

* update test cases
2024-01-08 13:55:48 -08:00
Paul Frazee 0dae24e78f
Additional embed sources and external-media consent controls (#2424)
* add apple music embed

* add vimeo embed

* add logic for tenor and giphy embeds

* keep it simple, use playerUri for images too

* add gif embed player

* lint, fix tests

* remove links that can't produce a thumb

* Revert "remove links that can't produce a thumb"

This reverts commit 985b92b4e622db936bb0c79fdf324099b9c8fcd8.

* Revert "Revert "remove links that can't produce a thumb""

This reverts commit 4895ded8b5120c4fc52b43ae85c9a01ea0b1a733.

* Revert "Revert "Revert "remove links that can't produce a thumb"""

This reverts commit 36d04b517ba5139e1639f2eda28d7f9aaa2dbfb6.

* properly obtain giphy metadata regardless of used url

* test fixes

* adjust gif player

* add all twitch embed types

* support m.youtube links

* few logic adjustments

* adjust spotify player height

* prefetch gif before showing

* use memory-disk cache policy on gifs

* use `disk` cachePolicy on ios - can't start/stop animation

* support pause/play on web

* onLoad fix

* remove extra pressable, add accessibility, fix scale issues

* improve size of embed

* add settings

* fix(?) settings

* add source to embed player params

* update tests

* better naming and settings options

* consent modal

* fix test id

* why is webstorm adding .tsx

* web modal

* simplify types

* adjust snap points

* remove unnecessary yt embed library. just use the webview always

* remove now useless WebGifStill 😭

* more type cleanup

* more type cleanup

* combine parse and prefs check in one memo

* improve dimensions of youtube shorts

* oops didn't commit the test 🫥

* add shorts as separate embed type

* fix up schema

* shorts modal

* hide gif details

* support localized spotify embeds

* more cleanup

* improve look and accessibility of gif embeds

* Update routing for the external embeds settings page

* Update and simplify the external embed preferences screen

* Update copy in embedconsent modal and add 'allow all' button

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-01-04 17:37:36 -08:00
Paul Frazee 8a4a8af61c
New user home feed fixes (#2421)
* Readd discover to default feeds for new users

* Fallback just to discover in home when mergefeed is disabled

* Always provide a cursor with mergefeed (no 'end of feed' condition)
2024-01-04 17:34:10 -08:00
Eric Bailey 4baef7a2d5
Update IS_PROD check (#2337)
* Update IS_PROD check to work now and after federation

* Use correct sandbox PDS

* Just use simple check for now
2024-01-03 09:58:05 -08:00
Eric Bailey 1b0c73a2a3
Fix: Web design issues (#2377) (#2410)
* Fix web design issues

* Fix Right Nav width design issue

Co-authored-by: Rahul Yadav <52163880+rahulyadav5524@users.noreply.github.com>
2024-01-03 09:56:07 -08:00
Paul Frazee df277e5977
Multiple improvements to link cards and quote posts (#2398)
* fix canvas

* fix external link embed styles

* Use the same link-card style on web and mobile and give a little more height on desktop to the card images

* Use dark border on link embeds to match quote post style

* Fix the highlighting behavior on linkcards and quoteposts

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-01-03 09:53:41 -08:00
Hailey 54e6ed8ebc ensure no more than four assets, show toast if more 2023-12-29 22:00:52 -08:00
Eric Bailey c91b9efccb
Remove patched color scheme code (#2340) 2023-12-27 09:19:47 -08:00
Paul Frazee 8b6ecf6bff
Protect against react key duplicates (close #2278) (#2309)
* Fix duplicate react keys in post search

* Protect against duplicate react keys in feeds
2023-12-27 08:49:39 -08:00
Hailey 7e3e6caa10
use the window hostname on web for twitch embeds (#2311) 2023-12-26 12:02:37 -08:00
Paul Frazee 51506efca6
Apply post-hide to quote posts (#2302) 2023-12-24 15:19:37 -08:00
Eric Bailey b199405134
Hide posts tool (#2299)
* Set up hidden posts persisted state

* Wrap moderatePost

* Integrate hidden posts into moderation

* Complete hide-post behaviors

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-24 14:24:56 -08:00
Eric Bailey 93f5bb3b1f
Bump react-native to 0.73.1, expo to 50 (#2214)
* Bump to react-native@0.73, bump expo@next

Includes bumps for all expo deps and dev dependencies. Updates
react-native patch and others, and removes the babel-preset-expo patch.

* Remove duplicate Splash ref

* Bump more deps

* Properly install expo-notifications

* Bump webview dep

* Bump packages according to expo fix; remove pager-view patch as it is no longer needed

* Don't access expo-camera from Web

* Fix crypto dep on web

* Fix some type issues

* Build esnext modules to support dynamic imports

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-23 15:44:38 -08:00
Hailey fedb94dd70
3rd party embed player (#2217)
* Implement embed player for YT, spotify, and twitch

* fix: handle blur event

* fix: use video dimensions for twitch

* fix: remove hack (?)

* fix: remove origin whitelist (?)

* fix: prevent ads from opening in browser

* fix: handle embeds that don't have a thumb

* feat: handle dark/light mode

* fix: ts warning

* fix: adjust height of no-thumb label

* fix: adjust height of no-thumb label

* fix: remove debug log, set collapsable to false for player view

* fix: fix dimensions "flash"

* chore: remove old youtube link test

* tests: add tests

* fix: thumbless embed position when loading

* fix: remove background from webview

* cleanup embeds (almost)

* more refactoring

- Use separate layers for player and overlay to prevent weird sizing issues
- Be sure the image is not visible under the player
- Clean up some

* cleanup styles

* parse youtube shorts urls

* remove debug

* add soundcloud tracks and sets (playlists)

* move logic into `ExternalLinkEmbed`

* border radius for yt player on native

* fix styling on web

* allow scrolling in webview on android

* remove unnecessary check

* autoplay yt on web

* fix tests after adding autoplay

* move `useNavigation` to top of component

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-21 14:33:46 -08:00
Ansh 7af4825911
fix Create Account metrics (#2242) 2023-12-18 14:24:06 -08:00
Eric Bailey a0d006a1ac
Log post creation failures (#2205) 2023-12-14 15:55:35 -08:00
Eric Bailey 7897dd24a1
🤫 (#2211)
* Add new assets

* Add splashiness

* Add butter icon, spread it

* Cream together eggs, sugar, and vanilla

* Hi, I'd like to place and order. Yeah, none pizza with left beef, plz.

* test

* Refine animation

* tweak

* tweak

* tweak

* Tweak

* Simplify

* Cleanup

* Fix android logo

---------

Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
2023-12-14 14:48:40 -06:00
Paul Frazee 075ffdf583
PWI behavior updates (#2207)
* Enable PWI

* Disable access to feeds on PWI

* Remove feeds nav item from drawer when signed out

* Replace discover feed on home with a CTA

* Wire up the sign in and create account buttons to go straight to their respective screens

* Give a custom ScreenHider interface for no-pwi

* Add side borders on desktop to the screen hider

* Filter accounts in the autocomplete according to mod settings

* Trim replies in the post thread that are pwi opt-out

* Show 'learn more' on the content hider when no-override is enabled

* Apply the moderation filter on profile cards

* Disable post search on logged-out view

* Update locale files

* Bump api pkg

* Ensure feeds with no posts don't show as NSFPublic

* Fix types

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2023-12-14 10:31:49 -08:00
dan 7fd7970237
Make scroll handling contextual (#2200)
* Add an intermediate List component

* Fix type

* Add onScrolledDownChange

* Port pager to use onScrolledDownChange

* Fix on mobile

* Don't pass down onScroll (replacement TBD)

* Remove resetMainScroll

* Replace onMainScroll with MainScrollProvider

* Hook ScrollProvider to pager

* Fix the remaining special case

* Optimize a bit

* Enforce that onScroll cannot be passed

* Keep value updated even if no handler

* Also memo it
2023-12-13 18:48:20 -08:00
dan 0e3218db7d
Memoize usePalette (#2201) 2023-12-13 07:09:07 +00:00
Paul Frazee 870505cbe2
Go back to content-driven slice keys in feeds (#2190)
* Go back to deterministic react keys

* Quick fix to cases when custom feeds serve empty responses
2023-12-12 13:07:09 -08:00
dan 27561ae79f
Fix View Full Thread (#2181) 2023-12-12 11:31:02 -08:00
Eric Bailey e7141a77d8
Stub broadcast channel for unspported contexts (#2175) 2023-12-12 11:19:27 -08:00
dan ab04074197
Fix scroll on native (#2170) 2023-12-11 13:47:41 -08:00
dan 8929ff526f
Fix scroll on profile lists/feeds (#2168) 2023-12-11 13:24:31 -08:00
Paul Frazee b82c5177b9
Reduce calls to getFeedGenerator and getFeed (#2166)
* Reduce calls to getFeedGenerator by the mergefeed

* Dont run end-of-follows mergefeed requests until actually at the end of the feed

* build AWS container

---------

Co-authored-by: Jake Gold <jake@blueskyweb.xyz>
2023-12-11 12:58:34 -08:00
Paul Frazee 28fa5e4919
Add "Who can reply" controls [WIP] (#1954)
* Add threadgating

* UI improvements

* More ui work

* Remove comment

* Tweak colors

* Add missing keys

* Tweak sizing

* Only show composer option on non-reply

* Flex wrap fix

* Move the threadgate control to the top of the composer
2023-12-10 12:01:34 -08:00
Eric Bailey 69a0a0bc41
Remove (#2156) 2023-12-09 15:10:29 -08:00
Paul Frazee 6b3eb401b0
Multiple notifications fixes (#2154)
* Dont reset notifications feed on push notification event

* Dont separate notifications by read state to avoid jank

* On notifications screen focus, check latest and only rerender if not scrolled down

* Reuse the cached notifs page when its not stale

* Bump ios build number

* Improve comments

* Change the 'mark all read' condition to avoid firing too early
2023-12-09 15:09:31 -08:00
Eric Bailey 9c0c18d5d0
Use new filter for Posts tab on profile (#2150)
* Use new filter for Posts tab on profile

* Update deps

* Remove log
2023-12-08 16:29:53 -08:00
Ansh 9d51886e43
Fixes issue with (#2119)
* Allow going directly to password input screen when switching accounts and password is required

* Revise state handling

* Handle logged out states, enable clearing requestedAccount

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2023-12-07 16:53:50 -08:00
Eric Bailey afca4bf701
Add more breadcrumbs (#2141) 2023-12-07 16:48:23 -08:00
Paul Frazee 040ce03215
Grab-bag of post-feed improvements (#2140)
* Sanity check against cases where empty pages may occur

* Use the mergefeed as an emergency fallback to an empty feed

* Check for new posts on focus
2023-12-07 16:30:04 -08:00
dan 794015aef8
Navigate Home on account switch (#2138) 2023-12-07 14:28:49 -08:00
Eric Bailey b7a5294123
Improve account switching on mobile (#2135)
* Improve account switching on mobile

* Clarify comment
2023-12-07 13:44:59 -08:00
Paul Frazee aeafa3a8cd
Fix: remove replies to deleted and blocked posts from feeds (#2130) 2023-12-07 13:04:22 -08:00
Eric Bailey a0b9fd799b
Disable sentry in dev (#2128) 2023-12-07 09:46:33 -06:00
dan 07fe058577
Move analytics out of critical path (#2117)
* Remove analytics provider, simplify hook

* Fix wrong import being used by feed

* Remove early bind

* Create client lazy on first use
2023-12-06 13:06:54 -08:00
dan 6335be14e1
Move analytics out of init (#2115)
* Remove listenSessionLoaded from analytics

* Move analytics init call to navigation ready

* Remove zod dependency from analytics

* Mirror changes on the web

* Delete listenSessionLoaded

* Only set up listeners once
2023-12-06 12:04:05 -08:00
dan de38595a7a
Split notification init, add cleanup (#2102)
* Inline never-imported export

* Remove pretense at handling cleanup

* Extract per-session listener to a function

* Split notifications.init() from notifications.onSessionLoaded()

* Tweak forked code to be more similar

* Remove unnecessary guards

* Split notifications.onSessionLoaded in two

* Always use getAgent()

* Remove dep on listenSessionLoaded, add cleanup
2023-12-06 10:05:59 -08:00
Ansh 8e541d753a
Check Analytics (#2106)
* fix sign in event tracking

* add missing analytics events

* add more missing analytics

* fix like and unrepost event tracking

* reset onEndReachedThreshold
2023-12-06 09:45:01 -08:00
dan 7229cda5a5
Throttle non-critical Sentry messages (#2110)
* Throttle non-critical Sentry messages

* Run all timers in tests
2023-12-06 16:32:47 +00:00
Eric Bailey 570b78c32e
Fix self-threads filter logic (#2091) 2023-12-05 18:22:06 -08:00
Paul Frazee 41fd6eb95b Fix some types 2023-12-05 18:21:15 -08:00
Paul Frazee 826b841e10
Fix: correctly identify if the screen is focused when handling soft resets on post feeds (#2100) 2023-12-05 18:01:08 -08:00
Paul Frazee 37cafb080b
Fix: distinguish between post media and quotes with the moderation hider (#2075)
* Fix: distinguish between post media and quotes with the moderation hider

* Type fixes
2023-12-04 12:53:25 -08:00
Paul Frazee 971c402788
Add PWI build flag (#2082) 2023-12-04 12:45:40 -08:00
Paul Frazee 826cbbd4bf
Maintain some feed data to avoid needless glimmers (#2054) 2023-11-30 18:49:23 -08:00
Cλctys 5839d2a30c
Fix scuffed web styles caused by overlapping viewport breakpoint boundaries (#1985)
* fixed lack of styles on 1300px web viewport width by adjusting tablet breakpoints

* fixed lack of styles on 800px web viewport width by adjusting mobile breakpoints

* changed `maxWidth` values in viewports to `n - 1` format
2023-11-30 16:14:36 -08:00
Samuel Newman 9375532698
Add enter/exit animations to modals on web (#2042)
* add reanimated layout animations to modals

* reorder imports

* pass context to scroll handler patches
2023-11-30 16:02:46 -08:00
Eric Bailey 3e1b2346ee
Close modals if switching to unauthed account (#2039) 2023-11-29 19:28:18 -08:00
Eric Bailey 005fc7cc38
Disable retrying globally (#2038) 2023-11-29 17:50:14 -08:00
Paul Frazee 4c7b9652db Merge branch '2011-link-in-feeds-tab-bar' of https://github.com/CooperEdmunds/social-app into CooperEdmunds-2011-link-in-feeds-tab-bar 2023-11-29 17:35:57 -08:00
Paul Frazee 630637874d
Fix state lifecycle management with post-feed query, solving the duplicate key issue (#2034)
* Assign keys to feed slices via a counter, to enable duplicate items in the feed if needed

* Move post-feed query state into the query's page params to consistently bind their lifecycles
2023-11-29 18:58:14 -06:00
Cooper Edmunds 34759798eb Stop adding whats-hot for new users 2023-11-29 15:24:14 -05:00
Paul Frazee 4b3ec54add
Fix infinite query reloading behavior (reset, not invalidate) (#2031)
* Reset, not invalidate, notification queries

* Reset, not invalidate, feed queries
2023-11-29 11:15:35 -08:00
Ansh 620e002841
Show logged out view when adding accounts (#2020)
* show logged out view when adding accounts

* Handle existing signed-in account

* Show which account is currently logged in

* Fix showing toasts

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2023-11-29 10:11:06 -08:00
Paul Frazee 6fe2b52f68
Get more rigorous about getAgent() consistency (#2026)
* Get more rigorous about getAgent() consistency

* Update the feed wrapper API to use getAgent() directly
2023-11-29 10:10:04 -08:00
dan 9fb2c29c67
Disable RQ structural sharing (#2022) 2023-11-28 20:48:08 -08:00
Eric Bailey 6f7032d42b
Full send Sentry (#2018)
* Update build profiles, sentry config

* Enable sentry

* Ok actually enable in dev

* Remove debug

* Add TF build

* Fix typo

* Remove debug

* Remove unecessary config

* Fix typo

* Set env in Expo

* Remove scripts

* Clarify

* Replace invalid character

* Align on release/dist

* Add build version

* Just use package version

* Align dist
2023-11-28 21:49:37 -06:00
Paul Frazee cd43adf698
Two fixes to react-key generation (#2004)
* Fix missing react keys in ListMembers

* Fix react key construction for the posts feed
2023-11-27 12:30:41 -08:00
Eric Bailey 6758755316
Nav home after switch accounts (#2002) 2023-11-27 10:27:38 -08:00
Eric Bailey edf3114e47
Fixes 1731, compare URLs case-insensitive (#1980) 2023-11-22 17:20:35 -06:00
dan 4c4ba553bd
Shadow refactoring and improvements (#1959)
* Make shadow a type-only concept

* Prevent unnecessary init state recalc

* Use derived state instead of effects

* Batch emitter updates

* Use object first seen time instead of dataUpdatedAt

* Stop threading dataUpdatedAt through

* Use same value consistently
2023-11-21 22:42:30 +00:00
Ansh c5b6f88e9a
Hindi Internationalization (#1914)
* get basic hindi support to work

* get web app language switcher in

* Refactor i18n implementation and remove unused
code

* add missing strings

* add dropdowns and modals missing strings

* complete all hindi translations

* fix merge conflicts

* fix legeacy persisted state

* fix data in RecommendedFeeds

* fix lint
2023-11-20 13:29:27 -08:00
dan 3043b32468
Fix jumpy modal regression (#1945) 2023-11-16 18:01:51 -08:00
Paul Frazee 1952705ded
Disable refetchOnWindowFocus on react-query (#1936) 2023-11-16 15:42:37 -08:00
dan 8475312422
Add a mutation queue to fix race conditions in toggles (#1933)
* Prototype a queue

* Track both current and pending actions

* Skip unnecessary actions

* Commit last confirmed state to shadow

* Thread state through actions over time

* Fix the logic to skip redundant mutations

* Track status

* Extract an abstraction

* Fix standalone mutations

* Add types

* Move to another file

* Return stable function

* Clean up

* Use queue for muting

* Use queue for blocking

* Convert other follow buttons

* Don't export non-queue mutations

* Properly handle canceled tasks

* Fix copy paste
2023-11-16 14:01:01 -08:00
Paul Frazee 54faa7e176
Remove deprecated models and mobx usage (react-query refactor) (#1934)
* Update login page to use service query

* Update modal to use session instead of store

* Move image sizes cache off store

* Update settings to no longer use store

* Update link-meta fetch to use agent instead of rootstore

* Remove deprecated resolveName()

* Delete deprecated link-metas cache

* Delete deprecated posts cache

* Delete all remaining mobx models, including the root store

* Strip out unused mobx observer wrappers
2023-11-16 12:53:43 -08:00
Paul Frazee e637798e05
Refactor account-creation to use react-query and a reducer (react-query refactor) (#1931)
* Refactor account-creation to use react-query and a reducer

* Add translations

* Missing translate
2023-11-16 11:16:31 -08:00
Paul Frazee a84b2f9f2f
Close active elems (react-query refactor) (#1926)
* Refactor closeAny and closeAllActiveElements

* Add close lightbox

* Switch to hooks

* Fixes
2023-11-16 08:18:59 -08:00
Eric Bailey 952f5033d0
Fixes analytics init on web (#1923) 2023-11-15 17:37:55 -08:00
Paul Frazee 6616b2bff0
Shell behaviors update (react-query refactor) (#1915)
* Move tick-every-minute into a hook/context

* Move soft-reset event out of the shell model

* Update soft-reset listener on new search page

* Implement session-loaded and session-dropped events

* Update analytics and push-notifications to use new session system
2023-11-15 17:17:50 -08:00
Eric Bailey f23e9978d8
Update post embed fetching to use new methods (#1916)
* Update post embed fetching to use new methods

* Use session agent
2023-11-15 17:09:13 -08:00
dan e699df21c6
Port Profile Followers/Follows to RQ (#1893)
* Port user followers to RQ

* Port user follows to RQ

* Start porting FollowButton to RQ

* Fix RQ key

* Check pending

* Fix shadow and pending states

* Rm unused

* Remove last usage of useFollowProfile
2023-11-14 17:55:54 -08:00
Eric Bailey ab1ce078ec
Fix openCamera, openCropped, lightbox model, and image model usages (#1908) 2023-11-14 17:46:46 -08:00
Paul Frazee 0a26e78dcb
Composer update (react-query refactor) (#1899)
* Move composer state to a context

* Rework composer to use RQ

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2023-11-14 10:41:55 -08:00
Eric Bailey 06eb8b9a4c
Factor our feed source model (#1887)
* Refactor first onboarding step

* Replace old FeedSourceCard

* Clean up CustomFeedEmbed

* Remove discover feeds model

* Refactor ProfileFeed screen

* Remove useCustomFeed

* Delete some unused models

* Rip out more prefs

* Factor out treeView from thread comp

* Improve last commit
2023-11-13 13:53:57 -08:00
Eric Bailey c3edde8ac6
More prefs cleanup (#1882)
* Update useHomeTabs

* Use queryClient to fetch

* Replace useHomeTabs and useDesktopRightNavItems

* Fix type error

* Some cleanup
2023-11-13 10:21:53 -08:00
Paul Frazee b445c15cc9
Refactor notifications to use react-query (#1878)
* Move broadcast channel to lib

* Refactor view/com/post/Post and remove temporary 2 components

* Add useModerationOpts hook

* Refactor notifications to use react-query

* Fix: only trigger updates in useModerationOpts when the values have changed

* Implement unread notification tracking

* Add moderation filtering to notifications

* Handle native/push notifications

* Remove dead code

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2023-11-12 18:13:11 -08:00
Paul Frazee d9e0a927c1
Refactor lists to use new queries (#1875)
* Refactor lists queries to react-query

* Delete old lists-list model

* Implement list, list-members, and list-memberships react-queries

* Update CreateOrEditList modal

* First pass at my-follows and actor-autocomplete queries

* Update ListAddUserModal to use new queries, change to ListAddRemoveUsersModal

* Update UserAddRemoveLists modal

* Remove old TODO

* Fix indent, autocomplete query

* Add a todo

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2023-11-12 12:45:25 -08:00
Eric Bailey 05b728fffc
Eric/preferences (#1873)
* Add initial preferences query, couple mutations

* Remove unused

* Clean up labels, migrate getModerationOpts

* Add birth date handling

* Migrate feed prefs

* Migrate thread view prefs

* Migrate homeFeed to use existing key name

* Fix up saved feeds in response, no impl yet

* Migrate saved feeds to new hooks

* Clean up more of preferences

* Fix PreferencesThreads load state

* Fix modal dismissal

* Small spacing fix

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-11-12 11:31:11 -08:00
Paul Frazee c8c308e31e
Refactor feeds to use react-query (#1862)
* Update to react-query v5

* Introduce post-feed react query

* Add feed refresh behaviors

* Only fetch feeds of visible pages

* Implement polling for latest on feeds

* Add moderation filtering to slices

* Handle block errors

* Update feed error messages

* Remove old models

* Replace simple-feed option with disable-tuner option

* Add missing useMemo

* Implement the mergefeed and fixes to polling

* Correctly handle failed load more state

* Improve error and empty state behaviors

* Clearer naming
2023-11-10 15:34:25 -08:00
dan 65def37165
Push useAnimatedScrollHandler down everywhere to work around bugs (#1866)
* Move useOnMainScroll handlers to leaves

* Force Feed to always take handlers

* Pass handlers from the pager
2023-11-10 19:00:46 +00:00
Eric Bailey 6513055d02
Merge pull request #1860 from bluesky-social/eric/startup
Web login/signup and shell
2023-11-10 11:31:36 -06:00
Eric Bailey 436a14eabb Pare down session as much as possible 2023-11-10 09:59:04 -06:00
dan 8d7475c130
Work around web stale closure bug in Reanimated (#1865) 2023-11-10 14:58:13 +00:00
Eric Bailey ab878ba9a6 Web login/signup and shell 2023-11-09 20:35:17 -06:00
dan 7a55ca6133
Sync top/bottom bar disappearance to the scroll (#1855)
* Disable existing code that toggles shell

* Make shell mode a float

* Translate based on the gesture

* Track header and footer heights

* Add web support

* Fix types and cleanup

* Add back isScrolled logic

* Add comments
2023-11-09 12:15:05 -08:00
dan 82059b7ee1
Hide/show header and footer without re-renders, take two (#1849)
* Remove callsites using the state value

* Remove unused code

* Change shell mode without re-renders

* Adjust "write your reply" for mode
2023-11-09 00:25:27 +00:00
Eric Bailey f18b15241a
Add modal state provider, replace usage except methods (#1833)
* Add modal state provider, replace usage except methods

* Replace easy spots

* Fix sticky spots

* Replace final usages

* Memorize context objects

* Add more warnings
2023-11-08 10:34:10 -08:00
Eric Bailey bfe196bac5
Extract shell state into separate context (#1824)
* WIP

* Add shell state

* Integrate new shell state for drawer and minimal shell mode

* Replace isDrawerSwipeDisabled

* Split shell state into separate contexts to avoid needless re-renders

* Fix typo

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-11-07 11:37:47 -08:00
dan fa821943da
Use Sentry only for errors (#1776)
* Use Sentry only for errors

* Fix merge
2023-11-07 04:30:00 +00:00
dan 4c00fc576d
Fix minor list layout bugs (#1810)
* Fix accidental border on mobile

* Fix lists list to take full screen
2023-11-06 17:15:01 +00:00
Eric Bailey f51351e80d Replace all logs with new logger 2023-11-04 13:42:36 -05:00
Eric Bailey e49a3d8a56
Merge pull request #1813 from bluesky-social/eric/app-903-extract-logger-into-singleton
Add new logger
2023-11-04 13:12:46 -05:00
Eric Bailey 7e29ebbadb Fix other error logs while I'm at it 2023-11-04 12:58:50 -05:00
Eric Bailey df0dcf32f9 Fix immediate TS errors 2023-11-04 12:42:27 -05:00
Paul Frazee ebad6d2b1a
ListAddUser modal UX improvements (#1809)
* typo

* Add loading state to ListAddUser

* Improve UI/UX of ListAddUser
2023-11-03 16:44:00 -07:00
Eric Bailey f258289be9
Treat PHP pages as HTML (#1797) 2023-11-02 15:16:31 -07:00
Paul Frazee f57a8cf8ba
Lists updates: curate lists and blocklists (#1689)
* Add lists screen

* Update Lists screen and List create/edit modal to support curate lists

* Rework the ProfileList screen and add curatelist support

* More ProfileList progress

* Update list modals

* Rename mutelists to modlists

* Layout updates/fixes

* More layout fixes

* Modal fixes

* List list screen updates

* Update feed page to give more info

* Layout fixes to ListAddUser modal

* Layout fixes to FlatList and Feed on desktop

* Layout fix to LoadLatestBtn on Web

* Handle did resolution before showing the ProfileList screen

* Rename the CustomFeed routes to ProfileFeed for consistency

* Fix layout issues with the pager and feeds

* Factor out some common code

* Fix UIs for mobile

* Fix user list rendering

* Fix: dont bubble custom feed errors in the merge feed

* Refactor feed models to reduce usage of the SavedFeeds model

* Replace CustomFeedModel with FeedSourceModel which abstracts feed-generators and lists

* Add the ability to pin lists

* Add pinned lists to mobile

* Remove dead code

* Rework the ProfileScreenHeader to create more real-estate for action buttons

* Improve layout behavior on web mobile breakpoints

* Refactor feed & list pages to use new Tabs layout component

* Refactor to ProfileSubpageHeader

* Implement modlist block and mute

* Switch to new api and just modify state on modlist actions

* Fix some UI overflows

* Fix: dont show edit buttons on lists you dont own

* Fix alignment issue on long titles

* Improve loading and error states for feeds & lists

* Update list dropdown icons for ios

* Fetch feed display names in the mergefeed

* Improve rendering off offline feeds in the feed-listing page

* Update Feeds listing UI to react to changes in saved/pinned state

* Refresh list and feed on posts tab press

* Fix pinned feed ordering UI

* Fixes to list pinning

* Remove view=simple qp

* Add list to feed tuners

* Render richtext

* Add list href

* Add 'view avatar'

* Remove unused import

* Fix missing import

* Correctly reflect block by list state

* Replace the <Tabs> component with the more effective <PagerWithHeader> component

* Improve the responsiveness of the PagerWithHeader

* Fix visual jank in the feed loading state

* Improve performance of the PagerWithHeader

* Fix a case that would cause the header to animate too aggressively

* Add the ability to scroll to top by tapping the selected tab

* Fix unit test runner

* Update modlists test

* Add curatelist tests

* Fix: remove link behavior in ListAddUser modal

* Fix some layout jank in the PagerWithHeader on iOS

* Simplify ListItems header rendering

* Wait for the appview to recognize the list before proceeding with list creation

* Fix glitch in the onPageSelecting index of the Pager

* Fix until()

* Copy fix

Co-authored-by: Eric Bailey <git@esb.lol>

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2023-11-01 16:15:40 -07:00
Eric Bailey ddf0a1cced
Filter non-self threads from profile view (#1757) 2023-10-30 20:40:06 -07:00
Paul Frazee 40752982da Merge branch 'main' of https://github.com/haideralipunjabi/social-app into main 2023-10-30 19:26:23 -07:00
Leo Lamprecht 68c809b09a
Use more beautiful title separator (#1728) 2023-10-30 19:25:19 -07:00
Ansh 927cee18d9
Update Analytics (#1743) 2023-10-26 08:37:14 -07:00
Haider Ali Punjabi 7fa0708e0e Added show more for long posts 2023-10-26 19:38:39 +05:30
Ansh 8e9cf182c2
Performance optimization (#1676)
* upgrade sentry to support profiling monitoring

* remove console logs in production builds

* feeds tab bar and bottom bar animation centralized

* refactor FeedPage out of Home

* add script to start in production mode

* move FAB inner to reanimated

* move FABInner back to `Animated` RN animation

* add perf commands

* add testing with Maestro and perf with Flashlight

* fix merge conflicts

* fix resourceClass name in eas.json

* fix onEndReachedThreshold in Feed

* memoize styles

* go back to old styling for LoadLatestBtn

* remove reanimated code from useMinimalShellMode

* move shell animations to hook/reanimated for perf

* fix empty state issue

* make shell animation feel smoother

* make shell animation more smooth

* run animation with autorun

* specify keys for tab bar properly

* remove comments

* remove already imported dep

* fix lint

* add testing instructions

* mock sentry-expo for jest

* fix jest mocks

* Fix the load-latest button on desktop and tablet

* Fix: don't move the FAB in tablet mode

* Fix type error

* Fix tabs bar positioning on tablet

* Fix types

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-10-13 18:54:35 -07:00
dan 2a1edab6d4
Don't re-render bars when showing/hiding them (#1691)
* Don't re-render bars when showing/hiding them

* Fix more cases

* Use autorun instead of reaction to fix first render
2023-10-13 15:24:28 +01:00
dan 997918547c
Make shell hide/show animation smoother (#1683)
* Make shell hide/show animation smoother

* Also animate "load latest"
2023-10-12 21:02:17 +01:00
Paul Frazee 4d450da194
Only warn on links to bsky.app if it represents itself as another url (#1662)
* Only warn on links to bsky.app if it represents itself as another url (close #1652)

* Clean up
2023-10-10 14:02:50 -07:00
Paul Frazee 8366fe2c4a
Dont trim before posting (close #1621) (#1622)
* Dont trim before posting (close #1621)

* Tweak: do trim end
2023-10-05 19:08:20 -07:00
Paul Frazee bd7db8af26
Improve typeahead search with inclusion of followed users (temporary solution) (#1612)
* Update follows cache to maintain some user info

* Prioritize follows in composer autocomplete

* Clean up logic and add new autocomplete to search

* Update follow hook
2023-10-05 16:44:05 -07:00
Paul Frazee 19f8389fc7
Slightly smaller highlighted post text (#1608) 2023-10-05 16:13:49 -07:00
Paul Frazee b1a1bae02e
Onboarding & feed fixes (#1602)
* Fix: improve the 'end of feed' detection condition

* Fix the feeds link on mobile in the empty state

* Align the following empty state better on web

* Dont autofocus the search input in the search tab

* Fix the error boundary render

* Add 'end of feed' CTA to following feed

* Reduce the default feeds to discover now that we have feed-selection during onboarding

* Fix case where loading spinner fails to stop rendering in bottom of feed

* Fix: dont show loading spinner at footer of feed when refreshing

* Fix: dont fire reminders during onboarding

* Optimize adding feeds and update to mirror the api behaviors more closely

* Use the lock in preferences to avoid clobbering in-flight updates

* Refresh the feed after onboarding to ensure content is visible

* Remove the now-incorrect comment

* Tune copy
2023-10-04 08:57:23 -07:00
Paul Frazee fd5bbb2769
Warn the user on links that dont match their text (#1573)
* Add link warning modal when URLs do not match their text

* Simplify the misleading link case for clarity

* Fix typecheck

* fix dark mode

* Give a stronger visual indication of the root domain in the link warning

* More rigorous URL mismatch logic

* Remove debug

---------

Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
2023-10-02 14:47:39 -07:00
Ansh 04fda0f142
Fix 1405 handle android back button in composer (#1446)
* handle android back button in composer

* improve backHandler error handling

* simplify composer onClose functionality
2023-09-29 07:49:59 +04:00
Bryan Lee 2aae37d67b
Improve Device Detection For Better Responsiveness (#1512)
* Refactor `useOnMainScroll` function to use responsive device detection

- Replace static `isDesktopWeb` with `useWebMediaQueries` hook to enable dynamic device type detection.
- Create `useDeviceLimits` hook to dynamically determine `DY_LIMIT_UP` and `DY_LIMIT_DOWN` based on device type.
- Update dependency arrays for the `useCallback` hooks to include new dynamic variables.

* Refactor styles to be responsive to device type

- Create `useStyles` hook that generates styles object based on device type detected from `useWebMediaQueries`.
- Replace static styles object with dynamic styles object generated from `useStyles` hook in components.
- This allows `paddingLeft` values for 'ul' and 'ol' styles to adapt to device type dynamically.
- This allows `maxWidth` values for 'metaItem'' styles to adapt to device type dynamically.

* Remove `isDesktopWeb` in favor of `useWebMediaQueries().isDesktop`

* Refactor `SplashScreen` component for responsive design

* Revision based on review results

* Fix isNative check

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-09-28 12:47:34 -07:00
Paul Frazee 2e5f73ff61
Account quick switch modal (#1567)
* quick switch menu

* Some small tweaks and fixes to the account switch modal

* Factor out the account switcher logic to a hook

* Add haptic feedback on account switcher open

* Fix bad merge

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2023-09-28 12:41:44 -07:00
Paul Frazee cd3b0e54fb
Email verification and change flows (#1560)
* fix 'Reposted by' text overflow

* Add email verification flow

* Implement change email flow

* Add verify email reminder on load

* Bump @atproto/api@0.6.20

* Trim the inputs

* Accessibility fixes

* Fix typo

* Fix: include the day in the sharding check

* Update auto behaviors

* Update yarn.lock

* Temporary error message

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2023-09-28 12:08:00 -07:00
Paul Frazee d87c232660
Improve image cropping on android and introduce aspect ratio field (#1525)
* Fix image cropping on android

* Store and use aspect ratio field in post images (close #1392)
2023-09-27 09:08:21 -07:00
Paul Frazee 8584009bae
Move home feed and thread preferences to server (#1507)
* Move home feed and thread preferences to server

* Fix thread usage of prefs

* Remove log

* Bump @atproto/api@0.6.16

* Improve type usage
2023-09-21 21:00:32 -07:00
Eric Bailey 8a5f9cd43d
Language settings updates, new primary language setting (#1471)
* move content languages to screen

* add dropdown library, style primary lang select

* update settings button

* show selected langauges in button

* use primary language in translator link

* update copy

* lint
2023-09-21 11:33:19 -07:00
Eric Bailey e837a499f3
add suggested follows metrics (#1503) 2023-09-20 19:48:03 -07:00
Paul Frazee 5a945c2024
Prefilter the mergefeed to ensure a better mix of following and custom feeds (#1498)
* Prefilter the mergefeed to ensure a better mix of following and custom feeds

* Test suite improvements & tests for the mergefeed (#1499)

* Disable invite codes test for now

* Update test sim to latest iphone

* Introduce TestCtrls driver

* Add mergefeed tests
2023-09-20 19:47:56 -07:00
Eric Bailey 6df1bcad31
add suggested follow section to profile header (#1481)
* add suggested follow section to profile header

* fix button overflow

* don't even render on preview

* fix useFollowDid and FollowButton race condition

* add section header, close button, active state

* lighten icon
2023-09-20 19:16:11 -07:00
Paul Frazee da8499c881
Add thread sort settings (#1475)
* Add thread sorting preferences

* UI tweaks

* Tweak settings

* Tune the copy
2023-09-19 12:24:58 -07:00
Foysal Ahamed 3c4899b3c4
🐛 Handle middle mouse click on feed list items (#1469)
* 🐛 Handle middle mouse click on feed list items

* ♻️ Refactor the event listener and turn it into a dedicated hook for web

* 🧹 Cleanup unnecessary Link changes

* Fix import

* Create native version of useAuxClick

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-09-18 14:34:12 -07:00
Paul Frazee ea885339cf
Feed UI update working branch [WIP] (#1420)
* Feeds navigation on right side of desktop (#1403)

* Remove home feed header on desktop

* Add feeds to right sidebar

* Add simple non-moving header to desktop

* Improve loading state of custom feed header

* Remove log

Co-authored-by: Eric Bailey <git@esb.lol>

* Remove dead comment

---------

Co-authored-by: Eric Bailey <git@esb.lol>

* Redesign feeds tab (#1439)

* consolidate saved feeds and discover into one screen

* Add hoverStyle behavior to <Link>

* More UI work on SavedFeeds

* Replace satellite icon with a hashtag

* Tune My Feeds mobile ui

* Handle no results in my feeds

* Remove old DiscoverFeeds screen

* Remove multifeed

* Remove DiscoverFeeds from router

* Improve loading placeholders

* Small fixes

* Fix types

* Fix overflow issue on firefox

* Add icons prompting to open feeds

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>

* Merge feed prototype [WIP] (#1398)

* POC WIP for the mergefeed

* Add feed API wrapper and move mergefeed into it

* Show feed source in mergefeed

* Add lodash.random dep

* Improve mergefeed sampling and reliability

* Tune source ui element

* Improve mergefeed edge condition handling

* Remove in-place update of feeds for performance

* Fix link on native

* Fix bad ref

* Improve variety in mergefeed sampling

* Fix types

* Fix rebase error

* Add missing source field (got dropped in merge)

* Update find more link

* Simplify the right hand feeds nav

* Bring back load latest button on desktop & unify impl

* Add 'From' to source

* Add simple headers to desktop home & notifications

* Fix thread view jumping around horizontally

* Add unread indicators to desktop headers

* Add home feed preference for enabling the mergefeed

* Add a preference for showing replies among followed users only (#1448)

* Add a preference for showing replies among followed users only

* Simplify the reply filter UI

* Fix typo

* Simplified custom feed header

* Add soft reset to custom feed screen

* Drop all the in-post translate links except when expanded (#1455)

* Update mobile feed settings links to match desktop

* Fixes to feeds screen loading states

* Bolder active state of feeds tab on mobile web

* Fix dark mode issue

---------

Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: Ansh <anshnanda10@gmail.com>
2023-09-18 11:44:29 -07:00
Paul Frazee 0672451ddc
Sanitize BIDI characters from display names (#1462) 2023-09-15 14:05:45 -07:00
Eric Bailey 8593f41f36
don't thread a self-repost of a self-reply (#1450)
* don't thread a self-repost of a self-reply

* typo
2023-09-15 09:34:12 -07:00
Ansh 188d4893f9
add React Query and hook up to existing functionality (#1358)
* add React Query and hook up to existing functionality

* wire in remote data, add error message

* remove hard-coded feeds

* oops fix logic

* add loading state

* fix loading on mobile

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2023-09-15 09:32:44 -07:00
Eric Bailey 0e8d564555 link out to more context 2023-09-15 11:00:06 -05:00
Eric Bailey 01870883d6 clean up into hook 2023-09-14 18:15:17 -05:00
Eric Bailey 9a86f0dae4 simplify logic 2023-09-14 13:23:20 -05:00
Eric Bailey a88ac217c2 fix theme switching on web without refresh 2023-09-14 12:55:47 -05:00
Ansh 4977a5d2a3
Fix 651 Make followers and following button into a `<Link>` (#1429)
* make followers and following button into a Link

* make buttons into `<a>` tags
2023-09-12 13:47:55 -07:00
Eric Bailey 21371081c6
fix theme flashing (#1417)
* fix theme flashing

* remove memo

* use AppState listener
2023-09-11 14:39:31 -07:00
Ansh bcd63e710c
Lytic analytics migration (#1428)
* add new api event proxy

* add new apiHost for analytics web
2023-09-11 11:41:27 -07:00
Ansh 01775e5bff
add new api event proxy (#1400) 2023-09-11 22:36:49 +05:30
Bossett 775aa87540
Update time.ts to handle very small or negative time differences (#1390)
* Update time.ts to handle very small or negative time differences

Right now, posts can appear to be from the future with a negative time difference (i.e. -3s appears). This change defines 'NOW' as less than 5 seconds old, and returns 'now' in that case.

It's not clear how localisation is handled - this may need translation.

* Add test for 'now' in time/ago(...)

Add tests for ago() for right now (i.e. 'now') and 10s ago to ensure the seconds case is still tested
2023-09-08 08:57:22 -07:00
Eric Bailey e3e91816d1
Upgrade to Expo 49 (#1331)
* update to expo 49

* update expo-camera to fix console erorrs

* run doctor again

* fix ts errors

* patch @sentry/react-native

Getting `cannot read property 'ignoreLogs' of undefined` in this file.
Ironically, this may be a cyclical imports problem. LogBox isn't enabled
in production, so this patch should only affect dev/test.

* fix type error

* reinstall newer reanimated

* pin expo-dev-client to fix reanimated dev-build issue

* fix type errors, fix bad conflict res

* Fix to notifications badge z-index on desktop

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-09-05 12:23:22 -07:00
Paul Frazee 764c7cd569
Updates to use dynamic/responsive styles on web (#1351)
* Move most responsive queries to the hook

* Fix invalid CSS value

* Fixes to tablet render of post thread

* Fix overflow issues on web

* Fix search header on tablet

* Fix QP margin in web composer

* Fix: only apply double gutter once to flatlist (close #1368)

* Fix styles on discover feeds header

* Fix double discover links in multifeed
2023-09-05 10:42:19 -07:00
Paul Frazee 419ac2d0df
Improved mute alerting (#1355)
* Use a simpler mute alert when viewing a post by a muted user

* Dont mute self-QPs when we're overriding a mute

* Fix types
2023-09-01 12:30:02 -07:00
Ansh 4ac82536c9
Fix 1304 refresh notifications when a notif is clicked or received (#1339)
* refresh notifications when a notif is clicked

* make notification syncing smarter

* allow enabled appview proxy on mobile

* put back syncqueue code
2023-08-30 18:04:33 -07:00
Paul Frazee f9cab178b9 Merge branch 'ansh/app-812-add-custom-feed-discovery-to-onboarding' into main 2023-08-30 16:18:21 -07:00
Ansh 9446c67880
Move `PreferencesHomeFeed` to a screen instead of a modal (#1335)
* move `PreferencesHomeFeed` to a screen instead of a modal

* add web route for home feed preferences

* upgrade `@miblanchard/react-native-slider` to fix lint

* fix web route naming

* fix desktop web styling

* add `react-native-slider` mock
2023-08-30 15:21:12 -07:00
Paul Frazee a29f10aefe
Moderation settings fixes (#1336)
* Default isAdultContentEnabled to false on all devices.

The original intent of setting the default based on the device was
to make the maximally-permissive choice. It turns out this was a
mistake as it created sync issues between devices; users would be
confused by the lack of congruity between them. We have to go with
false by default to ensure sync is retained.

* Update preferences model to use new sdk api

* Delete dead code

* Dont show the iOS adult content warning in content filtering settings if adult content is enabled

* Bump @atproto/api@0.6.8

* Codebase style consistency
2023-08-30 15:19:19 -07:00
Paul Frazee 8ed6e72ea4 More fixes to mobile onboard 2023-08-30 15:15:10 -07:00
Paul Frazee 5e765bf1cb Rework web onboarding 2023-08-29 22:56:13 -07:00
Paul Frazee 5d9534ca72 Move onboarding to the withAuthRequired HOC 2023-08-29 20:20:51 -07:00
Eric Bailey 5710140a73 handle stuck state with granular android permissions 2023-08-29 17:09:38 -05:00
Ansh Nanda bf37913701 fix onboarding on web 2023-08-29 12:16:26 -07:00
Ansh Nanda 742440c22d add more tracking 2023-08-28 18:55:40 -07:00
Paul Frazee 5ee754e6f9
Improvements to feed assembly to avoid possible state issues (#1318)
* Avoid potential dropped posts due to pruning when checking for latest

* Add a sanity check to ensure dup react keys never occur (close #1315)
2023-08-28 17:54:59 -07:00
Ansh Nanda 3f1b313fa4 add custom feed discovery to onboarding 2023-08-28 15:41:02 -07:00
Ansh Nanda edfd326069 move onboarding to screens 2023-08-28 13:37:44 -07:00
Paul Frazee c6f321862b
Add analytics event for when the app is opened from a notification (#1270)
* Add analytics event for when the app is opened from a notification

* Tweak notification ID
2023-08-24 16:07:16 -07:00
Paul Frazee c1c02f480b
A couple quick notifications fixes (#1262)
* Create separate .easignore to ensure google-services.json goes to eas

* Set the notifications serviceDid according to the session host

* Fix types
2023-08-23 17:10:00 -07:00
Ansh 8ab5eb6583
[APP-786] Native notifications (#1095)
* move `notifee.ts` to notifications folder

* install expo notifications

* add UIBackgroundMode `remote-notifications` to app.json

* fix notifee import in Debug.tsx

* add `google-services.json`

* add `development-device` class to eas.json

* Add `notifications.ts` for native notification handling

* send push token to server

* update `@atproto/api`

* fix putting notif token to server

* fix how push token is uploaded

* fix lint

* enable debug appview proxy header on all platforms

* setup `notifications.ts` to work with app view notifs

* clean up notification handler

* add comments

* update packages to correct versions

* remove notifee

* clean up code a lil

* rename push token endpoint

* remove unnecessary comments

* fix comments

* Remove old background scheduler

* Fixes to push notifications API use

* Bump @atproto/api@0.6.6

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-08-23 16:28:51 -07:00
Paul Frazee fcea27ea0b
Fix: include link-meta abort signal for timeout (close #1214) (#1240) 2023-08-22 16:36:36 -07:00
Ansh 88357d5c82
add profiles sampling to sentry (#1237) 2023-08-21 16:49:59 -07:00
Eric Bailey 4cc2695d84
allow handles to start with a number (#1231)
* allow handles to start with a number

* don't allow leading hyphen
2023-08-21 13:37:57 -07:00
Paul Frazee 819340dd3c
Shorten links in composer to reduce char usage (#1188)
* Modify toShortUrl() to always include the full domain

* Shorten links in the composer to save on characters

* Apply some limits to the link card suggester
2023-08-16 10:22:50 -07:00
Paul Frazee 79a6819769
Tune up the link card to look nicer, show more info, and layout horizontally on web to user space more nicely (#1190) 2023-08-16 10:02:41 -07:00
Paul Frazee 884e5c9294
Fix to "Load new posts" showing sometimes when there's nothing new to show (#1191)
* Fix to feed item react key value (hopefully)

* Fix false-firing of load more (close #1028)
2023-08-16 10:00:22 -07:00
Ansh 77178844fd
[APP-798] add key to `ProfileCardPills` render method (#1158)
* add key to `ProfileCardPills` render method

* More reliable key generation

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-08-15 11:32:57 -07:00
Paul Frazee e5b7a894a3
More useful block-state information in embeds (#1150)
* More useful block-state information in embeds

* Tune copy
2023-08-10 16:25:11 -07:00
Paul Frazee 03d152675e
Add self-labeling controls (#1141)
* Add self-label modal

* Use the shield-exclamation icon consistently on post moderation

* Wire up self-labeling

* Bump @atproto/api@0.6.0

* Bump @atproto/dev-env@^0.2.3

* Add e2e test for self-labeling

* Fix types
2023-08-09 17:34:16 -07:00
Paul Frazee bbe9861eef
Add alerts to embeds (#1138)
* Add alerts to embeds

* Add images to the mock data

* Fix types
2023-08-08 15:54:36 -07:00
Paul Frazee 3c29a1be4d
Fix to react-key uniqueness in feeds (#1136) 2023-08-08 11:34:19 -07:00
Paul Frazee b154d3ea21
Labeling & moderation updates [DRAFT] (#1057)
* First pass moving to the new labeling sdk (it compiles)

* Correct behaviors around interpreting label moderation

* Improve moderation state rendering

* Improve hiders and alerts

* Improve handling of mutes

* Improve profile warnings

* Add profile blurring to profile header

* Add blocks to test cases

* Render labels on profile cards, do not filter

* Filter profiles from suggestions using moderation

* Apply profile blurring to ProfileCard

* Handle blocked and deleted quote posts

* Temporarily translate content filtering settings to new labels

* Fix types

* Tune ContentHider & PostHider click targets

* Put a warning on profilecard label pills

* Fix screenhider learnmore link on mobile

* Enforce no-override on user avatar

* Dont enumerate profile blur-media labels in alerts

* Fixes to muted posts (esp quotes of muted users)

* Fixes to account/profile warnings

* Bump @atproto/api@0.5.0

* Bump @atproto/api@0.5.1

* Fix tests

* 1.43

* Remove log

* Bump @atproto/api@0.5.2
2023-08-03 22:08:30 -07:00
Paul Frazee a63f97aef2
Use a post and handle-resolution cache to enable quick postthread loading (#1097)
* Use a post and handle-resolution cache to enable quick postthread loading

* Fix positioning of thread when loaded from cache and give more visual cues

* Include parent posts in cache

* Include notifications in cache
2023-08-03 09:44:43 -07:00
Ansh 3b8b562268
[APP-737] Accessible native dropdown menu (#988)
* fix comments

* add zeego package

* get basic native dropdown working

* add separator and icon components

* refined native dropdown component

* add android build properties to app.json

* move `PostDropdownBtn` to its own component

* fix selectors issue

* move `PostDropdownBtn` to its own component

* fix hitslop

* fix post dropdown hitslop

* fix android dropdown icons

* move `UserAvatar.tsx` to native dropdown

* use native dropdown in `ProfileHeader.tsx`

* use native dropdown in `PostThreadItem.tsx`

* use native dropdown in `UserBanner.tsx`

* use native dropdown in `CustomFeed.tsx`

* replace `testId` with `testID` (which is what is used everywhere)

* move `Settings.tsx` to use native dropdown

* create jest mocks for zeego

* create jest mock for `zeego/dropdown-menu`

* web styles for native dropdown

* remove example native dropdown

* adjust web styles

* fix propagation

* fix pressable in `Settings.tsx`

* animate dropdown on web

* add keyboard nav and hover styles

* add hitslop to constants

* add comments to NativeDropdown component

* temporarily removed android icons

* add testID to PostDropdownBtn

* add testID back to all NativeDropdown button implementations

* add postDropdownBtn testID

* add testID to dropdown items

* remove testID from dropdown menu item

* refactor home-screen tests for native dropdown

* refactor profile-screen tests for native dropdown

* refactor thread-muting tests for native dropdown

* refactor thread-screen tests for native dropdown

* fix dropdown color for post dropdown button

* remove icons from android dropdown menu

* fix `create-account.test.ts`

* fix `invite-codes.test.ts`
2023-07-28 16:00:37 -05:00
Paul Frazee 49356700c3
[APP-782] Support invalid handles correctly (#1049)
* Update profile link construction to support handle.invalid

* Update list links  to support using handles

* Use did for isMe check to ensure invalid handles dont distort the check

* Shift the red (error) colors away from the pink spectrum

* Add ThemedText helper component

* Add sanitizedHandle() helper to render invalid handles well

* Fix regression: only show avatar in PostMeta when needed

* Restore the color of likes

* Remove users with invalid handles from default autosuggests
2023-07-27 10:50:12 -05:00
Steven 5a0899b989
fix: invisible url when only a protocol (#1059)
* fix: invisible url when only a protocol

- Fixes https://github.com/bluesky-social/social-app/issues/1058

* fix: handle more cases when url is not http/https
2023-07-27 10:49:37 -05:00
David Buchanan 44b3929240
Update icons.tsx - Simplify SatelliteDishIcon paths (#1048)
This prevents rendering jank
2023-07-25 10:21:17 -05:00
Ansh 30ac9259c7
[APP-775] Add Welcome screen after account creation (#1038)
* add comments to step 1-3

* add onboarding screen

* add analytics for onboarding tracking

* fix useEffect

* change text

* change icon size

* put onboarding into bottom sheet modal instead of react navigation

* wip

* Simplify the type validation

* Fix: only trigger onboarding modal when account creation succeeds

* Add the 'session-ready' event which fires when the new session is stable

* Use the 'session-ready' event to trigger the onboarding modal

* update copy

* update copy

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-07-19 23:50:42 -07:00
Paul Frazee 6f69157269
Post UI updates (Profile Preview on mobile) (#990)
* Update postmeta to put the timestamp on the right side on mobile

* Drop the two-line PostMeta mode

* Add ProfilePreview modal

* Tune PostMeta to give the best behavior possible for a given platform

* Remove old showFollowBtn attributes

* Fix style issue

* Switch the follow button in the profile header to use the inverted color for consistency with the rest of the app

* Fix lint

* Fix darkmode

* Tune the profile preview footer

* Better analytics choice
2023-07-06 21:12:54 -05:00
Ansh b06304a253
[APP-28] add status page link (#987)
* add status page to mobile

* add status page URL to super slow loading screen

* store STATUS_PAGE_URL in constants.ts
2023-07-06 20:29:18 -05:00
Paul Frazee 831b367eb9
[APP-736] Clarify hate-group moderation as it's currently used (#985)
* Clarify hate-group moderation as it's currently used

* Update src/lib/labeling/const.ts

Co-authored-by: Emily Liu <emilyliu7321@gmail.com>

---------

Co-authored-by: Ansh <anshnanda10@gmail.com>
Co-authored-by: Emily Liu <emilyliu7321@gmail.com>
2023-07-06 20:28:31 -05:00
Paul Frazee e14c9783e0
[APP-735] Post language improvements (#982)
* Fix composer character-counter bouncing around UI elements

* Fix composer toolbar padding when keyboard is dismissed on iOS

* Use the full name of the language in the composer footer

* Add headings to the DropdownButton

* Update the composer language control to use a simpler dropdown

* Fix lint

* Add translate link to Post component used in notifications

* Fix lint
2023-07-06 20:28:10 -05:00
Paul Frazee d442b1cd4c
Update support links (#977)
* Add the new zendesk feedback form URL

* Dont wrap handle or display name in the drawer

* Add help link

* Tune drawer footer layout

* Type fixes

* make helpdesk urls more composable for future

* fix typo

---------

Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
2023-07-05 19:58:29 -05:00
Ansh fe32730025
[APP-702] Render Custom Feed likes properly (#980)
* render href for custom feed likes properly

* fix custom feed text in push notification

* fix custom feed accessibility title

* fix lint
2023-07-05 19:56:26 -05:00
Ikko Eltociear Ashimine 3498c1d239
fix: typo in feed-manip.ts (#967)
prefered -> preferred
2023-07-05 09:49:45 -07:00
Paul Frazee c8eeb6ba1c
Fix: re-add the scroll boundary to avoid minimal shell at top of screen (#956) 2023-07-03 18:36:49 -05:00
Ansh 40a872612f
don't throw, but log OTA listener errors (#958) 2023-07-03 18:17:28 -05:00
Ansh 269c0687fd
track successful account creation (#955) 2023-07-03 18:17:03 -05:00
Ansh edff1992b1
Add permission checks before saving image (#945)
* catch permission errors when saving image to album

* Save photos to media library alone (not an album)

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-07-03 13:17:12 -05:00
Paul Frazee 97f0d3431c
fix: stabilize minimalShellMode toggling by introducing modified thresholds (supersedes #938) (#942)
* add separate scroll up/down thresholds to prevent rapid state changes

* set `DY_LIMIT_DOWN` to 150

* Use a different scroll dy limit on web/mobile

---------

Co-authored-by: Sehyun Chung <sehyun.chung@icloud.com>
2023-07-02 15:03:16 -05:00
Paul Frazee ed5a88d9d8
[APP-718] Improvements and fixes to language handling (#931)
* Add locale helpers for narrowing languages

* Add a translate link to posts in a different language

* Update language filtering to use narrowing when multiple declared

* Fix a few more RTL layout cases

* Fix types
2023-06-30 11:35:29 -05:00
Paul Frazee c72e24f841
[APP-716] Add 'save image' button to the lightbox (#926)
* Add 'save image' button to the lightbox

* Fix types

* Fix types
2023-06-30 11:34:04 -05:00
Ansh a8bbaa06c7
[APP-705] Metrics revamp pt2 (#896)
* export track function from analytics.tsx

* fix create account tracking

* fix tracking sign in

* add custom feed events

* fix type errors

* refactor create post event

* add profile follow & unfollow events

* refactor PostsFeedSliceModel into its own file

* refactor PostThreadItemModel into its own file

* reorganize code a lil bit

* refactor post-thread-item to use post-feed-item model under the hood

* add post events

* add post reply tracking

* track custom feed load more

* track list subscribe and unsubscribe
2023-06-27 10:11:05 -05:00
Ansh b9abd444e5
[APP-657] Add share list functionality (#863)
* replace delete list button text with icon

* fix mute list styling on desktop

* add share button to nav bar on a list

* fix styling when on profile

* bug: add key to ImageHorzList

* clean up code & refactor

* fix styling for ListItems

* create a reusable ListActions component for actions on a list

* remove dead styles

* add keys to ListActions

* add helpers to set list embed

* render list embeds

* fix list sharing on web

* make style prop optional in ListCard

* update `@atproto/api` to `0.3.13`
2023-06-26 12:15:39 -05:00
Ansh 08804f265e
[APP-690] better handling of post languages language filtering (#893)
* add SelectLangBtn

* memoized objects that are created to reduce re-creation on re-render

* add langs when uploading post

* only send the top 3 languages otherwise backend will throw error

* mv ContentLanguagesSettings to folder

* add post languages settings modal and state

* fix typos

* modify feed manip to also check langs label on post

* Fix tests

* Remove log

* Update feed-manip.ts

* Fix syntax errors

* UI tuneups

* Show the currently selected languages in the composer

* fix linting

* Use a bcp-47 matching function

* Fix a duplicate language issue

* Fix web

* Dont include lang in prompt

* Make select language btn an observer

* Keep device languages on top of language selection UIs

* Fix android build settings

* Enforce a max of 3 languages in posts

* Fix tests

* Fix types

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-06-23 12:48:52 -05:00
Logan Rosen 9b19a95e63
Bump @types/react to ^18 and adjust types (#889) 2023-06-22 12:40:32 -04:00
Eric Bailey 73c6afc7fb fix: comment 2023-06-16 15:16:30 -05:00
Eric Bailey 896aea9837 feat: add home feed preferences settings modal and tuners 2023-06-16 15:01:43 -05:00
Ansh 17e7590bcd
[APP-511] metrics overhaul: frontend work (#506)
* WIP

* fix types and update imports

* wip

* tagged events that should be server side

* remove server-side analytics

* remove useless import

* add additional profile header events

* remove useless import

* track follow/unfollow clicks

* add missing types
2023-06-15 16:45:14 -05:00
Paul Frazee 3663ee57f3
Add testnet warning (#880)
* Add testnet warning

* Add watermarks to posts

* Call the test environment the Sandbox
2023-06-14 20:00:16 -05:00
Ansh 775b5e6578
add checks to make sure we are on web (#879) 2023-06-14 17:20:46 -05:00
Markus Amalthea Magnuson c060cd4158
Various case and text fixes. (#757)
* Various case and text fixes.

* Update some labels per requested changes.

---------

Co-authored-by: Ansh <anshnanda10@gmail.com>
2023-06-13 11:35:13 -07:00
Paul Frazee 1a12fa5775
Add temporary appview-proxy header toggle (#874) 2023-06-13 13:10:42 -05:00
Markus Amalthea Magnuson 8f74c7b949 Fix image-only posts not being visible in custom feeds. 2023-06-12 01:40:59 +02:00
Logan Rosen 9ac8c44a6a
Use Linking.openSettings() so it works on Android (#865) 2023-06-08 20:47:24 -07:00
Ansh b3e7801796
Revert "show date after 7 days closes #754" (#860) 2023-06-08 11:32:56 -05:00
Logan Rosen bdcdb4e4dc
Use expo-image-picker on Web (#847) 2023-06-06 09:38:58 -05:00
Ansh ba4bb46c3f
[APP-107] OTA updates (#587)
* add 1000ms fallbackToCacheTimeout

* add listener via useOTAUpdate hook and show modal if update is available

* finish expo-updates setup

* setup useOTAUpdate hook

* add 1000ms fallbackToCacheTimeout

* add listener via useOTAUpdate hook and show modal if update is available

* finish expo-updates setup

* setup useOTAUpdate hook

* add OTA updates

* Update build.md

* temporarily disable ota updates

* refactor useOTAUpdate code
2023-06-02 13:27:59 -07:00
Paul Frazee ad4eaf5ed2
Move suggested follow recommendations to the server (#836)
* Move suggested follow recommendations to the server

* fix search results color in dark mode

---------

Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
2023-06-02 15:01:16 -05:00
Paul Frazee e8843ded5b
Fix a bunch of type errors and add a type-check to the github workflows (#837)
* Add yarn type-check

* Rename to yarn typecheck

* Fix a collection of type errors

* Add typecheck to automated tests

* add `dist` to exluded folders tsconfig

---------

Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
2023-06-02 15:01:04 -05:00
Paul Frazee 3217c7ff32
More custom-feed behavior fixes [APP-678] (#831)
* Remove extraneous custom-feed health check

* Fixes to custom feed preference sync

* Fix lint

* Remove dead code (client-side suggested posts constructor)

* Enforce the feed-fetch limit in the client if the generator fails to observe the parameter

* Bump the number of items fetched in the multifeed per feed from 5 to 10

* Reset the currently active feed when the pinned feeds change

* Some fixes to icons

* Add a prompt to load latest to the multifeed

* Remove debug
2023-06-02 09:48:53 -05:00
Ansh 189fdb1789
fix linting & type errors (#819) 2023-05-31 17:19:08 -07:00
Ansh 3cb8169a4f
Fix deeplink when app is suspended (#812)
* Update Navigation.tsx

Missing If statement within the Deep Linking function that broke the ability to change state to hometab

* Updated the function correctly, I missed a bracket

* format

* add pre-existing home state when unspecified path

* Remove unnecessary log

---------

Co-authored-by: Gai <68623807+that-gai-gai@users.noreply.github.com>
Co-authored-by: that-gai-gai <kgai@protonmail.com>
2023-05-30 21:16:29 -05:00
Jaz 09ade363fd
Merge branch 'main' into inherit_system_theme 2023-05-30 18:25:29 -07:00
Ollie H c0ca27b7ce
Use proxy for fetching link meta (#716)
* Use proxy for fetching link meta

* Remove link meta test due to hitting proxy

* setup different staging and prod proxy URLs

---------

Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-05-30 20:08:49 -05:00
Ben Harris 037713321d
show package.json version on web (#717) 2023-05-30 19:53:23 -05:00
Ben Harris 7458b6f600
Move MAX_GRAPHEME_LENGTH to constants.ts (#735) 2023-05-30 19:41:56 -05:00
Ollie H 072682dd9f
Rework scaled dimensions and compression (#737)
* Rework scaled dimensions and compression

* Unbreak image / banner uploads

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-05-30 19:23:55 -05:00
David Buchanan 1ca40cf1fd
Update HomeIconSolid: widen the front door (#756) 2023-05-30 18:49:03 -05:00
Ben Harris 439135944c make eslint happy 2023-05-30 18:30:12 -04:00
Ben Harris f2cf1d8c79 show date after 7 days, closes #754
adjust the behavior of ago() to show the date after a week
2023-05-30 18:22:22 -04:00
Josh Soref c808721938
Spelling (#772)
* spelling: account

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: activated

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: additional

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: appropriate

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: bskyweb

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: description

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: display

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: highlighted

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: javascript

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: locally-hosted

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: notification

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: occurring

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: parenthetical

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: preexisting

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: prefetched

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: punctuation

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: simplicity

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

---------

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-05-30 14:46:43 -05:00
bnewbold a51d5dc7e2
labels: add 'corpse' to 'violent' category (#802)
Overlooked this when the label was added earlier.
2023-05-30 13:43:37 -05:00
Paul Frazee 229153a26c Fix tsc 2023-05-25 20:48:43 -05:00
Paul Frazee 27ff9ce43b Remove sorting in feed-manip 2023-05-25 20:32:12 -05:00
Paul Frazee 257686f360 Add feeds tab 2023-05-25 20:02:37 -05:00
Paul Frazee 7916c2e02e Add 'popular with friends' to default feeds 2023-05-25 17:10:00 -05:00
Paul Frazee bf056cf622 Visually unify the home header with other screens 2023-05-25 17:09:23 -05:00
Paul Frazee 20ef1b8b7b Add custom satellite-dish icons 2023-05-25 16:51:12 -05:00
Paul Frazee 0262ed11ea Fix the 'dancing header' problem on web 2023-05-25 00:10:48 -05:00
Paul Frazee dfb39e7c4f Add feed discovery page 2023-05-24 22:09:39 -05:00
Paul Frazee 0a18229784 Merge branch 'custom-algos' of github.com:bluesky-social/social-app into custom-algos 2023-05-24 18:46:55 -05:00
Paul Frazee 4e1876fe85 Refactor the scroll-to-top UX 2023-05-24 18:46:27 -05:00
Ansh Nanda 32c9dabb74 make tab bar scroll view draggable on web 2023-05-24 15:04:30 -07:00
Ansh Nanda 7e555ecc1b fix lint errors 2023-05-24 15:00:36 -07:00
Ansh Nanda 58a0489ce3 add isWeb check to disable haptics on web 2023-05-24 13:59:53 -07:00
Ansh Nanda 858ec6438d show scroll to top button when scrolling stops 2023-05-23 15:48:14 -07:00
Ansh Nanda dfcdd37087 add haptics to save, like, and pin actions on feed 2023-05-22 18:46:36 -07:00
Ansh Nanda 64e303d911 optimistic updates for liking custom feeds 2023-05-22 16:35:37 -07:00
Ansh Nanda 762bd15ed6 fix prod default feeds not working 2023-05-22 16:12:05 -07:00