* Replace pluralize with plural or Plural
* Replace all pluralize (defined by src/lib/strings/helpers.ts) with plural or Plural (defined by @lingui/macro) to make some UI elements translatable.
* Delete pluralize() and related test.
* Import @formatjs polyfill libraries for plural on ios and android
- ios and andorid: import `@formtjs/intl-locale` and `@formatjs/intl-pluralrules` to polyfill `Intl.Locale` and `Intl.PluralRules` which are used in `plural()` and '<Plural />'.
- update `plural` use in notification messages for better translation.
* Rewrite to pass lint
* Add Catalan plural polyfill
* more replacement
* import zh plural data for zh-CN
* Refactor feed header components (#2964)
* Move home-related files to view/com/home
* Add HomeHeader in front of FeedTabBar
* Move isDekstop check outside FeedsTabBar
* Remove PWI logic from tabbar
* Separate platform-specific layout from shared logic
* Rename Home Feed Prefs to Following Feed Prefs (#2965)
* use `useOpenLink` hook for links in ALF (#2975)
* use `useOpenLink` hook for links in ALF
* web only for `outline`
* increase timeout to 15s (#2958)
* Normalize relative day (#2874)
* fix: normalize relative date
* chore: add comments
* refactor: skip flooring normalized diff
* refactor: let -> const
* fix: get own copy of date to prevent mutating
* refactor: rounding does the same trick
* Add handle validation to create account UI (#2959)
* show uiState errors in the box as well
simplify copy
update ui for only letters and numbers
add ui validation to handle selection
* simplify names
* Fix accidental text-node render
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Make dim theme dim (#2966)
* Make dim color scheme dim
* Tweaks
* Overall tweaks
* We have to go darker
* Tweak saturation of blues in dim
* Increase contrast on dark-dark mode
* adjust dim
---------
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Co-authored-by: Hailey <me@haileyok.com>
* Fix dim mode unread notif color
* use `showControls` to show/hide live text icon on ios (#2982)
* Update .po files
* fix reversed icons in validator 🤦 (#2991)
* Adjust `windowSize` on `PostThread` `FlatList` (#2989)
* adjust window size, cells batching period
* rm batching period change
* Pluralize 'follow(s)'
* Include a space between the msgid count and "follower(s)/following(s)" so the translator can adjust the translated count line to fit within the Drawer.
* pluralie '# following'
* Fix & Update
* Rewrite to use Plural
* rmeove unused import
* When commiting changes, disable 'simple-import-sort' plugin in .eslintrc.js to sync with bluesky-social:main
* Revert simple-import-sort/imports related changes
* Move ProfileHoverCard web to plural util
* Followings -> following
* Add plural following to hovercard
* Followings -> Following
---------
Co-authored-by: Takayuki KUSANO <kusano@tkusano.jp>
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
Co-authored-by: dan <dan.abramov@gmail.com>
Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com>
Co-authored-by: Eric Bailey <git@esb.lol>
* allow tapping message when keyboard open
* dismiss keyboard on open msg menu
* show message info on press
* Revert "show message info on press"
This reverts commit 61d039a7024c27583aed7d1e9f1ff5b919dc7d30.
* empty state for new chat dialog
* use terniary
* dark mode pending state
* copy message text option
* fix service url input (scrollview ftw)
* whoops, fix equality
* slightly reduce horizontal message padding
* rework the list for accessibility
* Reverse reverse
* progress
* good to start testing
* memo `MessageItem`
* small hack
* use our custom `List` impl
* use `ScrollProvider` for `onScroll` event
* remove use of `runOnJS`
* actually, let's keep it
* add some comments
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Move ThemeProvider to the top
* Move RootSiblingParent above the remounted part
* Move ToastContainer outside the remounted part
* Remove setTimeout around toasts
* Consistently handle dropped session
* haptic on long press
* add animation to press and hold
* eslint disable for now
* adjust styles
* dont trigger if animation is cancelled
* organize
* add a delete menu
* reset scale automatically
* message actions dialog
cleanup
center the trigger
handle focus/unfocus better
make triggers accessible
weg dropdown menu
add a wep specific wrapper
decrease press delay
add report button
improve shrink logic
use `self_end` instead of `margin: auto`
rm extra `?`
move `MessageItem` to `components`
add delete button
* rm some padding
* update after merge
* fix merge
* web only types
* fix crash
* add an explanation
* fix web types
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* input max height/scrollability
* remove unused imports
* add a web-specific version
* enter and shift enter for web
* missing onSubmit for native
* missing attributes
* improve layout of input on web
* use the correct text color in the input
* trim messages
* remove `onSubmit`
* move prop up
* trim message on web
* remove extra function call
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* proper min index
* move keyextractor out of react
* move onSendMessage out
* don't render the flatlist conditionally
* add loader
* rework structure
* remove some unneeded logic
* sentry errors for captcha web views
* include handles with errors
* log all registration request failures
* rm
* use a better trigger for web captcha errors
* add another trigger for recording a possible signup error
* unknown error type
* don't needlessly log on href errors
* honestly i probably cant always do a captcha in 20 seconds
* rm log
* timeout on back
* remove unnecessary colons
* add temp `getchat` query
* properly get the other profile
* add basic header
* normalize layout on all devices
* remove unused imports, adjust style
* remove unnecessary log
* remove another log
* remove some more imports
* cleanup
* use `Button` instead in the header
* lint
* use real API
* remove extra tab icon
* messages list web layout + style improvements
* use style's text color for input
* make new chat button way more obvious
---------
Co-authored-by: Hailey <me@haileyok.com>
* 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
* 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
* replace hailey's types
* use codegen'd types in components
* add FAB
* new chat dialog
* error + default search term
* fix typo
* fix web styles
* optimistically set chat data
* use cursor instead of last rev
* [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
* cleanup merge
* fix merge error
* disable hack
* sender-based message styles
* temporary filter
* merge cleanup
* add `hideBackButton`
* rm unneeded return
* tried to be smart
* hide go back button
* use `searchActorTypeahead` instead
---------
Co-authored-by: Hailey <me@haileyok.com>
* 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>