* tighten eslint config to catch unused `useLingui`s
* fix now-invalid uses of _
* remove unused function that produces a ton of eslint warnings
* upgrade react compiler plugin
* check handle as you type
* metrics
* add metric types
* fix overflow
* only check reserved handles for bsky.social, fix test
* change validation check name
* tweak input
* move ghosttext component to textfield
* tweak styles to try and match latest
* add suggestions
* improvements, metrics
* share logic between typeahead and next button
* Apply suggestions from code review
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* update checks, disable button if unavailable
* convert to lowercase
* fix bug with checkHandleAvailability
* add gate
* move files around to make clearer
* fix bad import
* Fix flashing next button
* Enable for TF
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Eric Bailey <git@esb.lol>
* Bump SDK
* Use consistent type in profile query
* Omit from constraint for profile shadow
* Replace isRecord with isValidRecord in QuoteEmbed
* Omit type from constraint for old ProfileCard
* Omit type from constraint in profile queries where appropriate
* Use correct type for update profile mutation
* Conslidate and fix check for isValidRecord in Post.tsx
* Replace isRecord with isValidRecord in PostThreadItem
* Remove redundant cast in PostThreadFollowBtn
* Ignore errors in DebugMod screen
* Use matching type in ProfileFollows screen
* Use matching type in ProfileFollowers screen
* Migrate to isValidRecord in PostFeedItem
* Use matching type if PostRepostedBy
* Omit type from constraint in avatar props
* Use matching types in NotificationFeedItem
* Todo
* Use isValidRecord in NotfyFeedItem
* Improve MediaPreview types
* Migrate another isValidRecord in NotificationFeedItem
* Migrate to isValidView in queries/util
* Migrate to isValidRecord in threadgate/util
* Fix types in threadgates
* Fix up types in starter-packs queries
* Todo
* Specify exact types in search-posts
* Use internal type util to align types
* Ditto last
* Migrate postgate/index
* Specify exact types in post-thread
* Use correct type in post-quotes
* FIX potential bug in post-thread
* Use correct type in post-feed
* Add correct type guards to notifications/feed
* Migrate a guard in notifications/util
* Migrate guard in Wizard/State
* [@next] Profile handling, migrate `ProfileCard` (#7347)
* Introduce new utils for profiles, migrate old ProfileCard
* Rename, reorg
* Add parseEmbed utils
* Expand AnyProfileView to include chat profile view, update post shadow to reflect this
* Cast for perf reasons
* Tighten up types now that we have AnyProfileView
* Add fastIsType util
* Use `assertDid`
Co-authored-by: Matthieu Sieben <matthieusieben@users.noreply.github.com>
* Use util types
* Comment
* Use fastIsType where no validation was happening before
* suggestions (#7382)
* suggestions
* Revert unneeded changes
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Use new util
* Rename to dangerousIsType
* Convert object shape
* Use dangerous util
* Use dangerous util
* Use dangerous util, we can trust post records
* Use dangerous util
* Use AnyProfileVIew
* Convert object shape
* Clean up handling
* Patch moderateProfile to accept known profile views, to discuss
* Add AnyStarterPackView and related, implement in first usage
* Remove validation, fix type, fix ref
* Migrate over list-conversations
* Clarify intent behind precacheProfile and its unstable query cache
* Clean up unstable profile cache
* Fix types during label creation in PwiOptOut (#7346)
* Tighten types in queries/list
* Chat: use correct profile views
* Chat: fix log type check
* Chat: construct lexically correct shape, even though it's only internal usage
* Chat: use correct profile types
* Chat: fix type check in logs
* Starter: use correct profile types
* Starter: use correct profile types
* Starter: tighten types to match lex
* Any profile type will work in blocked-and-muted
* Use dangerous util
* Use dangerousIsType
* Update new ProfileCard to use AnyProfileView
* Use dangerousIsType
* Remove outdated todo
* Use correct profile type
* Use correct profile types
* Tighten up types
* Use dangerousIsType
* Chat: more type fixes
* Remove unused file
* Add a few utils
* Remove unused file
* Ignore feedPost.__source
* Clean up types, leave validation in critical path
* Use dangerousIstype
* Use ANyProfileView
* Use isValidRecord
* Use dangerousIsType
* Fix types in ListCard
* Fix FeedInterstitials types
* Fix types in FeedCard
* Fix types in dms ReportDialog
* Fix types in SearchablePeopleList
* Fix bad type in composer opts
* Starter: ok these need to be loose too
* Clarify docs
Co-authored-by: Matthieu Sieben <matthieusieben@users.noreply.github.com>
* Less code
Co-authored-by: Matthieu Sieben <matthieusieben@users.noreply.github.com>
* Use package exports
Co-authored-by: Matthieu Sieben <matthieusieben@users.noreply.github.com>
* Use package exports
* Bump sdk, update $Typed imports
* Format
* Format
* Fix weird TS error
* Remove patch
* Beter name
* It's memo, can validate
* Tighten up parseEmbed, dogfood
* Bump sdk
* Use asPredicate
* Loosen types a bit
* use asPredicate
* Fix types
* Use asPredicate
* Use asPredicate
* Use asPredicate
* Clean up upsertProfile types
* Use asPredicate
* Use Un util
* Fix types
* Use new AnyProfileView
* Use dangerousIsType
* Use asPredicate
* Use asPredicate
* Add fallback content-type to pass typecheck
* Clean up upsertProfile types
* Align types
* Use dangerousIsType
* Use dangerousIsType
* Use asPredicate
* Align types
* Convert findLast
* Align types
* Just ignore type errors and use findLast
* Rename atproto -> bsky
* Add validate util
* Fix type error
* Loosen types
* Export post
* rename atp bsky
* Remove unused code
* minor changes
* Bump deps
* Fix types
* Tighten back up loose check
* Tighten back up loose check
* Fix small bug
* Update comment
* Revert change
---------
Co-authored-by: Matthieu Sieben <matthieusieben@users.noreply.github.com>
Co-authored-by: Matthieu Sieben <matthieu.sieben@gmail.com>
* add lib
* add validation
* log
* add some common typos
* add tests
* reset hasWarned state on edit
* shorten path
* Move test file, adjust regex, add test
* Get real nit picky
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* video settings modal in composer
* show done button on web
* rm download options
* fix logic for showing settings button
* add language picker (wip)
* subtitle list with language select
* send captions & alt text with video when posting
* style "ensure you have selected a language" text
* include aspect ratio with video
* filter out captions where the lang is not set
* rm log
* fix label and add hint
* minor scrubber fix
* refactor: consistent localized formatting
* refactor: localized date time
* refactor: localize relative time with strings
* chore: fix typo from copy-paste
* Clean up useTimeAgo
* Remove old ago
* Const
* Reuse
* Prettier
---------
Co-authored-by: Mary <git@mary.my.id>
* header display name rtl support
* highlighted post rtl
* move `NON_BREAKING_SPACE` to an external constant
* rtl support in search dropdown
* profile card rtl
* old profile card rtl
* hover card
* wizard list card
* new chat
* account card
* chat header
* clean up notifications
* just force LTR on meta display name
* Clarify intent
* Increase email reminder period to once per day
* Fallback
* Snooze immediately after account creation, prevent showing right after signup
* Fix e2e test exports
* Remove redundant check
* Better simple date generation
* Replace in DateField
* Use non-string comparison
* Revert change to unrelated code
* Also parse
* Remove side effect
* Create a testable version of ago() and re-enable the disabled test (#4364)
* Enable the test of ago()
* Use test cases
This puts the input and the expected values next to each other.
* Create dateDiff function
This is a copy of ago(), but with the ability to specify the second date instead of using Date.now().
* Let ago() use dateDiff()
* Move constants close to usage
* Test dateDiff instead of ago
This makes it possible to test the dates without being forced to rely on what the current date is.
The commented out tests do not yet pass. This is fixed in later commits.
* Update dateDiff and enable the remaining tests
* Split up tests, use date-fns as helpers
* Remove old test
* Add long format
* Add hook
* Migrate to hooks
* Delete old code
* Or equal to
* Update comment
---------
Co-authored-by: Jan Aagaard <jan@aagaard.net>
* Support for Flickr album and group pool embeds
* Oops, forgot to add flickr to the persisted externalEmbeds schema
* Need a bigint since our id can have more than 52 bits...
* Remove unexpected trailing / from test data to match the expected behavior
* nits
---------
Co-authored-by: Hailey <me@haileyok.com>