* Expand currentAccountDid into currentAgentState
* Inline all callsites of upsertAccount
* Inline all internal callsites of clearCurrentAccount
* Add agent to currentAgentState
* Collapse extra setStates
* Add TODOs
* Move isInitialLoad and isSwitchingAccounts out of main state
* Remove spreads, order object keys
* Track need to persist on state object
* Reoder state variables
* Move types to another file
Co-authored-by: dan <dan.abramov@gmail.com>
* Move utilities out
Co-authored-by: dan <dan.abramov@gmail.com>
* Move PUBLIC_BSKY_AGENT
Co-authored-by: dan <dan.abramov@gmail.com>
* Move createPersistSessionHandler inline
Co-authored-by: dan <dan.abramov@gmail.com>
* Call configureModeration when clearing account too
This ensures that the app labelers get reset in a test environment.
Co-authored-by: dan <dan.abramov@gmail.com>
* Make guest configureModeration sync, non-guest async
* Extract isSessionExpired
Co-authored-by: dan <dan.abramov@gmail.com>
* Flip isSessionExpired condition
Co-authored-by: dan <dan.abramov@gmail.com>
* Extract agentToSessionAccount
Co-authored-by: dan <dan.abramov@gmail.com>
* Extract createAgent*
Co-authored-by: dan <dan.abramov@gmail.com>
* Simplify isSessionExpired
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Update persisted schema for new source of truth, implement in existing session
(cherry picked from commit b1e5f12baee932721d66c60dd51c981b46b0c274)
* Improve toasts, log caught error, during switch account
(cherry picked from commit fe0d1507063d2e532b7b1a447670b689292d1dc3)
* Handle thrown errors from initSession during login
(cherry picked from commit 2c85c045917e923901284b9ba310a82e28f37b5c)
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* add new routes with placeholder screens
* add clops list
* add a clop input
* add some better padding to the clops
* some more adjustments
* add rnkc
* implement rnkc
* implement rnkc
* be a little less weird about it
* rename clop stuff
* rename more clop
* one more
* [Clipclops] Temp codegenerated lexicon (#3749)
* add codegenerated lexicon
* replace hailey's types
* use codegen'd types in components
* fix error + throw if fetch failed
* remove bad imports
* update messageslist and messageitem
* import useState
* add clop service URL hook
* add dm service url storage
* use context
* use context for service url (temp)
* remove log
* nits
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* WIP
* Fix constructors
* Clean up
* Tweak
* Rm extra assignment
* Narrow down the argument
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* dont select the text on web
* TODO REVERT THESE CHANGES
* use `usethrottledvalue` for autocomplete
* use `isFetching` from query
* rm setTimeout
* getting there
* improve functionality of cancel button
* rm todo
* add comment back
* encode `searchText` rather than `queryTerm`
* use "back" on web in some cases
* don't flash results in autocomplete
* remove unnecesary usestate
* rename everything to `query` temporarily
* revert accidental lint
* rm todo
* rm comment
* use `useFocusEffect` to update the query term on back navigation
* `searchText` is always defined here
* Fix race
* remove back functionality
* use `keepPreviousData` for query
* rename `q` to `queryParam`
* remove hack
* remove `q=` on cancel
* blur on submit
* use `setParams` instead of `replace`
* use `replace` on web still
* clear the search input when we clear `q` on native
* onPress dismiss attempt
* Adjustments
* Fix search history
* Always hide autocomplete
* Clear right pane search on select
* `blur` on autosuggestion press
* Rename to reduce diff
* Fixes
* Unify codepaths
* Fixes
* precache the autosuggestion
* do the cache in the link card
* Revert "precache the autosuggestion"
This reverts commit 79c433e984621ba4231a2a4c4b3f4690b0516b4d.
* use `throttledValue` and `keepPreviousData` in sidebar search
* show spinner when fetching pt 1
* show spinner when fetching pt 2
* show spinner properly for autocomplete
* Fix extra border
* Position fixed
* TS
* Revert "TS"
This reverts commit df187ea2d7a96d0f1832bc2392215f4d969a87c9.
* Revert "Position fixed"
This reverts commit 9c721c952b0fa4e5e4a23de38cab916ab13397e6.
* Maybe fix iPad
* Revert "TODO REVERT THESE CHANGES"
This reverts commit 279f717f3091c9df8c73ba35f9a038e12f5a1122.
* Rename var
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* fix: store PDS URL for session resumption
* fix: handle a few more cases
* fix: blocking resumption should also use pds url
* refactor: do it in the construct itself
* fix: revert ce96223
* Add email 2fa toggle
* Add UI elements needed for 2fa codes in login
* Wire up to the server
* Give a better failure message for bad 2fa code
* Handle enter key in login form 2fa field
* Trim spaces
* Improve error message
* add autoplay preference
* group accessibility settings into a dedicated page
* fix gray background on web
* Put a11y first
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* 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>
* Handle leftnav overflow with longer languages' copy
* Update the language dropdown to set ALL language prefs
* Add hackfix to language cachebusting on PWI
* Reset feeds on language change
* 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>
* Enable home and feeds on the PWI
* Add global SigninDialog to drive useRequireAuth()
* Tweak desktop styles
* Make the logo in leftnav PWI a clickable home link
* Add label
* Improve dialog on web
* Fix query key
* Go to home after signout from settings screen
* Filter out feeds from the discover listing for logged out users which are known to break without auth
* Update profile header follow/subscribe to give signin prompt
* Show profile feeds tabs on pwi
* Add language selector to account creation footer and pwi left nav desktop
---------
Co-authored-by: dan <dan.abramov@gmail.com>
* fix qt jumps
Revert "don't show loading placeholder if we don't need it"
This reverts commit 406f801f217b2733fdd82732c0af74186fc47464.
don't show loading placeholder if we don't need it
add `likeCount` etal. to `embedViewRecordToPostView`
* lint
* Revert the shimmer change
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* improve android haptics, offer toggle for haptics
* update haptics.ts
* default to false
* simplify to `playHaptic`
* just leave them as `feedInfo`
* use a hook for `playHaptic`
* missed one of them
* add extra tab to search and translate tab names
* add feature gate
* flatten pager children
* Revert "flatten pager children"
This reverts commit 0050d42558c2c9b7bc4f2ad2df4ae2908fa26f65.
* 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>
* uitextview use library w/ fixes
bump
bump
multiple uitextview fixes
* bump
* Open share sheet on link long press
* rm package manager field
* add link warning to longpress
---------
Co-authored-by: Hailey <me@haileyok.com>
* Use ALF for account quick switch
* clean up modal type
* add haptics to dialog opening
* move account list to it's own component and share
* make tick slightly darker
* Move QueryProvider inside the key
* Pull useQueryClient-dependent code down in App.native
* Remove useQueryClient dependency from session provider
* Scope query client per DID
* Add modservice screen and profile-header-card
* Drop the guidelines for now
* Remove ununsed constants
* Add label & label group descriptions
* Not found state
* Reorg, add icon
* Subheader
* Header
* Complete header
* Clean up
* Add all groups
* Fix scroll view
* Dialogs side quest
* Remove log
* Add (WIP) debug mod page
* Dialog solution
* Add note
* Clean up and reorganize localized moderation strings
* Memoize
* Add example
* Add first ReportDialog screen
* Report dialog step 2
* Submit
* Integrate updates
* Move moderation screen
* Migrate buttons
* Migrate everything
* Rough sketch
* Fix types
* Update atoms values
* Abstract ModerationServiceCard
* Hook up data to settings page
* Handle subscription
* Rough enablement
* Rough enablement
* Some validation, fixes
* More work on the mod debug screen
* Hook up data
* Update invalidation
* Hook up data to ReportDialog
* Fix native error
* Refactor/rewrite the entire moderation-application system
* Fix toggles
* Add copyright and other option to report
* Handle reports on profile vs content
* Little cleanup
* Get post hiding back in gear
* Better loading flow on Mod screen
* Clean up Mod screen
* Clean up ProfileMod screen
* Handle muting correctly
* Update enablement on ProfileMod screen
* Improve Moderation screen and dialog
* Styling, handle disabled labelers
* Rework list of labels on own content
* Use moderateNotification()
* ReportDialog updates
* Fix button overflow
* Simplify the ProfileModerationService ui
* Mod screen design
* Move moderation card from the profile header to a tab
* Small tweaks to the moderation screen
* Enable toggle on mod page
* Add notifs to debugmod and dont filter notifs from followed users
* Add moderator-service profile view
* Wire up more of the modservice data to profiles
* A bunch of speculative non-working UI
* Cleanup: delete old code
* Update ModerationDetailsDialog
* Update ReportDialog
* Update LabelsOnMe dialog
* Handle ReportDialog load better
* Rename LabelsOnMeDialog, fix close
* Experiment to put labeling under a tab of a normal profile
* Moderator variation of profile
* Remove dead code and start moving toward latest modsdk
* Remove a bunch of now-dead label strings
* Update ModDebug to be a bit more intuitive and support custom labels
* Minor ui tweaks
* Improve consistency of display name blurring
* Fix profile-card warning rendering
* More debugmod UI tuning
* Update to use new labeler semantics
* Delete some dead code and do some refactoring
* Update profile to pull from labeler definition
* Implement new label config controls (wip)
* Tweak ui
* Implement preference controls on labelers
* Rework label pref ui
* Get moderation screen working
* Add asyncstorage query persistence
* Implement label handling
* Small cleanup
* Implement Likes dialog
* Fix: remove text outside of text element
* Cleanup
* Fix likes dialog on mobile
* Implement the label appeal flow
* Get report flow working again with temporarily fixed report options
* Update onboarding
* Enforce limit of ten labeler subscriptions
* Fix type errors
* Fix lint errors
* Improve types of RQ
* Some work on Likes dialog, needs discussion
* Bit of ReportDialog cleanup
* Replace non-single-path SVG
* Update nudity descriptions
* Update to use new sdk updates
* Add adult-content-enabled behavior to label config
* Use the default setting of custom labels
* Handle global moderation label prefs with the global settings
* Fix missing postAuthor
* Fix empty moderation page
* Add mutewords control back to Mod screen
* Tweak adult setting styles
* Remove deprecated global labels
* Handle underage users on mod screen
* Adjust font sizes
* Swap in RichText
* Like button improvements
* Tweaks to Labeler profile
* Design tweaks for mod pref dialog
* Add tertiary button color
* Switch moderation UIs to tertiary color
* Update mutewords and hiddenposts to use the new sdk
* Add test-environment mod authority
* Switch 'gore' to 'graphic-media'
* Move nudity out of the adult content control
* Remove focus styles from buttons - let the browser behavior handle it
* Fixes to the adult content age-gating in moderaiton
* Ditch tertiary button color, lighten secondary button
* Fix some colors
* Remove focused overrides from toggles
* Liked by screen
* Rework the moderationlabelpref
* Fix optimistic like
* Cleanup
* Change how onboarding handles adult content enabled/disabled
* Add special handling of the mod authorities
* Tweaks
* Update the default labeler avatar to a shield
* Add route to go server
* Avoid dups due to bad config
* Fix attrs
* Fix: dont try to detect link/label mismatches on post meta
* Correctly show the label behavior when adult content is disabled
* Readd the local hiddenPosts handling
* WIP
* Fix bad merge
* Conten hider design tweaks
* Fix text string breakage
* Adjust source text in ContentHider
* Fix link bug
* Design tweaks to ContentHider and ModDetailsDialog
* Adjust spacing of inform badges
* Adjust spacing of embeds in posts
* Style tweaks to post/profile alerts
* Labels on me and dialog
* Remove bad focus styles from post dropdown
* Better spacing solution
* Tune moderation UIs
* Moderation UI tweaks for mobile
* Move labelers query on Mod screen
* Update to use new SDK appLabelers semantics
* Implement report submission
* Replace the report modal entirely with the report dialog
* Add @ to mod details dialog handle
* Bump SDK package
* Remove silly type
* Add to AWS build CI
* Fix ToggleButton overflow
* Clean up ModServiceCard, rename to LabelingServiceCard
* Hackfix to translate gore labels to graphic-media
* Tune content hider sizing on web desktop
* Handle self labels
* Fix spacing below text-only posts
* Fix: send appeals to the right labeler
* Give mod page links interactive states
* Fix references
* Remove focus handling
* Remove remnant
* Remove the like count from the subscribed labeler listing
* Bump @atproto/api@0.11.1
* Remove extra @
* Fix: persist labels to local storage to reduce coverage gaps
* update dipendencies
* revert dipendencies
* Add some explainers on how blocking affects labelers
* Tweak copy
* Fix underline color in header
* Fix profile menu
* Handle card overflow
* Remove metrics from header
* Mute 'account' not 'user'
* Show metrics if self
* Show the labels tab on logged out view
* Fix bad merge
* Use purple theming on labelers
* Tighten space on LabelerCard
* Set staleTime to 6hrs for labeler details
* Memoize the memoizers
* Drop staleTime to 60s
* Move label defs into a context to reduce recomputes
* Submit view tweaks
* Move labeler fetch below auth
* Mitigation: hardcode the bluesky moderation labeler name
* Bump sdk
* Add missing translated string
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
* Add missing translated string
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
* Hailey's fix for incorrect profile tabs
Co-authored-by: Hailey <me@haileyok.com>
* Feedback
* Fix borders, add bottom space
* Hailey's fix pt 2
Co-authored-by: Hailey <me@haileyok.com>
* Fix post tabs
* Integrate feedback pt 1
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
* Integrate feedback pt 2
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
* Integrate feedback pt 3
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
* Integrate feedback pt 4
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
* Integrate feedback pt 5
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
* Integrate feedback pt 6
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
* Integrate feedback pt 7
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
* Integrate feedback pt 8
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
* Format
* Integrate new bday modal
* Use public agent for getServices
* Update casing
---------
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
* Improve a11y on ios
* Format
* Remove android
* Fix android
* ALF confirmation dialog
* Use ALF for Delete Post confirmation
organize
diff
fix text
minimize
change copy
alternative confirm prompt
revert type changes
add ButtonColor param
* small adjustment to buttons in prompt
* full width below gtmobile
* update hide post dialog
* space out dialogs
* update dialogs for lists
* add example
* add to app passwords
* Revert some changes
* use sharedvalue for `importantForAccessibility`
* add back `isOpen`
* fix some more types
* small adjustment to buttons in prompt
* full width below gtmobile
* update the rest of the prompts
rm old confirm modal
rm update prompt
feed error prompt
feed source card and profile block/unblock
composer discard
* Update src/view/screens/AppPasswords.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* lint
* How about a default
* Reverse reverse
* Port over confirm dialogs
* Add some comments
* Remove unused file
* complete merge
* add testID where needed
---------
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Improve a11y on ios
* Format
* Remove android
* Fix android
* Revert some changes
* use sharedvalue for `importantForAccessibility`
* add back `isOpen`
* fix some more types
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* add native ios code outside of ios project
* helper script
* going to be a lot of these commits to squash...backing up
* save
* start of an expo plugin
* create info.plist
* copy the view controller
* maybe working
* working
* wait working now
* working plugin
* use current scheme
* update intent path
* use better params
* support text in uri
* build
* use better encoding
* handle images
* cleanup ios plugin
* android
* move bash script to /scripts
* handle cases where loaded data is uiimage rather than uri
* remove unnecessary logic, allow more than 4 images and just take first 4
* android build plugin
* limit images to four on android
* use js for plugins, no need to build
* revert changes to app config
* use correct scheme on android
* android readme
* move ios extension to /modules
* remove unnecessary event
* revert typo
* plugin readme
* scripts readme
* add configurable scheme to .env, default to `bluesky`
* remove debug
* revert .gitignore change
* add comment about updating .env to app.config.js for those modifying scheme
* modify .env
* update android module to use the proper url
* update ios extension
* remove comment
* parse and validate incoming image uris
* fix types
* rm oops
* fix a few typos
* Add bare minimum hashtags support (#2804)
* Add bare minimum hashtags support
As atproto/api already parses hashtags, this is as simple as hooking it
up like link segments.
This is "bare minimum" because:
- Opening hashtag "#foo" is actually just a search for "foo" right now
to work around #2491.
- There is no integration in the composer. This hasn't stopped people
from using hashtags already, and can be added later.
- This change itself only had to hook things up - thank you for having
already put the hashtag parsing in place.
* Remove workaround for hash search not working now that it's fixed
* Add RichTextTag and TagMenu
* Sketch
* Remove hackfix
* Some cleanup
* Sketch web
* Mobile design
* Mobile handling of tags search
* Web only
* Fix navigation woes
* Use new callback
* Hook it up
* Integrate muted tags
* Fix dropdown styles
* Type error
* Use close callback
* Fix styles
* Cleanup, install latest sdk
* Quick muted words screen
* Targets
* Dir structure
* Icons, list view
* Move to dialog
* Add removal confirmation
* Swap copy
* Improve checkboxees
* Update matching, add tests
* Moderate embeds
* Create global dialogs concept again to prevent flashing
* Add access from moderation screen
* Highlight tags on native
* Add web highlighting
* Add close to web modal
* Adjust close color
* Rename toggles and adjust logic
* Icon update
* Load states
* Improve regex
* Improve regex
* Improve regex
* Revert link test
* Hyphenated words
* Improve matching
* Enhance
* Some tweaks
* Muted words modal changes
* Handle invalid handles, handle long tags
* Remove main regex
* Better test
* Space/punct check drop to includes
* Lowercase post text before comparison
* Add better real world test case
---------
Co-authored-by: Kisaragi Hiu <mail@kisaragi-hiu.com>
* Revert "Prefer post over quote when finding cached post (#2935)"
This reverts commit da62a77f05.
* Prefer full posts for post thread placeholder
* Clarify with a comment
* Replace the ServerInput modal with a new dialog based on alf that remembers your server address history and doesnt put staging and localdev in the options
* Update the server selector during account creation
* dont apply capitalization, use url keyboard
* Apply insets to dialog top
* Improve padding of dialogs on native
* Fix race condition in dialog close; also fix fire of the onClose event in dialogs
---------
Co-authored-by: Hailey <me@haileyok.com>