Compare commits

...

1607 Commits

Author SHA1 Message Date
Hailey 9a2762c237 center the trigger 2024-05-02 12:06:08 -07:00
Hailey 6723e43d0c handle focus/unfocus better 2024-05-02 11:59:43 -07:00
Hailey e39efa92c2 make triggers accessible 2024-05-02 11:25:53 -07:00
Hailey 9306c0277a weg dropdown menu 2024-05-02 11:13:22 -07:00
Hailey c3f5bfd7aa add a wep specific wrapper 2024-05-02 10:00:35 -07:00
Hailey 55dd945e7f decrease press delay 2024-05-02 09:49:34 -07:00
Hailey 8314f3d00e add report button 2024-05-02 09:40:46 -07:00
Hailey 4966de9777 improve shrink logic 2024-05-02 09:35:43 -07:00
Hailey f46049dac9 use self_end instead of margin: auto 2024-05-02 09:20:39 -07:00
Hailey 17042f523c rm extra ? 2024-05-02 08:51:17 -07:00
Hailey 84bdba9974 move MessageItem to components 2024-05-01 19:42:47 -07:00
Hailey 04c101dd80 add delete button 2024-05-01 19:19:13 -07:00
Hailey 49a162c38d merge 2024-05-01 19:09:47 -07:00
Hailey 17c03b4ed7 reset scale automatically 2024-05-01 19:00:35 -07:00
Hailey ee90f32707 add a delete menu 2024-05-01 18:56:47 -07:00
Hailey ae775295ca organize 2024-05-01 18:31:49 -07:00
Hailey e2f06e2bd2 dont trigger if animation is cancelled 2024-05-01 18:30:35 -07:00
Hailey 773ad8f03d adjust styles 2024-05-01 17:53:22 -07:00
Hailey 2d3b90be03 eslint disable for now 2024-05-01 17:47:48 -07:00
Hailey bbff994618 add animation to press and hold 2024-05-01 17:20:45 -07:00
Hailey 725520a0f2 Merge branch 'main' into hailey/msg-long-press 2024-05-01 16:29:32 -07:00
Hailey cc9727a844 [Clipclops] Remove viewability config (#3805)
* remove viewability config

* use `onScroll` for keeping track of content offset
2024-05-01 16:26:19 -07:00
Samuel Newman e19f882450 [Clipclops] Clop menu, leave clop, mute/unmute clop (#3804)
* convo menu

* memoize convomenu

* add convoId to useChat + memoize value

* leave convo

* Create mute-conversation.ts

* add mutes, remove changes to useChat and use chat.convo instead

* add todo comments

* leave convo confirm prompt

* remove dependency on useChat and pass in props instead

* show menu on long press

* optimistic update

* optimistic update leave + add error capture

* don't `popToTop` when unnecessary

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-05-02 00:15:10 +01:00
Paul Frazee d3fafdc066 Fix: put label defs provider above moderation opts provider (#3806) 2024-05-01 15:59:19 -07:00
Hailey 16003631a5 haptic on long press 2024-05-01 15:51:12 -07:00
Eric Bailey 5148b957b7 [Clipclops] Pending messages (#3803)
* Make pending message like normal message

* Remove getter

* Make props public
2024-05-01 16:29:34 -05:00
Samuel Newman e2556d9f40 [Clipclops] Replace 🐴 with real icon (#3802)
* replace 🐴 with paper plane icon

* replace envelope with plus
2024-05-01 21:49:10 +01:00
Eric Bailey fc0eab2d03 Retry clops (#3800)
* Add convo retries, sketch out tests

* Only append nextMessage to messages

* Remove debug code
2024-05-01 15:24:56 -05:00
Hailey 333ccdad39 [Clipclops] Dynamic input height (#3778)
* 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>
2024-05-01 20:42:11 +01:00
Hailey 6f9993ca55 [Clipclops] Fix list, rework structure (#3799)
* 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
2024-05-01 11:48:19 -07:00
Samuel Newman 8304ad91ac add header to empty chat list view (#3791) 2024-05-01 18:43:54 +01:00
Eric Bailey 538ca8dff1 [Clipclops] 2 Clipped 2 Clopped (#3796)
* Add new pkg

* copy queries over to new file

* useConvoQuery

* useListConvos

* Use useListConvos

* extract useConvoQuery

* useGetConvoForMembers

* Delete unused

* exract useListConvos

* Replace imports

* Messages/List/index.tsx

* extract getconvoformembers

* MessageItem

* delete chatLog and rename query.ts

* Update import

* Clipclop service (#3794)

* Add Chat service

* Better handle deletions

* Rollback unneeded changes

* Better insertion order

* Use clipclops

* don't show FAB if error

* clean up imports

* Update Convo service

* Remove temp files

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-05-01 10:14:41 -07:00
dan d61b366b26 [Session] Derive currentAccount from accounts + currentAccountDid (#3795)
* Derive currentAccount from accounts and currentAccountDid

* Add TODOs for divergence with __globalAgent
2024-05-01 17:35:27 +01:00
dan df9af92eb2 [Session] Use flag on state for persistence (#3793)
* Move isInitialLoad and isSwitchingAccounts out of main state

* Remove spreads, order object keys

* Track need to persist on state object

* Reoder state variables
2024-05-01 17:26:33 +01:00
Samuel Newman a6061489ff replace getDate with toIsoString().slice(0,10) (#3792) 2024-05-01 15:50:30 +01:00
Samuel Newman 80a1687dae exclude bskyweb bskyembed and web-build (#3790) 2024-05-01 15:29:30 +01:00
Samuel Newman 09f3b2ae14 [Clipclops] Improve message list behaviour (#3789)
* improve message list behaviour

* replace useAgent with useSession

* add explicit types to appease linter
2024-05-01 15:16:54 +01:00
Hailey b8d8bec388 sentry errors for captcha web views and registration attempts (#3761)
* 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
2024-05-01 01:08:59 -07:00
Samuel Newman 81ae7e425d Add kawaii mode (#3773) 2024-05-01 08:59:40 +01:00
dan 181e61bedb Memoize context value (#3786) 2024-05-01 05:35:52 +01:00
Paul Frazee 31cb3e5422 Performance improvements: structural sharing & moderation opts context (#3785)
* Fix: correctly apply structural sharing to preferences object

* Move moderation opts into a context

* Fix import

* Remove log

* Pass userdid directly

* Pass moderationPrefs directly
2024-04-30 21:06:51 -07:00
dan 39807a8630 [Session] Refactor to prepare for V2 (#3781)
* 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>
2024-05-01 02:55:43 +01:00
dan 66ad5543f1 [Session] Move deactivated field off the session object (#3780) 2024-05-01 01:36:56 +01:00
dan 339f26567a [Session] Consistently copy SessionAgent fields (#3779)
Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-01 01:13:55 +01:00
Samuel Newman 80bcf81dc5 [Clipclops] Separate messages if there's a time gap (#3777)
* separate msg groups by age

* clean up logic and add comments
2024-04-30 23:40:26 +01:00
Hailey db968b7610 [Clipclops] Header for chat (#3775)
* 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
2024-04-30 15:04:17 -07:00
Hailey 268e30d21a [Clipclops] adjust scroll position, keyboard color (#3771)
* use the correct keyboard appearance based on theme

* i guess the min index should be 1
2024-04-30 11:33:41 -07:00
Samuel Newman 611ff0c7e4 [Clipclops] Add clop sent time to clipclop (#3772)
* add message sent time to message

* fix last message in group logic
2024-04-30 19:31:30 +01:00
Samuel Newman 7b694fd860 [Clipclops] Use API data for clipclop list (#3769)
* 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>
2024-04-30 18:15:48 +01:00
Samuel Newman bcd3678067 [Clipclops] New clipclop dialog (#3750)
* 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>
2024-04-30 17:43:57 +01:00
dan 2b7d796ca9 Session fixes, pt. 1 (#3762)
* Update persisted schema for new source of truth, implement in existing session

(cherry picked from commit b1e5f12bae)

* Improve toasts, log caught error, during switch account

(cherry picked from commit fe0d150706)

* Handle thrown errors from initSession during login

(cherry picked from commit 2c85c04591)

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-04-30 17:38:05 +01:00
Samuel Newman 4de78fb69e use keyboardDismissMode rather than onScrollBeginDrag (#3767) 2024-04-30 16:11:41 +01:00
Hailey eb8bfd11d1 [Clipclops] Add screen to view and send clip clops (#3754)
* 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>
2024-04-29 23:34:26 -07:00
Hailey 5d19f27052 switch branch for installing react-native-bottom-sheet (#3760) 2024-04-29 16:13:41 -07:00
dan 42966fb49e Fix List onMomentumScrollEnd (#3759) 2024-04-29 23:38:03 +01:00
Paul Frazee 28fc98d942 Release 1.80 (#3757)
* Test fixes

* Intl extract
2024-04-29 15:00:25 -07:00
Frudrax Cheng 599dab1c7a Update zh-TW translations (#3678)
* consistent improvements

* update messages.po

* improve translation

* improve translation

* fix punctuation issues

* remove superseded strings

* GIFs to GIF

* modify according to review suggestions

* fix some misnomers

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* modify according to review suggestions

* modify according to review suggestions

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* modify according to review suggestions

* a small adjustment

---------

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>
Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>
2024-04-29 14:54:17 -07:00
Gabriella 6dd2e07ab9 Italian localization (#3684)
* Add files via upload

* Update messages.po

Changed the grama of string

* Update messages.po

Following the input of @niconick89.bsky.social I have added additional correction to some of the strings.
2024-04-29 14:53:45 -07:00
Ivan Beà 983d9e55b3 Update catalan messages.po (#3697)
* Update catalan messages.po

New lines translated
You can check it @jordimas @darccio @ferranrego @MiquelAdell @mvdan @johnnydement @Mejans @surfdude29

* Update messages.po

Remove extra space

* Update messages.po
2024-04-29 14:53:13 -07:00
Minseo Lee c8aa16e90e Update Korean localization (#3698)
* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po
2024-04-29 14:52:39 -07:00
Takayuki KUSANO c2fff6a861 Update Japanese translation (#3734)
* Remove old old onboarding related entries

cf. https://github.com/bluesky-social/social-app/pull/3674

* Update Japanese translation

(accessibilityLabel & accessibilityHint)
cf. https://github.com/bluesky-social/social-app/pull/3670

* Update Japanese translation

* Fix Japanase translation related to block
2024-04-29 14:52:15 -07:00
Frudrax Cheng f3c32f9996 Update zh-CN translations (#3716)
* fix punctuation issues

* improve translation

* remove superseded strings

* update messages.po

* fix typo

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* update language-team

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

---------

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>
Co-authored-by: Leonid <kasumi@bangdream.moe>
2024-04-29 14:51:41 -07:00
Eric Bailey a4e34537ce Send Bluesky feeds and suggested follows more data (#3695)
* WIP

* Fix constructors

* Clean up

* Tweak

* Rm extra assignment

* Narrow down the argument

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-29 22:04:35 +01:00
Kisaragi Hiu d893fe005d android: fix various places still using default Material Teal (#3555)
These places include TextInput cursor, TextInput selection, and the
spinner (ActivityIndicator) --- the default Material Teal is out of
place wherever it shows up.

This sets Expo's primaryColor to #1083fe, which is the color that
defaultTheme.palette.default.brandText resolves to, then applies it as
the native accent color via a plugin because Expo doesn't apply the
accent color.
2024-04-29 11:36:05 -07:00
Hailey 2feea51ae3 clear search on tab press (#3753)
* clear search on tab press

* don't need to call `onPressCancelSearch`
2024-04-29 17:32:20 +01:00
dan 5d715ae1d0 Improve search screen perf (#3752)
* Extract SearchHistory to a component

* Extract AutocompleteResults to a component

* Extract SearchInputBox to a component

* Add a bunch of memoization

* Optimize switching by rendering both

* Remove subdomain matching

This is only ever useful if you type it exactly correct. Search now does a better job anyway.

* Give recent search decent hitslops
2024-04-29 16:52:24 +01:00
dan 3c2d73909b Remove layout animation from search (#3751) 2024-04-29 16:11:59 +01:00
Hailey 388c4f79cf Increase search TextInput hit area and improve the related UI (#3748)
* improve hit area of search text input

use text cursor on web

use a pressable instead

use a vertical padding of 9

oops

move vertical padding to `TextInput` to increase hit area

* Hide it from a11y tree, change cursor

* Hide clear on empty text

* Render either Clear or Cancel

* Remove Clear button

* Animate it

* Better animation

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-29 05:12:20 +01:00
dan dfce190cb6 [iOS] Fix selecting search input on focus (#3746)
* Select search text on focus

* Scope to iOS only
2024-04-28 22:52:40 +01:00
dan 361d255e95 Remove useEffect from TimeElapsed (#3741) 2024-04-28 22:37:00 +01:00
dan 256bb33de0 Remove test gating code (#3742) 2024-04-28 22:36:50 +01:00
dan 2a08931127 Fix dropdown immediately closing on Enter (#3745)
* Move dropdown content into separate component

* Fix dropdown with keyboard

* No-op is sufficient
2024-04-28 21:29:43 +01:00
dan 1dd3d6657c Account for momentum when hiding minimal shell (#3740)
* Add optional momentum events to scroll context

* If there is a velocity, don't snap until momentum end

* Don't show bar on scroll down

* Rm onMomentumBegin
2024-04-28 17:48:20 +01:00
dan 3b4848ba59 Reduce hovercard false positives, add them to display names and handles (#3739)
* Don't trigger hovercards on scroll

* Add display name / handle hovercards

* Increase hovercard delay
2024-04-28 13:59:18 +01:00
Mary 74cd1d4458 YouTube Music as supported player (#3736) 2024-04-27 22:11:08 -07:00
dan 21e5a87fab Patch lexicon for perf (#3733) 2024-04-27 07:54:47 +01:00
Hailey 61d7e6014b ensure dialog is closed on unmount (#3650)
Revert "properly check if the ref is null"

This reverts commit 8f563808a5d39389b0bc47a31e73cd147d1e7e8b.

properly check if the ref is null

ensure dialog is closed on unmount
2024-04-27 07:42:49 +01:00
Hailey 7eb1444f2c remove precacheThreadPostProfiles (#3729)
* remove `precacheThreadPostProfiles`

* add `displayName` to `PreviewableUserAvatar`

* memo

* use `precacheProfile`

* pass `profile` directly to `PreviewableUserAvatar`

* update the `UserAvatar`'s props

* remove feed cache

* one more spot

* rm unused queryClient

* Don't call fn unnecessarily

* Preload for display name too

* try notification item

* add to feeditem

* and finally, precache for post threads

* timestamp

* Fix

* onBeforePress

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-27 06:31:07 +01:00
Samuel Newman ce85375c85 [Clipclops] New routes with placeholder screens (#3725)
* add new routes with placeholder screens

* gate content

* add filled envelope style

* swap filled state

* switch to `useAgent`
2024-04-27 05:54:18 +01:00
Samuel Newman 1af59ca8a7 Special-case bsky.app/download to open share sheet or copy to clipboard (#3710)
* special-case bsky.app/download to share

* Address feedback

* Improve detection

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-27 05:25:28 +01:00
Hailey b10c96f28d ver bump (#3731) 2024-04-27 04:38:51 +01:00
Hailey 5f9136479b Improve usability of search on web (#3663)
* 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 79c433e984.

* 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 df187ea2d7.

* Revert "Position fixed"

This reverts commit 9c721c952b.

* Maybe fix iPad

* Revert "TODO REVERT THESE CHANGES"

This reverts commit 279f717f30.

* Rename var

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-27 04:34:53 +01:00
bnewbold d81a373d21 embedr: handle out-of-range maxwidth; change default (#3713) 2024-04-25 17:23:45 -07:00
dan f2797218f8 Move Notifications up on desktop web (#3696) 2024-04-25 23:30:07 +01:00
Eric Bailey 45d354cd0c [Session] Add useAgent hook and replace (#3706)
* Hook it up

* Memoize getAgent method

* Use one shared reference

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 22:29:05 +01:00
Eric Bailey d8c8e1e854 [Session] Drill getAgent into notifications handlers (#3705)
* Drill into notifications handlers

(cherry picked from commit 7ac9e500866732e1f2e205bbe96e70db331e5ffb)

* Thread getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 21:57:45 +01:00
Eric Bailey e5fdbfe294 [Session] Drill getAgent into Onboarding/util (#3704)
* Drill agent into Onboarding/util

(cherry picked from commit 2ba68eb5e446a694730b720f2a5b3307eb0914ef)

* Thread getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 21:53:27 +01:00
Eric Bailey 35005da59e [Session] Drill getAgent into notifications/utils (#3703)
* Drill into notifications/util

(cherry picked from commit 84b535ed54f4fe93debcd198809bb184519c3507)

* Thread getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 21:48:01 +01:00
Eric Bailey a69e567991 [Session] Drill into getAgent into whenAppViewReady (#3702)
* Drill into whenAppViewReady

(cherry picked from commit e290e5be3df509bdd9d0e626a164996c9dee3636)

* Drill getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 21:39:28 +01:00
Eric Bailey ec37696034 [Session] Drill getAgent into feed APIs (#3701)
* Update to desired post-feed usage

* Drill agent into feed apis

* Thread getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 21:29:06 +01:00
Kevin Scannell 282ad4b17d Irish translation back to 100% (#3683) 2024-04-25 09:08:56 -07:00
Eric Bailey 6aded4f257 [Session] Base (#3541)
* Add readLastActiveAccount to use accounts[] as source of truth

* Add public service constant, use
2024-04-25 10:35:21 -05:00
Hailey 5b82b15007 remove use of pointerEvents on iOS profile header (#3694) 2024-04-25 01:24:20 +01:00
Hailey c3fcd486b3 Cleanup files after each iteration of compression and downloading (#3599)
* delete image on each iteration of compression

* replace a few other instances of `unlink()`

* ensure that moving to the permanent path will succeed

* use `cacheDirectory`

* missing file extension?

* assert

* Remove extra .

* Extract safeDeleteAsync, fix normalization

* Normalize everywhere

* Use safeDeleteAsync in more places

* Delete .bin too

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 01:12:36 +01:00
dan 90c3ec8749 Ignore image responses on non-200 status (#3693)
* Ignore image responses on non-200 status

* Fix tests
2024-04-24 23:16:11 +01:00
Mary 15055cb8c4 Persist PDS URL for session resumption (#3620)
* 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
2024-04-24 21:57:16 +01:00
dan 05212ca9e3 Remove Moderation from sidebar (#3692) 2024-04-24 21:37:16 +01:00
dan e2a59449df Remove old Suggested Follows logic (#3689) 2024-04-24 17:45:11 +01:00
dan 8ec3d8c76e Rewrite the link detection (#3687)
* Rewrite the link detection

* Handle parens and colons
2024-04-24 17:30:44 +01:00
Hailey b3df0b177f Remove unnecessary .trimEnd() and fix facet detection (#3672)
* Fix link facet detection

Exclude the trailing period from the link, similar as done in the atproto package

* Fix JSON to text conversion

The trimEnd() call was only needed because we were always appending \n\n at the end. Fix that by only adding line breaks after non-final paragraphs.

* Detect paste reliably

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-24 15:10:29 +01:00
Eric Bailey 05beb1bbad Remove old old onboarding (#3674) 2024-04-23 19:30:49 -05:00
dan 24da3a8f4e Disable autoplay by default if prefers-reduced-motion (#3671) 2024-04-23 17:07:18 -07:00
Samuel Newman 0847e2752b Add option to remove quoted post in composer (#3670)
* add option to remove quoted post

* add generous hitslop
2024-04-24 00:36:59 +01:00
Samuel Newman 9ebfa9a015 Add border radius to GIF loading state (#3669) 2024-04-23 23:56:23 +01:00
Hailey 76aef2d064 use mp4 over webm (#3666)
* use mp4 over webm

* tinymp4

* safari only
2024-04-23 23:55:01 +01:00
Paul Frazee 316fce6439 Release 1.79 (#3661)
* Update tests

* Intl exract
2024-04-23 11:26:50 -07:00
Takayuki KUSANO dc3f694a91 Update Japanese translation (#3656)
* Update Japanese translation

- GIPHY is replaced by Tenor
- Accessibility hint for long-pressing hashtags have been changed to follow

* Translated accessibility hints related to embedded GIFs

* Translate Email 2FA related messages.

* Updated Japanese transaltion

* More update

* Update
2024-04-23 10:55:03 -07:00
dan 096725110a [Statsig] Add test gates and events (#3659)
* [Statsig] Add test gates and events

* Better types
2024-04-23 04:47:13 +01:00
Paul Frazee 30c2c05103 Quick fix to ensure disable 2fa dialog adjusts to keyboard (#3658) 2024-04-22 19:43:54 -07:00
Paul Frazee 710e913024 Email auth factor (#3602)
* 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
2024-04-22 19:18:13 -07:00
Hailey cbb817b5b7 GIF Viewer (#3605)
* ios player

autoplay after recycle

remove all items from AVPlayer queue

recurururururursion

use managers in the view

add prefetch

make sure player items stay in order

add controller and item managers

start of the view

create module, ios

* android player

smoother

basic caching

prep cache

somewhat works

backup

other files

android impl

blegh

lets go

touchup

add prefetch to js

use caching

* bogus testing commit

* add dims to type

* save

* add the dimensions to the embed info

* add a new case

* add a new case

* limit this case to giphy

* use gate

* Revert "bogus testing commit"

This reverts commit b3c8751b71.

* add web player base

* flip mp4/webp

* basic mp4 player for web

* move some stuff into `ExternalLinkEmbed` instead

* use a class component for web

* remove extra component

* add `onPlayerStateChange` event type on web

* layer properly

* fix tests

* add new test

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

show placeholder on ios

fix type

rm log

display thumbnail until video is ready to play

add oncanplay, playsinline

remove unused method

add `isLoaded` change event

release player when finished

apply gc to the view

cleanup logs

android gc

rm log

automatic gc for assets

make `nativeRef` private

remove unnecessary `await`

cleanup

rev log

only play on prepare whenever needed

rm unused

perfperfperf

rm var

comment + android width

native height calculations

rm pressable

add event dispatcher on android

add event dispatcher on ios

* ready to test ios

fix autoplay ios

clean

oops

* autoplay on web

* normalize across all platforms

add check for `ALT:`

separate gif embed logic to another file

handle permissions requests

flatten web styles

normalize styles

normalize styles

prefetch functions

pause animatable on foreground android

nits

one more oops

idk where that code went

lint

rethink the usage

wrap up

android

clear bg

update gradle

more android

rename dir

update android namespace

web

ios

add deps

use webp

rm unused

update types

use webp on mobile

* rm gate from types

* remove unused event param

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

* fix gifs animating on app resume android

* remove comment

* add `isLoaded` for ios

* add `isLoaded` to Android

* onload for web

* add visual loading state

* rm a log

* implement isloaded for android

* dialogs

* replace `webpSource` with `source`

* update prop name

* Move to Tenor for GIFs (#3654)

* update some urls

* right order for dimensions

* add GIF coder for ios

* remove giphy check

* rewrite tenor urls

* remove all the unnecessary stuff for consent

* rm print

* rm log

* check if id and filename are strings

* full size playback controls

* pass tests

* add accessibility to gifs

* use `onPlay` and `onPause`

* rm unused logic for description

* add accessibility label to the controls

* add gif into to external embed in composer

* make it optional

* gif dimensions

* make the jsx look nicer

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-04-23 02:54:15 +01:00
dan fe9b3f0432 Ungate profile scroll fix (#3655) 2024-04-23 00:54:59 +01:00
Samuel Newman 49b5d420e6 rm country param (#3653) 2024-04-23 00:37:46 +01:00
dan 861804629a [GIFs] Remove consent flow (#3652)
* Remove tenor from settings

* Remove consent flow
2024-04-23 00:18:03 +01:00
Samuel Newman 76449fb6ef [GIFs] Replace GIPHY with Tenor (#3651)
* replace GIPHY with Tenor

* remove "directly" wording

* replace GIPHY wording

* remove log
2024-04-22 23:39:32 +01:00
Hailey 1a4e05e9f9 properly close the switch account dialog (#3558)
* properly close the switch account dialog

* use it for switch account as well

* ensure dialog is closed on unmount

Revert "properly check if the ref is null"

This reverts commit 8f563808a5d39389b0bc47a31e73cd147d1e7e8b.

properly check if the ref is null

ensure dialog is closed on unmount

* Revert "ensure dialog is closed on unmount"

This reverts commit a48548fd8e.
2024-04-22 22:46:05 +01:00
Samuel Newman f49d73dd00 [GIFs] Reset scroll on query change (#3642)
* scroll list to top on query change

* dismiss keyboard on swipe list

* don't need an effect
2024-04-22 22:18:39 +01:00
surfdude29 0b3cc59019 Update French translations (#3644)
* Update French translations

* Apply suggestions from code review

Co-authored-by: Stanislas Signoud <signez@stanisoft.net>

---------

Co-authored-by: Stanislas Signoud <signez@stanisoft.net>
2024-04-22 14:13:10 -07:00
Samuel Newman f4e72cc83c [GIFs] Add error boundary to GIF picker (#3643)
* error boundary on gif picker

* add dialog.close for web users

* fix size of dialog on web

* Safer coercion

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-22 22:07:48 +01:00
Samuel Newman 27c4054fcb Revert "Add layout transitions to the composer photo gallery on iOS (#3609)" (#3649)
This reverts commit 1a5b8b2c94.
2024-04-22 21:56:40 +01:00
Jan-Olof Eriksson 94ea2a3e56 Update Finnish translations (#3630)
* Update messages.po

Repostausten yhdenmukaistamista

* Update messages.po

* Update messages.po

* Update messages.po

Typos

* Update messages.po

Couple of typos

* Update messages.po

Removed strings that are obsolete and no longer used.

* Update messages.po
2024-04-22 13:48:48 -07:00
Takayuki KUSANO c525974d51 Update Japanese translations (#3632)
* Update Japanese translations

- Add GIPHY related messages
- Add a11y related messagges
- Update a message in empy search screen

* Updated Japanese translation.
2024-04-22 13:48:22 -07:00
Minseo Lee 0e082cb094 Update messages.po (#3639) 2024-04-22 13:47:49 -07:00
Hailey 551e3330b9 remove unnecessary padding from the right hand side of the post in threaded (#3645) 2024-04-22 21:44:01 +01:00
Samuel Newman b09903e3b8 only open tag menu on long press (#3553) 2024-04-22 21:29:29 +01:00
Samuel Newman bcd88b088a add maxwidth to app language dropdown (#3635) 2024-04-22 21:24:50 +01:00
Hailey 243769e657 remove gate from updates (#3646) 2024-04-22 21:06:25 +01:00
Matthieu Sieben 0e3a13b6df docs(build): update build instructions (#3641) 2024-04-22 10:44:44 -07:00
dan ce1c1e1cbe Search in PWI (#3628) 2024-04-20 00:29:35 +01:00
dan d3c0b48da3 Top/Latest for hashtags (#3625)
* Split HashtagScreen into two components

* Hashtag tabs

* Visual fixes
2024-04-19 23:37:11 +01:00
Hailey c0ca891501 Player improvement pre-reqs (#3618)
* add dims to type

* save

* add the dimensions to the embed info

* add a new case

* add a new case

* limit this case to giphy

* use gate

* flip mp4/webp

* fix tests

* add new test
2024-04-19 23:31:20 +01:00
Samuel Newman 22e86c9903 fix onEndReached issue by forcing flatlist to scroll (#3623) 2024-04-19 23:26:04 +01:00
Samuel Newman edbb18afa4 Throttle gif search by 500ms (#3622)
* debounce gif search by 300ms

* Throttle it instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-19 22:55:53 +01:00
Samuel Newman 8b33ffdfb5 Add disable autoplay preference and group related settings into a dedicated page (#3626)
* 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>
2024-04-19 22:10:37 +01:00
dan ade2ea6172 Ungate Top/Latest search (#3627) 2024-04-19 21:58:18 +01:00
dan c42a557417 [Statsig] Send locale info (#3621) 2024-04-19 15:51:41 +01:00
dan 55aea348c2 [Statsig] Update experiments (#3617) 2024-04-19 15:23:47 +01:00
Hailey f709fbcbdd align center post meta in threaded (#3615)
* align center post meta in threaded

* put `displayNameStyle` in correct place

* maybe?

* with mobile padding too?
2024-04-19 05:38:54 +01:00
Hailey c91f065be5 add dimensions to data (#3616)
* add dimensions to data

* keep alt text

* put it in the right url

* just send the original height and width instead
2024-04-18 21:32:25 -07:00
Samuel Newman ba1c4834ab Add GIF select to composer (#3600)
* create dialog with flatlist in it

* use alf for composer photos/camera/gif buttons

* add gif icons

* focus textinput on gif dialog close

* add giphy API + gif grid

* web support

* add consent confirmation

* track gif select

* desktop web consent styles

* use InlineLinkText instead of Link

* add error/loading state

* hide sideborders on web

* disable composer buttons where necessary

* skip cardyb and set thumbnail directly

* switch legacy analytics to statsig

* remove autoplay prop

* disable photo/gif buttons if external media is present

* memoize listmaybeplaceholder

* fix pagination

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

* remove console.log

* close modal if press escape

* pass alt text in the description

* Fix typo

* Rm dialog

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-19 03:42:26 +01:00
Takayuki KUSANO 2090738185 Update Japanese translation (#3557)
* Remove obsoleted entries

* Add new translation messages.

* Fix one translation

* Update Japanese translation
2024-04-18 14:28:49 -07:00
Frudrax Cheng bf5363c7dc Update zh-TW localization (#3564)
* Fix file format, punctuations and wording

* Some minor adjustments

* Update messages.po

* Remove superseded strings

* Some minor adjustments
2024-04-18 14:28:08 -07:00
Frudrax Cheng 2fb41566e9 Update zh-CN localization (#3565)
* Some minor adjustments

* Update messages.po

* Remove superseded strings
2024-04-18 14:27:19 -07:00
Ivan Beà bf2dccd2a2 Update catalan messages.po (#3595)
New lines translated again, just a few

You can check it @jordimas @darccio @ferranrego @MiquelAdell @mvdan @johnnydement @Mejans @surfdude29
2024-04-18 14:25:45 -07:00
Mary 08c6014751 Fix splash screen language picker appearance on Chrome (#2952)
* fix: correct language picker appearance on Chrome

* fix: prevent chevron shrink on long language names
2024-04-18 14:21:09 -07:00
Gildásio Filho 3beb4ec63d Update messages.po (#3610) 2024-04-18 13:54:23 -07:00
Dovgonosyk 91190e11e2 Update Ukrainian translation (#3552)
Co-authored-by: Ukrainians <github-actions@github.com>
2024-04-18 13:53:54 -07:00
Minseo Lee 7e72a73bee Update Korean localization (#3551)
* Update messages.po

* Update messages.po

* Update messages.po
2024-04-18 13:44:14 -07:00
Samuel Newman 1a5b8b2c94 Add layout transitions to the composer photo gallery on iOS (#3609)
* add layoutanimation + transition to images

* make iOS-only

* use useLayoutEffect

* make iOS only (again)
2024-04-18 12:37:22 -07:00
dan bef7d8a325 [Statsig] Slightly block the UI on gates (#3608) 2024-04-18 17:53:51 +01:00
dan 6101c32bd9 [Statsig] Prefetch configs for other accounts (#3607)
* Poll both current and other accounts

* Make createStatsigOptions a function

* Pass prefetchUsers with the initial request

* Add initializeCalled check

* Be resilient to object identity changes

* Decrease poll interval to 1 minute
2024-04-18 16:26:05 +01:00
dan 41b5b5b283 Add our own cache in front of Statsig (#3604) 2024-04-18 15:28:24 +01:00
dan 02becdf449 [Statsig] Make gate checks lazily (#3594) 2024-04-18 04:39:29 +01:00
Hailey 086dc93a7a don't underline handle in post meta (#3591)
* alignment

remove the unnecessary styles now

seriously?

flex-end everything

flex shrink

test

test

rm unneeded flex

flex the text

don't underline handle in post meta

* use `paddingLeft`

* use `paddingLeft` but with `4`

* Fix overflow color

* Use nbsp to make mobile work

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-18 03:09:10 +01:00
bnewbold 7e16276c04 embedr: return null width (#3598) 2024-04-17 14:41:29 -07:00
Jake Gold 56828c088d NOOP deploy test 2024-04-17 14:05:08 -07:00
Hailey 410f155988 Cleanup files after upload on native (#3597)
* cleanup images after uploading from the composer

cleanup external embed images as well

cleanup files after upload

add `expo-file-system`

* remove test log

* await

* Revert "await"

This reverts commit 771814b40c.

* just log an error if it throws
2024-04-17 12:49:22 -07:00
Samuel Newman a2df81416b delete useMyFollowsQuery (#3529) 2024-04-17 19:39:37 +01:00
Hailey d5982891fa properly animate the profile hover card (#3590)
* properly implement with `isOpen` and `isPositioned`

* well, this works just as well

* add `willChange`
2024-04-17 02:51:25 +01:00
dan 480fa10e0b Add hovercards to "Reply To" (#3587)
* Add hovercard for Reply To

* Tweak durations
2024-04-16 23:44:41 +01:00
dan 1e26654a9b Scrolling while target is hovered and card is visible should hide the card (#3586)
* Don't remove the effect, it's not needed here (and wrong)

* Differentiate between hovering target and card

* Group related code closer

* Hide on scroll away

* Use named arguments

* Inline defaults

* Track reason we're showing

* Only hide on scroll away while hovering target
2024-04-16 23:32:49 +01:00
Jaz 4a771b9350 Merge pull request #3585 from bluesky-social/download_url
Add a handler for /download that directs you to the device-appropriat…
2024-04-16 17:29:50 -05:00
dan 8864e9aefe Restructure feed hover state machine code (#3550) 2024-04-16 22:47:33 +01:00
Hailey 69d3768006 Better dist strings for Sentry (#3584)
* better version codes for sentry

* use a `.` to follow the same intended format as before

* ignore dist build number
2024-04-16 14:38:25 -07:00
Hailey 046e11de31 Automatically add a link card for URLs in the composer (#3566)
* automatically add a link card for urls in the composer

simplify was paste check

use a set

simplify the cross platform reuse

web implementation

remove log

pasting in the middle of a block of text

proper regex

dont re-add immediately after paste and remove

don't use `byteIndex`

lfg

automatically add link card

* `mayBePaste`

* remove accidentally pasted url from comment
2024-04-16 14:29:32 -07:00
Jaz Volpert 09e1f0e9ae Add a handler for /download that directs you to the device-appropriate store 2024-04-16 14:17:15 -07:00
dan 71c427cea8 Make ref_ always strings (#3583)
* Make ref_ always strings

* Harden types
2024-04-16 21:55:12 +01:00
Hailey 48bd98f9ef Use the existing ExternalLinkEmbed for embed previews in the composer (#3579)
* use existing `ExternalLinkEmbed` for showing previews

* cleanup
2024-04-16 13:38:47 -07:00
dan a66c9d0bc4 Always send ref_ params (#3582) 2024-04-16 21:28:39 +01:00
Samuel Newman 2974b407be add sort to searchPosts request (#3581) 2024-04-16 20:38:41 +01:00
Hailey 45e572b212 bump api, remove as number from types (#3580)
* bump api, remove `as number` from types

* bump dev env
2024-04-16 20:34:34 +01:00
Hailey 38074854b2 Allow a post to contain only a quote (#3577)
* allow posts with only a quote

* bump version while we're at it
2024-04-16 10:20:05 -07:00
Samuel Newman 6980cc7f37 Hide translate/copy text options when !no-unauthenticated (#3573)
* hide translate/copy text options when no-pwi

* only do this for no-unauth

* always show if logged in

* swap order of OR
2024-04-16 17:22:55 +01:00
Eric Bailey f771a5961d Add icons for onboarding (#3571) 2024-04-16 09:08:11 -05:00
Paul Frazee d5db632e29 1.78 2024-04-15 20:47:28 -07:00
Paul Frazee 68d002a966 Fix error getting through by primary feed sort (#3562) 2024-04-15 20:41:44 -07:00
bnewbold f265d65a18 embedr: improved HTML snippet, with links (#3559) 2024-04-15 12:32:26 -07:00
Paul Frazee 4b69948366 Release 1.77.0 (#3549)
* A couple test fixes

* Intl extract
2024-04-13 20:44:14 -07:00
Paul Frazee 0b43d728e4 Improve the language behaviors around the PWI (#3545)
* 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
2024-04-13 19:49:52 -07:00
Mary 23056daa29 fix: only close drawer if directly tapping backdrop (#3534) 2024-04-14 01:13:05 +01:00
Nick Manos cb3f246822 Fix Android in-app browser closing when switching apps (#3546) 2024-04-13 17:02:44 -07:00
Hailey 3b9c5ceeb3 Cache DID and profile basic on profile card presses (#3523)
* cache profiles

add onPress back

rm log

cache profile and did when pressing profile card

* minimal diff
2024-04-13 17:02:32 -07:00
Hailey 7543f72b77 Remove extra wrapper on notification user links (#3548) 2024-04-13 16:55:49 -07:00
dan 41925bdc07 Fix hover card animation with a reducer (#3547) 2024-04-14 00:54:45 +01:00
Dovgonosyk eeb1b5e3b4 Update Ukrainian translation (#3537)
Co-authored-by: Ukrainians <github-actions@github.com>
2024-04-13 14:24:32 -07:00
bnewbold bb67757094 add oEmbed links to public post HTML meta headers (#3522) 2024-04-13 12:21:59 -07:00
bnewbold 58842d03a9 rebased embedr (#3511)
* skeleton of embedr service, based on bskyweb

* embedr container setup

* builds on this branch

* actual routes

* fix embedr go:embed

* tweak embedr dockerfile

* progress on embedr

* fix path params

* tweaks to build process

* try to get embedr dockerfile to install embed deps

* build this branch

* updates to match sam's output HTML

* try to unbreak embedr dockerfile

* small embedr tweak

* docker hack

* get embed.js copied over to embedr

* don't x-frame-options for embed.bsky.app

* bskyembed: remove a console.log

* use html/template for golang snippet generation

* simplify embedr API fetches

* missing file

* Rm console.log fully

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-13 12:20:06 -07:00
Mary 196dd3a8ab Increase hit slop for web's app language picker (#3535)
* fix: make app language picker tap region larger

* fix: add right padding on drawer signup card

noticeable on portuguese language

* fix: mimic hitSlop
2024-04-13 12:02:22 -07:00
Takayuki KUSANO a8c1e71907 Update Japanese translation (#3425)
* Updated Japanese translation and removed obsolete messages

* Forgot to add trailing question mark

* Unified translation of "birthday"/"birthdate"/"birth date", undo unnecessary entries to reduce the difference

* Translated new strings

* Unified translation of 'copyright violation'

* Sync with main latest, unified translation of 'people'
2024-04-13 11:50:32 -07:00
dan 2164d32295 Fix oopsie (#3538) 2024-04-13 18:40:50 +01:00
Hailey 228d947a84 Fade in animation for card (#3521)
* fade in and out the card

one more fix

dont leave an invisible card behind

okay just about there

move styles

glitch

clear hide timeouts on card enter

about there

* Tweak timings

* Rewrite with explicit states

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-13 18:28:53 +01:00
Samuel Newman 1a9eeb760f [Embeds] Add ref_url (#3533)
* get outer location and pass in to the iframe

* enable post.html in dev

* only add ref_url if starts with http

* Revert "enable post.html in dev"

This reverts commit 6f224c6e2c.

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-13 13:22:19 +01:00
Samuel Newman 4c95ec2ec4 add ref_src (#3532) 2024-04-13 12:44:37 +01:00
dan 9fb20915e8 [Embed] Don't reuse DOM when changing embed (#3530)
* Don't reuse DOM when changing embed

* add skeleton loading state 💀

* autoselect text

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-04-13 12:19:21 +01:00
dan 1390b1dc9e [Statsig] Send ref source (#3531)
* [Statsig] Send ref source

* Add is web check

* Fix types
2024-04-13 12:09:49 +01:00
dan c3f75330ed More obvious click area (#3528) 2024-04-13 11:46:16 +01:00
Samuel Newman acbadc610b add hideRecord prop (#3527) 2024-04-13 11:42:23 +01:00
Samuel Newman c1137c3984 [Embeds] Tweak homepage styles (#3526)
* tweak error styles

* reduce error horizontal padding
2024-04-13 11:18:50 +01:00
Hailey 826f6b043c Moderate content in embeds (#3525)
* move info to its own file

* Revert "move info to its own file"

This reverts commit 1d45a2f403.

* better way

* all cases

* pass labelInfo to ImageEmbed

* blur avatars

* add back as string

* one more as string

* external embed

* add back as string again
2024-04-13 11:18:18 +01:00
Eric Bailey f5bb348bf5 Profile hovers (#3518)
* Add hover card for mentions

* Reposted by

* Fix key

* Add to composer reply to
2024-04-13 06:13:53 +01:00
dan a845587e1f [Embeds] Show error for users with PWI flag on landing (#3524) 2024-04-13 05:50:09 +01:00
Samuel Newman 4c966e5d6d [Embeds] "Embed post" post dropdown option (#3513)
* add embed option to post dropdown menu

* put embed post button behind a gate

* increase line height in dialog

* add gate to gate name union

* hide embed button if PWI optout

* Ungate embed button

* Escape HTML, align implementations

* Make dialog conditionally rendered

* Memoize EmbedDialog

* Render dialog lazily

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-13 05:13:53 +01:00
Samuel Newman 4b3ec55732 [Embeds] Embed subdomain landing page (#3501)
* add build output to web build

* simplify post-build step by copying everything at once

* make script that converts placeholder -> iframe

* dynamically resize iframe based on inner content

Requires the iframe content to `postMessage` its height back up to the parent

* add lang to embed

* svg explicit height -> viewBox

* add build output to web build

* simplify post-build step by copying everything at once

* attempt to fix go embed issue

* rm changes to bskyweb

* remove another bskyweb change

* embed landing page

* Drop xl breakpoint, too far down

* Remove pointer enter behavior

* Avoid button width jump

* Escape HTML

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-13 03:58:40 +01:00
Samuel Newman 8e29b1f633 [Embeds] Embed for single post (#3450)
* add bskyembed vite app

* create build script (temp until embedr is ready)

* add build output to web build

* simplify post-build step by copying everything at once

* add simple post viewer

* add butterfly logo

* add vite plugin legacy

* proper error screen

* add image embed

* add url embed

* record embed + embedwithmedia

* add list+feed embeds

* add labeller embed (just to be safe)

* fix curatelist and modlist being the wrong way around

* Add PWI opt-out

* add favicon

* improve wording of PWI

* remove padding I used for screenshots

* add disabled state to embed

* improve PWI styles by adding an icon

* remove unused prop

* rm open proxy

* [Embeds] Add CTA and add general polish - input needed! (#3454)

* add CTA, colourful icons, and bigger logo

* make hover effect smaller + add to cta

* more responsive + preserve whitespace

* add trailing newsline to deploy script

* add repost indicator

* Make butterfly link to content

* More consistent error text wording

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-13 02:07:39 +01:00
Hailey 93731e6d6b cache fix for search post results (#3520) 2024-04-12 17:31:55 -07:00
Hailey 7d01ff90d3 wait a sec before showing card (#3516) 2024-04-12 16:51:07 -07:00
Kisaragi Hiu cefa0a55e8 android: fix navigation bar always being bright even in dark mode (#3464)
Right now both light mode and dark mode get light navigation bar, and
looks jarring in the dark modes.

This commit applies a more appropriate color before the UI thread
runs (in app config), as well as applying the current theme background
after the UI shell is mounted.

This should fix #3332.

Co-authored-by: Hailey <me@haileyok.com>
2024-04-12 15:40:22 -07:00
Hailey c3821fdc31 Remove vertical scrollbars from views on native (#3429)
* remove vertical scrollbars

* add to a few missing lists

* gate this change

* use `hide_vertical_scroll_indicators`

* fix gate lint

* fix bool
2024-04-12 15:22:09 -07:00
Eric Bailey 6218eb0eea Zhuzh sign in dialog (#3512) 2024-04-12 15:19:58 -07:00
Eric Bailey 1f61109cfa Profile card hover preview (#3508)
* feat: initial user card hover

* feat: flesh it out some more

* fix: initialize middlewares once

* chore: remove floating-ui react-native

* chore: clean up

* Update moderation apis, fix lint

* Refactor profile hover card to alf

* Clean up

* Debounce, fix positioning when loading

* Fix going away

* Close on all link presses

* Tweak styles

* Disable on mobile web

* cleanup some of the changes pt. 1

* cleanup some of the changes pt. 2

* cleanup some of the changes pt. 3

* cleanup some of the changes pt. 4

* Re-revert files

* Fix handle presentation

* Don't follow yourself, silly

* Collapsed notifications group

* ProfileCard

* Tree view replies

* Suggested follows

* Fix hover-back-on-card edge case

* Moar

---------

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

* gate the updates

* enable updates in `production`

* web placeholder for `useOTAUpdates()`

* update comment
2024-04-12 14:51:53 -07:00
surfdude29 1f587ea4b6 Remove obsolete strings from en message catalog (#3462) 2024-04-12 14:49:36 -07:00
imbstt aa1d4d4e26 Update German translations (#3466)
* Change occurrences of "likt" to "liked"

* Improve existing German translations

* Translate new strings for German translation

* Apply suggestions from code review

Co-authored-by: Felix Siebeneicker <felix.siebeneicker@outlook.de>

---------

Co-authored-by: Felix Siebeneicker <felix.siebeneicker@outlook.de>
2024-04-12 14:48:08 -07:00
Gildásio Filho f6dc216110 Update pt-BR localization to latest version (#3472)
* Update messages.po

* Update messages.po
2024-04-12 14:47:16 -07:00
Ivan Beà 5aed7db208 Update Catalan messages.po (#3476)
* Update messages.po

new lines translated

* Update messages.po

change {nom} by {name}

* Update messages.po

update changes by @jordimas
2024-04-12 14:46:39 -07:00
Frudrax Cheng a306fbfca3 Update zh-TW Localization (#3478)
* Update messages.po

* Fix typo

* Update messages.po

* Remove superseded strings
2024-04-12 14:46:15 -07:00
Minseo Lee 7b02b5d716 Update Korean localization (#3491)
* Update messages.po

* Update messages.po
2024-04-12 14:45:13 -07:00
Paul Frazee 4fab3c42f9 Remove report post option from PWI (#3510) 2024-04-12 14:43:55 -07:00
Paul Frazee ec5c4929c1 PWI improvements (#3489)
* 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>
2024-04-12 14:13:13 -07:00
Hailey 44039c68d6 Store QP authors in the DID cache (#3509)
* store qp author in did cache

* organize

* this seems nicer

* move outside of jsx
2024-04-12 12:53:48 -07:00
dan 835f2e6548 Fix stale Notifications after push (#3507) 2024-04-12 11:33:34 -07:00
Paul Frazee 14208eef11 Fix: dont let notifications count go behind the icon (#3505) 2024-04-12 10:21:55 -07:00
Hailey eb2fd53340 QT Jump Pt. 2 - Remove code duplication (#3506)
* remove code duplication

* now it's safe to remove shimmer
2024-04-12 18:00:44 +01:00
dan 7047755c50 Fix optimistic like/repost (#3503) 2024-04-12 16:39:59 +01:00
Samuel Newman f3951f2718 remove build-embed from Dockerfile (#3502) 2024-04-12 16:14:20 +01:00
Paul Frazee ed2c8b720e Dont apply the content-language filter if it will remove all content (#3492)
* Dont apply the content-language filter if it will remove all content

* Improve code
2024-04-12 15:53:11 +01:00
Samuel Newman ad97d4350c [Embeds] Create vite project and add to build pipeline (#3448)
* add bskyembed vite app

* create build script (temp until embedr is ready)
2024-04-12 15:52:26 +01:00
Hailey 24bd3d6986 add likeCount etal. to embedViewRecordToPostView (#3500)
* 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>
2024-04-12 15:49:09 +01:00
dan bedb0c3fbd Use getSuggestions endpoint behind the gate (#3499)
* Move suggested follows out of the component

* Add new suggestions implementation

* Put new endpoint behind the gate

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

* alphabetical pls

---------

Co-authored-by: dan <dan.abramov@gmail.com>
2024-04-11 23:59:13 +01:00
dan 491116ca66 Fix useGate lint rule (#3486) 2024-04-11 23:59:02 +01:00
Hailey 4e51772003 Make bio area scrollable on iOS (#2931)
* fix dampen logic

prevent ghost presses

handle refreshes, animations, and clamps

handle most cases for cancelling the scroll animation

handle animations

save point

simplify

remove unnecessary context

readme

apply offset on pan

find the RCTScrollView

send props, add native gesture recognizer

get the react tag

wrap the profile in context

create module

* fix swiping to go back

* remove debug

* use `findNodeHandle`

* create an expo module view

* port most of it to expo modules

* finish most of expomodules impl

* experiments

* remove refresh ability for now

* remove rn module

* changes

* cleanup a few issues

allow swipe back gesture

clean up types

always run animation if the final offset is < 0

separate logic

update patch readme

get the `RCTRefreshControl` working nicely

* gate new header

* organize
2024-04-11 15:20:38 -07:00
Hailey 740cd029d7 Improve Android haptic, offer toggle for haptics in the app (#3482)
* 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
2024-04-11 15:20:26 -07:00
Samuel Newman 9007810cdb Search - only enable queries once tab is active (#3471)
* only enable queries once tab is active

* remove hasBeenTrue hook

* make enabled optional
2024-04-10 23:32:31 +01:00
dan 310d865440 [Statsig] Mark Testflight as staging tier (#3470) 2024-04-10 20:08:46 +01:00
dan 427f3a848d [Statsig] Typecheck gates (#3467)
* Typecheck gates

* Lint against untyped useGate()

* Alphabetic
2024-04-10 19:36:37 +01:00
Hailey bf974b147e Bump to 1.77 (#3468) 2024-04-10 08:50:44 -07:00
Samuel Newman 353a963920 Search - extra tabs (#3408)
* add extra tab to search and translate tab names

* add feature gate

* flatten pager children

* Revert "flatten pager children"

This reverts commit 0050d42558.

* have pager children as array

* move gate to custom hook

* bundle titles and pages together

* remove comment

* Fix a crash

* Use Views as children

---------

Co-authored-by: dan <dan.abramov@gmail.com>
2024-04-10 16:02:13 +01:00
Hailey b5f5777939 notify slack on production builds (#3461)
* notify slack on production builds

* ugh
2024-04-09 17:25:59 -07:00
Hailey 26f5e02afa notify slack on production builds (#3460) 2024-04-09 17:00:14 -07:00
Paul Frazee ee87f2cadd 1.76 release preparations (#3459)
* Run intl:extract

* Update dev-env to 0.3.4

* Test fixes
2024-04-09 16:27:39 -07:00
Frudrax Cheng fbcd4ddabc Update zh-CN translation (#3433)
* Update messages.po

* Update messages.po by reviewer suggestions

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po by reviewer suggestions

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po by reviewer suggestions

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po by reviewer suggestions

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po by reviewer suggestions

* Remove superseded strings

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

---------

Co-authored-by: Leonid <kasumi@bangdream.moe>
2024-04-09 15:13:00 -07:00
Gabriella edab3d2db6 Italian Localization (#3388)
* Italian Localization

New strings translated for v.1.75

* Update messages.po

Changed two expressions following the revision of @marcomaroni

* Update messages.po

Additional changes to text applied following the suggestion of external translators.

* Update messages.po

Deleted extra stop and corrected a gramatical error

* Update messages.po

Added a correction on string 414 which had a grammatical error.

* Update messages.po

String with Labeler updated.

* Update messages.po

Additional changes made to wordings in traduced strings
2024-04-09 15:12:28 -07:00
dan d89b6eb7fd [Statsig] Send prev route name (#3456) 2024-04-09 15:09:53 -07:00
dan c300d4cab6 [Statsig] Instrument feed display (#3455)
* [Statsig] Instrument feed display

* Back out leftover change
2024-04-09 15:09:42 -07:00
Eric Bailey c96bc92042 Small logic cleanups (#3449)
* Small logic cleanups

* Small logic cleanups (#3451)

* remove a few things

* oops

* stop swallowing the error

* queue callbacks

* oops

* log error if caught

* no need to be nullable

* move isClosing=true up

* reset `isClosing` and `closeCallbacks` on close completion and open

* run queued callbacks on `open` if there are any pending

* rm unnecessary ref and check

* ensure order of calls is always correct

* call `snapToIndex()` on open

* add tester to storybook

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-04-09 15:08:02 -07:00
Samuel Newman a49a5a351d Use ALF for the embed consent modal (#3336) 2024-04-09 00:58:18 +01:00
Eric Bailey 2bc20b1752 Onboarding tweaks (#3447)
* Remove feed

* Follow bsky.app
2024-04-08 14:32:00 -05:00
dan 6d3f9397f4 [Experiment] Ignore the persisted tab (#3442) 2024-04-08 18:39:32 +01:00
dan f03390e4b2 [Experiment] Show "Follow Back" label (#3439) 2024-04-08 18:38:59 +01:00
dan 887fedabea [Statsig] Track like/follow metadata (#3435)
* Track becoming mutuals

* Track poster/liker status

* Track post and followee clout

* Track follower and liker clout

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

* [Experiment] Turn off polling interval for Discover
2024-04-08 17:21:44 +01:00
dan 1150007d37 Auto-expand follow suggestions on web (#3432) 2024-04-08 17:20:58 +01:00
dan ed5647d434 [Experiment] Disable min shell on foregrounding (#3430) 2024-04-08 17:20:41 +01:00
Hailey 731d94b973 Implement back button fix for all places in the app (#3434) 2024-04-08 09:09:40 -07:00
Hailey a1ac84687f Keep each deployment job in a separate concurrency group (#3446) 2024-04-08 08:54:50 -07:00
Hailey 00076ad1ff Bump async-storage to comply with App Store guidelines (#3436) 2024-04-08 08:24:59 -07:00
Hailey a6babaceaf adjust app.config.js to prevent development manifest error (#3413) 2024-04-05 13:29:54 -07:00
Hailey cd29dba761 fix dialog back button for android (#3428)
* fix types

* remove unused async

* add try/catch
2024-04-05 12:52:53 -07:00
Hailey c80dcc565e only run labelers for core team (#3426)
* use `pull_request_target` instead of `pull_request`

* adjust

* only run for core team
2024-04-05 08:58:28 -07:00
Hailey 443dfb5c3e prevent deployment race conditions (#3416) 2024-04-05 08:27:22 -07:00
dan 46c112edfd Enforce that text is wrapped in <Text>, remaining cases (#3421)
* Toggle.Button -> Toggle.ButtonWithText

* Simplify Prompt.Cancel/Action

* Move lines down for better diff

* Remove ButtonWithText

* Simplify types

* Enforce Button/ButtonText nesting

* Add suggested wrapper in linter error

* Check <Trans> ancestry too

* Also check literals

* Rm ts-ignore
2024-04-05 15:09:35 +01:00
dan 49266c355e Remove special cases for some buttons with text (#3412)
* Toggle.Button -> Toggle.ButtonWithText

* Simplify Prompt.Cancel/Action

* Move lines down for better diff

* Remove ButtonWithText

* Simplify types
2024-04-05 14:57:53 +01:00
Hailey 9b087b721d Lint and check types before building (#3424) 2024-04-04 23:15:59 -07:00
Hailey 40ccb574b8 properly import linear gradient (#3423) 2024-04-05 06:03:14 +01:00
Hailey 9bcb0a7a81 migrate to expo-linear-gradient (#3420)
* replace packages

* rm useless alias from webpack config

* fix accidental double commit

* replace all usages
2024-04-04 21:22:13 -07:00
Hailey 4e59914d2a migrate to 'expo-haptics' (#3418)
* migrate to 'expo-haptics'

* run yarn install twice if necessary
2024-04-04 21:19:38 -07:00
Hailey cddbbc4bd4 migrate to expo-application (#3417)
* migrate to `expo-application`

* replace additional usage
2024-04-04 21:19:28 -07:00
Hailey 0433f8ad68 migrate to expo-clipboard (#3419)
* replace package

* replace usages
2024-04-04 21:19:15 -07:00
Hailey 101d1589bf Bump some Expo package, remove unused packages to prepare for migration (#3415)
* bump some package versions

* remove completely unused packages

* remove blurview

* update yarn.lock
2024-04-04 18:30:32 -07:00
Samuel Newman 93b606e55a Use CSS keyframe animation for spinner on web (#3411)
* Use css keyframe animation for spinner on web

* duplicate css to index.html
2024-04-04 23:18:06 +01:00
dan 575f390d7b Fix false positive DEV check (#3410) 2024-04-04 22:54:18 +01:00
Hailey 2e048706e9 fix comments on prs (#3406)
* fix comments on prs

* remove labels

* remove test
2024-04-04 13:52:38 -07:00
dan 3915bb4316 Enforce Text suffix for Text-rendering components (#3407)
* Rm unused

* Add Text suffix to Title/Description

* Add Text suffix to text components

* Add Text suffix to props

* Validate Text components returns
2024-04-04 21:34:55 +01:00
Hailey c190fd58ec replace deprecated term with q in search actor (#3405) 2024-04-04 11:13:11 -07:00
dan b783745b2e Extract query key roots to constants (#3404)
* Extract query key roots to constants

* Dedupe labelers-detailed-info

* Align naming
2024-04-04 18:57:38 +01:00
Paul Frazee b26abf212e Enable tags on profile descriptions (close #3081) (#3397) 2024-04-04 10:52:35 -07:00
surfdude29 8b3017bca0 Alphabetise languages by language code (#3350)
* Alphabetise languages in lingui.config.js

* Alphabetise languages in helpers.ts

* Alphabetise languages in i18n.ts

* Alphabetise languages in i18n.ts

* Alphabetise languages in i18n.web.ts

* Alphabetise languages in languages.ts
2024-04-04 10:51:54 -07:00
Jan-Olof Eriksson 51e939ed3d Bug fixes and some improvements to Finnish localization (#3306)
* Update messages.po

Couple of nasty bugs.

* Update messages.po

Bugs and improvements

* Update messages.po

Hashtag = aihetunniste, not just "tunniste"

* Update messages.po

typo

* Update messages.po

Liked by, tykännyt

* Update messages.po

More translations.

* Update messages.po

* Update messages.po

* Update messages.po

Following - Seurataan

* Update messages.po

one typo

* Update messages.po

line 352 fixed
2024-04-04 10:49:04 -07:00
Samuel Newman 9f657fbace Open share sheet when long pressing link (#3317)
* 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>
2024-04-04 10:37:57 -07:00
Hailey 4d28dcc48f rm 'pornography' label wording (#3402)
* rm 'pornography'

* add `adult content` to `REASONSEXUAL`
2024-04-04 10:15:04 -07:00
dan 3e88fdfbc4 Don't mutate array (#3403) 2024-04-04 18:14:44 +01:00
dan 19b1721ef3 Fix profile follow from Likes (#3401) 2024-04-04 18:03:58 +01:00
dan 4cc57f4bfd Lint against strings without wrapping <Text> (#3398)
* Add a rudimentary rule

* Get the rule passing

* Support special-casing text props

* More tests
2024-04-04 17:32:50 +01:00
Hailey 8e393b16f5 Simplify list logic further to prevent misuse (#3334)
* simplify list logic further

more simplification

simplify by removing `isEmpty`

use `isFetchingNextPage` everywhere for clarity

change `isFetching` to `isFetchingNextPage` for clarity

remove some useless `useMemo`s

move `renderItem` and `keyExtractor` out of component

* clean bundle size check

* update deploy

* adjust

* adjust

* one test

* try now

* test it

* done
2024-04-03 20:59:33 -07:00
Hailey b1bd7ab6e3 Add webpack analyzer, PR comments for webpack bundle size (#3383)
try that again 9

try that again 8

try that again 7

try that again 6

try that again 5

try that again 4

try that again 3

try that again 2

try that again

merge base 3

merge base 2

merge base

use latest main commit rather than tag

webpack diff analyzer

use cache v4

use cache

again...

blegh

blegh

try cache again

cache

try again

one more adjutment

adjust

okay again maybe

maybe now?

maybe now

oops again

oops

add diff comments

add open analyzer script

add webpack analyzer
2024-04-03 19:31:29 -07:00
Gildásio Filho 9d9c9095ee Update pt-BR localization to latest version (#3371)
* Update messages.po

* Update messages.po

* Update src/locale/locales/pt-BR/messages.po

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>

* Update src/locale/locales/pt-BR/messages.po

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>

* Update src/locale/locales/pt-BR/messages.po

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>

* Update src/locale/locales/pt-BR/messages.po

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>

* Update src/locale/locales/pt-BR/messages.po

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>

* Update messages.po

---------

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>
2024-04-03 19:22:10 -07:00
Samuel Newman 712768dd8f Use ALF for the account quick switch dialog (#3327)
* 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
2024-04-03 19:18:14 -07:00
Ivan Beà 8cdd8394df Update catalan localization messages.po (#3307)
* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

Apply corrections suggested by @surfdude29, thanks

* Update messages.po

adding @jordimas corrections
2024-04-03 18:53:58 -07:00
dan e51ccb46b8 Scope query client per DID (#3333)
* Move QueryProvider inside the key

* Pull useQueryClient-dependent code down in App.native

* Remove useQueryClient dependency from session provider

* Scope query client per DID
2024-04-04 02:51:10 +01:00
Hima db3cd3e821 Fix & Add: Japanese Translation (6) (#3304)
* Create test.txt

* Delete src/locale/locales/ja/messages.po

* Add files via upload

* Delete src/locale/locales/ja/test.txt

* messages.po を更新

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* messages.po を更新

* messages.po を更新

* messages.po を更新

* messages.po を更新
2024-04-03 18:49:48 -07:00
Minseo Lee af9b961411 Fix magnify icon (#3292)
* Update icons.tsx

* Update icons.tsx
2024-04-03 18:49:14 -07:00
Minseo Lee 7cf22e2047 Update Korean localization (#3281)
* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po
2024-04-03 18:47:04 -07:00
Hailey 7fb117d213 Upgrade UITextView to latest (#3090)
* uitextview use library w/ fixes

bump

bump

multiple uitextview fixes

* bump

* update to latest

* cleanup
2024-04-03 18:05:03 -07:00
Hailey a356b1be1a Work around GitHub false-positive for passing secret to another action (#3396)
* run bundle/deploy on main pushes

* don't fetch from origin if not necessary

* fix false-postive for secret in outputs

rm test

test 'false'

rm test

use in both places

workaround "secret" string

add a manual testflight deployment option for android

add a manual testflight deployment option for android

add a manual testflight deployment option for android

* rm test code
2024-04-03 18:04:48 -07:00
Kevin Scannell cad0590694 Irish PO file thanks to @kingdonncha1.bsky.social (#2924)
* Irish PO file thanks to @kingdonncha1.bsky.social

* feat: add Gaeilge options added by @kscanne into the GUI

---------

Co-authored-by: Kat Gaea <kat.knight@newgaea.net>
2024-04-03 17:32:53 -07:00
Paul Frazee 93fbd91193 Add cursor to 'learn more' on screenhider (close #2871) (#3395) 2024-04-03 17:28:31 -07:00
Paul Frazee 9d5c82d9a8 Merge branch 'atiksoftware-main' into main 2024-04-03 17:15:33 -07:00
Paul Frazee 55e4ea84f8 Add turkish to app languages 2024-04-03 16:50:15 -07:00
dan a32eb96210 Show redbox in DEV on string <View> child for web (#3394) 2024-04-04 00:46:49 +01:00
Paul Frazee a4d4562aba Merge branch 'main' of https://github.com/atiksoftware/social-app into atiksoftware-main 2024-04-03 16:31:13 -07:00
Hailey eda98679df don't fetch from origin if unnecessary when performing OTA deploy (#3392)
* run bundle/deploy on main pushes

* don't fetch from origin if not necessary
2024-04-03 16:27:17 -07:00
Hailey 8e882a4579 run bundle/deploy on main pushes (#3391) 2024-04-03 16:00:52 -07:00
dan 295a0949f4 Factor out QueryProvider (#3331) 2024-04-03 23:53:44 +01:00
dan 6c728f79de Make notifications init reactive to queryClient (#3329) 2024-04-03 23:42:28 +01:00
dan fc1e30afd6 Thread queryClient explicitly through (#3328)
* Pass queryClient explicitly to resetProfilePostsQueries

* Pass queryClient explicitly to updatePostShadow

* Pass queryClient explicitly to updateProfileShadow
2024-04-03 23:33:46 +01:00
Hailey 73df7e53b3 Add OTA updates support for testflight channel (#3291)
* some progress

another adjustment, testing

another adjustment, testing

fix again

fix again

set default runtime version

fix

test this script

test this script

test this script

add build numbers to the deployment url

clean

give script access to build number

add `useBuildNumberEnv` without a bump

new line

fix missing async

add channel name to deployment url

add updates check on launch for testflight users

ver bump

init updates on launch for native

add `testflight` as default in build submit

add is_testflight check

* disable inline predictions to prevent ios composer jank

* temp bump

* Revert "temp bump"

This reverts commit 44c51134a3.

* adjustments

version bump

adjust

fixes

test

* cleanup and finalize

drop check down to every 15 minutes

adjustments

change to 15 mins

use jq to get version if necessary

rm test on push

figured it out

remove nightly testflight releases

test again again again again again AGAIN ONCE MORE

test again again again again again AGAIN

test again again again again again AGAIN

test again again again again again

test again again again again

test again again again

test again again

test again

test

test

test

run deploy if necessary

run deploy if necessary

run deploy if necessary

run deploy if necessary

run deploy if necessary

remove test message

fix environment

oops

cleanup

merge in changes

* remove unnecessary `workflow_call`

* remove changes that have been merged into main now

* finalize android

update git ignore

rm test stuff from the bundle action

remove test message

test message

fix

test message

test message

few android fixes

few android fixes

fix jq

add a test message

fix slack webhook

create android deployments test 2

create android deployments

add `testflight-android` profile to eas.json

more cleanup

some more cleanup

simplify some logic

remove unnecessary channel

rename to `useOTAUpdates`

* rm test portion
2024-04-03 15:14:44 -07:00
Danni 02b2ab4f1f Update Indonesian ID translation to latest (#2803)
* Update Indonesian translation.

* Apply suggestions from code review

Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>

* Update src/locale/locales/id/messages.po

Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>

* Change Umpan word to Feed on ID locale

---------

Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-04-03 14:30:53 -07:00
Frudrax Cheng b76bf9484d Add zh-TW localization (#2781)
* add zh-TW localization

* fix typo

* fix languages.ts

* improve translation

* improve translation

* 部分翻譯修正
- 使用全形標點符號
- 將部分簡體字修正為正體字
- 更改部分用語

* fix incorrectly commented strings

* small fix and suggestion

* update translation team

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* modify the translation based on the review suggestions

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: noeFly <jeffyang0123@gmail.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: noeFly <jeffyang0123@gmail.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: noeFly <jeffyang0123@gmail.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* modify translation by review

* modify translation by review

* modify translation by review

* modify translation by review

* modify translation by review

* modify translation by review

* minor fixes

* minor fixes

* Update messages.po

* translate new strings

* fix typo

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Howard Guo <50100922+toto6038@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Howard Guo <50100922+toto6038@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Howard Guo <50100922+toto6038@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Howard Guo <50100922+toto6038@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Howard Guo <50100922+toto6038@users.noreply.github.com>

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* fixed typo

* Update messages.po

* correct translation

* Update messages.po

* modify translation by review

* Update messages.po

* Update messages.po

---------

Co-authored-by: noeFly <jeffyang0123@gmail.com>
Co-authored-by: Kuwa Lee <kuwalee1069@gmail.com>
Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>
Co-authored-by: Howard Guo <50100922+toto6038@users.noreply.github.com>
2024-04-03 14:30:04 -07:00
dan 75d6535402 Remove Button error boundary (#3372) 2024-04-03 19:11:29 +01:00
Samuel Newman 75c9da931c Add share warning to big share button in post ctrl (#3367) 2024-04-03 19:03:54 +01:00
Samuel Newman 907c7c0586 make entire recent search clickable (#3387) 2024-04-03 16:13:29 +01:00
dan 8de27160f5 Remove unnecessary yarn call (#3380) 2024-04-03 03:05:53 +01:00
dan 67fca733fa Use Prettier at the root (#3375) 2024-04-02 12:02:20 +01:00
dan a45da17c48 Separate ESLint and Prettier (#3373)
* Disable legacy Prettier ESLint integration

* Run Prettier separately

* Add caching

* Separate -some and -all

* Reduce node inits
2024-04-01 22:58:31 -07:00
Hailey 0ff7e71ee3 disable inline predictions to prevent ios composer jank (#3363)
* disable inline predictions to prevent ios composer jank

* temp bump

* Revert "temp bump"

This reverts commit 44c51134a3.
2024-03-31 15:55:30 -07:00
Samuel Newman 3f79cb3e12 apply bg color to entire scrollview (#3364) 2024-03-31 14:51:31 -07:00
surfdude29 69217f9a09 Mark Retry and Go Back buttons in Error.tsx for localisation (#3352)
* Mark `Retry` and `Go Back` buttons in Error.tsx for localisation

* add and sort imports

* sort imports better
2024-03-29 17:51:35 -07:00
Hailey ef24611a1f revert change for closing composer on web only (#3343) 2024-03-22 17:05:39 -07:00
Paul Frazee 0baf9f9919 1.75 2024-03-22 13:07:54 -07:00
surfdude29 d507fa9f38 Mark under13 and Next and Back buttons in signup for localisation (#3341)
* Mark under13 string for translation

* Mark buttons for localisation

* tweak label

* wrap in `ButtonText`

* lint

* try to fix lint again
2024-03-22 10:18:00 -07:00
Eric Bailey 5b44aa962f Wrap Button children in an error boundary (#3340)
* Wrap Button children in an error boundary

* Check for Trans component
2024-03-22 12:14:47 -05:00
Eric Bailey f04932140a Fix crash during onboarding (#3338)
* Fix crash during onboarding

* Fix other usage
2024-03-22 11:32:49 -05:00
Samuel Newman b27a0b8c97 Merge pull request #3337 from bluesky-social/samuel/scrollable-loggedoutlayout
Move scrollview to `LoggedOutLayout` to fix scrolling on web
2024-03-22 15:36:10 +00:00
Hailey 772d528145 fix android back after closing composer (#3330) 2024-03-22 08:16:34 -07:00
Samuel Newman 4ec434926e move auth flows scrollview to loggedin layout 2024-03-22 13:49:19 +00:00
Samuel Newman 6f2dfcb502 Merge pull request #3326 from bluesky-social/samuel/lowercase-i
Change Sign In -> Sign in on Splashscreen
2024-03-22 00:34:42 +00:00
Samuel Newman a3eab31bda Sign In -> Sign in 2024-03-21 22:24:37 +00:00
dan df7f9856bb Use logger.error instead of rethrow (#3323) 2024-03-21 14:39:19 -07:00
Eric Bailey 4d50aac4ee Release fixes (#3318)
* Fix error overflow

* await setSavedFeeds before setting birth date

* await birth date first instead of feeds

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-03-21 12:11:23 -07:00
Samuel Newman e874dd290e Merge pull request #3313 from bluesky-social/samuel/package-manager-field
Specify package manager in package.json
2024-03-21 17:25:40 +00:00
Eric Bailey 5f39ca3187 Mods UI fixes (#3296)
* Fix report dialog buttons on Android by adjusting styles

* Dry up label pref comp
2024-03-21 12:21:36 -05:00
Hailey 4ff2bb7aba Fix missing error on PostThread (#3295) 2024-03-21 10:16:04 -07:00
Eric Bailey eb0ee6ae1c Fix dialogs state references, fixes Android back button (#3314)
* Fix active/open dialogs state

* Improve close logic
2024-03-21 12:06:39 -05:00
dan 55fb81867b [Statsig] Protect against early logEvent call crashing (#3315)
* [Statsig] Check if initialized

* Never interrupt the caller
2024-03-21 17:01:55 +00:00
Eric Bailey 7503d83eaa Fix android splash jump (#3316)
* Setup translucent status bar of splash screen on android (#3300)

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

* Fix conflict better

---------

Co-authored-by: Eiichi Yoshikawa <edo@bari-ikutsu.com>
2024-03-21 11:53:01 -05:00
Samuel Newman a8ccc91335 Specify package manager in package.json 2024-03-21 16:00:36 +00:00
dan 396d183dfc [Statsig] Onboarding and routing events (#3302) 2024-03-21 11:04:02 +00:00
Hailey ad3dd9f6dc Fix problems with BottomSheet and the report dialog (#3297)
* use @discord/bottom-sheet

* add @types/invariant

* some progress on keyboard dialog

* rework

rework

add a comment

use discord bottom sheet

* remove `@gorhom/bottom-sheet`

* remove android specific code

* organize imports
2024-03-20 17:26:38 -07:00
Samuel Newman c649ee1afa Merge pull request #3217 from bluesky-social/samuel/alf-login
Use ALF for login & signup flow
2024-03-20 23:29:24 +00:00
Samuel Newman d2d4d3a092 bump pkg json version 2024-03-20 23:28:53 +00:00
Eric Bailey 6bf97d4fd5 Adjust DateField timezone offset 2024-03-20 17:44:31 -05:00
Eric Bailey 0dbc796ff6 Fix key error on choose account 2024-03-20 17:41:17 -05:00
Eric Bailey 19fab671a3 Move some things around 2024-03-20 17:25:08 -05:00
Samuel Newman 8ad813cd86 Merge pull request #3294 from bluesky-social/samuel/alf-splash
Use ALF for Splashscreen
2024-03-20 22:23:35 +00:00
Eric Bailey 58588efcea Bump button size on choose account 2024-03-20 17:18:07 -05:00
Eric Bailey b0fcfa563d Password flow tweaks 2024-03-20 17:14:13 -05:00
Eric Bailey 70f5cc6a9f Login form tweaks 2024-03-20 17:00:35 -05:00
Eric Bailey 5c08f0d95b Remove log 2024-03-20 16:46:37 -05:00
Eric Bailey bcffaffc07 StepInfo tweaks 2024-03-20 16:42:07 -05:00
Eric Bailey aa239451af Signup shell tweaks 2024-03-20 16:26:30 -05:00
Eric Bailey 6e1541f203 HostingProvider tweaks 2024-03-20 16:15:41 -05:00
Samuel Newman 94cc08929f fix pencil svg in asset folder 2024-03-20 20:18:31 +00:00
Samuel Newman 1d10946f54 sort imports for files related to this PR 2024-03-20 19:44:52 +00:00
Samuel Newman 823ce63796 Merge remote-tracking branch 'origin/main' into samuel/alf-login 2024-03-20 19:36:22 +00:00
Samuel Newman 81bc3ed4c3 Merge pull request #3189 from bluesky-social/samuel/sort-imports
Sort imports using eslint-plugin-simple-import-sort
2024-03-20 19:35:53 +00:00
Samuel Newman fb17afc99d dismiss keyboard when opening dialog 2024-03-20 18:02:18 +00:00
Samuel Newman cf9d884b5b use inlinelink instead of textlink 2024-03-20 17:22:36 +00:00
Samuel Newman eacd1cbe2a use alf for splashscreen (web) 2024-03-20 17:11:59 +00:00
Samuel Newman adcd097136 use alf for splashscreen (native) 2024-03-20 17:11:41 +00:00
Samuel Newman 708d0fe3e1 skip initial entering animation for login 2024-03-20 16:10:07 +00:00
Samuel Newman a0839723ee login form back button goes to chooseaccount conditionally 2024-03-20 15:58:54 +00:00
Samuel Newman 6d1307fdc7 rm extra atom 2024-03-20 15:54:55 +00:00
Samuel Newman 4c60d4d070 remove unnecessary group component 2024-03-20 15:42:39 +00:00
Samuel Newman 09e9769eea add logEvent that got lost in merge from main 2024-03-20 15:40:03 +00:00
Samuel Newman d24ffba01d Merge remote-tracking branch 'origin/main' into samuel/alf-login 2024-03-20 15:37:14 +00:00
Paul Frazee 023e12bb4e Run intl:extract (again) 2024-03-19 20:30:03 -07:00
Paul Frazee 832d5734b4 Merge branch 'main' of github.com:bluesky-social/social-app into main 2024-03-19 20:29:13 -07:00
dan 20337ceef1 [Statsig] Track active time (#3289) 2024-03-19 20:25:37 -07:00
Paul Frazee b5bda17812 Merge branch 'main' of github.com:bluesky-social/social-app into main 2024-03-19 20:24:18 -07:00
dan 3d8d1dd173 [Statsig] Track login/logout (#3286)
* [Statsig] Track login/logout

* Fix missing attribution
2024-03-19 20:24:05 -07:00
Paul Frazee 6255e33b50 Run intl:extract 2024-03-19 20:22:52 -07:00
Paul Frazee 2e2fae378a Set keyboardDismisMode to interactive on the report dialog (#3288) 2024-03-19 20:21:25 -07:00
dan b6c9d34e45 [Statsig] Track feed refresh (#3283) 2024-03-19 17:56:31 -07:00
Paul Frazee 54f424d047 Various e2e test fixes (#3284)
* Just use the first picture every time

* Add missing testIDs

* Various test fixes

* Use simplified link fetcher for e2e

* Disable tests for now-n

* Update test-env creation
2024-03-19 17:54:40 -07:00
Hailey a90566d864 use different labels for porn and sexual (#3282)
* use different labels for `porn` and `sexual`

* newline
2024-03-19 17:47:10 -07:00
Samuel Newman 2fa26ceedc hog FormError 2024-03-19 22:16:29 +00:00
Samuel Newman 49cd7e4bcf add pressed state and rm cloneElement 2024-03-19 22:06:59 +00:00
Samuel Newman 1f02ed5d87 change choose account form to use Button + add hover styles 2024-03-19 22:03:49 +00:00
Samuel Newman 2428d22368 change hosting provider and forgot pw touchables to button 2024-03-19 21:58:53 +00:00
Paul Frazee bdf77f8548 Fix detection of !no-unauthenticated (#3279) 2024-03-19 14:43:00 -07:00
Samuel Newman 8556016a69 remove textfield references from hosting provider 2024-03-19 21:37:12 +00:00
cdfzo 43be4f7d3d Fix typo in tagMenuSearchByUser (#3181) 2024-03-19 14:32:59 -07:00
Samuel Newman 717c53bea8 remove explicit height/width 2024-03-19 21:30:41 +00:00
Samuel Newman fd448a5fab rename pencil -> pencilLine and reexport 2024-03-19 21:28:18 +00:00
Samuel Newman 793710b02b rm package manager field 2024-03-19 21:14:51 +00:00
Samuel Newman 8b5279ce15 animate login spinner 2024-03-19 21:10:31 +00:00
Eric Bailey 89709949ab Bump sdk for mute words updates (#3277) 2024-03-19 14:08:07 -07:00
Paul Frazee f2fc654f34 Merge branch 'alexkuz-web-fix-fonts-and-image-box' into main 2024-03-19 14:07:36 -07:00
Paul Frazee e433a1c968 Remove dead style 2024-03-19 14:06:04 -07:00
Paul Frazee a2ed2c3b22 Merge branch 'web-fix-fonts-and-image-box' of https://github.com/alexkuz/social-app into alexkuz-web-fix-fonts-and-image-box 2024-03-19 14:05:43 -07:00
Samuel Newman b226f41560 use in-button spinner instead of activity indicator 2024-03-19 20:56:13 +00:00
Hailey ccf53af2ba Prevent linking to post from an embed in composer (#3275) 2024-03-19 13:26:25 -07:00
dan ebf8644df9 Track notification open (#3274) 2024-03-19 13:19:11 -07:00
Dovgonosyk 0cac671e8a Update Ukrainian translation (#2951)
Co-authored-by: Ukrainians <github-actions@github.com>
2024-03-19 13:13:27 -07:00
surfdude29 69f8ea80f8 Fix typos and clarify two accessibilityHints (#2923)
* Clarify accessibilityHint in Settings

* Fix typo in ModerationMutedAccounts.tsx

* Fix typo in ModerationBlockedAccounts.tsx

* fix lint error in ModerationMutedAccounts.tsx

* try again

* fix lint error in index.tsx

* try again

* Update index.tsx

* Update index.tsx

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2024-03-19 13:11:48 -07:00
dan 5bec587717 [Statsig] Include OS and track app state changes (#3273)
* Include platform in identify

* Track back/foregrounding
2024-03-19 13:11:26 -07:00
Paul Frazee e9222a9d97 Merge branch 'jaoler-main' into main 2024-03-19 13:04:52 -07:00
Paul Frazee 40908e9ce7 Fix formatting 2024-03-19 13:04:45 -07:00
Paul Frazee 5dc41eb0d9 Merge branch 'main' of https://github.com/jaoler/Bluesky-app-Finnish-translations into jaoler-main 2024-03-19 13:04:06 -07:00
Paul Frazee d966b3e425 Fix merge error 2024-03-19 12:56:29 -07:00
Samuel Newman 10943b4ff4 fix merge issue (double hook) 2024-03-19 19:52:27 +00:00
Samuel Newman 4794ab6b9a Merge remote-tracking branch 'origin/main' into samuel/alf-login 2024-03-19 19:51:35 +00:00
Hailey a1c4f19731 Use ALF for signup flow, improve a11y of signup (#3151)
* Use ALF for signup flow, improve a11y of signup

* adjust padding

* rm log

* org imports

* clarify allowance of hyphens

Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>

* fix a few accessibility items

* Standardise date input across platforms (#3223)

* make the date input consistent across platforms

* integrate into new signup form

* rm log

* add transitions

* show correct # of steps

* use `FormError`

* animate buttons

* use `ScreenTransition`

* fix android text overflow via flex -> flex_1

* change button color

* (android) make date input the same height as others

* fix deps

* fix deps

---------

Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-03-19 12:47:46 -07:00
Ivan Beà 5621c80425 Update catalan localization messages.po (#2904)
* Update catalan localization messages.po

Localization of new lines

* Update messages.po

* Update messages.po

Corrections applied
2024-03-19 12:44:22 -07:00
Leonid 0e2619f7d5 Update zh-CN translation to latest version (#2901)
* Update Chinese translation for "followed you" message

* Update translations for zh-CN locale

* Update messages.po

* Delete empty line

* Add translations in messages.po

* fix some issue

* Apply suggestions from code review

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* accept suggestions

* unify translations

* Update Chinese translations for Navigation and PreferencesHomeFeed

* Update translations

* merge latest translations

---------

Co-authored-by: Frudrax Cheng <i@cynosura.one>
2024-03-19 12:43:41 -07:00
Paul Frazee d14be05922 Merge branch 'Titianbeetle-main' into main 2024-03-19 12:42:43 -07:00
Paul Frazee 0ae9da83df Merge branch 'main' of https://github.com/Titianbeetle/social-app into Titianbeetle-main 2024-03-19 12:42:37 -07:00
Gildásio Filho f685f9c8c0 Update pt-BR localization to latest version (#2876)
* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update src/locale/locales/pt-BR/messages.po

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>

* Update messages.po

---------

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>
2024-03-19 12:31:33 -07:00
Paul Frazee 9e4f81b156 Merge branch 'quiple-patch-3' into main 2024-03-19 12:29:57 -07:00
Paul Frazee 14982b9393 Merge branch 'patch-3' of https://github.com/quiple/social-app into quiple-patch-3 2024-03-19 12:29:22 -07:00
Minseo Lee dac73cbeea Update Korean localization (#2769)
* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update src/locale/locales/ko/messages.po

Co-authored-by: Lens0021 / Leslie <lorentz0021@gmail.com>

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

---------

Co-authored-by: Lens0021 / Leslie <lorentz0021@gmail.com>
Co-authored-by: Daniel S. Park <soohan@heartade.dev>
2024-03-19 12:24:23 -07:00
Eric Bailey dfe88e1656 Use consistent avatar shape/defaults for labelers (#3257)
* Add type: labeler to easy spots

* Search and ProfileCard

* Filter out of suggested follows

* ComposeReplyTo

* PReviewable avatar in posts

* Lists

* PostMeta

* Notifications

* Autocomplete

* Straggler

* Bump sdk
2024-03-19 12:18:57 -07:00
Hailey b9474a5d55 ProfileFollows and ProfileFollowers cleanup (#3219)
* cleanup PostThread

rm some more unnecessary code

cleanup some more pieces

fix `isLoading` logic

few fixes

organize

refactor `PostThread`

allow chaining of `postThreadQuery`

Update `Hashtag` screen with the component changes

Make some changes to the List components

adjust height and padding of bottom loader to account for bottom bar

* rm unnecessary chaining logic

* maxReplies logic

* adjust error logic

* use `<` instead of `<=`

* add back warning comment

* remove unused prop

* adjust order

* implement list improvements for followers/follows

* update prop name

* small adjustments

fix flex

add window size

adjust isLoading

* remove log

* don't show retry for no results

* don't show error if `isLoading`
2024-03-19 12:11:20 -07:00
Hailey addd66b37f PostThread cleanup (#3183)
* cleanup PostThread

rm some more unnecessary code

cleanup some more pieces

fix `isLoading` logic

few fixes

organize

refactor `PostThread`

allow chaining of `postThreadQuery`

Update `Hashtag` screen with the component changes

Make some changes to the List components

adjust height and padding of bottom loader to account for bottom bar

* rm unnecessary chaining logic

* maxReplies logic

* adjust error logic

* use `<` instead of `<=`

* add back warning comment

* remove unused prop

* adjust order

* update prop name

* don't show error if `isLoading`
2024-03-19 12:10:10 -07:00
Hailey 07e6d001a2 patch-fix RCTRefreshControl (#3259) 2024-03-19 12:05:28 -07:00
Hailey 2255d21bda prevent duplicate pickers from opening on android (#3240)
* prevent duplicate pickers from opening on android

* revert unnecessary changes

* test

* one more test
2024-03-19 12:03:16 -07:00
Hailey 5e0a6a12ff Update trusted hosts, allow #, and add more tests (#3232)
* Update trusted hosts, allow `#`, and add more tests

* update comments
2024-03-19 12:01:54 -07:00
Eric Bailey 5b4b8e47d9 Use default label prefs for pwi (#3271) 2024-03-19 11:39:56 -07:00
Paul Frazee c9c3bd98b7 Rework the labeler selection step of the report flow (#3269)
* Rework the labeler selection step of the report flow

* Fix: use gtMobile

* Use primitives, fix avatar

* Spacing tweaks

* Show handle instead of description

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-03-19 11:38:17 -07:00
Hailey 9277282e6c add expo-updates github action (#3270)
* add expo-updates github action

* add two scripts
2024-03-19 11:18:22 -07:00
surfdude29 a02d5f9eb9 Update French translation (#3117)
* Update French translation

* Apply suggestions from code review

Co-authored-by: Stanislas Signoud <signez@stanisoft.net>

* Update src/locale/locales/fr/messages.po

Co-authored-by: Stanislas Signoud <signez@stanisoft.net>

* Change `étiquette` to `mot-clé`

* Change other usages of `actualité` to `actu`

* Update messages.po

* Change certain space characters to non-breaking spaces

* Update src/locale/locales/fr/messages.po

* Update src/locale/locales/fr/messages.po

Co-authored-by: Stanislas Signoud <signez@stanisoft.net>

* Update messages.po

* Remove superseded strings and match some

* Add new translations

* Update revision date

---------

Co-authored-by: Stanislas Signoud <signez@stanisoft.net>
2024-03-19 11:08:33 -07:00
surfdude29 1cefe70ebe Update German translations (#2917)
* Update German translations

* Apply suggestions from code review

Co-authored-by: Felix Siebeneicker <felix.siebeneicker@outlook.de>

* Further suggestions from code review

* Apply further suggested change

* Apply suggestions from code review

* Apply suggested changes from PythooonUser

* Update src/locale/locales/de/messages.po

* Apply suggestions from code review

Co-authored-by: cdfzo <cdfzo@pm.me>

* Apply suggestions from @cdfzo's code review manually

* Apply suggestion from @cdfzo's code review manually

* Update messages.po

* Update src/locale/locales/de/messages.po

Co-authored-by: Felix Siebeneicker <felix.siebeneicker@outlook.de>

* Update messages.po

* Apply suggestions from code review

Co-authored-by: Felix Siebeneicker <felix.siebeneicker@outlook.de>

* Update src/locale/locales/de/messages.po

* Update messages.po

* Change `Benachrichtigungen` to `Mitteilungen` in line with #2805

* Apply suggestions from code review

Co-authored-by: Felix Siebeneicker <felix.siebeneicker@outlook.de>

* Apply suggestions from code review

Co-authored-by: Felix Siebeneicker <felix.siebeneicker@outlook.de>

* Change four usages of Benutzerhandle

* Update messages.po

* Update src/locale/locales/de/messages.po

* Add credits

* Update messages.po

* Add new translated strings following merge

* Update messages.po

* Update messages.po

* Update german translations by @cdfzo

* Update german translations

* Apply suggestions from code review

Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>

* Correct translations from pr review

---------

Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>

* Update revision date of messages.po

* Update messages.po

* Update messages.po

* Delete superseded strings

* Add new translations

* Update messages.po

* Apply suggestions from code review

Co-authored-by: cdfzo <cdfzo@pm.me>

* Apply suggested change from code review by @cdfzo

* Update revision date of messages.po

---------

Co-authored-by: Felix Siebeneicker <felix.siebeneicker@outlook.de>
Co-authored-by: cdfzo <cdfzo@pm.me>
2024-03-19 11:07:26 -07:00
Eric Bailey b622f63918 Mobile mod label setting component (#3267)
* Mobile mod label setting component

* Bump label title size

* Dont show disabled label config on mobile

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2024-03-19 09:56:11 -07:00
Samuel Newman bd8d8fb9f1 change error to warn 2024-03-19 16:13:15 +00:00
Eric Bailey 877eab0fe3 Fix space on bottom of mod screen (#3266)
* Fix space on bottom of mod screen

* fix PWI label overflow + center loader (#3268)

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-03-19 11:04:41 -05:00
Samuel Newman b6903419a1 simplify gotoForm 2024-03-19 15:31:00 +00:00
Samuel Newman 49a392bfb3 rm useless function wrap 2024-03-19 15:29:25 +00:00
Samuel Newman 08d12d9a3d move FormError to components/forms 2024-03-19 15:28:06 +00:00
Samuel Newman f491bd89cc Merge remote-tracking branch 'origin/main' into samuel/alf-login 2024-03-19 15:18:29 +00:00
Hailey 2a5b0ab2ac add Partial<GestureResponderEvent> to .open() (#3227) 2024-03-19 08:14:29 -07:00
Eric Bailey 8ac5144a58 Bday modal tweaks (#3252)
* Smol tweaks to bday dialog

* Juse use existing DateInput for now

* Remove unused code

* Remove passed-in prefs

* Adjust load state

* Revert "Adjust load state"

This reverts commit 802459fd04.

* Fix type error
2024-03-19 09:57:14 -05:00
Hailey 4de8e8fa14 fix borders for labels tab (#3261)
* fix borders for labels tab

* rm entire wrapping view
2024-03-19 09:56:28 -05:00
Samuel Newman 9c49b209ca Merge pull request #3253 from bluesky-social/samuel/square-border-radii
Fix nested border radius issue on square avatars
2024-03-19 14:51:08 +00:00
Minseo Lee ad43d594c9 Merge remote-tracking branch 'upstream/main' into patch-3 2024-03-19 10:52:29 +09:00
Paul Frazee 3abf302b0b Bump @atproto/api@0.12.0 (#3260)
* Bump @atproto/api@0.12.0

* Fix unit tests
2024-03-18 17:46:25 -07:00
Paul Frazee 959121f394 Update the reporting flow to first select a recipient if the user has multiple labelers (#3258) 2024-03-18 16:15:57 -07:00
Paul Frazee 1b10c7bc08 Use entryway for labeler getServices (#3256) 2024-03-18 14:58:02 -07:00
Samuel Newman 248f51a977 change default avi to use a rect instead of a path 2024-03-18 20:08:58 +00:00
Samuel Newman 63fee70dfe change outer border radius to 10 2024-03-18 20:08:46 +00:00
Paul Frazee 20d463ff2f 3p moderation services [WIP] (#2550)
* 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>
2024-03-18 12:46:28 -07:00
Hailey d5ebbeb3fc Use [bot] in action username (#3250) 2024-03-18 09:59:39 -07:00
Samuel Newman 1dcd5c116f Merge pull request #3247 from bluesky-social/samuel/dynamic-translations
Fix instances of static translations (`t` macro)
2024-03-18 16:14:00 +00:00
Hailey 88ab83bd52 Properly fill container for YT Shorts videos (#3238)
account for jest

account for jest

yt iframe fill container
2024-03-18 09:09:08 -07:00
Samuel Newman 574c8b913d Add missing macro
Co-authored-by: Gildásio Filho <gildasiogx@gmail.com>
2024-03-18 16:01:48 +00:00
Hailey 79175e2a09 Fix PR labeler bot comment delete (#3249) 2024-03-18 08:40:43 -07:00
Samuel Newman fbfb78b860 change usage of t to msg 2024-03-18 14:37:30 +00:00
Alexander K 54dd4af312 remove scrollbar gutter for Chrome when body scroll is locked 2024-03-17 22:20:50 +01:00
Alexander K 0e3b2633b9 Add 'Liberation Sans' font for FireFox on Linux; lightbox buttons adjustments 2024-03-17 21:34:52 +01:00
Minseo Lee 73dae9f7b5 Update Modal.tsx 2024-03-16 17:17:54 +09:00
Minseo Lee 86d036cca8 Update Modal.tsx 2024-03-16 17:04:45 +09:00
Minseo Lee a3786ee5cd Update Modal.tsx 2024-03-16 17:02:05 +09:00
Minseo Lee 12d8f0071a Update ReasonOptions.tsx 2024-03-16 16:56:56 +09:00
Minseo Lee b4480738e3 Update ReasonOptions.tsx 2024-03-16 16:50:15 +09:00
Minseo Lee 7a0bf7266a Update Lists.tsx 2024-03-16 16:48:58 +09:00
Minseo Lee 6d57094c6a Merge branch 'bluesky-social:main' into patch-3 2024-03-16 16:23:04 +09:00
Samuel Newman d2a11f3344 translate error 2024-03-15 22:08:06 +00:00
Hailey 98bca69ae9 Adjust PR Labeler (#3224) 2024-03-15 13:42:51 -07:00
Hailey fa8b21cea7 Add package diff PR labeler (#3212)
* add PR labeler

* test cache

* rm change
2024-03-15 12:28:21 -07:00
Samuel Newman e30b3d9b3c Merge pull request #3218 from bluesky-social/samuel/alf-birthday
Use ALF for the birthday modal and remove legacy one
2024-03-15 16:45:17 +00:00
Hailey 39da1cd465 add padding to the ScrollableInner 2024-03-15 09:30:19 -07:00
Samuel Newman 38ea041136 change to scrollable inner 2024-03-15 16:22:09 +00:00
Samuel Newman 58ac22c45b make alignment platform specific rather than size specific 2024-03-15 16:21:15 +00:00
Samuel Newman 502df521c1 center date input 2024-03-15 16:03:08 +00:00
Samuel Newman 884f37c349 rename BirthdaySettings -> BirthDateSettings + remove legacy modal 2024-03-15 15:50:54 +00:00
Samuel Newman 577091d44d ALF the birthday modal and remove legacy one 2024-03-15 15:45:58 +00:00
Samuel Newman 273fe3e8e9 scrollview persist taps, autoFocus code 2024-03-15 14:21:38 +00:00
Samuel Newman 0f67be3627 animate transitions on web only 2024-03-15 14:21:15 +00:00
Samuel Newman e31fcb1a6d reenable set new password button 2024-03-15 13:54:23 +00:00
Samuel Newman 7d69570a44 run ticket through svgomg 2024-03-15 13:53:57 +00:00
Samuel Newman a1fc95f30e convert password reset flow 2024-03-15 13:49:13 +00:00
Samuel Newman f71ec52517 Merge remote-tracking branch 'origin/main' into samuel/alf-login 2024-03-15 12:11:34 +00:00
Minseo Lee 242b899f79 Merge branch 'bluesky-social:main' into patch-3 2024-03-15 15:38:31 +09:00
Hailey 4f8381678d Remove FixedTouchableHighlight , fix Android press issues (#3214)
* rm `FixedTouchableHighlight`

* adjust delay for highlight

* remove unnecessary background colors to support background ripple
2024-03-14 18:46:06 -07:00
Minseo Lee d9b94f54ef Merge branch 'bluesky-social:main' into patch-3 2024-03-15 08:59:56 +09:00
Samuel Newman 6279c5cf31 Merge pull request #3209 from bluesky-social/samuel/loggedout-warning-2
Add warning about sharing if post author has the !no-unauthenticated label
2024-03-14 18:52:47 +00:00
Samuel Newman 8316f97e27 fix collapsed input issue 2024-03-14 18:25:39 +00:00
Samuel Newman 78a836d2b1 add warning to profile as well 2024-03-14 15:30:40 +00:00
Samuel Newman 7bdaa624b7 use prompt.basic instead of full prompt 2024-03-14 15:30:27 +00:00
Minseo Lee 4813f26158 Merge branch 'bluesky-social:main' into patch-3 2024-03-14 21:11:00 +09:00
dan 1c25c76645 [Statsig] Track posting, end reached (#3206)
* Track post create

* Track feed endReached
2024-03-14 00:21:42 +00:00
Samuel Newman a06f6ada4e experiment: animate between screens 2024-03-13 23:47:01 +00:00
Samuel Newman 9f5289a101 alf the login form 2024-03-13 23:34:01 +00:00
dan 7eaa573b57 [Statsig] Track likes, reposts, follows (#3195)
* [Statsig] Track likes

* Move tracking to intent

* Track repost/unrepost

* Track profile follows/unfollows

* Less copy paste

* Reorder
2024-03-13 22:31:51 +00:00
Samuel Newman f5b39f2755 convert base login component and ChooseAccountForm 2024-03-13 22:16:32 +00:00
Hailey db79c918b2 1.73 Version Bump (#3200) 2024-03-13 12:06:03 -07:00
Samuel Newman 44b3a37f65 Merge pull request #3201 from bluesky-social/samuel/handle-invalid-files
Filter out non-image files from image picker
2024-03-13 17:59:03 +00:00
Samuel Newman 8c7f813d87 filter out files with non-image mime types 2024-03-13 17:38:37 +00:00
Samuel Newman 41b10e3df5 forgot to save comment whoops 2024-03-13 15:51:55 +00:00
Samuel Newman 4d2efd84e4 sort relative imports and move unprefixed ones 2024-03-13 15:49:24 +00:00
Samuel Newman 70c76a76a0 add custom import order 2024-03-13 14:50:25 +00:00
dan f1d55f49fa Send route name with Statsig events (#3194)
* Add types to Statsig events

* Send route name with events
2024-03-13 03:29:03 +00:00
Samuel Newman 125ef1c756 Revert "run linter"
This reverts commit 1512b5cf68.
2024-03-13 01:55:14 +00:00
Minseo Lee 1760043f79 Update index.tsx 2024-03-13 10:41:38 +09:00
Minseo Lee 2938a1397e Update index.tsx 2024-03-13 10:41:34 +09:00
Minseo Lee 3ead08ab26 Merge branch 'bluesky-social:main' into patch-3 2024-03-13 10:30:07 +09:00
Eric Bailey 653240bc05 Tweak prompt styles on mobile web (#3193) 2024-03-12 20:12:45 -05:00
dan 7af338ed21 Unfork Statsig for web (#3192) 2024-03-13 00:33:47 +00:00
Eric Bailey 202adb6d7b Fix dropdown close via a portaled backdrop (#3191) 2024-03-12 19:25:58 -05:00
Eric Bailey 5c771050bc Fix sensitivity while scrolling (#3190) 2024-03-12 19:10:44 -05:00
Hailey 9f2f7f221c ALF confirmation dialogs (Dialogs Pt. 3) (#3143)
* 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>
2024-03-12 16:56:14 -07:00
Samuel Newman 1512b5cf68 run linter 2024-03-12 22:02:28 +00:00
Samuel Newman a3c09f9f86 add and configure import sort plugin 2024-03-12 21:57:56 +00:00
Hailey 090b35e52e Use new menu for Profile (#3168)
* use new menu on profile

* organize imports

* fix testID

* add person icons

* use `style` prop for minWidth

* use new icons

* rm circleban

* Add unfollow option if account is blocked/blocking

* use `StyleProp` 🤯

* ts after merge

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-03-12 14:06:12 -07:00
Alice 70ad820d64 npx update-browserslist-db@latest (#3166)
Should silence the annoying warning for a bit.
2024-03-12 20:39:24 +00:00
Eric Bailey eeba0387b7 Small fixes (#3184)
* Fix alignment of MutedWords close button

* Add cancel button to dropdowns

* Revert "Add cancel button to dropdowns"

This reverts commit b8f5ddce92.
2024-03-12 14:33:02 -05:00
Eric Bailey c9d821c572 Combine actions, convert to new menu (#3174)
* Combine actions, convert to new menu

* remove about tab and move content to header

* Tweak alignment

* fix missing rkey

* hog the like button

* Add a little more whitespace

* Improve a11y

* Yeah toast

* Update usage

* Pin to Home

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-03-12 13:50:53 -05:00
Hailey 8123299192 Convert profile edit avatar/banner dropdown menus to new menu (#3177)
* convert profile edit dropdown menu to new menu

fix banner text

add `showCancel` prop to menu outer

banner dropdown to menu

add Cancel button to menu

replace user avatar dropdown with menu

add StreamingLive icon

add camera icon

* remove export

* use new camera icon

* adjust icon color
2024-03-12 10:17:27 -07:00
Hailey 80cc1f18a2 Save image to user media library when taken from camera during composing (#3180)
* save images to media library when taken from camera

* ensure we have access to media library

* `canAskAgain`

* just use MediaLibrary directly to avoid duplication
2024-03-12 09:46:43 -07:00
Hailey ee57d74765 Dedupe navigation events (push, navigate, pop, etc) (#3179) 2024-03-12 09:46:25 -07:00
Eric Bailey b8afb935f4 Unwrap Menu.Trigger on web (#3182) 2024-03-12 11:23:01 -05:00
Samuel Newman 17d921fd9d Merge pull request #3178 from bluesky-social/scrolltotop-overlap
Move scroll to top button inline if viewport is narrow (vertically)
2024-03-12 15:22:40 +00:00
Minseo Lee 2456ca828f Merge branch 'bluesky-social:main' into patch-3 2024-03-12 16:24:32 +09:00
Samuel Newman 1c9debed9a move imports to top 2024-03-12 00:30:02 +00:00
Samuel Newman f3619cf9f9 move button inline if viewport is small (vertically) 2024-03-12 00:21:48 +00:00
Paul Frazee c1c7a55fd5 Update po files 2024-03-11 14:26:18 -07:00
Hailey c83fe94f41 Fix onboarding FeedCard text overflow (#3176) 2024-03-11 12:57:37 -07:00
Hailey 3a6e58ba6e Fix lineHeight problems on native with new Text (#3175) 2024-03-11 12:54:51 -07:00
Hailey a289e6bce5 only include localhost:19006 as intent filter on android (#3167) 2024-03-11 11:57:23 -07:00
Hailey e4a1069b43 await share before closing menu (#3173) 2024-03-11 10:42:37 -07:00
Jan-Olof Eriksson 4a2251f48b Merge branch 'bluesky-social:main' into main 2024-03-11 14:52:33 +02:00
Alice 596e744d41 Fix button widths in the Settings on web (#3165)
* Fix button widths in the Settings on Web
Had to set `box-sizing: content-box` because
in certain translations the buttons would
become multiline.

Fixes #3060.

* you know what. whatever. i didn't want to be able to change box-sizing anyways. i'm perfectly happy with this workaround.

* ...

* flex-grow: 1
2024-03-10 15:00:51 -07:00
Minseo Lee 236223d02a Merge branch 'bluesky-social:main' into patch-3 2024-03-10 22:50:48 +09:00
Eric Bailey 1aaed1cc0d Fix font styles on web (#3162) 2024-03-09 15:42:42 -08:00
Alice f6685419d8 Fix aria-label on the Share button (#3159)
It had the same one as the Like button for some reason
2024-03-09 13:07:56 -08:00
Eric Bailey 594958c6dc Fix RSS URLs treated as internal (#3156)
* Fix RSS URLs treated as internal

* Add utils to patch relative RSS external links

* modify router to support multiple paths

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-03-09 10:35:23 -06:00
dan aad8c080ed Poll Statsig for config changes (#3158) 2024-03-08 16:29:31 -08:00
Hailey 7899a6fd09 Fix missing check for invite code (#3157) 2024-03-08 15:25:33 -08:00
Hailey 62e57c3b08 Adjustments to ALF prompt buttons (Dialogs Pt. 2) (#3144)
* Improve a11y on ios

* Format

* Remove android

* Fix android

* small adjustment to buttons in prompt

* full width below gtmobile

* Revert some changes

* use sharedvalue for `importantForAccessibility`

* add back `isOpen`

* fix some more types

* small adjustment to buttons in prompt

* full width below gtmobile

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-03-08 14:43:28 -08:00
Hailey 8ee325e73d Make ALF prompt scrollable for accessibility (#3150)
* make alf prompt scrollable

* padding
2024-03-08 14:31:50 -08:00
Hailey 0f9f08b1ef Fix reactivity of dialogs (Dialogs Pt. 1) (#3146)
* 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>
2024-03-08 14:31:24 -08:00
Eric Bailey 8f623c3bdf Refactor PostDropdownBtn to use new Menu (#3112)
* Refactor PostDropdownBtn

(cherry picked from commit 0adf6cb75e3d4b7c1630cf6153c0d7e289e1b859)

* Update icons

(cherry picked from commit ac89ef9b28721c00736b1388455f3f5f092de0ad)

* Port over fixes

* fix scrollbar disappearing

* Try CSS solution

* Disable arrow for now

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-03-08 14:45:59 -06:00
dan dd86d0964d Enable gating and experimentation on native, send init event (#3149)
* Add the mobile fork

* Add init event
2024-03-08 04:33:42 +00:00
Hailey 31826633cb rm waitlist modal, button during sign up (#3148) 2024-03-07 20:14:24 -08:00
dan c8e0fa9c97 Mark bundle start time on web (#3147)
* Mark bundle start time on web

* TS
2024-03-08 04:13:36 +00:00
Hailey 1cf49517b5 Allow all encoding for hashtags in URL (#3131) 2024-03-07 09:04:02 -08:00
Minseo Lee e74c46e9ab Merge branch 'main' into patch-3 2024-03-07 11:19:50 +09:00
Hailey 8b0e575f64 Adjust FlatList performance in main feeds (#3134)
* adjust flatlist perf settings

* calculate initial num to render based on screen height

* adjust window size

* don't react to screen height changes
2024-03-06 15:33:23 -08:00
Hailey 357b61d0a5 version bump (wait for release) (#3095) 2024-03-06 15:24:37 -08:00
Hailey d5b0a33ae3 Run extract and compile when building for web (#3132) 2024-03-06 12:27:49 -08:00
Hailey 800eecbfe4 fix internal links showing up as external pt2 (#3129)
* fix internal links showing up as external pt2

* fix internal links showing up as external pt2
2024-03-06 11:40:10 -08:00
Hailey 4e6020b88c fix internal links showing up as external (#3128)
* fix internal links showing up as external

* fix internal links showing up as external
2024-03-06 11:34:48 -08:00
Hailey 2d9a5db967 Switch date picker libraries (#3126)
* Revert other base PR changes, switch date picker library

rm expo-linear-gradient

Revert "remove unused packages, switch to `expo-linear-gradient`"

This reverts commit 20a0ffcf

Revert "upgrade expo deps"

This reverts commit a43dca92ca.

Revert other library changes

This reverts commit 5219f66e

Revert "re-add normalize-url"

This reverts commit 654019c4ba.

Revert "add `expo-haptics`"

This reverts commit ff3a0399b1.

Revert "add `expo-clipboard`"

This reverts commit 440ae91632.

Revert "add `expo-file-system`"

This reverts commit c0fe0c9453.

fix android alf

use modal on android

migrate to `react-native-date-picker`

rm `@reactnativecommunity/datetimepicker`

add `react-native-date-picker`

add `expo-file-system`

add `expo-clipboard`

add `expo-haptics`

re-add normalize-url

rm blur view

upgrade expo deps

remove unused packages, switch to `expo-linear-gradient`

* rm old library

* Use UTC for dates

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-03-06 13:13:03 -06:00
Hailey b8f36a8bca Fix double border on web hashtag list (#3091)
* add `topBorder` to Views.tsx

* fix double border
2024-03-06 11:02:48 -08:00
Jake Gold 7a592d8140 bskyweb: remove waitlist email endpoint (#3127) 2024-03-06 10:33:41 -08:00
Eiichi Yoshikawa f61d1e1f94 Apply notification icon settings of FCM on Android (#3113)
Co-authored-by: Hailey <me@haileyok.com>
2024-03-06 10:24:08 -08:00
dan 5b8d116e33 By default, hide replies to people you don't follow in the Following feed (#3124)
* Show replies from followed by default

* Update @atproto/api
2024-03-06 17:27:59 +00:00
dan 2e0f806441 Fix jumpy moderation icon on desktop (#3125) 2024-03-06 16:12:37 +00:00
Minseo Lee f3db23a3b1 Merge branch 'bluesky-social:main' into patch-3 2024-03-06 19:38:48 +09:00
Minseo Lee 0c6a82062f Update src/view/screens/Settings/index.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
2024-03-06 19:38:23 +09:00
Minseo Lee 4a858bacd6 Update src/view/screens/Settings/index.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
2024-03-06 19:38:13 +09:00
dan eb298d2e60 Initial feature gating and A/B testing integration (#3122)
* Add statsig dependency

* Add SDK provider

* Move to separate file, add tier and hashing

* Disable local storage for now

* Add initial gate testing fixture

* Fork for web just in case

* More WIP

* wip

* Rm test gate

* Add shim on native

* Clarify
2024-03-06 05:55:34 +00:00
Eiichi Yoshikawa 26fc0cf66d Improve splash display on android (#3105)
* Set window background during startup on android

* Set statusbar color to transparent and fine-tune it
2024-03-05 21:28:27 -08:00
Eric Bailey 317e0cda7a Add Menu component (#3097)
* Add POC menu abstraction

* Better platform handling

* Remove ignore

* Add some menu items

* Add controlled dropdown

* Pass through a11y props

* Ignore uninitialized context

* Tweaks

* Usability improvements

* Rename handlers to props

* Add radix comment

* Ignore known type

* Remove todo

* Move storybook item

* Improve Group matching

* Adjust theming
2024-03-05 21:15:42 -06:00
Hailey e721f84a2c add newArchEnabled: false flag to app.config.js (#3115) 2024-03-05 18:55:23 -08:00
Hailey 57854e6fc2 use onClose instead of onChange for close callback (#3116) 2024-03-05 16:55:20 -08:00
dan 20b88f43e2 Hide feeds topbar on scroll (#3108) 2024-03-05 16:45:08 +00:00
Eric Bailey 6c9d6f5b05 Improve dialogs a11y (#3094)
* Improve a11y on ios

* Format

* Remove android

* Fix android
2024-03-04 15:37:11 -06:00
Eric Bailey ebd279ed68 Don't warn on internal links (#3089)
* Don't want on internal links

* Just disable mismatch for this inline link
2024-03-04 09:25:47 -08:00
Jan-Olof Eriksson cbc65247ae Add files via upload 2024-03-04 19:09:47 +02:00
Jan-Olof Eriksson 521530eeb6 Update messages.po
Updated latest strings
2024-03-04 19:05:03 +02:00
Jan-Olof Eriksson c52635c578 Update messages.po 2024-03-04 19:04:04 +02:00
Jan-Olof Eriksson e8bc44e166 Update messages.po
Updated new strings
2024-03-04 19:02:48 +02:00
Jan-Olof Eriksson e724ab8123 Merge branch 'bluesky-social:main' into main 2024-03-04 18:11:00 +02:00
Gabriella 4022598692 Update messages.po
Updated two expression
2024-03-03 12:47:39 +01:00
Minseo Lee d0438b6b28 Update Lists.tsx 2024-03-02 13:26:21 +09:00
Minseo Lee ab2b454be8 Merge branch 'bluesky-social:main' into patch-3 2024-03-02 13:04:51 +09:00
dan b70c404d4b Sticky desktop header (#3077) 2024-03-01 18:40:47 -08:00
dan f2249614be Fix Profile tab switch jumps on Chrome (#3076) 2024-03-02 01:34:43 +00:00
Hailey b07846f2fa Revert "Enable tags inside of quotes (#3041)" (#3075)
This reverts commit f016cdbca9.
2024-03-01 17:15:45 -08:00
Hailey 4fc0b566ef dismiss keyboard on touch mute dialog (#3074) 2024-03-01 17:15:20 -08:00
Eric Bailey 2962862de2 Theme tweaks (#3004)
* Improve contrast using existing scale

* Make it mathy

* Tweaks

* Adjust noty

* Remove console

* Cleanup

* Match saturation

* Replace usages of tokens with correct palette

(cherry picked from commit 1d9c7079dc25dfa492bd482c1c7661ea2e822d68)

* Replace other colors, tweak usages

(cherry picked from commit df97f249b2f140bbc010449fddb011a31795919a)

* Last couple things

(cherry picked from commit 3b5cee131f68ea8f4125f2c32b9a4b20f5b91086)

* fix "Users" being the wrong color on user list about

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-03-01 16:06:59 -08:00
Hailey 411061ea32 Fix backdrop issues by using custom logic (#3072)
* use custom backdrop

* use custom backdrop

* org imports

* rm log
2024-03-01 16:04:46 -08:00
Hailey f016cdbca9 Enable tags inside of quotes (#3041)
* enable tags for quote posts

* mentions too

* just disable pointer events instead

* apply fix for both web and native

* minimize diff
2024-03-01 16:04:20 -08:00
Hailey e950463f71 Fix new post button on web after following intent URL (#3044)
* Fix new post button on web after following intent URL

* Ensure that `routes` exists before attempting to use it
2024-03-01 16:04:06 -08:00
Hailey 8bf40b46a0 Simplify intent path logic, ensure all variations work for bluesky://, bluesky:///, and https://bsky.app/ (#3045)
* Simplify intent path logic, ensure all variations work

* use startsWith
2024-03-01 16:03:53 -08:00
Eric Bailey a7195ccbd6 Fix muting of embedded data (#3071) 2024-03-01 16:03:34 -08:00
Hailey 82655f2ee3 Few list tweaks on web (#3062)
* share button only on native

* update gttablet to be 1300px

* improve web layout

* change re-layout to mobile breakpoint

* adjustable not found reason

* don't show the borders on mobile web

* slight padding for the spinner
2024-03-01 15:47:59 -08:00
Eric Bailey e11bd4385d Integrate new tag detection and regexes (#3063)
* Integrate new tag detection and regexes

* Bump SDK

* Can use const

* Clarify intent

* Enhance clarity
2024-03-01 15:50:14 -06:00
Eric Bailey f8aa5fd005 Fix icons on blurred posts (#3068) 2024-03-01 15:50:04 -06:00
Gabriella fb8a7e37f4 Update messages.po
Changed a longer sentence for a shorter version in order to fit on the app screen.
2024-03-01 10:52:50 +01:00
Hailey cf8b03801f Dedicated screen for hashtags, POC ALF list (#3047)
* create dedicated hashtag "search" screen

clarify loading component name

more adjustments

rework `ViewHeader` to keep chevron centered w/ first line

adjustments

adjustments

use `author` instead of `handle` in route

add web route for url

add web route for url

Add desktop list header

support web

keep header lowercase

add optional subtitle to view header

correct isFetching logic

oops

use `isFetching` for clarity in footer

combine logic

update bskyweb

finish screen

style, add footer, add spinner, etc

add list

add header, params

create a screen

* add variable to server path

* localize `By`

* add empty state

* more adjustments

* sanitize author

* fix web

* add custom message for hashtag not found error

* ellipsis in middle

* fix

* fix trans

* account for multiple #

* encode #

* replaceall

* Use sanitized tag

* don't call function in lingui

* add share button

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-02-29 17:56:29 -08:00
Hailey 8900c67df2 Bump version to 1.71 (#3057) 2024-02-29 17:56:08 -08:00
Eric Bailey cecb6e4e69 Bump API SDK, add validation to MutedWords (#3055)
* Bump API SDK, add validation to MutedWords

* Tweaks to error state

* Comment

* Early return
2024-02-29 19:30:30 -06:00
Mary 21bdddcfbe Reset button/input font set by UA (#3038)
* fix: reset button/input fonts set by UA

* fix: inherit line-height as well
2024-02-29 17:30:17 -06:00
Hailey 04d4c9779f Dismiss keyboard when closing dialog (#3053) 2024-02-29 15:27:00 -08:00
Hailey 39d324ab8b Fix link warnings (#3058)
* fix problems where www.bsky.app shows as a potential danger

* never default to disabling warning

* remove more defaults

* update storybook cases

* oops

* reverse
2024-02-29 15:23:28 -08:00
Eric Bailey 1a5afccdb8 Add TagMenu controls stub on web (#3028) 2024-02-29 10:31:45 -06:00
Gabriella ca20643ff8 Update messages.po
sentence updated
2024-02-29 14:14:46 +01:00
Jan-Olof Eriksson 963a44ab87 Merge branch 'bluesky-social:main' into main 2024-02-29 11:55:03 +02:00
Minseo Lee 537ae578d6 Update Search.tsx 2024-02-29 14:25:52 +09:00
Minseo Lee 200c4c1d37 Merge branch 'bluesky-social:main' into patch-3 2024-02-29 13:05:45 +09:00
Hailey a35976cdc9 Don't mute your own posts (#3037)
* Don't mute your own posts.

* fix and add tests
2024-02-28 18:41:23 -08:00
Eric Bailey 2440975bd2 Integrate new dialogs into old back handling (#3023) 2024-02-28 20:06:26 -06:00
Minseo Lee a1127bfcfc Merge branch 'main' into patch-3 2024-02-29 09:51:56 +09:00
Hailey 7fd13cacfe Remove Platform.select() (#3027) 2024-02-28 15:38:54 -08:00
Paul Frazee 442eb135ee Add /intent/compose to bskyweb (#3026) 2024-02-28 15:30:08 -08:00
Hailey c7de733dff always use utf8 offsets (#3024) 2024-02-28 13:28:27 -08:00
Hailey a697b39c48 add alf dialogs to useCloseAllActiveElements (#3021) 2024-02-28 11:46:19 -08:00
Hailey 60eb6e23d1 close open dialogs when deep linking to composer (#3020) 2024-02-28 11:35:59 -08:00
Eric Bailey d2c6edacb6 Protect against non functions being passed to close callback (#3019) 2024-02-28 11:27:54 -08:00
Eric Bailey 0c3d55db6f Improve muted word matching (#3018)
* Use name params

* Add language exception matching
2024-02-28 08:38:31 -08:00
Hailey 5cb45f9c16 fix collissions in uitextview (#3017) 2024-02-28 08:31:04 -08:00
dan d679ae7dbb Use selected feed for window title on Home (#3016) 2024-02-28 08:08:11 -08:00
dan 0dd3f9432b Fix wrong feed being shown (#3015) 2024-02-28 08:04:51 -08:00
Hailey 88c66c4bc5 fix app group in native code (#3014) 2024-02-28 07:58:13 -08:00
Minseo Lee b723c4ca7c Merge branch 'bluesky-social:main' into patch-3 2024-02-28 16:26:19 +09:00
Paul Frazee e2ae534fde Fix app config 2024-02-27 21:11:48 -08:00
Hailey ba667af80e add entitlements (#3013) 2024-02-27 21:09:59 -08:00
Hailey ffeef8fd49 update config (#3012) 2024-02-27 20:54:12 -08:00
Hailey 2a60faf4fe add dev team (#3011) 2024-02-27 20:34:11 -08:00
Minseo Lee 3767e76390 Merge branch 'bluesky-social:main' into patch-3 2024-02-28 13:03:55 +09:00
Hailey c4d30a0b7f please 🙏 (#3010) 2024-02-27 19:48:04 -08:00
Paul Frazee 00ac76d0fe Fix group id 2024-02-27 19:40:22 -08:00
Paul Frazee 622d0daad6 More entitlement fixes 2024-02-27 18:41:53 -08:00
Hailey ed2e6d654e Fix entitlements (#3008) 2024-02-27 18:34:09 -08:00
Paul Frazee 259468b7d5 Change application group to group.app.bsky 2024-02-27 18:29:59 -08:00
Paul Frazee 23347a832d Update po files 2024-02-27 17:35:52 -08:00
dan 2d14d0e2db Remove dangerous derived state from RichText (#3007)
* Remove facet resolution from RichText

* Remove derived state
2024-02-27 17:35:25 -08:00
dan 603f3c0be9 Safeguard posts from clobbered state (#3006) 2024-02-28 00:48:54 +00:00
dan 6bd68e5321 Fix keys within a slice (#3005)
Co-authored-by: Hailey <me@haileyok.com>
2024-02-28 00:19:13 +00:00
Hailey d451f82f54 Share Extension/Intents (#2587)
* 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
2024-02-27 15:22:03 -08:00
dan ac726497a4 Show tab bar on desktop web (#2998)
* Show tabbar on desktop

* Make bottom border always 1px

* Don't hide/show navbar when switching tabs

* two rows WIP

* Top bar tweaks

* Make scroll adjustement native-only

* Add new web scroll behavior
2024-02-27 14:55:25 -08:00
Eric Bailey 978bcc1ba9 Tags menu/muted words improvements (#3002)
* Fix translations

* Handle loooong words

* Truncate on desktop web, revert mobile changes

* Break the words

* Small enough for mobile web

* Fix alignment on mobile web

* Clarify
2024-02-27 14:04:49 -08:00
Hailey 6717f8f11e Compile locale before build on CI, fix the google-services.json variable for android builds (#3001)
* compile intl before building, fix android json var

* update intl:build
2024-02-27 13:31:44 -08:00
Hailey 2a04546c73 Intent handler (#2992)
* Handle URL params

* Add resources

* Add other params

* refactor for scope

* modify the pr to support intents rather than utm

remove linebreak

remove linebreak

handle web

adjust path check to work on web

add a short delay for opening the composer

setup compose intent, move to `intents` directory

fix intent logic

ignore incoming intents in the navigation router

* refactor

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-02-27 10:35:38 -08:00
Hailey c8d02a791a Log to Sentry whenever users encounter Bluesky feed errors (#2999) 2024-02-27 10:01:29 -08:00
Minseo Lee 41e69651f9 Update ChangePassword.tsx 2024-02-27 19:17:58 +09:00
Minseo Lee b2605d3908 Update ChangePassword.tsx 2024-02-27 19:17:47 +09:00
Gabriella eca1333b7c Update messages.po
Corrected small typo
2024-02-27 09:55:51 +01:00
Gabriella 505787e437 Update messages.po
Translation updated with minor corrections
2024-02-27 09:44:12 +01:00
Minseo Lee 8d394a3541 Merge branch 'main' into patch-3 2024-02-27 14:39:41 +09:00
Eric Bailey 58aaad704a Add tags and mute words (#2968)
* 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>
2024-02-26 20:33:48 -08:00
Hailey c8582924e2 Scale back sentry logs for trivial events (#2997)
* scale back sentry logs

* update migrate log tests
2024-02-26 20:19:06 -08:00
dan 1a34921661 Tweak tabbar sizing on web (#2996) 2024-02-27 03:56:25 +00:00
dan 3ec4e034b7 Fix imprecise header height calculation (#2995)
* Remove dead code

* Fix header height calculation
2024-02-27 02:33:23 +00:00
Vinayak Kulkarni 771999761e feat(nvm): add support for nvm & minor actions housekeeping (#2979)
* feat: add `.nvmrc` for specifying node version

Co-Authored-By: Evandro Leopoldino Gonçalves <evandrolgoncalves@gmail.com>

* chore(deps): bump setup-node to v4

* build: use node-version-file instead of hardcoded 18.x

* chore(deps): bump nvm version

* fix: checkout before install 🎉

---------

Co-authored-by: Evandro Leopoldino Gonçalves <evandrolgoncalves@gmail.com>
2024-02-26 17:35:06 -08:00
Hailey e9ad3f552d Bump version to 1.70 (wait for release) (#2987) 2024-02-26 17:26:41 -08:00
dan a8925bac86 Remove side borders on mobile web list (#2994) 2024-02-27 01:25:25 +00:00
Eric Bailey 0311288dd7 Fix dark butterfly on android splash (#2993) 2024-02-26 19:24:36 -06:00
Steve Klabnik 9b11fc720f Remove invite codes from README (#2988)
Invite codes aren't needed anymore!

Thanks to https://bsky.app/profile/shreyanjain.net/post/3kmdulzeibc2o for pointing this out to me.
2024-02-27 01:24:14 +00:00
Hailey 832582df23 Adjust windowSize on PostThread FlatList (#2989)
* adjust window size, cells batching period

* rm batching period change
2024-02-26 16:54:05 -08:00
Hailey 88846ca36d fix reversed icons in validator 🤦 (#2991) 2024-02-26 16:48:32 -08:00
Jan-Olof Eriksson 1f95628475 Merge branch 'bluesky-social:main' into main 2024-02-24 16:37:08 +02:00
Minseo Lee 860b5307ad Update NotFound.tsx 2024-02-24 18:29:12 +09:00
Minseo Lee 5809dd0624 accessibilityLabel 2024-02-24 18:29:01 +09:00
Minseo Lee 7a920d2eb4 Update NotFound.tsx 2024-02-24 18:25:29 +09:00
Minseo Lee 25d7e2449f Update NotFound.tsx 2024-02-24 18:23:14 +09:00
Minseo Lee 89c65c856e Merge branch 'bluesky-social:main' into patch-3 2024-02-24 18:23:03 +09:00
Paul Frazee d38f168de5 Update .po files 2024-02-23 17:01:47 -08:00
Hailey 9c5cd391dd use showControls to show/hide live text icon on ios (#2982) 2024-02-23 16:05:54 -08:00
Paul Frazee bdb63fff6d Fix dim mode unread notif color 2024-02-23 15:17:59 -08:00
dan 6ae9c5d45c 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>
2024-02-23 15:09:50 -08:00
Hailey de9df50af3 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>
2024-02-23 13:38:47 -08:00
Mary 4771caf204 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
2024-02-23 12:38:14 -08:00
Hailey 1c5a2232fc increase timeout to 15s (#2958) 2024-02-23 12:37:49 -08:00
Hailey 35be8ec90e use useOpenLink hook for links in ALF (#2975)
* use `useOpenLink` hook for links in ALF

* web only for `outline`
2024-02-23 09:20:55 -08:00
dan 894f00d687 Rename Home Feed Prefs to Following Feed Prefs (#2965) 2024-02-22 16:51:11 +00:00
dan 1ccb3be961 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
2024-02-22 16:03:20 +00:00
Hailey 93b5eff4d7 patch react-navigation to fix history bug (#2955)
* patch react-navigation

- https://github.com/react-navigation/react-navigation/pull/11833

* add readme
2024-02-21 17:54:25 -08:00
Minseo Lee c2d87b8075 Merge branch 'bluesky-social:main' into patch-3 2024-02-22 09:37:09 +09:00
Hailey 874489b402 Use EAS managed build number, run build/submit on GH Actions (#2841)
* use eas version code

* test

* try sync

* try sync

* use eas to manage the version code

* apply build numbers to dist

* test script

* set this to production or now

* revert to schedule

* testing on 1.69

* autosubmit

* autosubmit, remove cheat

* finished!!!!!

try again

try again

try again

try again

add same for android

maybe now

omg wow i messed that up?

once again

once again

again

error?

add caching

add caching

try again again again again

try again again again

try again again

try again

try this a different way

another test

testing this again

* hack

* write environment variables

* ready to go

* final test

* Revert "final test"

This reverts commit 6580c5c097.
2024-02-21 13:54:31 -08:00
Hailey ba71e4b459 Fix numberOfLines not updating on iOS 15 (#2956) 2024-02-21 11:49:46 -08:00
Hailey d2e5f83cd2 Fix UITextView line height adjustment for DynamicType, always use the max width for the view (#2916)
* fix text being cut off

* adjust line height for dynamictype
2024-02-21 10:11:42 -08:00
dan 43206d9f57 Navigate back from a deleted post's route (#2948) 2024-02-21 17:51:42 +00:00
Jan-Olof Eriksson 38fd4282f8 Merge branch 'bluesky-social:main' into main 2024-02-21 13:22:13 +02:00
Eric Bailey f88b165254 Add optional close callback to Dialog (#2947)
* Add optional close callback

* No emitter
2024-02-20 18:20:59 -06:00
dan 6413b8ba8c Fix flash when pressing into just-created post (#2945) 2024-02-20 21:39:42 +00:00
Eric Bailey 9edb82609d Last usage (#2944) 2024-02-20 15:25:54 -06:00
surfdude29 0c470d1f61 Update blogpost URL in ExportCarDialog.tsx (#2939) 2024-02-20 21:00:45 +00:00
dan 3a75855677 Prefer full posts for post thread placeholder (#2943)
* 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
2024-02-20 19:41:29 +00:00
Hailey fab6c286f4 Remove async resizing from external embed player (#2936)
* remove debug

adjust youtube shorts height

fix webview style

simplify styles

fix resizing

make it more clear

remove async resizes from external player

* remove comment

* ts

* reverse aspect
2024-02-20 11:38:56 -08:00
Eiichi Yoshikawa 09eee05f8b Remove redundant <meta name="theme-color"> tag (#2938) 2024-02-20 10:09:02 -08:00
Eric Bailey df5a8f1542 Swap RichText (#2934)
* Switch to new RT

* Allow early exit from links

* Build in tracking to text atoms

* Clean up FeedSourceCard

* Clean up leading after new default

* Add deprecated notice
2024-02-20 11:03:04 -06:00
Eric Bailey 8a169dc6a1 Improve dialogs issue (#2941)
* Fix collapse, update backdrop color

* Remove test prop

* Remove debug code
2024-02-20 08:04:07 -08:00
Eric Bailey b52a742925 Improve dialogs (#2933)
* Improve dialogs

* Remove comment, revert storybook

* Hacky fix

* Comments
2024-02-19 18:18:13 -06:00
Hailey da62a77f05 Prefer post over quote when finding cached post (#2935) 2024-02-19 16:15:42 -08:00
Hailey 2e132a7a01 Add embed to post view when converting from embed view (#2929) 2024-02-19 14:44:09 -08:00
Hailey 5573c38c4d Update IS_PROD check (#2930)
* update is_prod check

* remove unused constants

* rename `IS_PROD` function to `IS_PROD_SERVICE`
2024-02-19 13:30:25 -08:00
Eric Bailey 943acd16aa Add selectable to new text components (#2899)
* Make new text selectable (broken)

* Fixes

* Fix bad conflict resolution

* Remove console
2024-02-19 08:08:21 -08:00
Jan-Olof Eriksson 1269e76071 Update Finnish to lingui.config.js
Added Finnish localization
2024-02-19 08:33:20 +02:00
Jan-Olof Eriksson a612aa276c Update i18n.ts
Fixed typo in line 9
2024-02-19 08:09:49 +02:00
Jan-Olof Eriksson f78b55a235 Update languages.ts
Typo
2024-02-19 08:07:18 +02:00
Jan-Olof Eriksson f78e4c2433 Update i18n.web.ts
Added Finnish
2024-02-19 07:43:24 +02:00
Jan-Olof Eriksson 1cfa4aabbd Update i18n.ts
Added Finnish
2024-02-19 07:42:07 +02:00
Jan-Olof Eriksson 76a5e3af71 Update helpers.ts
Added Finnish
2024-02-19 07:39:46 +02:00
Jan-Olof Eriksson 003e18b94d Update languages.ts
Suomi - Finnish
2024-02-19 07:33:17 +02:00
Jan-Olof Eriksson 93318bef05 Update languages.ts
Added Finnish - Suomi
2024-02-19 07:20:57 +02:00
Minseo Lee 6d422bb583 Merge branch 'main' into patch-3 2024-02-19 14:17:59 +09:00
Eiichi Yoshikawa 7390863a10 Add theme-color meta tag and apply selection of theme (#2918)
* Add theme-color meta tag and apply selection of theme

* update logic for retrieving current theme color

* add ts-ignore

* fix ts error

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-02-18 18:06:00 -08:00
Hailey dcf9fa5e11 Merge branch 'main' into fork/main
# Conflicts:
#	src/locale/locales/it/messages.po
2024-02-18 14:44:48 -08:00
Jan-Olof Eriksson c97d971f09 Update messages.po 2024-02-19 00:12:13 +02:00
Jan-Olof Eriksson 79921b65f8 Update messages.po 2024-02-18 23:47:34 +02:00
Jan-Olof Eriksson 91a4e06878 Update messages.po
Minor changes. (Handle=käyttäjätunnus)
2024-02-18 23:41:58 +02:00
Jan-Olof Eriksson 123c73029d Update messages.po
Some fixes.
2024-02-18 23:21:22 +02:00
jaoler 00103e8e58 Create messages.po
Finnish tranlation for Bluesky
2024-02-18 20:24:26 +02:00
Gabriella 31b7f76015 Update messages.po
Additional grammatical correction related to subject gender
2024-02-18 09:56:14 +01:00
Gabriella 95bc461932 Update messages.po
Updated Nozioni di Base to Preferenze, which has a more logical contest
2024-02-18 09:48:34 +01:00
Gabriella 89f3135ebc Update messages.po
Additional grammatical changes
2024-02-18 09:34:21 +01:00
Gabriella 74895e18c3 Update messages.po
grammatical changes related to the subject
2024-02-18 09:26:02 +01:00
Gabriella 65606b3929 Update messages.po
Changed the tense of a grammatical sentence to present
2024-02-18 09:07:26 +01:00
Hailey a40b43dfc9 update intl (#2911) 2024-02-17 16:19:53 -08:00
Hailey fbdf4517c2 Implement captcha (#2882)
* web height adjustment

border radius incase of dark/dim mismatch

rm country codes

adjust height

general form refactor

more form refactor

refactor form submission

activity indicator after finished

remove remaining phone stuff

adjust captcha height

adjust state to reflect switch

move handle to the second step

pass color scheme param

ts

ts

update state when captcha is complete

web views and callbacks

remove old state

allow specified hosts

replace phone verification with a webview

* remove log

* height adjustment

* few changes

* use the correct url

* remove some debug

* validate handle before continuing

* explicitly check if there is a did, dont rely on error

* rm throw

* update allowed hosts

* update redirect host for webview

* fix handle

* fix handle check

* adjust height for full challenge
2024-02-17 16:03:47 -08:00
Gabriella 86df874dd3 Update messages.po
changes some wordings, corrected a typo
2024-02-17 10:18:44 +01:00
Gabriella N 646a685f26 Update messages.po
Changed translation for the word "Following" in the header section
2024-02-17 09:40:59 +01:00
Paul Frazee dc143d6a6e Link type not link rel 2024-02-16 16:09:15 -08:00
Paul Frazee 4a8417462f Add link header to improve apple messages previews (#2897) 2024-02-16 14:38:48 -08:00
Hailey a2f462e261 remove sandbox labels (#2883)
* rm sandbox

* remove comment
2024-02-16 13:25:48 -08:00
Eric Bailey b665f065b7 Commit to theme mode of system (#2896) 2024-02-16 12:54:42 -08:00
Eric Bailey 4e66c9b806 Fix default loader color (#2891) 2024-02-16 13:25:20 -06:00
Eric Bailey 1d729721e5 Link updates (#2890)
* Link updates, add atoms

* Update comments

* Support download

* Don't open new window for download
2024-02-16 13:25:07 -06:00
Gabriella N 87825f19ec Update messages.po
Corrected a small grammatical error
2024-02-16 20:06:57 +01:00
Eric Bailey 0ff61e08e9 Darken splash (#2892)
* Darken splash

* We must go darker
2024-02-16 12:07:57 -06:00
dan c5641ac2b7 Fix jumps when navigating into long threads (#2878)
* Reveal parents in chunks to fix scroll jumps

Co-authored-by: Hailey <me@haileyok.com>

* Prevent layout jump when navigating to QT due to missing metrics

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-02-16 18:07:47 +00:00
Eric Bailey e303940eaa Bump contrast on dim mode for old ds (#2888) 2024-02-16 09:54:40 -08:00
Eric Bailey ae9f893723 Some button updates (#2889)
* Some button updates

* Better name
2024-02-16 09:50:24 -08:00
Gabriella N 4ab7909f8b Update messages.po 2024-02-16 15:30:12 +01:00
Gabriella N 2b02976923 Add files via upload 2024-02-16 15:27:30 +01:00
Minseo Lee b3e6f0f29d Update ExportCarDialog.tsx 2024-02-16 10:16:56 +09:00
Minseo Lee b8b5d24fb9 Update Moderation.tsx 2024-02-16 10:08:28 +09:00
Minseo Lee 36d2b02a9e Update index.tsx 2024-02-16 10:05:43 +09:00
Minseo Lee 312f54cfc0 Update Moderation.tsx 2024-02-16 10:05:40 +09:00
Minseo Lee 46ee6a0748 Update LanguageSettings.tsx 2024-02-16 09:00:59 +09:00
Minseo Lee c15b785016 Merge branch 'bluesky-social:main' into patch-3 2024-02-16 08:58:46 +09:00
Hailey 1b992d5d6b Update intl (#2879) 2024-02-15 11:11:50 -08:00
Minseo Lee 880149c05e Update ProfileFeed.tsx 2024-02-15 09:46:30 +09:00
Minseo Lee cb4092c959 Update index.tsx 2024-02-15 09:41:51 +09:00
Minseo Lee c94e5f81a0 Update index.tsx 2024-02-15 09:39:29 +09:00
Minseo Lee 2823e8aa47 Update src/view/screens/Moderation.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
2024-02-15 09:19:54 +09:00
Minseo Lee b0cdaf71dd Update src/view/com/modals/LinkWarning.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
2024-02-15 09:19:46 +09:00
Minseo Lee 83cb04b691 Update src/view/com/modals/LinkWarning.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
2024-02-15 09:19:40 +09:00
Minseo Lee 3f1a85198a Update src/view/screens/Settings/index.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
2024-02-15 09:19:28 +09:00
Minseo Lee a7661b1f6f Update src/view/screens/Settings/index.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
2024-02-15 09:19:22 +09:00
Minseo Lee 44259948cc Update Drawer.tsx 2024-02-14 16:14:29 +09:00
dan b9301befb7 Fix layout measurements (again) (#2866) 2024-02-14 04:12:30 +00:00
dan 7e6b666ee3 Adjust post thread scroll for cached posts (#2865)
Co-authored-by: Hailey <me@haileyok.com>
2024-02-14 03:17:22 +00:00
Minseo Lee 3f5bdd8be3 Mark more texts for localization 2024-02-14 11:06:37 +09:00
Evandro Leopoldino Gonçalves 836cff306e Adds preconnect links to essencial external domains (#2847)
* adds preconnect links to essencial external domains

* adds preconnect links to essencial external domains in the base.html template

* fixes formatting issue
2024-02-13 23:13:23 +00:00
dan 08525b52c3 Move visual display logic out of PostThread generators (#2862)
* Split skeleton gen into replies and parents

Co-authored-by: Hailey <me@haileyok.com>

* Move REPLY_PROMPT out of the generator

* Move the rest of visual logic out of gen

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-02-13 22:12:33 +00:00
Paul Frazee 2f6d7606b3 Tune the feeds page a little more 2024-02-13 10:21:39 -08:00
Paul Frazee aaba84f214 Add italian to app languages 2024-02-13 10:01:59 -08:00
Gabriella N b8139db60f Italian localization (#2642)
* Create italian translation

* Add files via upload

* Delete src/locale/locales/it/italian translation

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

* Update src/locale/locales/it/messages.po

Co-authored-by: Daniele <irsooti+code@gmail.com>

---------

Co-authored-by: Daniele <irsooti+code@gmail.com>
2024-02-13 09:54:14 -08:00
Paul Frazee 3e51d88158 Merge branch 'mary-ext-feat/logged-out-improvements' into main 2024-02-13 09:52:33 -08:00
Paul Frazee 8df1d8f7b1 Add a little more bottom pad to be safe 2024-02-13 09:51:59 -08:00
Paul Frazee cbb037526b Add safearea pad to bottom of native splash 2024-02-13 09:50:39 -08:00
Paul Frazee 01a708ae3d Merge branch 'feat/logged-out-improvements' of https://github.com/mary-ext/fork-bsky-app into mary-ext-feat/logged-out-improvements 2024-02-13 09:38:39 -08:00
Atiksoftware Corporation 310e5ea35b Create messages.po 2024-02-13 15:02:20 +03:00
Paul Frazee 990fc218bd Bump build number 2024-02-13 00:55:09 -08:00
Hailey 1f517cff0c fix onboarding font size (#2857) 2024-02-13 00:43:17 -08:00
Hailey d8245e96ea Add copy to feeds page (#2852)
* move `IconCircle` to `components` for reuse

* add copy to feeds page

* start of a header

* saveit

* add lg size

* add your feeds

* don't show Your Feeds if you don't have any

* Minor ui tweaks

* cleanup

* remove unused activity indicator

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2024-02-13 00:40:39 -08:00
Mary b1240c1e49 fix: style adjustments 2024-02-13 14:45:11 +07:00
Mary ae19e60099 fix: use the size prop 2024-02-13 14:39:43 +07:00
Mary aa43e4cd4e feat: language selection on mobile 2024-02-13 14:39:18 +07:00
Mary 50fac73713 fix: do not remove the outline 2024-02-13 12:52:09 +07:00
Mary a9029a5f4f feat: language selection on web splash screen 2024-02-13 12:51:40 +07:00
Mary 630b422618 fix: localize the splash screen footer 2024-02-13 12:09:01 +07:00
Paul Frazee 36e1da1006 Bump build numbers and translations 2024-02-12 20:33:05 -08:00
dan 588ccde005 Fix duplicate keys in PostThread (#2854) 2024-02-12 19:53:05 -08:00
Eric Bailey bbf049d477 Remove invites code UI (#2851)
* Hide invite codes UI, comment in settings

* Just comment out
2024-02-12 19:13:42 -08:00
Paul Frazee 543e114877 Update tests to get them passing again (#2853) 2024-02-12 18:55:19 -08:00
Eric Bailey fad40dda97 Improve a11y of inputs (#2846)
* Improve a11y of inputs

* Remove old comment
2024-02-12 18:49:50 -08:00
bnewbold d7a3246fe3 basic export repository link in settings (#2641)
* basic export repository link in settings

Absolutely no prior React experience, and limited TypeScript, so
probably doing all kinds of things wrong!

I tried to make it a download button instead of link but that didn't
work.

There is probably a safer way to construct the URL string.

I think having the download open in the browser is reasonable, as
opposed to an in-app save flow in mobile. But i'm not sure.

* Remove appview proxy toggle

* Move Settings screen to a subfolder

* Add support for the download attribute on links in web

* Rewrite ExportRepository modal using ALF

* Mobile ui tweaks

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2024-02-12 15:22:03 -08:00
Hailey b308d7e65d pad right for treeview (#2849)
* pad right for treeview

* add comment
2024-02-12 14:27:08 -08:00
Hailey b936da1c0f Add search button to header on feeds screen (#2848)
* add search bar to header

* add button on web
2024-02-12 13:47:48 -08:00
Paul Frazee ba7463cadf Improved server selector during account creation and signin (#2840)
* 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>
2024-02-12 13:36:20 -08:00
Hailey b91a6b429a remove line height from text input for composer on ios (#2844)
* remove line height from text input for composer

* only apply removal to ios
2024-02-12 12:16:51 -08:00
Hailey fe57335b86 Add follow button to highlighted post (#2828)
* add user-minus icon

* add follow button to highlighted post

* web hack for animations

* adjustments

* remove static string width, use flexbox

* Revert "add user-minus icon"

This reverts commit f1aafb3e39.

* better displaying of display name
2024-02-12 11:47:22 -08:00
Maison da Silva a97d469981 Cleaning up old codes pt_BR (#2809)
Leave the file identical to the number of lines in the English version!
2024-02-12 11:22:15 -08:00
Aaki 3707955204 Fix wrong translations in zh-CN localization (#2812)
* Update translations and fix wording

* Update translation for Bluesky client service provider

* Update Chinese translation for "Logged-out visibility" message

* Update Chinese translation for password prompt

* Update Chinese translations for invite codes

* Update translations for Chinese locale
2024-02-12 11:21:33 -08:00
middlingphys 224002978b Adjust Japanese translation (#2814)
* Adjust Japanese translation

* Adjust Japanese translation 2

* Update src/locale/locales/ja/messages.po

Co-authored-by: Noritada Kobayashi <noritada.kobayashi@gmail.com>

* Add name to message.po

---------

Co-authored-by: Noritada Kobayashi <noritada.kobayashi@gmail.com>
2024-02-12 11:20:23 -08:00
hibiki 17280d97a2 Update ja messages.po (#2821) 2024-02-12 11:19:10 -08:00
Hailey 3f6396572d change follow to follow all when !== 20 (#2831) 2024-02-12 11:18:38 -08:00
Hailey 9301ae6830 ios adult content link fix 🤦 (#2845) 2024-02-12 11:16:56 -08:00
Connor Justice 2ecfd106e8 improves build.md completeness (#2835) 2024-02-12 08:17:26 -08:00
Samuel Newman 8253ac25d1 increase stroke width for active hashtag icon (#2829) 2024-02-12 15:50:16 +00:00
surfdude29 b4724b93e8 Update blueskyweb.xyz links to bsky.social (#2830)
* Update blogpost link to bsky.social and remove unnecessary localisation params at end of Play Store URL in README.md

* Update privacy policy link to bsky.social in PrivacyPolicy.tsx

* Update TOS link to bsky.social in TermsOfService.tsx

* Update links to bsky.social in Links.tsx

* Update links to bsky.social in SplashScreen.web.tsx

* Update link to bsky.social in base.html

* Update links to bsky.social in HomeLoggedOutCTA.tsx

* Update links to bsky.social in RightNav.tsx

* Update links to bsky.social in Drawer.tsx

* Update DMCA link to bsky.social in Modal.tsx

* Update link to copyright policy on bsky.social in CopyrightPolicy.tsx

* Update link to bsky.social in CommunityGuidelines.tsx

* Update links to bsky.social in Settings.tsx

* Update to bsky.social in Typography.tsx
2024-02-12 15:38:45 +00:00
Hailey 6d91726e00 eas nightlies (#2826)
* add comment to config

* add ios build num bump script

* remove bak

* add bump script for android

* github action

* add comment to config

* testing

* testing attempt 2

* add app id

* ok add the app id the right way

* Apply automatic changes

* test the commit message

* test the commit message again

* Nightly iOS Build Bump

* finished

---------

Co-authored-by: haileyok <haileyok@users.noreply.github.com>
2024-02-09 16:57:28 -08:00
dan ad8f9e560d Always show post dropdown button at the bottom of the post, add share button to highlighted post (#2646)
* Always show post dropdown at the bottom

* Rm useless view (no longer needed)

* space icons evenly in big, add equal padding

* add share icon

* add onShare

* confirmed figma noob. figured it out.

* use our svg naming strat

* Update icon

---------

Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Eric Bailey <git@esb.lol>
2024-02-09 12:00:21 -08:00
dan 7f4dbe9454 Measure header layout reliably (#2817)
* Measure header layout reliably

* grammar
2024-02-09 11:56:35 -08:00
Eric Bailey 071efaf2df Round line height (#2824)
* Round line height

* Add to existing
2024-02-09 12:04:04 -06:00
Eric Bailey d6235453c9 Design system tweaks (#2822)
* Tweak palette, theme naming, update usages

* Update Typography, replace the few usages
2024-02-09 09:52:32 -08:00
dan 43b447e5f4 Fix layout calculations (#2816) 2024-02-08 22:20:41 -08:00
dan d36b91fe67 Fix flashes and jumps when opening profile (#2815)
* Don't reset the tree when profile loads fully

* Give avatars a background color like placeholders

* Prevent jumps due to rich text resolving

* Rm log

* Rm unused
2024-02-08 21:00:50 -08:00
dan 0d00c7d851 Show text cursor on web bio (#2813) 2024-02-09 02:20:34 +00:00
Hailey de28626001 Precache basic profile from posts for instant future navigations (#2795)
* skeleton for caching

* modify some existing logic

* refactor uri resolution query

* add precache feed posts

* adjustments

* remove prefetch on hover (maybe revert, just example)

* fix

* change arg name to match what we want

* optional infinite stale time

* use `ProfileViewDetailed`

* Revert "remove prefetch on hover (maybe revert, just example)"

This reverts commit 08609deb0d.

* add warning comment back for stale time

* remove comment

* store profile with both the handle and did for query key

* remove extra block from revert

* clarify argument name

* remove QT cache

* structure queries the same (put `enabled` at bottom)

* use both `ProfileViewDetailed` and `ProfileView` for the query return type

* placeholder profile header

* remove logs

* remove a few other things we don't need

* add placeholder

* refactor

* refactor

* we don't need this height adjustment now

* use gray banner while loading

* set background color of image to the loading placeholder color

* reorg imports

* add border to header on loading

* Fix style

* Rm radius

* oops

* Undo edit

* Back out type changes

* Tighten some types and moderate shadow

* Move precaching fns to profile where the cache is

* Rename functions to match what they do now

* Remove anys

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-02-09 01:38:16 +00:00
dan d9b62955b5 Remove Profile Preview modal (#2790) 2024-02-08 23:41:02 +00:00
dan 06f81d6948 Keep pager feeds in sync with the right pane (#2775)
* Hoist selected feed state

* Seed state from params

* Refine and fix logic

* Fix scroll restoration

* Soft reset on second click
2024-02-08 12:37:08 -08:00
Hima 80c482b026 Add: Followed version 1.68 of Japanese display (#2777)
* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* messages.po を更新

* Update messages.po
2024-02-08 12:10:01 -08:00
Frudrax Cheng 0dfed21642 Update zh-CN localization to 1.68 (#2780)
* update Chinese localization to 1.68

* fix typo

* improve translation

* update messages.po

* modify some translations
2024-02-08 12:08:00 -08:00
Liberal dev de705606d0 fix google translate appear (#2784) 2024-02-08 12:04:36 -08:00
Gildásio Filho 8b239c8347 Update pt-BR translation to 1.68 (#2786)
* Update messages.po

* Update messages.po
2024-02-08 12:03:23 -08:00
Hailey 1de1d10cf6 Fix error screen on native, use Not Found for profile errors instead of Oops! (#2789)
* remove unnecessary `<CenterView>`

* show back header on profile error

* use `Not Found` instead of `Oops` for account errors

* use `Not Found` instead of `Oops` for account errors
2024-02-08 12:01:36 -08:00
Edison Lee 4041db31e2 Correct the country code name of Taiwan (#2797) 2024-02-08 12:00:03 -08:00
Armaan 1700b82713 changed Benachrichtigunge (#2805) 2024-02-08 11:52:44 -08:00
dan 0944d2d9ed Add composer button to Notifications (#2806) 2024-02-08 11:50:57 -08:00
Hailey 390a9f3dd5 use the palette's font color in the composer (as string) (#2792) 2024-02-08 15:39:33 +00:00
Hailey 83edb4446d use the palette's font color in the composer (#2791)
* use the palette's font color in the composer

* correct type for cssproperties

* log
2024-02-07 15:07:25 -08:00
Paul Frazee f0a35a940b Bump ios build 2024-02-07 10:03:46 -08:00
Paul Frazee 32020d62d6 Hackfix to avoid creating identical profile objects during account creation 2024-02-07 10:03:26 -08:00
Paul Frazee fc40b200ed 1.68 2024-02-06 22:12:41 -08:00
Paul Frazee 3b0f94bfb0 Fix test 2024-02-06 22:09:34 -08:00
Hailey 573cf31d86 fix theme cross-tab write loop (#2774)
* don't write on onUpdate, memoize

* refac useColorModeTheme
2024-02-06 21:16:50 -08:00
dan dc6603a1b9 Fix open-in-new-tab for TextLink (#2773) 2024-02-06 19:45:16 -08:00
surfdude29 76811657e8 Add missing word in ModerationDetails.tsx (#2753) 2024-02-06 19:14:33 -08:00
Hailey 3a9497cc7e use ios live text interaction in alt text modal and image viewer (#2752) 2024-02-06 19:13:28 -08:00
surfdude29 2427329a84 Fix typo in ca/messages.po (#2754) 2024-02-06 19:12:26 -08:00
Eric Bailey 541eb8ded1 Update open graph data (#2760)
* Update open graph data

* Format

* Fix typo
2024-02-06 18:52:04 -08:00
Maison da Silva 29b31b7739 Variable translation broke the number of "following" in pt-BR (#2766)
* Variable translation broke the number of "following" in pt-BR

Variable translation broke the number of "following" in pt-BR

* Update Date
2024-02-06 18:51:33 -08:00
dan 4583521b11 Refactor Home feed pager rendering logic (#2768)
* Use new persistence API for selected feed

* Refactor Home feeds pager data source
2024-02-06 18:50:44 -08:00
Hailey f393dda528 convert query to lowercase before performing search (#2770) 2024-02-06 17:57:16 -08:00
Paul Frazee a070d40990 Merge branch 'Pranith-Kanchan-Pranith-Kanchan-link-cannot-in-Moderation' into main 2024-02-06 17:55:16 -08:00
Paul Frazee 1a38673ac1 Fix lint 2024-02-06 17:55:06 -08:00
Paul Frazee 06d71cf2cc Merge branch 'Pranith-Kanchan-link-cannot-in-Moderation' of https://github.com/Pranith-Kanchan/social-app into Pranith-Kanchan-Pranith-Kanchan-link-cannot-in-Moderation 2024-02-06 17:40:42 -08:00
Hailey 39b4081c5e Fix iOS composer text getting cut off (#2764)
* patch react-native textinput

* cleanup patchfile
2024-02-06 14:45:41 -08:00
Hailey 52f57b3aec Display the language selection dialog correctly on web (#2719)
* add event to callback

* position translation button correctly based on press position

* properly place the background

* remove worthless comment
2024-02-06 12:51:32 -08:00
dan 9ccad0ba6c Prevent post meta misclicks in QT (#2701) 2024-02-06 12:44:33 -08:00
Mary 41860d8b80 fix: remove list from pinned once deleted (#2705) 2024-02-06 12:26:57 -08:00
Paul Frazee 2d13f3b367 Merge branch 'mary-ext-fix/app-password-submit' into main 2024-02-06 12:14:27 -08:00
Paul Frazee d385837812 Go back to autofocus and small ui tweak 2024-02-06 12:13:09 -08:00
Paul Frazee ed80551278 Cat on keyboard 2024-02-06 12:07:06 -08:00
Paul Frazee b61db0f4e4 Merge branch 'fix/app-password-submit' of https://github.com/mary-ext/fork-bsky-app into mary-ext-fix/app-password-submit 2024-02-06 12:00:55 -08:00
Hailey ec86282403 Options for selecting dark theme, fix some white flashes when in dark mode (#2722)
* add dark theme selection to settings/schema

* use `useThemePrefs` where needed

* adjust theme providers to support various themes

* update storybook

* handle web themes

* better themeing for web

* dont show dark theme prefs when color mode is light

* drop the inverted text change on oled theme

* get the color mode inside of `useColorModeTheme`

* use `ThemeName` type everywhere

* typo

* use dim/dark instead of dark/oled

* prevent any fickers on web

* fix styles

* use `dim` for dark default

* more cleanup

* 🤔

* set system background color

* ts
2024-02-06 11:43:51 -08:00
Hailey 856f80fc6d fix some youtube videos not properly loading (#2726)
* add player iframe to bskyweb

* iframe for youtube content

* update tests

* ts error
2024-02-06 11:05:17 -08:00
Hailey a9ab13e5a9 password flow improvements (#2730)
* add button to skip sending reset code

* add validation to reset code

* comments

* update test id

* consistency sneak in - everything capitalized

* add change password button to settings

* create a modal for password change

* change password modal

* remove unused styles

* more improvements

* improve layout

* change done button color

* add already have a code to modal

* remove unused prop

* icons, auto add dash

* cleanup

* better appearance on android

* Remove log

* Improve error messages and add specificity to function names

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2024-02-06 10:06:25 -08:00
Paul Frazee b9e00afdb1 Merge branch 'RonyVidaur-main' into main 2024-02-06 09:29:02 -08:00
Paul Frazee 0604e5b84e Fix lint 2024-02-06 09:28:56 -08:00
Paul Frazee 57559ab6ca Merge branch 'main' of https://github.com/RonyVidaur/social-app into RonyVidaur-main 2024-02-06 09:13:19 -08:00
Hailey 065a094087 fix web aux click on all browsers (#2633) 2024-02-06 09:00:16 -08:00
Samuel Newman 2f1ce117d7 Long press external embed to share (#2621)
* long press external embed to share

* use existing shareUrl function
2024-02-05 15:58:03 -08:00
Mary 2754121f67 Bump replies (#2604)
* fix: bump replies

* refactor: only bump if not at 0
2024-02-05 15:44:14 -08:00
Samuel Newman 6ad5863573 Move query augmentation to lower component (#2748) 2024-02-05 15:26:08 -08:00
Hailey fca00d20a4 update docs to include info on installing cocoapods (#2744)
* update docs to include info on installing `cocoapods`

* wording
2024-02-05 15:25:28 -08:00
Mary ca66fae3ef fix: listen for error event on image (#2736) 2024-02-05 15:23:20 -08:00
ɴᴏᴠᴀ 2fd4b27ec6 Butterfly logo icon for Android push notifications (#2716)
* butterfly icon for android push notifications

* first block unnecessary
2024-02-05 15:22:17 -08:00
Hailey c84b654812 fix scrolling in delete account modal (#2733) 2024-02-05 15:00:13 -08:00
surfdude29 33902a0351 Fix string in onboarding screen in fr/messages.po (#2720) 2024-02-05 14:54:42 -08:00
Frudrax Cheng a5cd1d377f Chinese localization (#2668)
* Chinese localization

* fixed languages.ts typo

* crosscheck with proofreading of translation

* fixed messages.po string styles

* a minor adjustment

* Update Chinese localization

* fixed a typo & modify the translation of handle

* based on the latest messages.po translation

* removed unused strings

* based on the latest messages.po translation
2024-02-05 14:50:10 -08:00
Minseo Lee 0b37cf4ee7 Update Korean localization (#2664)
* Update messages.po

* Update messages.po

* Fix typo

Co-authored-by: Hanee (임하은) <hanee_l@naver.com>

* Update messages.po

* Update messages.po

* Update messages.po

---------

Co-authored-by: Hanee (임하은) <hanee_l@naver.com>
2024-02-05 14:45:09 -08:00
L-tan 8df2760173 Update Japanese localization to 1.67 (#2658)
* reset headers

* fill in untranslated message

* unified "Following" Feed

* Suggest wording tweak in StepAlgoFeeds/index.tsx (#2653)

* Suggest wording tweak in StepAlgoFeeds/index.tsx

* Update src/screens/Onboarding/StepAlgoFeeds/index.tsx

---------

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

* Fix typos and suggested punctuation tweak in StepSuggestedAccounts/index.tsx (#2649)

* Fix typos in StepSuggestedAccounts/index.tsx

* suggested wording tweak

* on second thought, 'some' again is redundant

* update header

* update translation

* intl:extract

* update messages

* update revision date

* modify by reveiew suggestions

Co-authored-by: tkusano <tkusano@users.noreply.github.com>

* modify by reveiew suggestions

Co-authored-by: Hima-Zinn <Hima-Zinn@users.noreply.github.com>

* unified "フォロー中フィード"

Co-authored-by: Hima-Zinn <Hima-Zinn@users.noreply.github.com>

* modify by reveiew suggestions

Co-authored-by: noritada <noritada@users.noreply.github.com>

* modify by reveiew suggestions

Co-authored-by: noritada <noritada@users.noreply.github.com>

* modify merge miss

* Completes missing translations due to merging

---------

Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: tkusano <tkusano@users.noreply.github.com>
Co-authored-by: Hima-Zinn <Hima-Zinn@users.noreply.github.com>
Co-authored-by: noritada <noritada@users.noreply.github.com>
2024-02-05 14:44:47 -08:00
Eric Bailey 96f39657d7 Only re-reg push noty token when account changes (#2654) 2024-02-05 14:41:14 -08:00
Gildásio Filho 5ee802bb1f Update pt-BR translation to 1.67 (#2652)
* Update messages.po

* Update messages.po

* Update messages.po

* Remove double escape character

* Update revision date

* Update messages.po

* Fix typo
2024-02-05 14:40:31 -08:00
dan b7056365dd Remove dead code for pager (#2651) 2024-02-05 14:40:07 -08:00
Paul Frazee f0e046a44b Merge branch 'main' of github.com:bluesky-social/social-app into main 2024-02-05 14:39:16 -08:00
Paul Frazee 2039df4879 Merge branch 'ivanbea-main' into main 2024-02-05 13:53:45 -08:00
Paul Frazee 7caf927323 Merge branch 'main' of https://github.com/ivanbea/social-app into ivanbea-main 2024-02-05 13:53:27 -08:00
Minseo Lee b8f0c5b538 Update Step3.tsx (#2638) 2024-02-05 13:50:33 -08:00
Pranith Kanchan f8b43e1f7e link in Moderation screen cannot be tapped #2745
link in Moderation screen cannot be tapped #2745
2024-02-05 17:40:19 +05:30
Hailey 0bbe2c5e32 show bottom bar on web tablet breakpoints when logged out (signup cta) (#2747)
* show signup bottom bar on web tablet

* show signup bottom bar on web tablet

* comment

* adjust load latest btn position based on logged in/out
2024-02-04 12:54:07 -08:00
Jaz 250b48d5a2 Merge pull request #2743 from bluesky-social/support_did_previews
Support previews for links using DIDs and not just handles
2024-02-04 10:18:34 -08:00
Jaz 3ed1877e4b Support previews for links using DIDs and not just handles 2024-02-03 22:24:54 -08:00
RonyVidaur 1412f9d95c format 2024-02-03 22:27:50 -06:00
RonyVidaur 323b5bdfda enhance check 2024-02-03 22:09:07 -06:00
RonyVidaur 6f228a598e validate phone number based on country 2024-02-03 21:54:37 -06:00
Paul Frazee 15e90356e7 Bump build 2024-01-31 21:57:31 -08:00
Paul Frazee 17db71ac0e Tweak content 2024-01-31 21:52:32 -08:00
Paul Frazee f6cdebb8af Bump build number 2024-01-31 16:43:07 -08:00
Paul Frazee 2e3e66c974 Fix sort 2024-01-31 16:42:48 -08:00
Paul Frazee 50eb1c30d2 Bump build numbers 2024-01-31 16:08:07 -08:00
Mary c3d3f91349 fix: submit app password on enter 2024-02-01 06:55:52 +07:00
Eric Bailey 4cf68b32c8 Change up onboarding algo feeds, rework copy (#2718)
* Switcheroo

* tweak copy

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2024-01-31 15:36:00 -08:00
surfdude29 3d4cd9eda3 Remove superseded strings from en/messages.po (#2706) 2024-01-31 14:33:55 -08:00
surfdude29 39619226da Remove superseded strings from de/messages.po (#2707)
* Remove superseded strings from de/messages.po

* restore some superseded translations to their equivalents
2024-01-31 14:33:18 -08:00
surfdude29 cbb856f09b Remove superseded strings from es/messages.po (#2708)
* Remove superseded strings from es/messages.po

* oops, missed one
2024-01-31 14:33:02 -08:00
surfdude29 277aa13d35 Remove superseded strings from fr/messages.po (#2709) 2024-01-31 14:32:42 -08:00
surfdude29 880f94a92b Remove superseded strings from hi/messages.po (#2711)
A cleanup PR that removes strings from hi/messages.po that have been superseded and are no longer used.

I also matched some of the superseded strings that had already been translated to their new equivalents.
2024-01-31 14:16:30 -08:00
Hailey 5db56277c0 Onboarding moderation improvements (#2713)
* create separate label group arrays

* render adult and other label groups separately

* animate in/out the additional settings

* improve toggle logic

* support animations on all platforms

* remove debug

* update notice, prevent running animations on mount

* reorg imports
2024-01-31 14:14:37 -08:00
Eric Bailey a4ff290769 🤦 (#2655) 2024-01-31 13:02:20 -08:00
Eric Bailey 1720eef5c4 New splash screen (#2714)
* New splash screen

* Add logotype to splash

* Adjust spacing
2024-01-31 13:01:07 -08:00
Hailey 10cd4adc79 set default display name to be blank (#2717) 2024-01-31 12:58:27 -08:00
Hailey dfc5a03eb5 add padding to bottom offset (#2715) 2024-01-31 12:52:02 -08:00
Eric Bailey 174900596f Copy edits (#2710) 2024-01-31 09:56:44 -08:00
Paul Frazee 68d4cd1046 Bump ios build number 2024-01-30 20:51:02 -08:00
Paul Frazee 31bf286fdc Reduce the odds of false positives in the language suggester (close #2598) (#2700) 2024-01-30 20:16:49 -08:00
Eric Bailey 42fe0e1609 Handle onboarding in non-prod envs (#2698) 2024-01-30 19:06:58 -08:00
dan 2b0f92c7e0 Workaround Safari content-visibility bug (#2699) 2024-01-30 19:05:45 -08:00
dan 7b683b617a Fix notification invalidation condition on web (#2697)
Co-authored-by: Dan Abramov <dan@mac.home>
2024-01-30 18:52:20 -08:00
Hailey 59aacf4126 moderate avatars and embeds in composer reply to (#2665)
* moderate avatars and embeds in composer reply to

* oops

* dont need moderation in the quote opts
2024-01-30 18:11:23 -08:00
Hailey 28455f49dc prevent duplicate keys in feed tab bar (#2666) 2024-01-30 17:54:29 -08:00
Hailey faf48db679 add padding to user's lists/feeds scrollviews (#2675)
* add padding to user's lists/feeds scrollviews

* always use the header offset for padding
2024-01-30 17:49:34 -08:00
Hailey c3b4ce4378 adjust height of list based on screen size (#2678) 2024-01-30 17:46:44 -08:00
Paul Frazee 45291f17a0 Fix notification mark-read behaviors (#2696)
* Mark read on first notifs page fetch always; this is less optimal but it fixes a case where when the first full page's unreads are all filtered out

* Use the pre-filter indexedAt for updateSeen
2024-01-30 17:46:35 -08:00
Hailey a175922ccf Merge pull request #2695 from bluesky-social/hailey/fix-android-swipe
fix left swipe on android
2024-01-30 17:30:32 -08:00
Hailey d8fc3798e3 add comment 2024-01-30 17:10:19 -08:00
Hailey db3b10e98b update comment 2024-01-30 17:09:02 -08:00
Hailey bb4c9df039 cleanup 2024-01-30 17:00:49 -08:00
Hailey 767dd83d0b cleanup 2024-01-30 16:55:57 -08:00
Hailey ca9b2a551d check if a thread is muted before incrementing notif badge, filter out quotes (#2686)
* check if a thread is muted before incrementing notif badge

* some filtering for quotes and reposts

* move logic to util

* change logic

* revert always fetching

* logic for cases when we don't have a subject (count)

* unneeded change

* check subject embed in `isThreadMuted`

* remove todo
2024-01-30 16:55:46 -08:00
Hailey fc8ea01741 use variable 2024-01-30 16:45:02 -08:00
Hailey df740c85e0 use gap on native 2024-01-30 16:37:26 -08:00
Eric Bailey 08a11f628e Revert text selection bg color change (#2689) 2024-01-30 15:48:18 -08:00
Hailey e45f0b6c43 Autofocus the alt text input on all platforms, improve dismissability on native (#2690)
* sneak in a eslint fix

* autofocus the alt text input whenever we open the modal

* properly use the hook
2024-01-30 15:48:03 -08:00
Hailey c5edd0a065 remove unnecessary right padding in main thread item (#2693) 2024-01-30 15:25:29 -08:00
Eric Bailey 68639db76f Fix chrome font weight rendering (#2694) 2024-01-30 15:09:43 -08:00
Eric Bailey 2ce9ab7da0 Don't interpolate rkey (#2691) 2024-01-30 15:09:21 -08:00
Eric Bailey bb7ce215f7 i18n interests, allow for fallbacks (#2692) 2024-01-30 15:04:54 -08:00
Hailey 4058174678 Merge pull request #2679 from bluesky-social/hailey/check-blocks-load-profile
clear cache when blocking/unblocking and whenever we get blocked, better invalidation logic for `useProfileQuery`
2024-01-30 10:35:46 -08:00
Hailey 05f48860a0 ts 2024-01-30 10:31:24 -08:00
Hailey 159df136c1 move to correct file 2024-01-30 10:27:18 -08:00
Paul Frazee c59741c10b Merge branch 'main' of github.com:bluesky-social/social-app into main 2024-01-30 09:28:56 -08:00
Prates f81bacc402 Avatar type for Feed check (#2661)
* Changed type from algo to list

* Fixed to check if it's a feed or a list
2024-01-30 09:21:06 -08:00
Paul Frazee e13777c191 Merge branch 'main' of github.com:bluesky-social/social-app into main 2024-01-30 09:18:47 -08:00
Hailey 640ce5e47b use in app browser for translations when enabled (#2663) 2024-01-30 09:14:41 -08:00
Hailey 0ff6ee2fc8 better naming 2024-01-29 19:48:50 -08:00
Hailey ebe64b828b update deprecated 2024-01-29 18:51:54 -08:00
Hailey c5c3f6dbe5 naming 2024-01-29 18:44:19 -08:00
Hailey 30b06c1d9e dont invalidate profile queries if they are only for display name resolution 2024-01-29 18:38:04 -08:00
Hailey a8d267e972 configurable stale time for profile queries 2024-01-29 18:37:41 -08:00
Hailey 65e349ee96 use isLoading for whether to show no profile header 2024-01-29 18:37:15 -08:00
Hailey dd3229d900 check if we are blocked when opening a profile, reset posts cache if we are 2024-01-29 16:48:49 -08:00
surfdude29 4f28028569 Fix typos and suggested punctuation tweak in StepSuggestedAccounts/index.tsx (#2649)
* Fix typos in StepSuggestedAccounts/index.tsx

* suggested wording tweak

* on second thought, 'some' again is redundant
2024-01-27 14:15:48 -06:00
surfdude29 20b2f1475c Suggest wording tweak in StepAlgoFeeds/index.tsx (#2653)
* Suggest wording tweak in StepAlgoFeeds/index.tsx

* Update src/screens/Onboarding/StepAlgoFeeds/index.tsx

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-01-27 14:14:21 -06:00
Paul Frazee ae4ce4bb87 Fix easignore 2024-01-26 17:37:27 -08:00
Paul Frazee 1ba3466d53 Bump ios build number 2024-01-26 17:06:42 -08:00
Paul Frazee 8a40916cd4 Enable new onboarding 2024-01-26 13:57:17 -08:00
Paul Frazee 9bcf867d68 Merge branch 'main' of github.com:bluesky-social/social-app into main 2024-01-26 13:56:05 -08:00
Paul Frazee 00b4ee5b0d 1.67 2024-01-26 13:55:56 -08:00
Paul Frazee 77d47c2b45 Bump dev-env 2024-01-26 13:54:25 -08:00
dan ad3067b581 Adjust placeholder to be pixel-perfect (#2650) 2024-01-26 21:45:22 +00:00
surfdude29 93133b4864 Fix typos in StepFollowingFeed.tsx (#2643) 2024-01-26 12:10:21 -08:00
Paul Frazee b629fbdbb9 Two UI tweaks after recent updates (#2647)
* Readd the top border to the highlighted post when a reply (revert #2628)

* Readd right pad to post controls
2024-01-26 12:09:52 -08:00
Ivan Beà a48f4fc7b6 Update messages.po
Apply @surfdude26 and @jordimas corrections
2024-01-26 17:45:25 +01:00
Ivan Beà 88b64840b6 Update messages.po 2024-01-26 15:59:36 +01:00
Ivan Beà 92a4de9398 Update messages.po 2024-01-26 15:01:35 +01:00
Ivan Beà e4d8cf578d Update catalan localization
Update catalan localization
2024-01-26 14:59:33 +01:00
Paul Frazee 6149437c05 Account creation improvements & some other fixes (#2636)
* Quick fix to mobile

* Enlarge tap targets in account creation

* Improve keyboard behaviors during account creation

* Improve autocompletion behaviors during account creation

* Use the logo in the Deactivated screen
2024-01-25 22:24:37 -08:00
dan c8175b9c4e Add missing top border to notifications loading state (#2635) 2024-01-25 21:24:24 -08:00
dan 23a4bbf608 Prefetch profile links on web (#2634) 2024-01-25 21:23:56 -08:00
Eric Bailey 157404132f Improve type checking for metrics events (#2632) 2024-01-25 21:12:48 -08:00
Eric Bailey bc502edae1 Clean up some sentry logs (#2630)
* Change prop name for sentry ingestion

* Fix test

* Add default object
2024-01-25 21:11:01 -08:00
Eric Bailey 3371038f7d New Onboarding (#2596)
* Add round and square buttons

* Allow some style for buttons, add icons

* Change text selection color

* Center button text, whoops

* Outer layout, some primitive updates

* WIP

* onboarding feed prefs (#2590)

* add `style` to toggle label to modify text style

* Revert "add `style` to toggle label to modify text style"

This reverts commit 8f4b517b85.

* following feed prefs

* remove unnecessary memo

* reusable divider component

* org imports

* add finished screen

* Theme SelectedAccountCard

* Require at least 3 interests

* Placeholder save logic

* WIP algo feeds

* Improve lineHeight handling, add RichText, improve Link by adding InlineLink

* Inherit lineHeight in heading comps

* Algo feeds mostly good

* Topical feeds ish

* Layout cleanup

* Improve button styles

* moderation prefs for onboarding (#2594)

* WIP algo feeds

* modify controlalbelgroup typing for easy .map()

* adjust padding on button

* add moderation screen

* add moderation screen

* add moderation screen

---------

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

* Fix toggle button styles

* A11y props on outer portal

* Put it all on red

* New data shape

* Handle mock data

* Bulk write (not yet)

* Remove interests validation

* Clean up interests

* i18n layout and first step

* Clean up suggested follows screen

* Clean up following step

* Clean up algo feeds step

* Clean up topical feeds

* Add skeleton for feed card

* WIP moderation step

* cleanup moderation styles (#2605)

* cleanup moderation styles

* fix(?) toggle button group styles

* adjust toggle to fit any screen

* Some more cleanup

* Icons

* ToggleButton tweaks

* Reset

* Hook up data

* Better suggestions

* Bulk write

* Some logging

* Use new api

* Concat topical feeds

* Metrics

* Disable links in RichText, feedcards

* Tweak primary feed cards

* Update metrics

* Fix layout shift

* Fix ToggleButton again, whoops

* Error state

* Bump api package, ensure interests are saved

* Better fix for autofill

* i18n, button positions

* Remove unused export

* Add default prefs object

* Fix overflow in user cards

* Add 2 lines of bios to suggested accounts cards

* Nits

* Don't resolve facets by default

* Update storybook

* Disable flag for now

* Remove age dialog from moderations step

* Improvements and tweaks to new onboarding

---------

Co-authored-by: Hailey <153161762+haileyok@users.noreply.github.com>
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2024-01-25 20:22:40 -08:00
Paul Frazee 5443503593 Add account-activation queueing to signup (#2613)
* Add deactivated-account tracking

* Center button text

* Add Deactivated screen

* Add icon to Deactivated screen

* Abort session resumption if the session is deactivated

* Implement deactivated screen status checks

* Bump api@0.9.5

* Use new typo-fixed scope

* UI refinements
2024-01-25 15:33:23 -08:00
dan 335bef3d30 Present highlighted post as part of the thread (#2628) 2024-01-25 14:48:25 -08:00
Hailey ab200285c5 android alt text selection fix for expandable alt (#2629) 2024-01-25 14:12:15 -08:00
dan 10b1d16c8a Fix post controls tap areas (#2627) 2024-01-25 14:06:28 -08:00
dan ef84f3a25e Dejank navigation between thread posts (#2625)
* Dejank parent thread spinner

* Fix bottom border/spinner jank

* Revert unnecessary change
2024-01-25 13:32:17 -08:00
dan de6b380f4e Show composer reply prompt on tablet (#2622) 2024-01-25 13:26:07 -08:00
dan 8d3179f082 Fix races for post like/repost toggle (#2617) 2024-01-25 21:25:12 +00:00
dan 3b26b32f7f Derive shadow like count (#2616) 2024-01-25 21:21:07 +00:00
surfdude29 a588b0d548 add English name after endonym for languages (#2608) 2024-01-25 13:02:46 -08:00
dan 7f7b7492d6 Remove dead code for optimistic updates (#2615) 2024-01-25 12:19:25 -08:00
surfdude29 e4622e876e Update copyright year in LICENSE (#2606) 2024-01-25 12:15:40 -08:00
dan 63fbdede42 Clean up the post controls UI (#2614)
* Hide zeros on post ctrls

* Align buttons between posts

* Update loading placeholders

* Remove unused
2024-01-25 01:38:23 +00:00
dan e111a31c1d Capitalize screen headers consistently (#2612) 2024-01-24 15:21:43 -08:00
dan c2733bc2c0 Use consistent spinners for loading screens (#2611)
* Use consistent spinners for loading screens

* Consolidate into LoadingScreen
2024-01-24 23:01:22 +00:00
Samuel Newman 9ff74ff30a set icon colour to text colour (#2607) 2024-01-24 09:50:39 -08:00
Paul Frazee d87c643715 Re-enable german translation 2024-01-23 20:39:35 -08:00
Paul Frazee e628556d1f Merge branch 'main' of github.com:bluesky-social/social-app into main 2024-01-23 20:33:38 -08:00
Paul Frazee e273f4ed21 Merge branch 'snackpackwayne-patch-1' into main 2024-01-23 20:32:30 -08:00
Paul Frazee fe43f7a2a0 Merge branch 'patch-1' of https://github.com/snackpackwayne/social-app into snackpackwayne-patch-1 2024-01-23 20:31:40 -08:00
Samuel Newman 94f39bb3eb Scroll feed search bar to top of screen on focus (#2602)
* Scroll feed search bar to top on focus

* update comment
2024-01-23 20:22:22 -08:00
Paul Frazee 382383ca87 Merge branch 'quiple-fix-margin' into main 2024-01-23 20:17:08 -08:00
Paul Frazee 20e5c5b3f8 Move the leftnav back out 10px 2024-01-23 20:15:59 -08:00
Paul Frazee 8a59e5310e Merge branch 'fix-margin' of https://github.com/quiple/social-app into quiple-fix-margin 2024-01-23 20:14:09 -08:00
Paul Frazee 5cc20ac70c Disable scroll on the composer TextInput (close #2413) (#2603) 2024-01-23 19:38:28 -08:00
Paul Frazee c7647b47cf Merge branch 'mary-ext-feat/search-from-me' into main 2024-01-23 15:52:47 -08:00
Paul Frazee 68a439d570 Merge branch 'feat/search-from-me' of https://github.com/mary-ext/fork-bsky-app into mary-ext-feat/search-from-me 2024-01-23 15:52:34 -08:00
Mary 6076b8f730 fix: resolve handle in feed/list urls (#2497) 2024-01-23 15:11:07 -08:00
Paul Frazee 439f459cef Merge branch 'main' of github.com:bluesky-social/social-app into main 2024-01-23 14:16:32 -08:00
Paul Frazee a2b58852e7 Merge PR #2495 by haileyok
Squashed commit of the following:

commit 9d9c46ced116079add8ae1beaed854b38962d608
Author: Paul Frazee <pfrazee@gmail.com>
Date:   Tue Jan 23 14:12:32 2024 -0800

    Fix reference error on the web build

commit 1981621c5b6f2b63b3e3875b68721161487d7df0
Merge: cda4fe4a 0d9b6954
Author: Paul Frazee <pfrazee@gmail.com>
Date:   Tue Jan 23 12:43:51 2024 -0800

    Merge branch 'feat/selectable-text' of https://github.com/haileyok/social-app into haileyok-feat/selectable-text

commit 0d9b695447
Merge: 3c381f94 f1a7a571
Author: Hailey <153161762+haileyok@users.noreply.github.com>
Date:   Fri Jan 19 16:42:13 2024 -0800

    Merge branch 'main' into feat/selectable-text

commit 3c381f9470
Merge: f9510156 fb596e7f
Author: Hailey <153161762+haileyok@users.noreply.github.com>
Date:   Thu Jan 18 23:48:10 2024 -0800

    Merge branch 'main' into feat/selectable-text

commit f951015637
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 18 23:46:25 2024 -0800

    update readme

commit aa9b8b06ed
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 18 23:37:49 2024 -0800

    calculate line height

commit 9fe479630c
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 18 23:19:31 2024 -0800

    improve height calculation, render on prop changes

commit 209caffa7d
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 18 22:53:08 2024 -0800

    presses

commit 384c8ec3a8
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 18 21:57:56 2024 -0800

    line break mode

commit adfcf05fe4
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 18 21:50:21 2024 -0800

    onTextLayout event

commit e9ba104e6f
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 18 21:34:35 2024 -0800

    better naming

commit e335f5ab7f
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 18 21:31:38 2024 -0800

    remove android

commit 9e197934ba
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 18 21:28:28 2024 -0800

    remove expo module

commit 99882c7e39
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 18 21:27:43 2024 -0800

    handle presses

commit 18f818649e
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 18 21:14:38 2024 -0800

    make use of rctshadowview

commit 7134e1106e
Author: Hailey <me@haileyok.com>
Date:   Wed Jan 17 20:38:39 2024 -0800

    stop unnecessary layouts, resize container before setting text

commit 340b84f053
Author: Hailey <me@haileyok.com>
Date:   Wed Jan 17 11:17:36 2024 -0800

    handle prop changes for both children and root views

commit d906fe4fcf
Author: Hailey <me@haileyok.com>
Date:   Tue Jan 16 18:42:22 2024 -0800

    handle onpress better

commit b6b0964168
Author: Hailey <me@haileyok.com>
Date:   Tue Jan 16 16:57:31 2024 -0800

    resolve animation issue, animate alt text expansion

commit daedd1f671
Author: Hailey <me@haileyok.com>
Date:   Tue Jan 16 15:47:24 2024 -0800

    move getChildren to didMoveToWindow

commit 87d44e4b57
Author: Hailey <me@haileyok.com>
Date:   Mon Jan 15 18:48:36 2024 -0800

    simplify getPressed

commit d92584bad7
Author: Hailey <me@haileyok.com>
Date:   Mon Jan 15 17:56:43 2024 -0800

    just more cleanup

commit d39f7a937d
Author: Hailey <me@haileyok.com>
Date:   Mon Jan 15 17:03:19 2024 -0800

    remove unnecessary property for gesture recognizer

commit a35513a1d2
Author: Hailey <me@haileyok.com>
Date:   Mon Jan 15 16:55:36 2024 -0800

    remove debug line

commit 788956aa01
Author: Hailey <me@haileyok.com>
Date:   Mon Jan 15 16:33:44 2024 -0800

    typo

commit a3ba6e7825
Author: Hailey <me@haileyok.com>
Date:   Mon Jan 15 13:42:25 2024 -0800

    make alt text selectable

commit e5472a13da
Author: Hailey <me@haileyok.com>
Date:   Mon Jan 15 05:27:15 2024 -0800

    re-render on numberOfLines change

commit 9f5b7602c1
Author: Hailey <me@haileyok.com>
Date:   Mon Jan 15 04:57:35 2024 -0800

    more implementations

commit aa96bba066
Author: Hailey <me@haileyok.com>
Date:   Mon Jan 15 03:12:43 2024 -0800

    merge main in

    what are you doing there? go away

    fix recognizer to clear selected text on tap

    remove jank/hacks

    update readme

    remove android stuff

    (?) don't remove clipped subview on android for selection
    enable selection of alt text

    add numberOfLines
    properly apply container styles

    handle both selection and expand press events in alt text

    far better implementation

    revert link changes

    revert lightbox changes for now

    fix file name

commit ec8c05f3f0
Merge: 2435a252 12a0ceee
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 23:41:10 2024 -0800

    Merge branch 'main' into feat/selectable-text

    # Conflicts:
    #	src/view/com/util/Link.tsx

commit 2435a25257
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 23:30:13 2024 -0800

    cleanup

commit fdf75927f6
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 23:25:23 2024 -0800

    remove debug

commit 36d8cd82ef
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 23:25:17 2024 -0800

    reset text selection on text update

commit b8f7bc23c2
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 23:24:43 2024 -0800

    use textkit 1

commit 5216464458
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 22:50:15 2024 -0800

    properly handle link press events

commit 2802902c69
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 22:49:47 2024 -0800

    modify Link so that we can create the TextLink press handler outside

commit 860610e63a
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 19:17:51 2024 -0800

    always make sure we use the latest styles

commit 7f05d0141b
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 16:57:08 2024 -0800

    update readme with tech info

commit b8318446a3
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 16:34:35 2024 -0800

    remove all uitextview padding

commit 0f0b6aa131
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 16:34:28 2024 -0800

    cleanup imports

commit c9f0064836
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 16:18:08 2024 -0800

    update interface

commit 7dcac644ba
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 16:13:49 2024 -0800

    remove useless struct

commit 5174744213
Author: Hailey <me@haileyok.com>
Date:   Fri Jan 12 16:13:34 2024 -0800

    adjust deps

commit ce8b9ed62b
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 11 22:15:50 2024 -0800

    add readme, update info

commit 33c6e3b15c
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 11 22:04:53 2024 -0800

    remove unnecessary android/web stuff

commit fbca531bdf
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 11 22:02:30 2024 -0800

    simplify cast of string.index to int before i forget

commit 648552eafb
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 11 02:01:20 2024 -0800

    wip

commit c6d2e54923
Author: Hailey <me@haileyok.com>
Date:   Thu Jan 11 00:38:47 2024 -0800

    selectable text experiment
2024-01-23 14:15:47 -08:00
bnewbold a2f49bb08c more social card tweaks, and include in RSS as well (#2599)
* move link expander to new file, add test, refactor a bit

* text formatting: include indication if a quote post exists

* rss: include expanded links
2024-01-23 13:16:32 -08:00
Zach Lipton c58e65000d Include expanded urls in social cards (#2427)
* include expanded urls in social cards (#2427)

* break expandPostLinks into its own function, add bounds checking
2024-01-23 13:04:22 -08:00
Gargaj cdbdb37aac Ensure OG:Image is filled when post contains a record (#2586) 2024-01-23 13:02:53 -08:00
Paul Frazee cda4fe4a7f basic implementation of search history (#2597)
Co-authored-by: Ryan Skinner <ryanskinner@gmail.com>
2024-01-23 12:06:40 -08:00
Mary abac959d03 Resolve facets on list descriptions (#2485)
* feat: add strict/loose link mapping

* feat: resolve facets on list description
2024-01-23 10:39:13 -08:00
Minseo Lee 4942d0b7ac Update FeedItem.tsx 2024-01-23 21:11:41 +09:00
Minseo Lee c6f800f4d9 Adjust LeftNav 2024-01-23 10:31:09 +09:00
Minseo Lee 57ac782a2c Set left margin of new list buttons 2024-01-23 10:12:43 +09:00
Minseo Lee 1828bc9755 Update Korean localization (#2494)
* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update localizations

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po
2024-01-22 15:57:00 -08:00
Mary 55ad808785 fix: don't expose post content on no-unauthenticated (#2584) 2024-01-22 15:55:51 -08:00
Paul Frazee 7ca6ba2e1c Merge branch 'mary-ext-feat/image-dnd' into main 2024-01-22 15:54:36 -08:00
Paul Frazee f67812d09a Tweak positioning 2024-01-22 15:52:50 -08:00
Paul Frazee eda4dee3ab Merge branch 'feat/image-dnd' of https://github.com/mary-ext/fork-bsky-app into mary-ext-feat/image-dnd 2024-01-22 15:39:39 -08:00
Hailey 6569f8a870 use color scheme in in-app browser (#2580) 2024-01-22 15:17:56 -08:00
dan 010e94a6a9 Fix jump when opening last post in thread (#2591) 2024-01-22 15:13:14 -08:00
dan 21846ce52d Fix orphan replies in linear mode (#2578) 2024-01-22 15:10:06 -08:00
Paul Frazee d25b17ab19 Merge branch 'main' of github.com:bluesky-social/social-app into main 2024-01-22 15:04:41 -08:00
Paul Frazee ad018d8dbd Merge branch 'GID0317-main' into main 2024-01-22 15:04:19 -08:00
Paul Frazee df88cb672d Merge branch 'main' of https://github.com/GID0317/social-app into GID0317-main 2024-01-22 15:04:06 -08:00
Minseo Lee d51ad1fec9 Fix typos, improve localization and unify separators (#2502)
* Correct a typing error in `FeedItem.tsx` and replace the middle dot in `Drawer.tsx` with a bullet.

* Bullet to middle dot

* `liked your custom feed{0}` to `liked your custom feed {0}`

* Revert "`liked your custom feed{0}` to `liked your custom feed {0}`"

This reverts commit 43ae67bd03.

* Update FeedItem.tsx

* Update country-codes.ts
2024-01-22 14:55:56 -08:00
Noritada Kobayashi abacc51b50 Update Japanese localization based on the latest codebase (#2509)
* Update Japanese localization based on the latest codebase

* Improve translations based on suggestions in reviews

Co-authored-by: oboenikui <3191462+oboenikui@users.noreply.github.com>

* Update messages.po

Co-authored-by: Noritada Kobayashi <noritada.kobayashi@gmail.com>

* Make corrections and improvements suggested

Co-authored-by: L-tan <3786294+dolciss@users.noreply.github.com>

* Translate 9 new messages

* Improve a translation

* Translate 23 new messages

---------

Co-authored-by: oboenikui <3191462+oboenikui@users.noreply.github.com>
Co-authored-by: Hima <131072934+Hima-Zinn@users.noreply.github.com>
Co-authored-by: L-tan <3786294+dolciss@users.noreply.github.com>
2024-01-22 14:48:47 -08:00
Gildásio Filho 0877d2fc54 Update pt-BR translation (#2471)
* Update messages.po

Started reviewing and rewriting bad translations

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>

* Update messages.po

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>

* Update messages.po

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>

* Update messages.po

* Update messages.po

* Add missing untranslated entries

* Translation reviewed

Updated grammar, spelling and context of some strings.

Was not sure how to handle the translation of "legacy storage data"; open to suggestions.

* Update messages.po to 1.66

---------

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>
Co-authored-by: faeriarum <49880895+faeriarum@users.noreply.github.com>
2024-01-22 14:47:30 -08:00
dan f015229acf New Web Layout (#2126)
* Rip out virtualization on the web

* Screw around with layout

* onEndReached

* scrollToOffset

* Fix background

* onScroll

* Shell bars

* More scroll

* Fixes

* position: sticky

* Clean up 1

* Clean up 2

* Undo PagerWithHeader changes and fork it

* Trim down both versions

* Cleanup 3

* Memoize, lint

* Don't scroll away modal or lightbox

* Add content-visibility for rows

* Fix composer

* Fix types

* Fix borked scroll animation

* Fixes to layout

* More FlatList parity

* Layout fixes

* Fix more layout

* More layout

* More layouts

* Fix profile layout

* Remove onScroll

* Display: none inactive pages

* 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

* Move the fork to List.web

* Add scroll handler

* Consolidate List props a bit

* More stuff

* Rm unused

* Simplify

* Make isScrolledDown work

* Oops

* Fixes

* Hook up context scroll handlers

* Scroll restore for tabs

* Route scroll restoration POC

* Fix some issues with restoration

* Remove bad idea

* Fix pager scroll restoration

* Undo accidental locale changes

* onContentSizeChange

* Scroll to post

* Better positioning

* Layout fixes

* Factor out navigation stuff

* Cleanup

* Oops

* Cleanup

* Fixes and types

* Naming etc

* Fix crash

* Match FL semantics

* Snap the header scroll on the web

* Add body scroll lock

* Scroll to top on search

* Fix types

* Typos

* Fix Safari overflow

* Fix search positioning

* Add border

* Patch react navigation

* Revert "Patch react navigation"

This reverts commit 62516ed9c2.

* fixes

* scroll

* scrollbar

* cleanup unrelated

* undo unrel

* flatter

* Fix css

* twk
2024-01-22 14:46:32 -08:00
GID 305ced747a Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:44:59 +07:00
GID b3efa0ddd5 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:43:10 +07:00
GID 073762805f Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:42:39 +07:00
GID 965b838b50 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:42:14 +07:00
GID 956b0a14fe Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:41:56 +07:00
GID b5b274a1b8 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:41:38 +07:00
GID 4c9bf2be6f Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:41:03 +07:00
GID 18ae390f42 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:40:33 +07:00
GID 1ddb4d4731 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:40:16 +07:00
GID 09dfbd9f92 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:39:50 +07:00
GID 6a2d748689 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:39:28 +07:00
GID a93bfb616a Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:39:02 +07:00
GID b40f725bf3 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:38:38 +07:00
GID 5341c383ce Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:38:21 +07:00
GID 1eef59efe4 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:37:56 +07:00
GID e3360bddf8 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:37:36 +07:00
GID 05561711b0 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:33:55 +07:00
GID 4df5ef454d Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:33:22 +07:00
GID f589987357 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:33:05 +07:00
GID d0190b3d26 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:32:49 +07:00
GID cecece0f8e Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:31:58 +07:00
GID ef5241d80f Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:28:11 +07:00
GID b327700681 Update src/locale/locales/id/messages.po
Co-authored-by: oops-wtf <153840949+oops-wtf@users.noreply.github.com>
2024-01-21 17:27:39 +07:00
Mary 526411ab25 fix: firefox edge-case 2024-01-21 08:43:11 +07:00
Mary f5356c3d47 fix: design adjustments 2024-01-21 08:43:11 +07:00
Mary 88f2a73ad6 fix: always call preventDefault 2024-01-21 08:43:11 +07:00
Mary 854718c555 refactor: use right borderDark 2024-01-21 08:43:11 +07:00
Mary 90b6cfbb91 feat: new design 2024-01-21 08:43:11 +07:00
Mary fbf2970bae feat: web composer image drag and drop 2024-01-21 08:43:11 +07:00
surfdude29 cd02922b03 use ISO 3166-1 alpha-2 names for UK and Virgin Islands (US) (#2585) 2024-01-20 12:57:19 -08:00
GID 1cbbb6993c Update messages.po 2024-01-20 18:12:13 +07:00
GID 4c473bf51c Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:58:24 +07:00
GID 00e6312a14 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:57:53 +07:00
GID 8e6b033a09 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:57:29 +07:00
GID 5476799cb6 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:57:03 +07:00
GID 675d6a4de1 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:56:41 +07:00
GID 6ff8de9b8d Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:55:57 +07:00
GID 9e9ccbdc41 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:55:36 +07:00
GID 210bda0690 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:55:14 +07:00
GID 88ca4444fa Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:54:48 +07:00
GID cfa7cc94d4 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:54:15 +07:00
GID 909d88d050 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:53:56 +07:00
GID 1decec17d3 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:53:35 +07:00
GID cb85d81e40 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:53:07 +07:00
GID 490bd70cde Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:52:36 +07:00
GID f132d17afb Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:52:18 +07:00
GID 9bf0d90a7d Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:51:54 +07:00
GID 7cb74d6947 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:51:29 +07:00
GID 01b5159dbf Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:50:26 +07:00
GID 8c0e80d3c5 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:50:12 +07:00
GID 71e93839fd Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:49:55 +07:00
GID 8f4c01e4f0 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:49:41 +07:00
GID be5319e2d0 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:49:27 +07:00
GID 4f34bdf8d2 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:49:10 +07:00
GID c74e9f6e45 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:48:40 +07:00
GID 1239df36c2 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:47:56 +07:00
GID 8078613402 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:47:12 +07:00
GID 45894c03d4 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:46:12 +07:00
GID d77afb7cd8 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:45:42 +07:00
GID bc9cad9044 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:45:16 +07:00
GID 20899ae0ce Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:44:55 +07:00
GID b7cd31d8ca Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:44:36 +07:00
GID c9c0319681 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:44:20 +07:00
GID 0983861d32 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:43:53 +07:00
GID 5426a83dec Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:43:25 +07:00
GID 9ed455937b Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:42:43 +07:00
GID a7ab5cc8dc Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:42:10 +07:00
GID 4fdf0f51e3 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:41:36 +07:00
GID c2427ebaaa Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:40:56 +07:00
GID 9b93c0ebd9 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:40:47 +07:00
GID d0d5125375 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:40:34 +07:00
GID 1fbb3843b5 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:40:19 +07:00
GID 3fcf6dc86c Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:39:58 +07:00
GID c67eec8a0a Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:39:44 +07:00
GID a602c7c9bf Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:39:00 +07:00
GID 855ebb3243 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:38:42 +07:00
GID ee8f3ba280 Update src/locale/locales/id/messages.po
Co-authored-by: Fafin <151415765+kodebanget@users.noreply.github.com>
2024-01-20 17:38:31 +07:00
Paul Frazee f1a7a5717d 1.66 2024-01-19 16:33:22 -08:00
Hailey eb07b983bd properly shorten links in quote embeds (#2570)
* properly shorten links in quote embeds

* lint
2024-01-19 16:15:07 -08:00
Minseo Lee 920d48849e Update Step2.tsx (#2568) 2024-01-19 16:14:12 -08:00
Eric Bailey 9835996d73 Send error boundary exceptions to Sentry (#2573) 2024-01-19 16:13:47 -08:00
Hailey 89607d90aa set proper content style to fix background color (#2575)
* set the proper content style

* lint
2024-01-19 16:13:29 -08:00
Hailey 5522b581ec flex and truncate content hider text (#2569) 2024-01-19 16:12:10 -08:00
Paul Frazee e175984506 Improve country-code handling for text verification (#2579) 2024-01-19 16:11:18 -08:00
Hailey b96302beeb improve external link design (#2577)
* improve external link design

* slight changes

* use 1.91 aspect for images
2024-01-19 15:24:17 -08:00
Ivan Beà dafa0fb1e3 Update catalan messages.po (#2571)
* Update messages.po

Minor corrections spotted by another bluesky user

* Update messages.po

Apply corrections from @jordimas, changing all the occurrences of "discussió" for "debat"
2024-01-19 14:58:37 -08:00
GID 140834283e Update src/locale/locales/id/messages.po
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-01-19 17:51:58 +07:00
GID b2609e75d8 Update src/locale/locales/id/messages.po
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-01-19 17:49:53 +07:00
GID fd6be6b993 Update src/locale/locales/id/messages.po
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-01-19 17:49:42 +07:00
GID af1c34e72c Update src/locale/locales/id/messages.po
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-01-19 16:38:39 +07:00
GID 88abe598ac Update src/locale/locales/id/messages.po
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-01-19 16:38:11 +07:00
GID 2399ea4558 Update src/locale/locales/id/messages.po
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-01-19 16:38:01 +07:00
GID 0158f70270 Update src/locale/locales/id/messages.po
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-01-19 16:37:51 +07:00
GID 42784b9059 Update src/locale/locales/id/messages.po
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-01-19 16:35:57 +07:00
GID 4f275de00f Update src/locale/locales/id/messages.po
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-01-19 16:35:43 +07:00
GID fe2a1ef88f Update src/locale/locales/id/messages.po
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-01-19 16:35:21 +07:00
GID 462cc0d1a2 Update src/locale/locales/id/messages.po
Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
2024-01-19 16:35:04 +07:00
Jordi Mas fb596e7f79 Fixes msgfmt error in line 196 (#2567) 2024-01-18 22:40:22 -08:00
Mary 5b20ad1ebd Prevent close on backdrop for alt text edit modal (#2492)
* fix: don't close on backdrop for alt text edit

* fix: ignore esc key press if a modal is open
2024-01-18 22:25:03 -08:00
Paul Frazee 2f6c34d18d Merge branch 'mary-ext-feat/better-autocomplete-view' into main 2024-01-18 22:22:14 -08:00
Paul Frazee f58e1149c9 Change handling for mobile 2024-01-18 22:21:47 -08:00
Paul Frazee 809c534d32 Merge branch 'feat/better-autocomplete-view' of https://github.com/mary-ext/fork-bsky-app into mary-ext-feat/better-autocomplete-view 2024-01-18 22:10:33 -08:00
Kyrylo Pronskykh d514b13d62 fix: make alt text selectable in Lightbox (#2563) 2024-01-18 22:02:49 -08:00
Paul Frazee 34c1aebda6 Add catalan 2024-01-18 21:54:00 -08:00
Ivan Beà 0902b4ba41 Adding catalan localization (#2434)
* Create messages.po in catalan

* Apply suggestions from code review

Co-authored-by: Dario Castañé <d@rio.hn>

* Update messages.po

Change Estàs segur to Segur

* Update messages.po

Change "Estàs segur" to "Confirmes" "Ho confirmes" and keep using tuteo

* Update messages.po

adding suggestions by @jordimas

* Apply suggestions from code review

Co-authored-by: Dario Castañé <d@rio.hn>
Co-authored-by: Daniel Martí <mvdan@mvdan.cc>

---------

Co-authored-by: Dario Castañé <d@rio.hn>
Co-authored-by: Daniel Martí <mvdan@mvdan.cc>
2024-01-18 21:38:03 -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
Takayuki KUSANO 0dfe740dd3 Remove excess l10n related markups (#2544)
* Remove excess l10n related markups

* One more correction pointed out by quiple
2024-01-18 21:23:12 -08:00
Mary 2be2733082 fix: exempt well-known paths from being handled (#2505) 2024-01-18 21:13:28 -08:00
Paul Frazee ddca849e0d Merge branch 'Signez-better-fr-l10n' into main 2024-01-18 21:12:55 -08:00
Paul Frazee 7fb8af0872 Merge branch 'better-fr-l10n' of https://github.com/Signez/bsky-social-app into Signez-better-fr-l10n 2024-01-18 21:12:06 -08:00
Minseo Lee 8af0d20f45 Update DiscoverFallbackHeader.tsx (#2537) 2024-01-18 20:59:38 -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 95f70a9a6a Phone number verification in account creation (#2564)
* Add optional sms verification

* Add support link to account creation

* Add e2e tests

* Bump api@0.9.0

* Update lockfile

* Bump api@0.9.1

* Include the phone number in the ui

* Add phone number validation and normalization
2024-01-18 20:48:51 -08:00
Eric Bailey 89f4105082 Allow images to use specified aspectRatios (#2558) 2024-01-18 20:48:22 -08:00
Eric Bailey 66b8774ecb New component library based on ALF (#2459)
* Install on native as well

* Add button and link components

* Comments

* Use new prop

* Add some form elements

* Add labels to input

* Fix line height, add suffix

* Date inputs

* Autofill styles

* Clean up InputDate types

* Improve types for InputText, value handling

* Enforce a11y props on buttons

* Add Dialog, Portal

* Dialog contents

* Native dialog

* Clean up

* Fix animations

* Improvements to web modal, exiting still broken

* Clean up dialog types

* Add Prompt, Dialog refinement, mobile refinement

* Integrate new design tokens, reorg storybook

* Button colors

* Dim mode

* Reorg

* Some styles

* Toggles

* Improve a11y

* Autosize dialog, handle max height, Dialog.ScrolLView not working

* Try to use BottomSheet's own APIs

* Scrollable dialogs

* Add web shadow

* Handle overscroll

* Styles

* Dialog text input

* Shadows

* Button focus states

* Button pressed states

* Gradient poc

* Gradient colors and hovers

* Add hrefAttrs to Link

* Some more a11y

* Toggle invalid states

* Update dialog descriptions for demo

* Icons

* WIP Toggle cleanup

* Refactor toggle to not rely on immediate children

* Make Toggle controlled

* Clean up Toggles storybook

* ToggleButton styles

* Improve a11y labels

* ToggleButton hover darkmode

* Some i18n

* Refactor input

* Allow extension of input

* Remove old input

* Improve icons, add CalendarDays

* Refactor DateField, web done

* Add label example

* Clean up old InputDate, DateField android, text area example

* Consistent imports

* Button context, icons

* Add todo

* Add closeAllDialogs control

* Alignment

* Expand color palette

* Hitslops, add shortcut to Storybook in dev

* Fix multiline on ios

* Mark dialog close button as unused
2024-01-18 20:28:04 -06:00
GID cf7aa2642c Update messages.po 2024-01-17 15:45:39 +07:00
GID ad44926d23 Update messages.po 2024-01-17 15:43:23 +07:00
Eric Bailey 9cbd3c0937 Reduce some Sentry logs (#2549)
* Reduce some Sentry logs

* Update tests
2024-01-16 15:48:35 -08:00
Eric Bailey 64f7800bed Patch @lingui/core to fix unraw import resolution error (#2548) 2024-01-16 14:35:08 -08:00
Paul Frazee f1e58626fb 1.65 2024-01-16 10:05:11 -08:00
Paul Frazee 8372c0c261 Fix the fallback to discover behavior on the home feed (#2546) 2024-01-16 10:01:41 -08:00
Mary 6d0557c959 feat: better autocomplete view 2024-01-16 07:31:01 +07:00
Paul Frazee d35be77a11 Bump android version code 2024-01-15 15:31:56 -08:00
Paul Frazee 8c4e5b5f0b Bump ios build number 2024-01-15 15:19:05 -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
bnewbold 1d3e20220d rss: filter out replies server-side (#2518) 2024-01-15 13:13:15 -08:00
Mary 921b57d1b7 feat: show muted/blocked status on list card (#2523) 2024-01-15 13:11:48 -08:00
Paul Frazee 12a0ceee8a 1.64 (#2521)
* bump expo

* 1.64

* Update locale files
2024-01-12 17:40:04 -08:00
Paul Frazee b3b818671e Bump react-native@0.73.2 (#2519)
* Bump react-native@0.73.2

* Remove old patch
2024-01-12 17:04:08 -08:00
Paul Frazee 8cc1bd0c40 Create a profile record on new user (#2520)
* Create a profile record on new user

* Dont hold up account creation for the profile
2024-01-12 17:01:14 -08:00
Stanislas Signoud (Signez) 46d0d911e1 Improve French localization thanks to reviews
Thanks to @fenarinarsa for all the review work!
2024-01-12 23:04:37 +01:00
Stanislas Signoud (Signez) 6734bc325d Translate more strings in French 2024-01-12 19:55:53 +01:00
Mary 40c757afa9 fix: truncate long email address (#2493) 2024-01-12 10:44:24 -08:00
Mary a0e345fa01 fix: set html lang according to app language (#2496) 2024-01-12 10:42:28 -08:00
Eric Bailey 11f6ff7cbe Ensure sessions and tokens are synced between tabs (#2498)
* Ensure sessions and tokens are synced between tabs

* Send clear account to sentry for monitoring
2024-01-12 10:39:21 -08:00
Eli Mallon c0261fc940 package.json: cp --verbose doesn't exist on macos (#2501) 2024-01-12 10:25:00 -08:00
Paul Frazee 95d771b3a5 Suggest post language correction (#2486)
* feat: suggested language

* fix: wording correction

* Factor out SuggestedLanguage into a separate component

* Tighten the language-suggestion confidence to avoid false positives

* Tweak the copy and UI

* Add function fallbacks for safari

---------

Co-authored-by: Mary <pineapplecreamcheese@skiff.com>
2024-01-12 10:20:17 -08:00
Paul Frazee 998ee29986 (optional) In app browser (#2490)
* add expo web browser + modal

* add in app browser option to settings

* don't show toggle on web

* Tweak browser-choice UIs

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-01-12 10:19:56 -08:00
Stanislas Signoud (Signez) 73f4866f15 Extract new strings to translate in French 2024-01-12 16:47:52 +01:00
Mary 7f4d3dc999 feat: from:me search syntax 2024-01-12 09:56:14 +07:00
dan b147f7ae8a Toggle minimal shell on any scroll for web (#2499) 2024-01-11 10:44:56 -08:00
Foysal Ahamed 3662259c5b New report type, appeal (#2455) 2024-01-10 23:16:45 -08:00
Max Ignatenko 17f7c36edf Update Ukrainian translation (#2469)
Co-authored-by: Ukrainians <github-actions@github.com>
2024-01-10 23:16:16 -08:00
Mary ca7ec9eec0 fix: don't set autocomplete on search input (#2482) 2024-01-10 23:11:03 -08:00
Minseo Lee 5cc46241d7 Reorder the locales alphabetically and correct the name for Indonesian (#2483) 2024-01-10 23:07:47 -08: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
Eric Bailey f7b01c3542 Add expired log (#2456)
* Add expired log

* Add service
2024-01-10 22:52:46 -08:00
bnewbold 231c528c88 remove deprecated search.bsky.social code (#2461) 2024-01-10 22:52:22 -08:00
Paul Frazee ce1e6518a2 Increase the number of lines for quote posts from 6 to 20 (#2489) 2024-01-10 22:51:54 -08:00
Hailey 6ec6d522e8 fix rendering of external in quote embeds (#2464) 2024-01-10 22:36:47 -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
Mary 0442dcc1a0 fix: add the appropriate color-scheme for dark mode (#2480) 2024-01-10 20:56:21 -08:00
Ansh c75771047c compile Post as an action (#2460) 2024-01-09 15:43:56 -08:00
Stanislas Signoud 008893b911 Internationalize more strings (#2440)
Co-authored-by: Ansh <anshnanda10@gmail.com>
2024-01-09 14:37:15 -08:00
Noritada Kobayashi aeeacd10d3 Mark more texts for localization (#2436) 2024-01-10 02:23:34 +05:30
Max Ignatenko 592133db58 Update Ukrainian translations (#2439) 2024-01-10 02:18:26 +05:30
Danni d7f4e1391c Add Indonesian localization (#2356)
* Add Indonesian (id) locale

* Add Indonesian translation messages

* Update team number and add some translation

* Update for better ID translation

* Apply suggestions from code review

Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>

* Apply suggestions from code review

Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com>

* Change translation post to postingan

* Update translation

* Fix error

* Apply suggestions from code review

Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com>

* Add Thinkbyte1024 and mary-ext to language team ID

* Update username to lowercase

---------

Co-authored-by: Aditya Dirgantara <ccoremapd@icloud.com>
Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com>
Co-authored-by: Ansh <anshnanda10@gmail.com>
2024-01-10 02:17:48 +05:30
Hailey dda5ca27fe add expandable context to composer when replying to post (#2419)
* add expand replyTo text with animation

* add images, quote to replyTo

* support withmedia

* adjust layout

* add embed to all needed openComposer calls

* adjust gap

* organize imports
2024-01-08 21:37:12 -08:00
Paul Frazee 153c25e1fe Add stable gutters to settings page 2024-01-08 20:51:56 -08:00
Paul Frazee bb3d9868f9 Merge branch 'settings-web' of https://github.com/rahulyadav5524/social-app into main 2024-01-08 20:46:52 -08:00
Eric Bailey a5b474895a Application Layout Framework (#1732)
* Initial library setup

* Add docblocks

* Some cleanup

* New storybook

* Playing around

* Remove silly test, use for...in

* Memo

* Memo

* Add hooks example

* Tweak colors, bit of cleanup

* Improve macro handling

* Add some more examples

* Rename for better diff

* Cleanup

* Add nested context example

* Add todo

* Less break more perf

* Buttons, you get the idea

* Fix test

* Remove temp colors

* Add a few more common macros

* Docs

* Perf improvements

* Alf go brrrr

* Update breakpoint handling

* I think it'll work

* Better naming, better code

* Fix typo

* Some renaming

* More complete pass at Tailwind naming

* Build out storybook

* Playing around with curves

* Revert "Playing around with curves"

This reverts commit 6b0e0e5c9d.

* Smooth brain

* Remove outdated docs

* Some docs, fix line-height values, export tokens
2024-01-08 19:43:56 -06:00
Eric Bailey 0ee0554b86 Do not nuke session on unknown backend errors (#2399)
* Do not nuke session on unknown backend errors

* Restore existing functionality

* Use new event

* Kick user out to sign in

* Remove unstable
2024-01-08 15:59:55 -08:00
Eric Bailey c1e8abfb77 Fix splash config (#2452)
* Don't use mask for android at all

* Handle reduced motion

* Add dark splash

* Add dark config

* Try more config

* Duplicate config

* Ensure splash config is applied
2024-01-08 14:55:47 -08:00
Hailey cb9ed35cf6 convert prefix to lowercase in actor autocomplete query (#2431) 2024-01-08 13:56:47 -08:00
Hailey 928a626c2e support intl tenor links (#2438)
* support intl tenor links

* update test cases
2024-01-08 13:55:48 -08:00
Eric Bailey 9eeff2cc5c Splash: reduce motion + dark mode (#2448)
* Don't use mask for android at all

* Handle reduced motion

* Add dark splash

* Add dark config

* Fix android version code

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2024-01-08 13:47:25 -08:00
Paul Frazee fcfebda469 Bump android app version code 2024-01-08 12:10:30 -08:00
Eric Bailey da575a6379 Don't use mask for android at all (#2445)
* Don't use mask for android at all

* Remove old Android check
2024-01-08 12:09:30 -08:00
Minseo Lee 15f3c679aa Update Korean localization (#2432)
* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po
2024-01-08 23:48:18 +05:30
Rahul Yadav e3e13a362f Fixed same issue 2024-01-07 20:21:15 +05:30
Rahul Yadav 9fabf28cab Fixed import issue 2024-01-07 20:17:45 +05:30
Rahul Yadav 66e5cccb87 Removed unused code 2024-01-07 19:53:00 +05:30
Rahul Yadav 218fdde8d9 Removed unused code 2024-01-07 19:50:12 +05:30
Rahul Yadav abc65a9347 Fixed scroll issue 2024-01-07 19:47:36 +05:30
Eric Bailey 56021ccda5 Use android mode, fix fallback (#2437) 2024-01-05 13:53:59 -06:00
Maison da Silva f65bbe36f5 Update for Version 1.63 Português (BR) (#2435)
* Update for Version 1.63

* Update Date
2024-01-05 23:33:12 +05:30
Max Ignatenko bc067295b8 New translations messages.po (Ukrainian) (#2422) 2024-01-05 17:22:04 +05:30
Noritada Kobayashi 98885656a3 Update Japanese localization (addition + language code correction) (#2423) 2024-01-05 17:20:54 +05:30
Paul Frazee 6e8650e2eb 1.63 2024-01-04 17:40:28 -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 985b92b4e6.

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

This reverts commit 4895ded8b5.

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

This reverts commit 36d04b517b.

* 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 db62f27241 Reduce web requests (#2420)
* Stop auto-refetching app passwords and invites on an interval

* Don't poll for posts or notifs if the app/tab isnt focused
2024-01-04 17:36:27 -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
Paul Frazee 34817628e1 E2E runner fixes (#2428)
* Fix mock-server run script

* Bump detox

* Replace fetch with node-native api
2024-01-04 17:33:57 -08:00
Rahul Yadav 454973f3cc fixed lint issue 2024-01-04 23:56:58 +05:30
Maison da Silva 67e70918e3 Recompile all locales (#2411) (#2416) 2024-01-04 03:56:47 +05:30
Max Ignatenko 401b3401c7 Add Ukrainian localization (#2336) 2024-01-04 01:52:55 +05:30
Maison da Silva 1f38e9b197 Update Portuguese for Português (#2414) 2024-01-04 01:02:22 +05:30
Ansh 1fed517a17 Add Portuguese Localization (#2407)
* Create messages.

* Update helpers.test.ts

* Update helpers.ts

* Update i18n.ts

* Update i18n.web.ts

* Update languages.ts

* Update i18n.ts

* Update lingui.config.js

* Correct file name and remove unused variables!

* Update Language-Team

* Update Bump ios build

* Fix for Stop the user from posting before the link card finishes loading #2328

* Update based in model en

* Update last version lang

* Update messages.po tsx:160 and tsx:143

* Bump ios build number and android version code

* adjustment

* adjustment 100%

* Update Date

* Update Day for Merge

* Update Name Maison for Maison da Silva

* fix order of case

* fix lint

* add tag for BR portugese

* add tag for BR

* update `pt` to `pt-BR`

---------

Co-authored-by: Maison da Silva <maisonmdsgreen@hotmail.com>
2024-01-04 00:15:56 +05:30
Ansh 7299c730cf Recompile all locales (#2411) 2024-01-04 00:12:42 +05:30
Paul Frazee d49045b61b Fix to spanish localization file 2024-01-03 10:33:28 -08:00
Ansh 3bee621347 Enable Spanish Localization (#2405)
* add `es` to `lingui.config.js`

* update messages.po

* enable spanish localization
2024-01-03 10:14:36 -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
Rahul Yadav 2c31e2a042 Fixed slider flicker issue when sliding in revese side (#2368) 2024-01-03 11:08:21 -06:00
Ansh a410aad23c Improve French Localization (#2404)
* update messages.po for french

* Update src/locale/locales/fr/messages.po

Co-authored-by: Stanislas Signoud <signez@stanisoft.net>

* change based on feedback

---------

Co-authored-by: Stanislas Signoud <signez@stanisoft.net>
2024-01-03 21:16:23 +05:30
Noritada Kobayashi 032a5bd8a7 Add and fix Japanese localization (#2374) 2024-01-03 20:20:41 +05:30
Stanislas Signoud 7f999d9ebd Improve French localization (#2393)
* Extract latest strings from the codebase

* Improve French translation

- Add missing translations
- Always use French guillemets («») when applicable
- Always add an article (le/la/l’) before nouns
- Use … character instead of three dots
- Change "Mettre en sourdine" into "Masquer", used in other products for "Mute" (and shorter)
- Change other usages of "Masquer" into its synonym "Cacher" to prevent confusion between concepts
- Shorten "Nouvelle publication" into "Nouv. publication" to prevent it overflowing in the main blue button
- Fixed other little errors

* Extract even newer strings from the codebase

* Translate latest new strings into French

* Move from publication to post in French localization
2024-01-03 20:09:45 +05:30
Noritada Kobayashi 61ef0a8242 Localize the option to make alt text mandatory (#2376) 2024-01-03 17:26:30 +05:30
Minseo Lee ffd08570a5 Add Korean localization (#2395)
* Create messages.po

* Add Korean localization
2024-01-03 17:04:21 +05:30
Hailey d4bb64c1e6 Fix various issues with screen dimension detection in external player (#2349)
* various dimension fixes

* use reactive hook for dimensions

* remove debug

* accurate dismissing of player
2024-01-02 22:36:43 -08:00
Mathieu Acthernoene db3bf784fb Remove splashscreen blink (#2378)
* chore: remove unused react-native-splash-screen package

* Fix splashscreen white blink
2024-01-02 22:21:17 -08:00
Eric Bailey 2f6f27c4fb Add some more logging (#2402)
* Add a few logs

* Report unknown create account errors separately

* Downgrade to warn

* Nvm
2024-01-02 22:11:04 -08:00
Paul Frazee d95972c9ff Rework alt-text input to use bottom sheet (#2355)
* Rework alt-text input to use bottom sheet

* Add translations
2024-01-02 15:14:09 -08:00
Paul Frazee 0842df3675 Merge branch 'haileyok-fix/android-image-picker-patch' into main 2024-01-02 12:54:06 -08:00
Paul Frazee 21f7cf216a Add patch explanation md 2024-01-02 12:53:52 -08:00
Paul Frazee eeafd03ddf Remove intermediate build files from patch 2024-01-02 12:52:36 -08:00
Paul Frazee bb17d2d23b Merge branch 'fix/android-image-picker-patch' of https://github.com/haileyok/social-app into haileyok-fix/android-image-picker-patch 2024-01-02 12:34:11 -08:00
Hailey c1dc0b7ee0 emoji picker improvements (#2392)
* rework emoji picker

* dynamic position

* always prefer the left if it will fit

* add accessibility label

* Update EmojiPicker.web.tsx

oops. remove accessibility from fake button
2024-01-02 12:16:28 -08:00
Paul Frazee e460b304fc Merge branch 'haileyok-fix/android-splash-hackfix' into main 2024-01-02 11:57:43 -08:00
Paul Frazee 43ac20881f Add comment 2024-01-02 11:57:27 -08:00
Hailey cb6e164cd2 adjust api level 2023-12-31 16:14:24 -08:00
Hailey 87245480d4 who the hell knows 2023-12-31 16:05:07 -08:00
Rahul Yadav d9e68d1604 Show setting header in web 2023-12-30 14:46:27 +05:30
Hailey 54e6ed8ebc ensure no more than four assets, show toast if more 2023-12-29 22:00:52 -08:00
Hailey a4aefcc8f8 allow multiple fix 2023-12-29 21:53:17 -08:00
Hailey 478defce6e patch expo-image-picker to support "browse" 2023-12-29 21:42:18 -08:00
Noritada Kobayashi 4e9e92f976 Localize options in "Thread Preferences" screen (#2373) 2023-12-30 01:15:13 +08:00
Paul Frazee 1f037a0b43 Bump ios build number and android version code 2023-12-28 19:05:50 -08:00
Paul Frazee b9fc152749 Remove the KeyboardAvoidingView in account creation (close #2333) (#2366)
* Remove the keyboardavoidingview in account creation (close #2333)

* Smaller pad on desktop/tablet
2023-12-28 19:05:17 -08:00
Paul Frazee 7634b581dd 1.62 2023-12-28 15:52:38 -08:00
Paul Frazee 9e330d2c6a Create account tweaks (#2365)
* Disable autocomplete, autocapitalize, and autocorrect in create account login

* Add username textContentType to login to try to prompt password manager more regularly

* Fix type
2023-12-28 15:48:55 -08:00
Paul Frazee 709b0b6002 Fix sizing of the leftnav new post btn (#2248) 2023-12-28 15:47:39 -08:00
Paul Frazee 759d3f11b8 Use memory caching for android lightbox (#2354) 2023-12-28 15:47:05 -08:00
Paul Frazee 2a369e7e47 Disable page-transition animations on android (#2352) 2023-12-28 15:46:50 -08:00
Paul Frazee 0d960c58ba Disable BlurView on android (#2351)
* A couple of small tweaks

* Force the UI to re-render by setting a key

* Disable to blurview on android

* Remove hackfix
2023-12-28 15:46:37 -08:00
Eric Bailey 705f9b61ef Handle birth dates as UTC, handle locale formatting (#2363)
* Enforce UTC for birthdate picker

* Handle locales

* Remove log

* Add a second snap point to the date input in case text is zoomed

* Guard against bad dates

* Log message

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-28 14:13:51 -08:00
Paul Frazee 23c9c8977b Merge branch 'main' of github.com:bluesky-social/social-app into main 2023-12-28 13:43:01 -08:00
Paul Frazee c9704f447d Merge branch 'mozzius-web-search' into main 2023-12-28 13:42:18 -08:00
Paul Frazee 363929b1a7 Fix desktop styles a bit 2023-12-28 13:41:23 -08:00
Paul Frazee 47127ce0ab Merge branch 'web-search' of https://github.com/mozzius/bluesky-official-app into mozzius-web-search 2023-12-28 13:27:02 -08:00
Paul Frazee 6e7098e456 Disable spanish translation until it's more thoroughly reviewed (#2362)
* Disable spanish translation until it's more thoroughly reviewed

* missed a line
2023-12-28 13:03:54 -08:00
Hailey f0532865ce minor search screen ux improvements (#2264)
* handle taps while keyboard is displayed

* dismiss keyboard on drag when searching feeds

* dismiss on drag and persist taps on suggested follows

* add hitslop to clear button

* add hitslop to cancel button

* dismiss keyboard on drag when searching users

* hit slop for feed search clear button

* move import
2023-12-28 12:58:28 -08:00
Paul Frazee 40a110c541 Temporarily disable the german translation (#2360) 2023-12-28 12:07:08 -08:00
Eric Bailey b326e1d3bd Web dropdowns (#2358)
* Split out web dropdown

* Remove unused

* Remove unused style

* Close on escape

* Reduce chance of opening while scrolling

* Tune web dropdown styles

* Fix type

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-28 11:47:33 -08:00
SnackpackWayne 52cb777c94 Merge branch 'main' into patch-1 2023-12-27 22:38:01 +01:00
Noritada Kobayashi f402f33a02 Mark more text as translatable (#2284) 2023-12-27 09:27:32 -08:00
Eric Bailey c91b9efccb Remove patched color scheme code (#2340) 2023-12-27 09:19:47 -08:00
snek 929987f806 support multiple og:image tags (#2305) 2023-12-27 18:13:53 +01:00
Paul Frazee b5d53ef0b9 Fix missing avatar moderation in replies (#2325) 2023-12-27 08:53:39 -08:00
Paul Frazee e1ba649560 Fixes to feed load triggers (#2323)
* Add soft-reset support to ProfileFeed and ProfileList

* Fix: correctly unsubscribe the notifications soft-reset listener
2023-12-27 08:53:24 -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
Paul Frazee 0c9dc2163a Fix: only show appeal CW item on moderated posts (#2312)
* Fix: only show appeal CW item on moderated posts

* Add appeal cw control to feed view o fposts
2023-12-27 08:48:23 -08:00
Paul Frazee 6e001dbf1c A couple notifications fixes (#2327)
* Clear the app badge notif count on markallread

* Fix like notifications on custom feeds
2023-12-27 08:47:45 -08:00
Paul Frazee 3b240db0c0 Stop the user from posting before the link card finishes loading (#2328)
* Stop the user from posting before the link card finishes loading

* Add localization of error messages
2023-12-27 08:47:26 -08:00
Noritada Kobayashi e27ffc850a Make Japanese localization improvements (#2285)
* Make Japanese l10n improvements

* Update messages.po

---------

Co-authored-by: Ansh <anshnanda10@gmail.com>
2023-12-27 20:39:15 +05:30
Paul Frazee b2b4ef858b Correctly load spanish localization (#2324) 2023-12-26 17:54:57 -08:00
SnackpackWayne 538c67cc33 Update messages.po
German translation updated.
2023-12-27 01:03:17 +01:00
Hailey 7e3e6caa10 use the window hostname on web for twitch embeds (#2311) 2023-12-26 12:02:37 -08:00
Paul Frazee cd7a25fd42 Bump android version code 2023-12-25 14:23:22 -08:00
Paul Frazee 614cb23489 Bump ios build number 2023-12-24 15:20:11 -08:00
Paul Frazee 51506efca6 Apply post-hide to quote posts (#2302) 2023-12-24 15:19:37 -08:00
Paul Frazee e3d9a4f782 Bump ios build 2023-12-24 14:33:24 -08:00
Paul Frazee bc5e28057a Update some brand assets (#2301) 2023-12-24 14:32:23 -08:00
Paul Frazee d2a4d580a8 Add policy links to left nav and settings page (#2300) 2023-12-24 14:29:23 -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
Paul Frazee 28e0df595f Fix: dont incorrectly mark a feed empty based only on the first page (#2298) 2023-12-24 11:48:50 -08:00
Eric Bailey 2c37d47cf0 Patches and compiled i18n (#2297)
* Update patches

* Bump translations, remove ignored files
2023-12-24 11:32:25 -08:00
Paul Frazee fe0a35cbea Fix blank home screen (close #2281) (#2291) 2023-12-24 10:00:29 -08:00
Paul Frazee 64bad57eb3 1.61 (initial build) 2023-12-23 16:26:55 -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
Paul Frazee 7d6b7d2fa6 Fix some account filtering behaviors (#2290)
* Fix: don't filter ProfileCards out of certain lists

* Fix: don't filter ProfileCards and autocomplete based on mutes
2023-12-23 15:16:23 -08:00
bnewbold b922b83820 yet more RSS tweaks (#2289)
* rss: full URL in RSS link; use request Host in URLs

Full URL syntax on request from third parties.

Using the actual request host should fix issues with non-bsky-production
deployments. It is HTTPS-only, so doesn't work perfectly for local dev.

* rss: make /profile/{handle}/rss an HTTP redirect

Motivation is easier discoverability of RSS feed.
2023-12-23 12:38:21 -08:00
bnewbold ee20092735 rss: isPermaLink (case-sensitive) (#2271) 2023-12-22 13:06:52 -08:00
Ansh c1d7d9a41b Add Spanish localization (#2267)
* add french localization

* get dynamic import to work

* fix broken strings

* fix bug

* fix tests

* build files again

* add german locale

* Add german translated strings

* update file details

* fix plural case errors

* make german translations work

* add 'es' as a locale option

* enable spanish translations

* fix spelling mistake
2023-12-22 23:30:39 +05:30
bnewbold a5c151c041 bskyweb: iterate on RSS format, based on feedback (#2269)
Thanks to Dave Winer (@scripting)!
2023-12-22 17:07:25 +01:00
Bryan Lumbantobing 64dc8ff342 Update localization.md (#2263) 2023-12-21 14:58:42 -08:00
dan bc31da47fd Consolidate List props a bit (#2216) 2023-12-21 14:56:45 -08:00
Eric Bailey 987c543727 Increase log dump to 500, dump everything in there (#2268) 2023-12-21 14:43:57 -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
Paul Frazee 7ab188dc1f Bump react-native-drawer-layout@4.0.0-alpha.3 (#2261) 2023-12-21 14:29:23 -08:00
Ansh df73f83538 Add French localization (#2265) 2023-12-22 03:30:24 +05:30
Paul Frazee d068cb1939 Web composer improvements (#2257)
* Keep the emoji picker in the tablet width (close #1880)

* Support pressing tab to select a mention (close #1831)
2023-12-20 16:55:29 -08:00
Paul Frazee 39a5a1e311 Fix the is13 check in account creation (close #2258) (#2259) 2023-12-20 13:44:52 -08:00
Kev 238ff58db9 Fix image is cropped in alt text modal (#1963) 2023-12-20 12:59:43 -08:00
Elie Michel 2a94e6a2ef Restore autofocus on emoji drop down (#1821) 2023-12-20 10:33:00 -08:00
Samuel Newman 4a93a5b6ad Invalid handle autocomplete (#2251)
* refactor invalid handle check from a previous PR to use util function

* add invalid handle check to `prefixMatch`
2023-12-20 09:50:50 -08:00
Samuel Newman 946b2c9163 add yarn intl:compile to postinstall hook (#2250) 2023-12-20 09:45:30 -08:00
Samuel Newman 71b6a447ab show search in centre column on desktop 2023-12-20 11:02:39 +00:00
Eric Bailey e87065f042 Try to fix scroll indicator on Feeds page (#2245)
* Try to fix scroll indicator on Feeds page

* Apply to List
2023-12-19 10:32:17 -08:00
Paul Frazee c00c5efb34 Bump build numbers for ios and android 2023-12-18 15:11:51 -08:00
Paul Frazee 7814106909 Bop it (#2244)
Co-authored-by: Eric Bailey <git@esb.lol>
2023-12-18 14:49:59 -08:00
Eric Bailey 14c77255dd Use same source for pinned feeds on Home and tab/sidebars (#2235) 2023-12-18 14:42:37 -08:00
Eric Bailey 8df4fd4d57 Move label appeal to post dropdown (#2236)
* Move appeal from post to dropdown

* Translate

* Tweak copy on the appeal label modal

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-18 14:38:59 -08:00
Eric Bailey 726bbd2b6d Add search button to logged out view (#2237) 2023-12-18 14:31:47 -08:00
Eric Bailey 699749cb75 Set numberOfLines for Android text input (#2238)
* Set numberOfLines for Android text input

* Let's go with 4
2023-12-18 14:28:29 -08:00
Eric Bailey d05658f224 Tweak splash speed (#2241) 2023-12-18 14:27:03 -08:00
Ansh 1cf5a0b0fc Fix 2231 Modal overlap on double modal open (#2239)
* add same multiple snapPoints to Confirm modal

* snapToIndex instead of confirm
2023-12-18 14:26:43 -08:00
Ansh 7af4825911 fix Create Account metrics (#2242) 2023-12-18 14:24:06 -08:00
bnewbold 3e3a72a366 basic public RSS feed for profiles (#2229)
* web: initial implementation of profile RSS feed

* re-work RSS feed to use DID in URL, not handle

Shouldn't have RSS feeds break when folks change handle.

* rss: tweak XML
2023-12-18 23:52:39 +04:00
Samuel Newman edc6bdb4d6 use s.likeColor everywhere (#2234) 2023-12-18 09:47:17 -08:00
Ansh 81fefabe1a Add credits to localization doc (#2233)
* change name of file to localization

* run `intt:build`
2023-12-18 09:24:31 -08:00
Eric Bailey 9ff1828437 Fix Logotype fill for dark mode (#2230)
* Fix fill of Logotype in dark mode

* Update default Logotype fill
2023-12-18 09:20:58 -08:00
Eric Bailey 47ff3e8e3f Hide label appeal on self-labeled posts (#2232)
* Hide appeal for self-labeled post, update copy

* Use correct logic
2023-12-18 09:16:33 -08:00
Hima 38e65fbe75 Fix & Add: Japanese Translation (3) (#2226) 2023-12-18 22:43:20 +05:30
bnewbold 8da5a375a5 tweak social card meta yet again (#2228)
- handle missing content (PWI opt-out) better
- use opengraph "article" and "profile" types, not just website for everything
- fix timestamps, and used indexed at not created at
2023-12-18 20:24:25 +04:00
bnewbold 0c47f6dc98 bskyweb: update golang indigo dep (from May!), and some small devex tweaks (#2227)
* bskyweb: update deps to current indigo

* bskyweb: refactor handles to flatten control flow, and update to current indigo

* go Makefile: remove --debug (not working)

* bskyweb: default to public appview API instance

* make: do internationalization build as part of build-web
2023-12-18 19:31:48 +04:00
Hima b942da162a Fix: Some display issues (#2219)
* Update LeftNav.tsx

* Update RightNav.tsx
2023-12-18 18:28:58 +05:30
Paul Frazee 9f82441c37 Update splash screen tagline, update translations, bump ios build number 2023-12-17 15:28:04 -08:00
Paul Frazee 77437194e0 Bump ios build number 2023-12-17 11:57:23 -08:00
Eric Bailey 25f0527ad6 Tweaks (#2225)
* Gradient

* Tweak animation speed

* Rotate

* Linear

* Linear
2023-12-17 11:55:47 -08:00
Paul Frazee aac13aafce 1.60 2023-12-15 15:57:06 -08:00
Paul Frazee 2a712630b4 Traffic reduction and tuned caching strats (#2215)
* Update the feed to only check latest on focus after 30s, but to do a full reset on focus after 1 hour to avoid very stale data

* Remove the isFeedPublic query

* Fix: avoid double next-page fetches

* Reduce some poll intervals to reduce server load

* Guard against double-fires of fetchNextPage

* Reduce polling on blurred screens
2023-12-15 15:49:07 -08:00
Eric Bailey dd074371cf Super secret changes don't look (#2218)
* Swap in new assets

* Refine
2023-12-15 15:40:22 -08:00
Eric Bailey ce6d3fa0e1 Fix android icon dims (#2213) 2023-12-14 15:55:53 -08:00
Eric Bailey a0d006a1ac Log post creation failures (#2205) 2023-12-14 15:55:35 -08:00
Eric Bailey 1111108efe Some brand, some pwi (#2212)
* Add logo to left nav in logged out

* Protect last routes

* Hide links in left nav, hide nav

* Replace bottom bar for pwi

* Remove same links from drawer

* Hide reply prompt

* Allow search
2023-12-14 15:46:27 -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
noriaki watanabe fa3ccafa80 Add i18n setup in build instructions (#2206) 2023-12-13 18:17:59 -08:00
Paul Frazee 5fa43530f6 Revert change to how notifications are loaded on mobile 2023-12-13 13:48:49 -08:00
Paul Frazee a713f77e03 1.59 2023-12-13 12:48:26 -08:00
Paul Frazee 8245e56747 Feed bugfixes (#2204)
* Dont show both an error and empty message in the feed

* Add a sanity check when attempting to fill the first 30
2023-12-13 12:17:14 -08:00
Paul Frazee e3ba014be0 More notifications improvements (#2198)
* On mobile, never replace the notifs under the user due to focus events

* Use the server's seenAt response to calculate isRead state locally
2023-12-13 12:16:55 -08:00
Paul Frazee eecf04489f Rework the rightnav overflow behavior to not obscure the scroll region (#2199) 2023-12-13 09:59:27 -08:00
Ansh 001bbb41bb Hotfix: Merge conflict in translation file (#2203)
* remove unused translation files

* re-run extract and compile
2023-12-13 19:48:53 +05:30
dan 0e3218db7d Memoize usePalette (#2201) 2023-12-13 07:09:07 +00:00
Eric Bailey b1f9454f1d Add fallback to email reminder modal (#2193)
* Add fallback to email reminder modal

* Add more debug
2023-12-12 15:18:38 -08:00
dan bf9cedb67b Clean up pager refs to fix crash (#2195) 2023-12-12 15:11:20 -08:00
dan 5c701f8e0b Re-rendering improvements for like/unlike (#2180)
* Add a few memos

* Memo PostDropdownBtn better

* More memo

* More granularity

* Extract PostContent

* Fix a usage I missed

* oops
2023-12-12 13:50:43 -08:00
Eric Bailey a5e25a7a16 Add largeHeap to AndroidManifest.xml (#2191) 2023-12-12 13:40:24 -08:00
Jaz bc42747297 Don't create embeds of profiles/posts from users who ask not to be sh… (#2189)
* Don't create embeds of profiles/posts from users who ask not to be shown in public views

* Formatting cleanup

* Bump workflow file to build an image for this branch
2023-12-12 13:10:13 -08:00
Ansh 9ab0ff6f1d add scrollview to moderation screen (#2187) 2023-12-12 13:07:59 -08:00
Ansh 1289b161a1 disable modal profile popup android (#2188) 2023-12-12 13:07:30 -08: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
Ansh 90647fe7cf Japanese localization (#2003)
* add japanese to list of languages

* add japanese translations

* change `jp` to `ja`

* minor changes to Japanese translation

* minor changes to Japanese translation

* update japanese strings with feedback

* Update languages.ts

* Extract translations

* Gitignore new compiled file

* allow switching to japanese

---------

Co-authored-by: Jake Gold <jake@blueskyweb.xyz>
Co-authored-by: Eric Bailey <git@esb.lol>
2023-12-13 01:12:19 +05:30
dan 27561ae79f Fix View Full Thread (#2181) 2023-12-12 11:31:02 -08:00
Eric Bailey 2f8e7b2656 Make right nav scrollable on short screens (#2186) 2023-12-12 11:20:06 -08:00
Eric Bailey e7141a77d8 Stub broadcast channel for unspported contexts (#2175) 2023-12-12 11:19:27 -08:00
Eric Bailey c6ab6e8b8e i18n settings improvements (#2184)
* Handle language selector

* Improve type safety

* Add a little more safety

* Update comment
2023-12-12 12:42:11 -06:00
Paul Frazee d82b1a1047 1.58 2023-12-11 15:52:56 -08:00
Paul Frazee c5f8909ecf Double the footer on the list members flatlist 2023-12-11 15:52:00 -08:00
Eric Bailey fc85901a46 Fix links in profiles (#2178)
* Resolve links in profile bios

* Improve solution

* On mobile, dont disable pointer events on the bio richtext

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-11 15:34:25 -08:00
Eric Bailey bae63f9bf0 Patch bad migration, sanitize bad value (#2179) 2023-12-11 15:34:18 -08:00
Paul Frazee 3592f6f50b Hide the mobile reply control if outside the threadgate (#2177) 2023-12-11 15:11:36 -08:00
Eric Bailey 9a59525b73 Revise FeedSourceCard load state to allow deletion for failures (#2172)
* Revise FeedSourceCard load state to allow deletion for failures

* Translate

* Remove test error feed

* Fix missing uri param

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-11 14:48:22 -08:00
Eric Bailey 586c2417a8 Handle failed pinned feed fetches when rendering list of pinned feeds (#2173) 2023-12-11 14:31:05 -08:00
dan 52ffd6aabb Don't validate embeds when traversing cache (#2174) 2023-12-11 14:30:32 -08:00
Ansh 0f7dbbba4a dismiss keyboard when threadgate settings are opened (#2161) 2023-12-11 13:55:40 -08:00
Eric Bailey f7ec7f700e Clarify MyList filter intent (#2167) 2023-12-11 13:55:14 -08:00
Paul Frazee 99cf6b626f Additional reductions in request traffic (#2169)
* Dont poll for new content on profiles

* Drop the whenAppReady query after new post to reduce traffic overhead

* Reduce getPosts calls in notifs to only use them when needed
2023-12-11 13:53:37 -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 3d229b5fd6 Bump ios and android build numbers 2023-12-10 12:25:14 -08:00
Paul Frazee f46b598ac6 Fix mock-server init 2023-12-10 12:04:24 -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
Paul Frazee f5d014d4c7 Bump ios build 2023-12-09 17:21:03 -08:00
Eric Bailey 940a627996 Fix empty state width (#2157) 2023-12-09 15:10:53 -08:00
Eric Bailey 69a0a0bc41 Remove (#2156) 2023-12-09 15:10:29 -08:00
Eric Bailey 97b54b51c6 Add back isInitialLoad to session (#2155) 2023-12-09 15:10:12 -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
Paul Frazee d854e88218 Bump ios build number 2023-12-08 16:31:08 -08:00
Paul Frazee 102094b10a Poll for new posts on app foreground (#2152) 2023-12-08 16:30:19 -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
Paul Frazee e1b1720cad Tweak the PWI opt-out copy again (#2153)
* Tweak the PWI ot-out copy again

* Update .po files
2023-12-08 16:26:20 -08:00
Eric Bailey 0270ada908 Fix quote post moderation check (#2149)
* Fix quote post moderation check

* Restore the ContentHider check

* Apply the content hider to quote posts

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-08 16:15:07 -08:00
Eric Bailey 1b8b1b2ed1 Await app view when handling blocks mutes for lists (#2151)
* Await app view when handling blocks mutes for lists

* Do it right this time
2023-12-08 15:55:35 -08:00
Paul Frazee 565979e71f Merge branch 'main' of github.com:bluesky-social/social-app into main 2023-12-08 14:01:20 -08:00
dan 7b686b5592 Add manual per-page memoization to post select (#2146) 2023-12-08 13:57:00 -08:00
Eric Bailey 61fa3d506c Close account switcher before logging out (#2148)
* Close account switcher before logging out

* Add comment
2023-12-08 13:00:19 -06:00
Ansh 528b4b5017 Clear unused locales (#2147)
* add some missing intl strings

* remove locales that are not used
2023-12-09 00:15:05 +05:30
Paul Frazee 282879b645 Bump ios build number 2023-12-07 17:21:10 -08:00
Paul Frazee 7b50331188 Various search fixes (#2145)
* Add posts-search query to shadow cache search

* Update user search to use correct endpoint

* Fix: include cursor in post search
2023-12-07 17:20:17 -08:00
Paul Frazee 448a403c81 Stop using the cached notification page (#2142) 2023-12-07 17:16:39 -08:00
Paul Frazee 7de5c341a9 Update pwi opt-out language (#2143) 2023-12-07 17:16:23 -08:00
dan 00731f62fe Fix bad merge in translations (#2144) 2023-12-07 17:08:23 -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
Eric Bailey 1975f4936a Fix invites used order, adjust layout (#2139) 2023-12-07 16:30:41 -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
Paul Frazee 52a0cb8fac Add label appeal tool to posts and accounts (#2124)
* Add label appeal tool to posts and accounts

* Fix translations
2023-12-07 14:45:50 -08:00
dan 794015aef8 Navigate Home on account switch (#2138) 2023-12-07 14:28:49 -08:00
Eric Bailey 1b5989ac51 Allow blocking/muting to curational lists, unpinning to modlists (#2121)
* Add un-pinning of modlist

* Allow muting/blocking of curational lists

* Tweak icon

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-07 14:00:09 -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
Eric Bailey 174a1622c9 Hoist moderation, attempt to fill feed up to 30 (#2134)
* Move moderatePost up to feed query

* Attemt to fill page up to 30

* Add the 'ensure full page' behavior to notifs

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-07 13:44:22 -08:00
Paul Frazee 940fc0ea5c Disable animation on scrollToTop for web (#2137) 2023-12-07 13:41:02 -08:00
Eric Bailey f115969f50 Fix double sep (#2136) 2023-12-07 13:06:41 -08:00
Paul Frazee aeafa3a8cd Fix: remove replies to deleted and blocked posts from feeds (#2130) 2023-12-07 13:04:22 -08:00
Paul Frazee 972bc1bd88 Increase the maximum ratio of images from 5:1 to 10:1 (#2131) 2023-12-07 13:03:34 -08:00
Paul Frazee 5b19e2b90b Completely disable the RQ cache in post-thread (#2133) 2023-12-07 13:02:51 -08:00
Eric Bailey cdc1d08267 Apply color theme to HTML page itself (#2132) 2023-12-07 11:00:44 -08:00
Paul Frazee 17c27581b6 Add PWI opt-out toggle (#2122)
* Add PWI opt-out toggle

* Bump @atproto/api@0.7.0

* Tweak copy

* Bump lockfile

* Fix layout on ios

* Tweak copy more

* Fix types

* Tweak copy some more
2023-12-07 10:32:55 -08:00
Eric Bailey 261a935747 More session improvements (#2129)
* More session improvements

* Drop resume session retries from 3 to 1

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-07 10:25:55 -08:00
Eric Bailey a0b9fd799b Disable sentry in dev (#2128) 2023-12-07 09:46:33 -06:00
Paul Frazee 80ada4d20a Increment ios build number 2023-12-06 22:18:26 -08:00
Paul Frazee 00e1e56a7d Treeview: more UI tweaks (#2125)
* Treeview: more UI tweaks

* Only show treeview when there are branching replies

* Fix types
2023-12-06 22:17:38 -08:00
Eric Bailey 818c6ae879 Add tests for migration and persisted state (#2118)
* Add tests for migrate

* Add test for persisted.init

* Add legacy transform test

* Set NODE_ENV for testing

* Mock logger

* Set expo var to test
2023-12-06 16:41:05 -08: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
Eric Bailey a924df4dcd Refetch some data on an interval (#2114)
* Match refetch intervals to stale time

* Lower refetch interval for own-profile
2023-12-06 12:31:54 -08:00
Paul Frazee 47771b9066 Update pwi endpoint (#2116) 2023-12-06 12:20:39 -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 748212e000 Remove getSession waterfall (#2112) 2023-12-06 18:32:14 +00:00
dan 20a46c8cff Enable structural sharing for preference query (#2113) 2023-12-06 10:20:23 -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
dan 7d158f82fb Optimize Drawer re-renders (#2108) 2023-12-06 09:50:06 -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
Paul Frazee df55c5fdeb Bump ios build number 2023-12-05 22:57:47 -08:00
Paul Frazee 2571432875 Disable react-native-screen freezing to test performance implications (#2109) 2023-12-05 22:56:20 -08:00
Paul Frazee 3107bb07c9 Bump ios build number 2023-12-05 21:07:20 -08:00
Ansh 78e459d06f Add missing translations and fix react key error in MyLists.tsx (#2103)
* add missing translations

* fix key errors in MyLists

* Update UserAddRemoveLists.tsx
2023-12-05 18:27:38 -08:00
Eric Bailey e6bda92b20 Surface raw server error if exists (#2096)
* Surface raw server error if exists

* Update copy

* Update translation files

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-05 18:25:32 -08:00
Eric Bailey 7f3324d4a4 Improve error handling in dev-only (#2095) 2023-12-05 18:23:48 -08: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 2ad0d059ac More treeview UI tweaks (#2093)
* Improve tree-view spacing consistency and always include one reply bar level

* Reduce expanded post avi size
2023-12-05 18:18:53 -08:00
Paul Frazee 511d5d999b Update to actions/setup-node@v4 (#2105)
* Update to actions/setup-node@v4

* Add a retry to the yarn install step
2023-12-05 18:18:28 -08:00
Paul Frazee 712cd3fde5 Perf: Include quote posts in the post-thread placeholder (#2104) 2023-12-05 18:17:03 -08:00
Paul Frazee accb25ccf2 Perf: Dont initial-render full thread on mobile (#2101) 2023-12-05 18:02:33 -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
Eric Bailey 3c8036587e Improvements to persisted state migration (#2098)
* Fix session email/emailConfirmed types, update usage for safer access

* Handle fallback better, better errors

* Better handling, add test

* Add test for default data

* Remove fallback, not needed, update logs
2023-12-05 19:59:34 -06:00
Eric Bailey a915a57b10 Prevent invalid locale from being loaded (#2099) 2023-12-05 17:51:50 -08:00
dan fab9f839d0 Fix email confirmation dialog on startup (#2097)
* Move init time logging to a fn, add guard

* Fix email confirmation dialog on startup
2023-12-06 00:28:11 +00:00
Paul Frazee e7f973852f Signup flow minor UI fixes (#2094)
* Fix layout of no-policy notice

* Fix spacing
2023-12-05 13:35:42 -08:00
Eric Bailey 5f553c29df E2E 🟢 (#2092)
* Add logged out e2e ctrl, fix login test

* Fix log handling via env vars in expo

* Fix create account test

* Upgrade dev-env

* Fix home screen tests

* Fix composer tests

* Fix curate-lists tests, split in two

* Fix invite codes test

* Fix curate-lists tests

* Give up on mergefeed test

* Fix mod lists

* Fix app view url

* Fix profile tests

* Fix profile test with hack

* Keep using globals

* Fix two more

* Fix thread view

* Better skip for merge feed

* Revert debug code
2023-12-05 14:50:56 -06:00
dan ed5a97d0fa Fix jump when toggling suggestions (#2090) 2023-12-05 09:13:09 -08:00
Paul Frazee 37d94ca0e3 Bump ios build number 2023-12-04 18:01:49 -08:00
Paul Frazee 48f5cebc80 Update feeds on post created (#2085) 2023-12-04 17:58:45 -08:00
Paul Frazee bdb2bfdd83 Rename Posts & Replies to Replies (#2087) 2023-12-04 17:56:41 -08:00
Paul Frazee 74e0b73db5 Add back ignore-filters-for behaviors (#2086) 2023-12-04 17:54:39 -08:00
Paul Frazee d07ea64434 Fix: correctly partial-match when calling truncateAndInvalidate() (#2088) 2023-12-04 17:53:22 -08:00
Paul Frazee 160055e4f9 Merge branch 'CooperEdmunds-2047-last-active-tab' into main 2023-12-04 16:33:18 -08:00
Paul Frazee 81c525f2b2 Merge branch '2047-last-active-tab' of https://github.com/CooperEdmunds/social-app into CooperEdmunds-2047-last-active-tab 2023-12-04 16:30:08 -08:00
Paul Frazee f1b69a332a Tune treeview thread mode to have consistent spacing (#2078) 2023-12-04 16:25:17 -08:00
Eric Bailey 4f171be9bf Fix bottom space on feeds (#2081)
* Fix bottom space on feeds

* Translate

* Handle web better
2023-12-04 16:24:51 -08:00
Paul Frazee 6e2eaa746d Optimistically update the pager tab bar on swipe (#2083) 2023-12-04 16:06:15 -08:00
Paul Frazee 8e2cfa52de Typefix 2023-12-04 15:08:34 -08:00
Eric Bailey f1cfea5786 Add back pinning functionality to ProfileList (#2084) 2023-12-04 15:52:51 -06:00
Eric Bailey 094a58490f Handle feedgen 429 (#2066)
* Handle feedgen 429

* Translate
2023-12-04 13:27:48 -08:00
Cooper Edmunds 17c58d40ff Track active page using string instead of index 2023-12-04 16:10:03 -05: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 a46059ca46 Improve the post-hiders and the header alerts (#2074)
* Improve the post-hider and the header alerts

* Adjust the contenthider (icon, font size)
2023-12-04 12:51:08 -08:00
Paul Frazee 971c402788 Add PWI build flag (#2082) 2023-12-04 12:45:40 -08:00
dan a687d3f028 Allow scroll by dragging profile header (#2068) 2023-12-04 12:03:32 -08:00
Paul Frazee 9562a80908 Allow posts with just an external link (#2079) 2023-12-04 11:59:59 -08:00
Paul Frazee e47c3dbe0e Tweak the loading placeholders to use the full space and position better (#2072) 2023-12-04 11:59:27 -08:00
Paul Frazee a01497fed4 Hackfix to composer focus on web (#2057) 2023-12-03 18:45:25 -08:00
Paul Frazee 0ab19b45a2 Tweak layout a bit more 2023-12-02 17:56:04 -08:00
Paul Frazee 07afcab6b2 Merge branch 'fix-jump-in-suggested-follows-tabbar' of https://github.com/tarikfp/social-app into uiwork-reflow-issue 2023-12-02 17:52:21 -08:00
dan 2698a6b50b Fix show suggested button color (#2069) 2023-12-01 16:23:00 -08:00
dan bb22ebd588 Fix scroll jump on Back (#2067) 2023-12-01 14:05:10 -08:00
Eric Bailey 9dec9d7276 Only poll feed when feed page is focused (#2064)
* Do no poll when screen is not focused

* Avoid polling unless focused

* Handle homepage in background

* Fix the intl:check to ignore comments in diffs

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-12-01 13:40:50 -08:00
Cooper Edmunds 9a13fe50cc Use lastActiveTab from AsyncStorage for non-desktop 2023-12-01 15:18:25 -05:00
Eric Bailey f80bd30ef4 Better handle feed auth failures (#2060)
* Better handle feed auth failures

* Add comment
2023-12-01 09:29:50 -08:00
Eric Bailey edc9ac272c Add Lingui check to CI (#2058)
* Install lingui eslint plugin, ignore compiled files

* Add lingui step to Lint workflow

* Run check in other job

* Add compile step to web build

* Temp: add a new string to test with

* Add message

* Revert "Temp: add a new string to test with"

This reverts commit ef5459d00c.

* Un-track compiled files

* Add check scripts to package.json, build step

* Make sure to compile translations prior to test/typecheck

* Rename scripts
2023-12-01 09:14:10 -08:00
Paul Frazee b05cf9f3c1 Bump ios build number 2023-11-30 18:57:18 -08:00
Paul Frazee f8c46c08ca Improve unread notif tracking (#2056) 2023-11-30 18:56:55 -08:00
Paul Frazee 826cbbd4bf Maintain some feed data to avoid needless glimmers (#2054) 2023-11-30 18:49:23 -08:00
dan 9fa90bb8d9 Optimize pager rendering (#2055)
* Pull out and memoize PagerTabBar

* Avoid invalidating onScroll and add throttling

* Make isScrolledDown update non-blocking

* Fix types
2023-12-01 02:11:05 +00:00
Paul Frazee 23ad3ad98b Various fixes (#2053)
* Fix invite code translations (plural api not availabe in ios)

* Speed up the composer animation a smidge
2023-11-30 17:03:38 -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
Paul Frazee 85b2b390df Merge branch 'mozzius-invite-code-warning' into main 2023-11-30 16:13:23 -08:00
Paul Frazee 1755c2e538 Merge branch 'invite-code-warning' of https://github.com/mozzius/bluesky-official-app into mozzius-invite-code-warning 2023-11-30 16:13:16 -08:00
Paul Frazee dcbceb5d9f Merge branch 'mozzius-copy-link' into main 2023-11-30 16:06:07 -08:00
Paul Frazee 21af10bc3d Merge branch 'copy-link' of https://github.com/mozzius/bluesky-official-app into mozzius-copy-link 2023-11-30 16:05:34 -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 abe61b7517 Disable OTA for now (#2052) 2023-11-30 15:48:07 -08:00
Eric Bailey 28f8999252 Beep boop (#2051) 2023-11-30 13:53:34 -08:00
Eric Bailey 76a3c66f54 Eric/profile feeds list (#2049)
* Fix profile feedgens view

* Fix profile lists view

* Translate
2023-11-30 13:40:49 -08:00
Eric Bailey 47b0d36b73 Hide normal mute if muted by list, and invalidate profile query upon list mute (#2048)
* Hide normal mute if muted by list, and invalidate profile query upon list mute

* Prevent profile flashing
2023-11-30 13:40:01 -08:00
dan 46b63accb8 Rewrite the shadow logic to look inside the cache (#2045)
* Reset

* Associate shadows with the cache

* Use colocated helpers

* Fix types

* Reorder for clarity

* More types

* Copy paste logic for profile

* Hook up profile query

* Hook up suggested follows

* Hook up other profile things

* Fix shape

* Pass setShadow into the effect deps

* Include reply posts in the shadow cache search

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-11-30 13:35:58 -08:00
Paul Frazee 143fc80951 Merge branch 'main' of github.com:bluesky-social/social-app into main 2023-11-30 12:47:48 -08:00
Paul Frazee ee82e78d5c Fix missing export in e2e version 2023-11-30 12:47:40 -08:00
dan cb193a827d Fix lag when switching tabs (#2046) 2023-11-30 19:57:54 +00:00
Samuel Newman b7599e5bea generate messages 2023-11-30 17:12:21 +00:00
Samuel Newman b164f151cc Merge remote-tracking branch 'upstream/main' into invite-code-warning 2023-11-30 17:11:51 +00:00
Samuel Newman ee5d7a63ce update messages 2023-11-30 17:09:59 +00:00
Samuel Newman c06611fb71 show informative message when token scope is wrong 2023-11-30 17:09:10 +00:00
Samuel Newman 5c78b2266f add "copy link" text 2023-11-30 16:40:19 +00:00
Paul Frazee fcd22d4ccb Adjust stale-caches and dont group read&unread notifs together (#2041)
* Dont group read & unread notifications together

* Remove and reduce some stale cache times

* Keep the staleTime on the post-feed

* Bring back the load-bearing staletime on profile
2023-11-29 20:27:39 -08:00
Paul Frazee c3e97fee1d Bump ios build number 2023-11-29 20:12:55 -08:00
Paul Frazee a03f57c8c3 Apply feed preferences (react-query refactor) (#2040)
* Actually implement the feed tuners hook

* Move feed-tuner pass into select() to have it apply immediately on change
2023-11-29 20:11:01 -08:00
Eric Bailey 3e1b2346ee Close modals if switching to unauthed account (#2039) 2023-11-29 19:28:18 -08:00
Eric Bailey b83fa95793 Handle nsfw feeds in public view (#2035)
* Handle nsfw feeds in public view

* Translate

* Refactor, new approach

* Translate

* Copy

* Translate

* Revert changes to Feed

* Remove unused retry

* Translate
2023-11-29 19:27:58 -08:00
Eric Bailey 005fc7cc38 Disable retrying globally (#2038) 2023-11-29 17:50:14 -08:00
Paul Frazee c07d27645f Merge branch 'CooperEdmunds-2011-link-in-feeds-tab-bar' into main 2023-11-29 17:49:46 -08:00
Paul Frazee 1140b05b83 Slightly less verbose variable 2023-11-29 17:37:15 -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 dc53ef1ec1 Merge branch 'CooperEdmunds-2011-default-pin-feed-on-add' into main 2023-11-29 17:25:36 -08:00
Paul Frazee 6e30c339da Merge branch '2011-default-pin-feed-on-add' of https://github.com/CooperEdmunds/social-app into CooperEdmunds-2011-default-pin-feed-on-add 2023-11-29 17:25:29 -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 3fbac466ac Update home-screen tests related to feeds 2023-11-29 19:28:35 -05:00
Eric Bailey a59d235e8b Improve feed reordering with optimistic updates (#2032)
* Optimisticaly update order of saved feeds

* Better show disabled state for pin button

* Improve loading/disabled states

* Improve placeholder

* Simplify loading components
2023-11-29 16:17:27 -08:00
Eric Bailey 3ca4bd805a Re-enable fetch monkey-patch (#2036)
* Re-enable fetch monkey-patch

* Reorder
2023-11-29 16:00:13 -08:00
Cooper Edmunds 34759798eb Stop adding whats-hot for new users 2023-11-29 15:24:14 -05:00
Cooper Edmunds 8ceabe2a11 Conditionally render feeds link in feeds tab bar 2023-11-29 14:49:18 -05:00
Cooper Edmunds ed391c346d Add hasPinnedCustomFeedOrList to usePinnedFeedsInfos hook 2023-11-29 14:23:19 -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
Paul Frazee 9239efac9c Refactor the notifications to cache and reuse results from the unread-notifs checks (#2017)
* Refactor the notifications to cache and reuse results from the unread-notifs checks

* Fix types
2023-11-29 10:20:14 -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
Cooper Edmunds ca357ecbcf Add pinOnSave and use it in discover feeds list 2023-11-29 09:05:26 -05: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
dan b778017000 Fix memory leak on mobile web tab navigation (#2021)
* Add navigationAction prop to Link

* Bottom bar should use navigate() action
2023-11-28 22:48:00 +00:00
Eric Bailey bb9d340d42 Fix pinned feeds mutation issue (#2016) 2023-11-28 12:50:41 -06:00
Eric Bailey 0b2c85b967 Fix pinned feeds re-ordering (#2014) 2023-11-28 09:04:15 -08:00
Eric Bailey bdabfa9d38 Guard against following tab stub being used un-authed (#2013) 2023-11-28 08:44:25 -08:00
Eric Bailey cf1b0b1881 Handle other feed auth response (#2012) 2023-11-28 08:43:25 -08:00
Paul Frazee 60886b76c8 Bump ios build number 2023-11-27 17:46:13 -08:00
Eric Bailey 17a183514a Ensure we use following feed if merge is disabled (#2005) 2023-11-27 17:42:02 -08:00
Paul Frazee f580d4daf0 Restore post-thread caching behaviors (react-query refactor) (#2010)
* Rework resolve-did and resolve-uri queries to be smarter about cache reuse

* Precache handle resolutions

* Remove old unused code

* Load placeholder threads from the post-feed and notifications-feed queries

* Remove logs

* Fix bad ref

* Add loading spinners to the cache-loading thread view

* Scroll replies into view when loading threads

* Add caching within a thread

* Fix: dont show bottom border when the child spinner is active
2023-11-27 17:41:30 -08:00
Eric Bailey d4714baf13 [PWI] Home (#2007)
* Fix up home page

* Fix spacing

* Remove unused default tab

* Update logic
2023-11-27 17:17:09 -08:00
Eric Bailey a741a201b9 Don't check unread if session doesn't exist (#2008) 2023-11-27 16:40:20 -08:00
Eric Bailey 26bbe07068 Add more debugging to auth (#2009) 2023-11-27 16:39:53 -08:00
Eric Bailey 5fd2d36273 Filter out blocked posts from thread view (#2006) 2023-11-27 12:41:53 -08: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 1dc017367e Make sure logger serializes errors (#2001) 2023-11-27 10:28:21 -08:00
Eric Bailey 6758755316 Nav home after switch accounts (#2002) 2023-11-27 10:27:38 -08:00
Eric Bailey 828e53d533 Fix soft reset scroll on profile (#1998) 2023-11-27 09:43:05 -06:00
Ansh 0079030244 create build v1.57 (#2000) 2023-11-26 13:46:31 -08:00
Eric Bailey 08355e5166 Raise levels of some logs during pre-release (#1994) 2023-11-26 13:44:30 -08:00
Eric Bailey 4a59227459 Fix translation strings (#1995) 2023-11-26 13:44:17 -08:00
Eric Bailey 3007c1dc8a Fix bad references in account switcher (#1999) 2023-11-26 13:44:08 -08:00
Eric Bailey 486fb72798 Fix double border, improve load state (#1997) 2023-11-26 13:43:49 -08:00
Eric Bailey e9a11114d3 [PWI] Clarify different ways of clearing current account/logout (#1991)
* Clarify different ways of clearing current account/logout

* Reorder log
2023-11-24 17:41:42 -06:00
Eric Bailey 20b699a008 Fall back for non-public feeds (#1988) 2023-11-24 17:37:28 -06:00
Eric Bailey 1bcbc0cf2a Fix onboarding web layout (#1990) 2023-11-24 16:40:07 -06:00
dan f2d164ec23 PWI: Refactor Shell (#1989)
* Vendor createNativeStackNavigator for further tweaks

* Completely disable withAuthRequired

* Render LoggedOut for protected routes

* Move web shell into the navigator

* Simplify the logic

* Add login modal

* Delete withAuthRequired

* Reset app state on session change

* Move TS suppression
2023-11-24 22:31:33 +00:00
Ansh 4b59a21cac Allow dynamic locale imports for web (#1971)
* allow dynamic locale imports for web

* remove unnecessary file
2023-11-24 12:35:25 -08:00
dan 43c8fb6f03 Fix missing effect cleanup (#1986) 2023-11-24 19:22:00 +00:00
dan 7ccbd14d5f Show feeds in PWI (#1984) 2023-11-23 19:43:23 +00:00
dan 4272d291a9 PWI: Profile (#1982)
* PWI: Profile

* Show replies conditionally

* Dismiss modals on auth action
2023-11-23 00:30:49 +00:00
Eric Bailey edf3114e47 Fixes 1731, compare URLs case-insensitive (#1980) 2023-11-22 17:20:35 -06:00
Eric Bailey ec819f06ce [PWI] Clean up logged out screen (#1978)
* Clean up logged out screen

* Better responsive styles
2023-11-22 16:53:25 -06:00
Eric Bailey 95f8bd8ddb [PWI] Misc (#1977)
* PostDropdownBtn

* Hide reply prompt

* Hide FABs
2023-11-22 16:53:11 -06:00
dan 08333002cc Implement "scroll to top" for profile tabs (#1973)
* Hook up scroll to top handlers

* Scroll and invalidate Feeds/Lists

* Fix index calc due to conditional tabs

* Reorder lines for clarity
2023-11-22 04:25:11 +00:00
Eric Bailey 3de1d556a9 [PWI] Feeds (#1970)
* Feeds page

* Hide save buttons on Feeds page

* ProfileFeed
2023-11-21 17:36:29 -06:00
Eric Bailey 8da10a5edc Search page (#1969) 2023-11-21 17:35:53 -06:00
Eric Bailey 47d2d3cbf2 [PWI] Shell (#1967)
* Sidebars

* Bottom bar

* Drawer

* Translate

* Spacing fix

* Fix responsive regression

* Fix nit
2023-11-21 16:58:13 -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
Eric Bailey f18b9b32b0 PWI Base (#1964)
* Base work for public view

* Make default moderation settings more restrictive

* Fix type

* Handle showing sign-in on authed actions

* Fix hoc logic

* Simplify prefs logic

* Remove duplicate method

* Add todo

* Clean up RepostButton.web

* Fix x button color

* Add todo

* Retain existing label prefs for now, use separate logged out settings

* Clean up useAuthedMethod, rename to useRequireAuth

* Add todos

* Move dismiss logic to withAuthRequired

* Ooops add web

* Block public view in prod

* Add todo

* Fix bad import
2023-11-21 10:57:34 -06:00
Eric Bailey 71b59021b9 Add dev-only button to clear storage (#1965)
* Add dev-only button to clear storage

* Add legacy storage clearing too

* Use try/catch
2023-11-21 10:16:22 -06:00
Eric Bailey 3a21c02b8a Re-wrap forgot pw success in layout (#1966) 2023-11-21 10:04:23 -06: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
Eric Bailey 019aae5f01 Improve dedupe logic on search suggestions (#1958) 2023-11-17 12:15:14 -08:00
dan 7c51a3931a Optimize notifications rendering (#1957) 2023-11-17 17:51:44 +00:00
dan d1c14940fb Add missing type (#1955) 2023-11-17 09:47:36 -08:00
Eric Bailey 0dfc039a47 Fix some key errors (#1951) 2023-11-17 11:34:27 -06:00
dan c858b58307 Do less work (#1953) 2023-11-17 09:31:26 -08:00
Eric Bailey 9c8a1b8a31 Fix some type errors (#1952)
* Fix some low-hanging type errors

* Override scrollRef types on profile
2023-11-17 11:08:45 -06:00
dan 6c8f043e37 Freeze inactive screens (#1949) 2023-11-16 22:20:08 -08:00
dan a8aed2c38e Use non-reactive callbacks for some methods (#1948)
* Use non-reactive callbacks for some methods

* Remove unnecessary state

* Use non-reactive callbacks for modals
2023-11-16 22:18:37 -08:00
dan a10adf8908 Add some memoization (#1947) 2023-11-16 18:52:41 -08:00
Paul Frazee e358c3cc30 Improve notification load behaviors (#1943)
* Dont use the stale cache for notifs-feed

* Add a delay to marking all read to avoid marking upcoming posts as read

* Trigger automatic notifications refresh when navigating to the tab, in certain conditions
2023-11-16 18:27:05 -08:00
Paul Frazee 357c752a21 Move the current agent to a global and reset RQ queries on agent change (#1946) 2023-11-16 18:26:22 -08:00
dan 3043b32468 Fix jumpy modal regression (#1945) 2023-11-16 18:01:51 -08:00
Paul Frazee c03c744008 Notifs refresh improvement (#1941)
* Show loading state in notifications

* Fix invalidation of notifs

* Move spinner below header

* Fix: dont show spinner on initial load
2023-11-16 15:50:57 -08:00
Eric Bailey 6f57192bd5 Revise cache times (#1942)
(cherry picked from commit 1be2060a2b)
2023-11-16 15:43:53 -08:00
Paul Frazee 1952705ded Disable refetchOnWindowFocus on react-query (#1936) 2023-11-16 15:42:37 -08:00
Eric Bailey 6dfb2a232f Caching heuristics (#1938)
* Tempfix profile load

* First pass at staleTime
2023-11-16 15:28:50 -08:00
dan f89dc63801 Add profile loading shim (#1940) 2023-11-16 23:23:58 +00:00
dan 22df70b3cc Fix blank feed (#1935)
* Split feed into two components

* Rm unused

* Add a spinner
2023-11-16 14:37:48 -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 9f7a162a96 Refactor app passwords to use react-query (#1932) 2023-11-16 11:11:56 -08:00
Eric Bailey 310a7eaca7 Some me model cleanup (#1928)
* Replace me model in post dropdown btn

* Replace delete account logic

* Replace me model in bottom bar web

* Replace me model in bottom bar

* Replace me model in reply prompt

* Better fallback

* Fix reference

* Fix bad ref in bottom bar
2023-11-16 10:54:03 -08:00
Eric Bailey a652b52b88 Refactor ChangeHandle modal (#1929)
* Refactor ChangeHandle to use new methods

* Better telemetry

* Remove unused logic

* Remove caching

* Add error message

* Persist service changes, don't fall back on change handle
2023-11-16 09:16:16 -08:00
Eric Bailey e6efeea7c0 Refactor invites modal (#1930)
* Refactor invites modal

* Replace in drawer

* Delete stuff from me model
2023-11-16 08:40:31 -08:00
Paul Frazee 8a1fd160e6 Update UserInfoText component (#1927) 2023-11-16 08:19:08 -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 0de8d40981 Misc cleanup (#1925)
* Remove unused prefs

* Cleanup

* Remove my-follows cache

* Replace moderationOpts in ProfileCard comp

* Replace moderationOpts in FeedSlice

* Remove preferences model
2023-11-15 18:35:58 -08:00
Paul Frazee e749f2f3a5 Factor lightbox out into hook/context (#1919) 2023-11-15 18:17:03 -08:00
Paul Frazee 03b20c70e4 Fix memo params causing tuner to lose state (#1924) 2023-11-15 17:42:15 -08:00
Eric Bailey 952f5033d0 Fixes analytics init on web (#1923) 2023-11-15 17:37:55 -08:00
Eric Bailey 610eeecd26 Fix onboarding follows (#1922) 2023-11-15 17:37:32 -08:00
Eric Bailey 8857ba70c6 Improve types (#1921) 2023-11-15 17:23:59 -08:00
Eric Bailey d8b26edb56 Remove post thread (#1920)
* Delete post-thread model

* Remove post-thread-item

* Remove unused types
2023-11-15 17:18:45 -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
Eric Bailey 9bcd00b831 No need to await follows anymore, fix cold load search (#1918) 2023-11-15 17:08:08 -08:00
Eric Bailey fe1a7183fc Translate some things on search (#1917) 2023-11-15 19:00:43 -06:00
Eric Bailey 22b76423a0 Search page (#1912)
* Desktop web work

* Mobile search

* Dedupe suggestions

* Clean up and reorg

* Cleanup

* Cleanup

* Use Pager

* Delete unused code

* Fix conflicts

* Remove search ui model

* Soft reset

* Fix scrollable results, remove observer

* Use correct ScrollView

* Clean up layout

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-11-15 15:55:28 -08:00
Paul Frazee d5ea31920c Autocomplete updates (react-query refactor) (#1911)
* Unify the autocomplete code; drop fuse

* Persist autocomplete results while they're in progress

* Commit lockfile

* Use ReturnType helper

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2023-11-15 14:39:22 -08:00
dan 839e8e8d0a Post PostLikedBy and PostRepostedBy to RQ (#1913)
* Port PostRepostedBy to RQ

* Port PostLikedBy to RQ
2023-11-15 14:04:25 -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 d1cb74febe Desktop user autocomplete search (#1906)
* Fix notification provider order, add comments

* Remove log

* Add actor typeahead handling

* Trim down desktop search styles and hooks

* Clean up moderation
2023-11-14 17:51:23 -08:00
Eric Bailey ab1ce078ec Fix openCamera, openCropped, lightbox model, and image model usages (#1908) 2023-11-14 17:46:46 -08:00
Eric Bailey 7d5e01f433 Fix profile list (#1907) 2023-11-14 17:45:38 -08:00
Paul Frazee e08d06f263 Fix image order in 4-image post embeds (close #1895) (#1904) 2023-11-14 17:10:58 -06:00
Eric Bailey 68767d597e Fix notification provider order, add comments (#1905)
* Fix notification provider order, add comments

* Remove log
2023-11-14 16:54:02 -06:00
Eric Bailey ab6e3f2c5d Fix self mention, resolve handle (#1903)
* Fix self mention, resolve handle

* Use queryClient

* Fix type

* Remove staleTime
2023-11-14 14:16:56 -06:00
Paul Frazee 8e4a3ad5b6 Add Shadow type (#1900) 2023-11-14 12:10:39 -08:00
Eric Bailey 00f8c8b06d Fix root sibling context issue (#1902) 2023-11-14 10:46:37 -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
Paul Frazee c687172de9 Fix poll latest loop (#1901)
* Avoid pollLatest loop

* Set poll interval on profile feeds
2023-11-14 12:33:05 -06:00
Eric Bailey 3fde1bea1b Handle end of feed (#1898)
* Handle end of feed

* Add isFetching
2023-11-14 11:28:40 -06:00
Eric Bailey 4355f0fd9a Refactor onboarding suggested follows (#1897)
* Refactor onboarding suggested follows

* Fix error state, track call

* Remove todo

* Use flatmap

* Add additional try catch

* Remove todo
2023-11-14 11:25:37 -06:00
Paul Frazee a81c4b68fa Update Muted and Blocked accounts screens (react-query refactor) (#1892)
* Add my-blocked-accounts and my-muted-accounts queries

* Update ProfileCard to use the profile shadow cache and useModerationOpts

* Update blocked accounts and muted accounts screens
2023-11-13 17:30:56 -08:00
Paul Frazee 0501c2be77 Profile cleanup (react-query refactor) (#1891)
* Only fetch profile tab content when focused

* Fix keys

* Add missing behaviors to post tabs

* Delete old profile mobx model
2023-11-13 15:12:41 -08:00
Paul Frazee 47204d9551 Update profile preview to use react-query (#1890) 2023-11-13 14:57:53 -08:00
Paul Frazee 9fca7b3af6 Add feedgens tab to profile (#1889) 2023-11-13 14:46:19 -08:00
Eric Bailey b04748e703 Factor out store from post-feed query (#1888) 2023-11-13 14:07:18 -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
Paul Frazee a01463788d More profile refactor updates (#1886)
* Update the profile avatar lightbox

* Update profile editor

* Add dynamic likes tab

* Add dynamic feeds and lists tabs

* Implement lists listing on profiles
2023-11-13 13:29:33 -08:00
dan 8217761363 Fix jump for web pager (#1884) 2023-11-13 13:03:47 -08:00
dan bb4ed3cd49 Fix lint on main (#1885) 2023-11-13 13:01:26 -08:00
dan e1938931e0 Refactor profile screen to use new pager and react-query (#1870)
* Profile tabs WIP

* Refactor the profile screen to use react-query (WIP)

* Add the profile shadow and get follow, mute, and block working

* Cleanup

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-11-13 10:35:15 -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
Eric Bailey 37a2204483 Update clear account behavior, ensure agent is set (#1881) 2023-11-13 08:20:38 -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
Eric Bailey c584a3378d Refactor My Feeds (#1877)
* Refactor My Feeds screen

* Remove unused feed UI models

* Add back PTR
2023-11-12 16:26:02 -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 51f04b9620 Use min height for pager lists and increase it (#1869) 2023-11-10 22:29:12 +00:00
dan 86b4842d67 Fix initial pager gap after fast scroll (#1868) 2023-11-10 21:23:17 +00:00
dan 91f8a23fbc Scroll sync in the pager without jumps (#1863) 2023-11-10 19:54:33 +00: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 e0e5bc8fd8 Fix type errors (#1867) 2023-11-10 18:20:33 +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
Eric Bailey d0d93168d4 Clean up isDirty handling 2023-11-10 08:59:39 -06:00
dan 8d7475c130 Work around web stale closure bug in Reanimated (#1865) 2023-11-10 14:58:13 +00:00
Eric Bailey 499021229a Remove error states, just best effort 2023-11-10 08:53:23 -06:00
Eric Bailey 60386f8f07 Swap order 2023-11-10 08:48:15 -06:00
Eric Bailey b0c9cce5c3 Follow conventions for query, use isDirty flag in session store to avoid unneccessary writes 2023-11-10 08:46:45 -06:00
Eric Bailey 742f53d1ec Comments 2023-11-09 20:46:45 -06:00
Eric Bailey 2d7b89c6a1 Cleanup getProfile 2023-11-09 20:39:54 -06:00
Eric Bailey ab878ba9a6 Web login/signup and shell 2023-11-09 20:35:17 -06:00
tarikpnr bc64c86b12 Fix jump in suggested follows tab (Native) 2023-11-08 17:07:32 +03:00
1099 changed files with 174923 additions and 35964 deletions
+2 -2
View File
@@ -91,8 +91,8 @@ web-build/
# Android & iOS folders
android/
ios/
/android/
/ios/
# environment variables
.env
+3
View File
@@ -1,3 +1,6 @@
# Copy this to `.env` and `.env.test` files
SENTRY_AUTH_TOKEN=
EXPO_PUBLIC_ENV=development
EXPO_PUBLIC_LOG_LEVEL=debug
EXPO_PUBLIC_LOG_DEBUG=
+64 -1
View File
@@ -7,10 +7,67 @@ module.exports = {
'prettier',
],
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint', 'detox', 'react'],
plugins: [
'@typescript-eslint',
'detox',
'react',
'lingui',
'simple-import-sort',
'bsky-internal',
],
rules: {
// Temporary until https://github.com/facebook/react-native/pull/43756 gets into a release.
'prettier/prettier': 0,
'react/no-unescaped-entities': 0,
'react-native/no-inline-styles': 0,
'bsky-internal/avoid-unwrapped-text': [
'error',
{
impliedTextComponents: ['H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'P'],
impliedTextProps: [],
suggestedTextWrappers: {
Button: 'ButtonText',
'ToggleButton.Button': 'ToggleButton.ButtonText',
},
},
],
'bsky-internal/use-typed-gates': 'error',
'simple-import-sort/imports': [
'warn',
{
groups: [
// Side effect imports.
['^\\u0000'],
// Node.js builtins prefixed with `node:`.
['^node:'],
// Packages.
// Things that start with a letter (or digit or underscore), or `@` followed by a letter.
// React/React Native priortized, followed by expo
// Followed by all packages excluding unprefixed relative ones
[
'^(react\\/(.*)$)|^(react$)|^(react-native(.*)$)',
'^(expo(.*)$)|^(expo$)',
'^(?!(?:alf|components|lib|locale|logger|platform|screens|state|view)(?:$|\\/))@?\\w',
],
// Relative imports.
// Ideally, anything that starts with a dot or #
// due to unprefixed relative imports being used, we whitelist the relative paths we use
// (?:$|\\/) matches end of string or /
[
'^(?:#\\/)?(?:lib|state|logger|platform|locale)(?:$|\\/)',
'^(?:#\\/)?view(?:$|\\/)',
'^(?:#\\/)?screens(?:$|\\/)',
'^(?:#\\/)?alf(?:$|\\/)',
'^(?:#\\/)?components(?:$|\\/)',
'^#\\/',
'^\\.',
],
// anything else - hopefully we don't have any of these
['^'],
],
},
],
'simple-import-sort/exports': 'warn',
},
ignorePatterns: [
'**/__mocks__/*.ts',
@@ -25,8 +82,14 @@ module.exports = {
'bskyweb',
'*.html',
'bskyweb',
'src/locale/locales/_build/',
'src/locale/locales/**/*.js',
],
settings: {
componentWrapperFunctions: ['observer'],
},
parserOptions: {
sourceType: 'module',
ecmaVersion: 'latest',
},
}
@@ -3,7 +3,8 @@ on:
push:
branches:
- main
- jake/bskyweb-additions
- 3p-moderators
env:
REGISTRY: ${{ secrets.AWS_ECR_REGISTRY_USEAST2_PACKAGES_REGISTRY }}
USERNAME: ${{ secrets.AWS_ECR_REGISTRY_USEAST2_PACKAGES_USERNAME }}
@@ -0,0 +1,57 @@
name: build-and-push-embedr-aws
on:
push:
branches:
- main
- bnewbold/embedr
- bnewbold/embedr-rebase
env:
REGISTRY: ${{ secrets.AWS_ECR_REGISTRY_USEAST2_PACKAGES_REGISTRY }}
USERNAME: ${{ secrets.AWS_ECR_REGISTRY_USEAST2_PACKAGES_USERNAME }}
PASSWORD: ${{ secrets.AWS_ECR_REGISTRY_USEAST2_PACKAGES_PASSWORD }}
IMAGE_NAME: embed
jobs:
embedr-container-aws:
if: github.repository == 'bluesky-social/social-app'
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup Docker buildx
uses: docker/setup-buildx-action@v1
- name: Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ env.USERNAME}}
password: ${{ env.PASSWORD }}
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=sha,enable=true,priority=100,prefix=,suffix=,format=long
- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@v4
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
file: ./Dockerfile.embedr
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
+117
View File
@@ -0,0 +1,117 @@
---
name: Build and Submit Android
on:
workflow_dispatch:
inputs:
profile:
type: choice
description: Build profile to use
options:
- testflight-android
- production
jobs:
build:
name: Build and Submit Android
runs-on: ubuntu-latest
steps:
- name: Check for EXPO_TOKEN
run: >
if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then
echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
exit 1
fi
- name: ⬇️ Checkout
uses: actions/checkout@v4
- name: 🔧 Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
cache: yarn
- name: 🔨 Setup EAS
uses: expo/expo-github-action@v8
with:
expo-version: latest
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: ⛏️ Setup EAS local builds
run: yarn global add eas-cli-local-build-plugin
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: ⚙️ Install dependencies
run: yarn install
- name: 🔤 Compile translations
run: yarn intl:build
- name: ✏️ Write environment variables
run: |
export json='${{ secrets.GOOGLE_SERVICES_TOKEN }}'
echo "${{ secrets.ENV_TOKEN }}" > .env
echo "$json" > google-services.json
- name: 🏗️ EAS Build
run: yarn use-build-number-with-bump eas build -p android --profile ${{ inputs.profile || 'testflight-android' }} --local --output build.aab --non-interactive
- name: ✍️ Rename Testflight bundle
if: ${{ inputs.profile != 'production' }}
run: mv build.aab build.apk
- name: ⏰ Get a timestamp
id: timestamp
uses: nanzm/get-time-action@master
with:
format: 'MM-DD-HH-mm-ss'
- name: 🚀 Upload Production Artifact
id: upload-artifact-production
if: ${{ inputs.profile == 'production' }}
uses: actions/upload-artifact@v4
with:
retention-days: 30
compression-level: 6
name: build-${{ steps.timestamp.outputs.time }}.aab
path: build.aab
- name: 🚀 Upload Testflight Artifact
id: upload-artifact-testflight
if: ${{ inputs.profile != 'production' }}
uses: actions/upload-artifact@v4
with:
retention-days: 30
compression-level: 6
name: build-${{ steps.timestamp.outputs.time }}.apk
path: build.apk
- name: 🔔 Notify Slack of Production Build
if: ${{ inputs.profile == 'production' }}
uses: slackapi/slack-github-action@v1.25.0
with:
payload: |
{
"text": "Android build is ready for submission. This is a production build! Download the artifact here: ${{ steps.upload-artifact-production.outputs.artifact-url }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CLIENT_ALERT_WEBHOOK }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
- name: 🔔 Notify Slack of Testflight Build
if: ${{ inputs.profile != 'production' }}
uses: slackapi/slack-github-action@v1.25.0
with:
payload: |
{
"text": "Android build is ready for testing. Download the artifact here: ${{ steps.upload-artifact-testflight.outputs.artifact-url }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CLIENT_ALERT_WEBHOOK }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
+74
View File
@@ -0,0 +1,74 @@
---
name: Build and Submit iOS
on:
workflow_dispatch:
inputs:
profile:
type: choice
description: Build profile to use
options:
- testflight
- production
jobs:
build:
name: Build and Submit iOS
runs-on: macos-14
steps:
- name: Check for EXPO_TOKEN
run: >
if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then
echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
exit 1
fi
- name: ⬇️ Checkout
uses: actions/checkout@v4
- name: 🔧 Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
cache: yarn
- name: 🔨 Setup EAS
uses: expo/expo-github-action@v8
with:
expo-version: latest
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: ⛏️ Setup EAS local builds
run: yarn global add eas-cli-local-build-plugin
- name: ⚙️ Install dependencies
run: yarn install
- name: ☕️ Setup Cocoapods
uses: maxim-lobanov/setup-cocoapods@v1
with:
version: 1.14.3
- name: 💾 Cache Pods
uses: actions/cache@v3
id: pods-cache
with:
path: ./ios/Pods
# We'll use the yarn.lock for our hash since we don't yet have a Podfile.lock. Pod versions will not
# change unless the yarn version changes as well.
key: ${{ runner.os }}-pods-${{ hashFiles('yarn.lock') }}
- name: 🔤 Compile translations
run: yarn intl:build
- name: ✏️ Write environment variables
run: |
echo "${{ secrets.ENV_TOKEN }}" > .env
echo "${{ secrets.GOOGLE_SERVICES_TOKEN }}" > google-services.json
- name: 🏗️ EAS Build
run: yarn use-build-number-with-bump eas build -p ios --profile ${{ inputs.profile || 'testflight' }} --local --output build.ipa --non-interactive
- name: 🚀 Deploy
run: eas submit -p ios --non-interactive --path build.ipa
@@ -0,0 +1,315 @@
---
name: Bundle and Deploy EAS Update
on:
push:
branches:
- main
workflow_dispatch:
inputs:
channel:
type: choice
description: Deployment channel to use
options:
- testflight
- production
runtimeVersion:
type: string
description: Runtime version (in x.x.x format) that this update is for
required: true
jobs:
bundleDeploy:
name: Bundle and Deploy EAS Update
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}-deploy
cancel-in-progress: true
outputs:
fingerprint-is-different: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different }}
steps:
- name: Check for EXPO_TOKEN
run: >
if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then
echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
exit 1
fi
# Validate the version if one is supplied. This should generally happen if the update is for a production client
- name: 🧐 Validate version
if: ${{ inputs.runtimeVersion }}
run: |
if [ -z "${{ inputs.runtimeVersion }}" ]; then
[[ "${{ inputs.runtimeVersion }}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] && echo "Version is valid" || exit 1
fi
- name: ⬇️ Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: ⬇️ Get last successful deployment commit from the cache
id: get-base-commit
uses: actions/cache@v4
with:
path: last-successful-commit-hash.txt
key: last-successful-deployment-commit-${{ github.ref_name }}
- name: Add the last successful deployment commit to the output
id: last-successful-commit
run: echo base-commit=$(cat last-successful-commit-hash.txt) >> "$GITHUB_OUTPUT"
- name: ⬇️ Fetch commits from base branch
if: ${{ github.ref != 'refs/heads/main' }}
run: git fetch origin main:main --depth 100
# This should get the current production release's commit's hash to see if the update is compatible
- name: 🕵️ Get the base commit
id: base-commit
run: |
if [ -z "${{ inputs.channel == 'production' }}" ]; then
echo base-commit=$(git show-ref -s ${{ inputs.runtimeVersion }}) >> "$GITHUB_OUTPUT"
else
echo base-commit=${{ steps.last-successful-commit.base-commit }} >> "$GITHUB_OUTPUT"
fi
- name: ✓ Make sure we found a base commit
run: |
if [ -z "${{ steps.base-commit.outputs.base-commit }}" && ${{ inputs.channel == 'production' }} ]; then
echo "Could not find a base commit for this release. Exiting."
exit 1
fi
- name: 🔧 Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
cache: yarn
- name: ⚙️ Install Dependencies
run: yarn install
# Run the fingerprint
- name: 📷 Check fingerprint
id: fingerprint
uses: expo/expo-github-action/fingerprint@main
with:
previous-git-commit: ${{ steps.base-commit.outputs.base-commit }}
- name: 👀 Debug fingerprint
id: fingerprint-debug
run: |
echo "previousGitCommit=${{ steps.fingerprint.outputs.previous-git-commit }} currentGitCommit=${{ steps.fingerprint.outputs.current-git-commit }}"
echo "isPreviousFingerprintEmpty=${{ steps.fingerprint.outputs.previous-fingerprint == '' }}"
fingerprintDiff='$(echo "${{ steps.fingerprint.outputs.fingerprint-diff }}")'
if [[ $fingerprintDiff =~ "bareRncliAutolinking" || $fingerprintDiff =~ "expoAutolinkingAndroid" || $fingerprintDiff =~ "expoAutolinkingIos" ]]; then
echo fingerprint-is-different="true" >> "$GITHUB_OUTPUT"
else
echo fingerprint-is-different="false" >> "$GITHUB_OUTPUT"
fi
- name: Lint check
run: yarn lint
- name: Prettier check
run: yarn prettier --check .
- name: Check & compile i18n
run: yarn intl:build
- name: Type check
run: yarn typecheck
- name: 🔨 Setup EAS
uses: expo/expo-github-action@v8
if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}}
with:
expo-version: latest
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: ⛏️ Setup Expo
if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}}
run: yarn global add eas-cli-local-build-plugin
- name: 🪛 Setup jq
if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}}
uses: dcarbone/install-jq-action@v2
- name: ✏️ Write environment variables
if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}}
run: |
export json='${{ secrets.GOOGLE_SERVICES_TOKEN }}'
echo "${{ secrets.ENV_TOKEN }}" > .env
echo "$json" > google-services.json
- name: 🏗️ Create Bundle
if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}}
run: EXPO_PUBLIC_ENV="${{ inputs.channel || 'testflight' }}" yarn export
- name: 📦 Package Bundle and 🚀 Deploy
if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}}
run: yarn use-build-number bash scripts/bundleUpdate.sh
env:
DENIS_API_KEY: ${{ secrets.DENIS_API_KEY }}
RUNTIME_VERSION: ${{ inputs.runtimeVersion }}
CHANNEL_NAME: ${{ inputs.channel || 'testflight' }}
- name: Save successful deployment commit hash
run: echo ${{ steps.fingerprint.outputs.current-git-commit }} > last-successful-commit-hash.txt
# GitHub actions are horrible so let's just copy paste this in
buildIfNecessaryIOS:
name: Build and Submit iOS
runs-on: macos-14
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}-build-ios
cancel-in-progress: false
needs: [bundleDeploy]
# Gotta check if its NOT '[]' because any md5 hash in the outputs is detected as a possible secret and won't be
# available here
if: ${{ inputs.channel != 'production' && needs.bundleDeploy.outputs.fingerprint-is-different == 'true' }}
steps:
- name: Check for EXPO_TOKEN
run: >
if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then
echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
exit 1
fi
- name: ⬇️ Checkout
uses: actions/checkout@v4
- name: 🔧 Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
cache: yarn
- name: 🔨 Setup EAS
uses: expo/expo-github-action@v8
with:
expo-version: latest
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: ⛏️ Setup EAS local builds
run: yarn global add eas-cli-local-build-plugin
- name: ⚙️ Install dependencies
run: yarn install
- name: ☕️ Setup Cocoapods
uses: maxim-lobanov/setup-cocoapods@v1
with:
version: 1.14.3
- name: 💾 Cache Pods
uses: actions/cache@v3
id: pods-cache
with:
path: ./ios/Pods
# We'll use the yarn.lock for our hash since we don't yet have a Podfile.lock. Pod versions will not
# change unless the yarn version changes as well.
key: ${{ runner.os }}-pods-${{ hashFiles('yarn.lock') }}
- name: 🔤 Compile translations
run: yarn intl:build
- name: ✏️ Write environment variables
run: |
echo "${{ secrets.ENV_TOKEN }}" > .env
echo "${{ secrets.GOOGLE_SERVICES_TOKEN }}" > google-services.json
- name: 🏗️ EAS Build
run: yarn use-build-number-with-bump eas build -p ios --profile testflight --local --output build.ipa --non-interactive
- name: 🚀 Deploy
run: eas submit -p ios --non-interactive --path build.ipa
buildIfNecessaryAndroid:
name: Build and Submit Android
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}-build-android
cancel-in-progress: false
needs: [ bundleDeploy ]
# Gotta check if its NOT '[]' because any md5 hash in the outputs is detected as a possible secret and won't be
# available here
if: ${{ inputs.channel != 'production' && needs.bundleDeploy.outputs.fingerprint-is-different == 'true' }}
steps:
- name: Check for EXPO_TOKEN
run: >
if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then
echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
exit 1
fi
- name: ⬇️ Checkout
uses: actions/checkout@v4
- name: 🔧 Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
cache: yarn
- name: 🔨 Setup EAS
uses: expo/expo-github-action@v8
with:
expo-version: latest
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: ⛏️ Setup EAS local builds
run: yarn global add eas-cli-local-build-plugin
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: ⚙️ Install dependencies
run: yarn install
- name: 🔤 Compile translations
run: yarn intl:build
- name: ✏️ Write environment variables
run: |
export json='${{ secrets.GOOGLE_SERVICES_TOKEN }}'
echo "${{ secrets.ENV_TOKEN }}" > .env
echo "$json" > google-services.json
- name: 🏗️ EAS Build
run: yarn use-build-number-with-bump eas build -p android --profile testflight-android --local --output build.apk --non-interactive
- name: ⏰ Get a timestamp
id: timestamp
uses: nanzm/get-time-action@master
with:
format: 'MM-DD-HH-mm-ss'
- name: 🚀 Upload Artifact
id: upload-artifact
uses: actions/upload-artifact@v4
with:
retention-days: 30
compression-level: 0
name: build-${{ steps.timestamp.outputs.time }}.apk
path: build.apk
- name: 🔔 Notify Slack
uses: slackapi/slack-github-action@v1.25.0
with:
payload: |
{
"text": "Android build is ready for testing. Download the artifact here: ${{ steps.upload-artifact.outputs.artifact-url }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CLIENT_ALERT_WEBHOOK }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
+4 -4
View File
@@ -20,8 +20,8 @@ jobs:
uses: actions/setup-go@v3
with:
go-version: '1.21'
- name: Dummy JS File
run: touch bskyweb/static/js/blah.js
- name: Dummy Static Files
run: touch bskyweb/static/js/blah.js && touch bskyweb/static/media/blah.txt
- name: Check
run: cd bskyweb/ && make check
- name: Build (binary)
@@ -37,7 +37,7 @@ jobs:
uses: actions/setup-go@v3
with:
go-version: '1.21'
- name: Dummy JS File
run: touch bskyweb/static/js/blah.js
- name: Dummy Static Files
run: touch bskyweb/static/js/blah.js && touch bskyweb/static/media/blah.txt
- name: Lint
run: cd bskyweb/ && make lint
+21 -7
View File
@@ -17,23 +17,37 @@ jobs:
- name: Check out Git repository
uses: actions/checkout@v3
- name: Yarn install
run: yarn --frozen-lockfile
uses: Wandalen/wretry.action@master
with:
command: yarn --frozen-lockfile
attempt_limit: 3
attempt_delay: 2000
- name: Lint check
run: yarn lint
- name: Prettier check
run: yarn prettier --check .
- name: Check & compile i18n
run: yarn intl:build
- name: Type check
run: yarn typecheck
testing:
name: Run tests
runs-on: ubuntu-latest
steps:
- name: Install node 18
uses: actions/setup-node@v3
with:
node-version: 18
- name: Check out Git repository
uses: actions/checkout@v3
- name: Install node
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
- name: Yarn install
run: yarn --frozen-lockfile
uses: Wandalen/wretry.action@master
with:
command: yarn --frozen-lockfile
attempt_limit: 3
attempt_delay: 2000
- name: Check & compile i18n
run: yarn intl:build
- name: Run tests
run: |
yarn test --forceExit
NODE_ENV=test EXPO_PUBLIC_ENV=test yarn test --forceExit
+159
View File
@@ -0,0 +1,159 @@
# Credit for fingerprint action https://github.com/expo/expo
# https://github.com/expo/expo/blob/main/.github/workflows/pr-labeler.yml
---
name: PR labeler
on:
push:
branches: [main]
pull_request:
types: [opened, synchronize]
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
permissions:
pull-requests: write
actions: write
contents: read
jobs:
webpack-analyzer:
runs-on: ubuntu-22.04
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
steps:
- name: ⬇️ Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 🔧 Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
cache: yarn
- name: Ensure tracking relevant branches and checkout base
run: |
git checkout ${{ github.head_ref }}
git checkout ${{ github.base_ref }}
- name: Get the base commit
id: base-commit
run: echo base-commit=$(git log -n 1 ${{ github.base_ref }} --pretty=format:'%H') >> "$GITHUB_OUTPUT"
- name: Merge PR commit
run: |
# Have to set a git config for the merge to work
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
git merge --no-edit ${{ github.head_ref }}
yarn install
- name: 🔦 Generate stats file for PR
run: |
yarn generate-webpack-stats-file
mv stats.json ../stats-new.json
- name: ⬇️ Get base stats from cache
id: get-base-stats
uses: actions/cache@v4
with:
path: stats-base.json
key: stats-base-${{ steps.base-commit.outputs.base-commit }}
- name: Restore to base commit
if: ${{ !steps.get-base-stats.outputs.cache-hit }}
run: |
git reset HEAD~
git restore .
- name: 🔦 Generate stats file from base commit
if: ${{ !steps.get-base-stats.outputs.cache-hit }}
run: |
yarn install
yarn generate-webpack-stats-file
mv stats.json stats-base.json
- name: Get diff
id: get-diff
uses: NejcZdovc/bundle-size-diff@v1
with:
base_path: 'stats-base.json'
pr_path: '../stats-new.json'
excluded_assets: '(.+).chunk.js|(.+).js.map|(.+).json|(.+).png'
- name: 💬 Drop a comment
uses: marocchino/sticky-pull-request-comment@v2
with:
header: bundle-diff
message: |
| Old size | New size | Diff |
|----------|----------|-----------------------|
| ${{ steps.get-diff.outputs.base_file_string }} | ${{ steps.get-diff.outputs.pr_file_string }} | ${{ steps.get-diff.outputs.diff_file_string }} (${{ steps.get-diff.outputs.percent }}%) |
---
test-suite-fingerprint:
runs-on: ubuntu-22.04
if: ${{ github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push' }}
concurrency: fingerprint-${{ github.event_name != 'pull_request' && 'main' || github.run_id }}
steps:
- name: ⬇️ Checkout
uses: actions/checkout@v4
with:
fetch-depth: 100
- name: ⬇️ Fetch commits from base branch
run: git fetch origin main:main --depth 100
if: github.event_name == 'pull_request'
- name: 🔧 Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
cache: yarn
- name: ⚙️ Install Dependencies
run: yarn install
- name: Get the base commit
id: base-commit
run: echo base-commit=$(git log -n 1 main --pretty=format:'%H') >> "$GITHUB_OUTPUT"
- name: 📷 Check fingerprint
id: fingerprint
uses: expo/expo-github-action/fingerprint@main
with:
previous-git-commit: ${{ steps.base-commit.outputs.base-commit }}
- name: 👀 Debug fingerprint
run: |
echo "previousGitCommit=${{ steps.fingerprint.outputs.previous-git-commit }} currentGitCommit=${{ steps.fingerprint.outputs.current-git-commit }}"
echo "isPreviousFingerprintEmpty=${{ steps.fingerprint.outputs.previous-fingerprint == '' }}"
- name: 💬 Drop a comment
uses: marocchino/sticky-pull-request-comment@v2
if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff != '[]' }}
with:
header: fingerprint-diff
message: |
The Pull Request introduced fingerprint changes against the base commit: ${{ steps.fingerprint.outputs.previous-git-commit }}
<details><summary>Fingerprint diff</summary>
```json
${{ steps.fingerprint.outputs.fingerprint-diff }}
```
</details>
---
*Generated by [PR labeler](https://github.com/expo/expo/actions/workflows/pr-labeler.yml) 🤖*
- name: 💬 Delete comment
uses: marocchino/sticky-pull-request-comment@v2
if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff == '[]' }}
with:
header: fingerprint-diff
delete: true
+16 -4
View File
@@ -18,7 +18,6 @@ xcuserdata
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# Android/IntelliJ
@@ -78,6 +77,7 @@ dist/
*.mobileprovision
*.orig.*
web-build/
stats.json
# Temporary files created by Metro to check the health of the file watcher
.metro-health-check*
@@ -91,8 +91,8 @@ web-build/
# Android & iOS folders
android/
ios/
/android/
/ios/
# environment variables
.env
@@ -102,4 +102,16 @@ ios/
google-services.json
# Performance results (Flashlight)
.perf/
.perf/
# ESLint
.eslintcache
# i18n
src/locale/locales/_build/
src/locale/locales/**/*.js
# local builds
*.apk
*.aab
*.ipa
+1
View File
@@ -0,0 +1 @@
18
+13 -11
View File
@@ -1,12 +1,14 @@
ios
android
src/third-party
src/app.json
public
/bskyweb/templates
/dist/
/.watchmanconfig
/app.json
# Ignore everything except JS-ey code.
# Based on https://stackoverflow.com/a/70715829/458193
*
!**/*.js
!**/*.jsx
!**/*.ts
!**/*.tsx
!*/
web/index.html
web-build/*
# More specific ignores go below.
.expo
android
ios
src/locale/locales
+4 -1
View File
@@ -23,7 +23,7 @@ COPY . .
RUN mkdir --parents $NVM_DIR && \
wget \
--output-document=/tmp/nvm-install.sh \
https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh && \
https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh && \
bash /tmp/nvm-install.sh
RUN \. "$NVM_DIR/nvm.sh" && \
@@ -31,6 +31,7 @@ RUN \. "$NVM_DIR/nvm.sh" && \
nvm use $NODE_VERSION && \
npm install --global yarn && \
yarn && \
yarn intl:build && \
yarn build-web
# DEBUG
@@ -71,3 +72,5 @@ CMD ["/usr/bin/bskyweb"]
LABEL org.opencontainers.image.source=https://github.com/bluesky-social/social-app
LABEL org.opencontainers.image.description="bsky.app Web App"
LABEL org.opencontainers.image.licenses=MIT
# NOOP
+79
View File
@@ -0,0 +1,79 @@
FROM golang:1.21-bullseye AS build-env
WORKDIR /usr/src/social-app
ENV DEBIAN_FRONTEND=noninteractive
# Node
ENV NODE_VERSION=18
ENV NVM_DIR=/usr/share/nvm
# Go
ENV GODEBUG="netdns=go"
ENV GOOS="linux"
ENV GOARCH="amd64"
ENV CGO_ENABLED=1
ENV GOEXPERIMENT="loopvar"
COPY . .
#
# Generate the JavaScript webpack. NOTE: this will change
#
RUN mkdir --parents $NVM_DIR && \
wget \
--output-document=/tmp/nvm-install.sh \
https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh && \
bash /tmp/nvm-install.sh
RUN \. "$NVM_DIR/nvm.sh" && \
nvm install $NODE_VERSION && \
nvm use $NODE_VERSION && \
npm install --global yarn && \
yarn && \
cd bskyembed && yarn install --frozen-lockfile && cd .. && \
yarn intl:build && \
yarn build-embed
# DEBUG
RUN find ./bskyweb/embedr-static && find ./bskyweb/embedr-templates && find ./bskyembed/dist
# hack around issue with empty directory and go:embed
RUN touch bskyweb/static/js/empty.txt
RUN touch bskyweb/static/media/empty.txt
#
# Generate the embedr Go binary.
#
RUN cd bskyweb/ && \
go mod download && \
go mod verify
RUN cd bskyweb/ && \
go build \
-v \
-trimpath \
-tags timetzdata \
-o /embedr \
./cmd/embedr
FROM debian:bullseye-slim
ENV GODEBUG=netdns=go
ENV TZ=Etc/UTC
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --yes \
dumb-init \
ca-certificates
ENTRYPOINT ["dumb-init", "--"]
WORKDIR /embedr
COPY --from=build-env /embedr /usr/bin/embedr
CMD ["/usr/bin/embedr"]
LABEL org.opencontainers.image.source=https://github.com/bluesky-social/social-app
LABEL org.opencontainers.image.description="embed.bsky.app Web App"
LABEL org.opencontainers.image.licenses=MIT
+1 -1
View File
@@ -1,4 +1,4 @@
Copyright 2023 Bluesky PBC
Copyright 20232024 Bluesky PBC
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+8 -1
View File
@@ -10,11 +10,17 @@ help: ## Print info about all commands
.PHONY: build-web
build-web: ## Compile web bundle, copy to bskyweb directory
yarn intl:build
yarn build-web
.PHONY: build-web-embed
build-web-embed: ## Compile web embed bundle, copy to bskyweb/embedr* directories
yarn intl:build
yarn build-embed
.PHONY: test
test: ## Run all tests
yarn test
NODE_ENV=test EXPO_PUBLIC_ENV=test yarn test
.PHONY: lint
lint: ## Run style checks and verify syntax
@@ -27,6 +33,7 @@ lint: ## Run style checks and verify syntax
.PHONY: deps
deps: ## Installs dependent libs using 'yarn install'
yarn install --frozen-lockfile
cd bskyembed && yarn install --frozen-lockfile
.PHONY: nvm-setup
nvm-setup: ## Use NVM to install and activate node+yarn
+2 -4
View File
@@ -6,7 +6,7 @@ Get the app itself:
- **Web: [bsky.app](https://bsky.app)**
- **iOS: [App Store](https://apps.apple.com/us/app/bluesky-social/id6444370199)**
- **Android: [Play Store](https://play.google.com/store/apps/details?id=xyz.blueskyweb.app&hl=en_US&gl=US)**
- **Android: [Play Store](https://play.google.com/store/apps/details?id=xyz.blueskyweb.app)**
## Development Resources
@@ -21,7 +21,7 @@ The Authenticated Transfer Protocol ("AT Protocol" or "atproto") is a decentrali
- [Overview and Guides](https://atproto.com/guides/overview)
- [Github Discussions](https://github.com/bluesky-social/atproto/discussions) 👈 Great place to ask questions
- [Protocol Specifications](https://atproto.com/specs/atp)
- [Blogpost on self-authenticating data structures](https://blueskyweb.xyz/blog/3-6-2022-a-self-authenticating-social-protocol)
- [Blogpost on self-authenticating data structures](https://bsky.social/about/blog/3-6-2022-a-self-authenticating-social-protocol)
The Bluesky Social application encompasses a set of schemas and APIs built in the overall AT Protocol framework. The namespace for these "Lexicons" is `app.bsky.*`.
@@ -65,8 +65,6 @@ If you discover any security issues, please send an email to security@bsky.app.
Bluesky is an open social network built on the AT Protocol, a flexible technology that will never lock developers out of the ecosystems that they help build. With atproto, third-party can be as seamless as first-party through custom feeds, federated services, clients, and more.
If you're a developer interested in building on atproto, we'd love to email you a Bluesky invite code. Simply share your GitHub (or similar) profile with us via [this form](https://forms.gle/BF21oxVNZiDjDhXF9).
## License (MIT)
See [./LICENSE](./LICENSE) for the full license.
+1
View File
@@ -1,5 +1,6 @@
import {createServer as createHTTPServer} from 'node:http'
import {parse} from 'node:url'
import {createServer, TestPDS} from '../jest/test-pds'
async function main() {
+6 -4
View File
@@ -1,6 +1,9 @@
/* eslint-env detox/detox */
import {openApp, loginAsAlice, createServer, sleep} from '../util'
import {beforeAll, describe, it} from '@jest/globals'
import {expect} from 'detox'
import {createServer, loginAsAlice, openApp, sleep} from '../util'
describe('Composer', () => {
beforeAll(async () => {
@@ -39,12 +42,13 @@ describe('Composer', () => {
await element(by.id('composerTextInput')).typeText(
'Post with a https://example.com link card',
)
await element(by.id('addLinkCardBtn')).tap()
await element(by.id('composerPublishBtn')).tap()
await expect(element(by.id('composeFAB'))).toBeVisible()
})
it('Reply text only', async () => {
await element(by.id('e2eRefreshHome')).tap()
const post = by.id('feedItem-by-alice.test')
await element(by.id('replyBtn').withAncestor(post)).atIndex(0).tap()
await element(by.id('composerTextInput')).typeText('Reply text only')
@@ -68,7 +72,6 @@ describe('Composer', () => {
await element(by.id('composerTextInput')).typeText(
'Reply with a https://example.com link card',
)
await element(by.id('addLinkCardBtn')).tap()
await element(by.id('composerPublishBtn')).tap()
await expect(element(by.id('composeFAB'))).toBeVisible()
})
@@ -100,7 +103,6 @@ describe('Composer', () => {
await element(by.id('composerTextInput')).typeText(
'QP with a https://example.com link card',
)
await element(by.id('addLinkCardBtn')).tap()
await element(by.id('composerPublishBtn')).tap()
await expect(element(by.id('composeFAB'))).toBeVisible()
})
+15 -12
View File
@@ -1,5 +1,7 @@
/* eslint-env detox/detox */
import {describe, beforeAll, it} from '@jest/globals'
import {expect} from 'detox'
import {openApp, createServer} from '../util'
describe('Create account', () => {
@@ -10,27 +12,28 @@ describe('Create account', () => {
})
it('I can create a new account', async () => {
await element(by.id('e2eOpenLoggedOutView')).tap()
await element(by.id('createAccountButton')).tap()
await device.takeScreenshot('1- opened create account screen')
await element(by.id('otherServerBtn')).tap()
await element(by.id('selectServiceButton')).tap()
await device.takeScreenshot('2- selected other server')
await element(by.id('customServerInput')).clearText()
await element(by.id('customServerInput')).typeText(service)
await element(by.id('customSelectBtn')).tap()
await element(by.id('customServerTextInput')).typeText(service)
await element(by.id('customServerTextInput')).tapReturnKey()
await element(by.id('doneBtn')).tap()
await device.takeScreenshot('3- input test server URL')
await element(by.id('nextBtn')).tap()
await element(by.id('emailInput')).typeText('example@test.com')
await element(by.id('passwordInput')).typeText('hunter2')
await device.takeScreenshot('4- entered account details')
await element(by.id('nextBtn')).tap()
await element(by.id('handleInput')).typeText('e2e-test')
await device.takeScreenshot('4- entered handle')
await device.takeScreenshot('5- entered handle')
await element(by.id('nextBtn')).tap()
await expect(element(by.id('welcomeOnboarding'))).toBeVisible()
await element(by.id('continueBtn')).tap()
await expect(element(by.id('recommendedFeedsOnboarding'))).toBeVisible()
await element(by.id('continueBtn')).tap()
await expect(element(by.id('recommendedFollowsOnboarding'))).toBeVisible()
await element(by.id('continueBtn')).tap()
await expect(element(by.id('homeScreen'))).toBeVisible()
await expect(element(by.id('onboardingInterests'))).toBeVisible()
})
})
+23 -18
View File
@@ -1,6 +1,9 @@
/* eslint-env detox/detox */
import {openApp, loginAsAlice, loginAsBob, createServer, sleep} from '../util'
import {beforeAll, describe, it} from '@jest/globals'
import {expect} from 'detox'
import {createServer, loginAsAlice, loginAsBob, openApp, sleep} from '../util'
describe('Curate lists', () => {
beforeAll(async () => {
@@ -11,7 +14,6 @@ describe('Curate lists', () => {
})
it('Login and create a curatelists', async () => {
await expect(element(by.id('signInButton'))).toBeVisible()
await loginAsAlice()
await element(by.id('e2eGotoLists')).tap()
await element(by.id('newUserListBtn')).tap()
@@ -27,7 +29,7 @@ describe('Curate lists', () => {
it('Edit display name and description via the edit curatelist modal', async () => {
await element(by.id('headerDropdownBtn')).tap()
await element(by.text('Edit List Details')).tap()
await element(by.text('Edit list details')).tap()
await expect(element(by.id('createOrEditListModal'))).toBeVisible()
await element(by.id('editNameInput')).clearText()
await element(by.id('editNameInput')).typeText('Bad Ppl')
@@ -45,7 +47,7 @@ describe('Curate lists', () => {
it('Remove description via the edit curatelist modal', async () => {
await element(by.id('headerDropdownBtn')).tap()
await element(by.text('Edit List Details')).tap()
await element(by.text('Edit list details')).tap()
await expect(element(by.id('createOrEditListModal'))).toBeVisible()
await element(by.id('editDescriptionInput')).clearText()
await element(by.id('saveBtn')).tap()
@@ -60,10 +62,10 @@ describe('Curate lists', () => {
it('Set avi via the edit curatelist modal', async () => {
await expect(element(by.id('userAvatarFallback'))).toExist()
await element(by.id('headerDropdownBtn')).tap()
await element(by.text('Edit List Details')).tap()
await element(by.text('Edit list details')).tap()
await expect(element(by.id('createOrEditListModal'))).toBeVisible()
await element(by.id('changeAvatarBtn')).tap()
await element(by.text('Library')).tap()
await element(by.text('Upload from Library')).tap()
await sleep(3e3)
await element(by.id('saveBtn')).tap()
await expect(element(by.id('createOrEditListModal'))).not.toBeVisible()
@@ -77,10 +79,10 @@ describe('Curate lists', () => {
it('Remove avi via the edit curatelist modal', async () => {
await expect(element(by.id('userAvatarImage'))).toExist()
await element(by.id('headerDropdownBtn')).tap()
await element(by.text('Edit List Details')).tap()
await element(by.text('Edit list details')).tap()
await expect(element(by.id('createOrEditListModal'))).toBeVisible()
await element(by.id('changeAvatarBtn')).tap()
await element(by.text('Remove')).tap()
await element(by.text('Remove Avatar')).tap()
await element(by.id('saveBtn')).tap()
await expect(element(by.id('createOrEditListModal'))).not.toBeVisible()
await expect(element(by.id('userAvatarFallback'))).toExist()
@@ -98,6 +100,7 @@ describe('Curate lists', () => {
})
it('Create a new curatelist', async () => {
await element(by.id('e2eGotoLists')).tap()
await element(by.id('newUserListBtn')).tap()
await expect(element(by.id('createOrEditListModal'))).toBeVisible()
await element(by.id('editNameInput')).typeText('Good Ppl')
@@ -113,6 +116,7 @@ describe('Curate lists', () => {
await element(by.text('About')).tap()
await element(by.id('addUserBtn')).tap()
await expect(element(by.id('listAddUserModal'))).toBeVisible()
await element(by.id('searchInput')).typeText('b')
await waitFor(element(by.id('user-bob.test-addBtn')))
.toBeVisible()
.withTimeout(5000)
@@ -128,6 +132,7 @@ describe('Curate lists', () => {
})
it('Pins the list', async () => {
await expect(element(by.id('pinBtn'))).toBeVisible()
await element(by.id('pinBtn')).tap()
await element(by.id('e2eGotoHome')).tap()
await element(by.id('homeScreenFeedTabs-Good Ppl')).tap()
@@ -152,15 +157,15 @@ describe('Curate lists', () => {
await expect(element(by.id('user-bob.test'))).toBeVisible()
await element(by.id('user-bob.test-editBtn')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible()
await element(by.id('toggleBtn-Good Ppl')).tap()
await element(by.id('saveBtn')).tap()
await element(by.id('user-bob.test-addBtn')).tap()
await element(by.id('doneBtn')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible()
})
it('Shows the curatelist on my profile', async () => {
await element(by.id('bottomBarProfileBtn')).tap()
await element(by.id('selector')).swipe('left')
await element(by.id('selector-4')).tap()
await element(by.id('profilePager-selector')).swipe('left')
await element(by.id('profilePager-selector-5')).tap()
await element(by.id('list-Good Ppl')).tap()
})
@@ -173,15 +178,15 @@ describe('Curate lists', () => {
await element(by.id('profileHeaderDropdownBtn')).tap()
await element(by.text('Add to Lists')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible()
await element(by.id('toggleBtn-Good Ppl')).tap()
await element(by.id('saveBtn')).tap()
await element(by.id('user-bob.test-addBtn')).tap()
await element(by.id('doneBtn')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible()
await element(by.id('profileHeaderDropdownBtn')).tap()
await element(by.text('Add to Lists')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible()
await element(by.id('toggleBtn-Good Ppl')).tap()
await element(by.id('saveBtn')).tap()
await element(by.id('user-bob.test-addBtn')).tap()
await element(by.id('doneBtn')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible()
})
@@ -192,8 +197,8 @@ describe('Curate lists', () => {
await element(by.id('bottomBarSearchBtn')).tap()
await element(by.id('searchTextInput')).typeText('alice')
await element(by.id('searchAutoCompleteResult-alice.test')).tap()
await element(by.id('selector')).swipe('left')
await element(by.id('selector-3')).tap()
await element(by.id('profilePager-selector')).swipe('left')
await element(by.id('profilePager-selector-3')).tap()
await element(by.id('list-Good Ppl')).tap()
await element(by.id('headerDropdownBtn')).tap()
await element(by.text('Report List')).tap()
+39 -22
View File
@@ -1,10 +1,13 @@
/* eslint-env detox/detox */
import {openApp, loginAsAlice, createServer} from '../util'
import {beforeAll, describe, it} from '@jest/globals'
import {expect} from 'detox'
import {createServer, loginAsAlice, openApp} from '../util'
describe('Home screen', () => {
beforeAll(async () => {
await createServer('?users&follows&posts')
await createServer('?users&follows&posts&feeds')
await openApp({permissions: {notifications: 'YES'}})
})
@@ -13,11 +16,28 @@ describe('Home screen', () => {
await element(by.id('homeScreenFeedTabs-Following')).tap()
})
it('Can go to feeds page using feeds button in tab bar', async () => {
await element(by.id('homeScreenFeedTabs-Feeds ✨')).tap()
await expect(element(by.text('Discover New Feeds'))).toBeVisible()
})
it('Feeds button disappears after pinning a feed', async () => {
await element(by.id('bottomBarProfileBtn')).tap()
await element(by.id('profilePager-selector')).swipe('left')
await element(by.id('profilePager-selector-4')).tap()
await element(by.id('feed-alice-favs')).tap()
await element(by.id('pinBtn')).tap()
await element(by.id('bottomBarHomeBtn')).tap()
await expect(
element(by.id('homeScreenFeedTabs-Feeds ✨')),
).not.toBeVisible()
})
it('Can like posts', async () => {
const carlaPosts = by.id('feedItem-by-carla.test')
await expect(
element(by.id('likeCount').withAncestor(carlaPosts)).atIndex(0),
).toHaveText('0')
).not.toExist()
await element(by.id('likeBtn').withAncestor(carlaPosts)).atIndex(0).tap()
await expect(
element(by.id('likeCount').withAncestor(carlaPosts)).atIndex(0),
@@ -25,14 +45,14 @@ describe('Home screen', () => {
await element(by.id('likeBtn').withAncestor(carlaPosts)).atIndex(0).tap()
await expect(
element(by.id('likeCount').withAncestor(carlaPosts)).atIndex(0),
).toHaveText('0')
).not.toExist()
})
it('Can repost posts', async () => {
const carlaPosts = by.id('feedItem-by-carla.test')
await expect(
element(by.id('repostCount').withAncestor(carlaPosts)).atIndex(0),
).toHaveText('0')
).not.toExist()
await element(by.id('repostBtn').withAncestor(carlaPosts)).atIndex(0).tap()
await expect(element(by.id('repostModal'))).toBeVisible()
await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap()
@@ -46,33 +66,30 @@ describe('Home screen', () => {
await expect(element(by.id('repostModal'))).not.toBeVisible()
await expect(
element(by.id('repostCount').withAncestor(carlaPosts)).atIndex(0),
).toHaveText('0')
).not.toExist()
})
it('Can report posts', async () => {
const carlaPosts = by.id('feedItem-by-carla.test')
await element(by.id('postDropdownBtn').withAncestor(carlaPosts))
.atIndex(0)
.tap()
await element(by.text('Report post')).tap()
await expect(element(by.id('reportModal'))).toBeVisible()
await element(
by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'),
).tap()
await element(by.id('sendReportBtn')).tap()
await expect(element(by.id('reportModal'))).not.toBeVisible()
})
// TODO skipping because the test env PDS isnt setup correctly to handle the report -prf
// it('Can report posts', async () => {
// const carlaPosts = by.id('feedItem-by-carla.test')
// await element(by.id('postDropdownBtn').withAncestor(carlaPosts))
// .atIndex(0)
// .tap()
// await element(by.text('Report post')).tap()
// await element(by.id('com.atproto.moderation.defs#reasonSpam')).tap()
// await element(by.id('sendReportBtn')).tap()
// })
it('Can swipe between feeds', async () => {
await element(by.id('homeScreen')).swipe('left', 'fast', 0.75)
await expect(element(by.id('whatshotFeedPage'))).toBeVisible()
await expect(element(by.id('customFeedPage'))).toBeVisible()
await element(by.id('homeScreen')).swipe('right', 'fast', 0.75)
await expect(element(by.id('followingFeedPage'))).toBeVisible()
})
it('Can tap between feeds', async () => {
await element(by.id("homeScreenFeedTabs-What's hot")).tap()
await expect(element(by.id('whatshotFeedPage'))).toBeVisible()
await element(by.id('homeScreenFeedTabs-alice-favs')).tap()
await expect(element(by.id('customFeedPage'))).toBeVisible()
await element(by.id('homeScreenFeedTabs-Following')).tap()
await expect(element(by.id('followingFeedPage'))).toBeVisible()
})
@@ -1,11 +1,9 @@
/* eslint-env detox/detox */
/**
* This test is being skipped until we can resolve the detox crash issue
* with the side drawer.
*/
import {beforeAll, describe, it} from '@jest/globals'
import {expect} from 'detox'
import {openApp, loginAsAlice, createServer} from '../util'
import {createServer, loginAsAlice, openApp} from '../util'
describe('invite-codes', () => {
let service: string
@@ -16,7 +14,6 @@ describe('invite-codes', () => {
})
it('I can fetch invite codes', async () => {
await expect(element(by.id('signInButton'))).toBeVisible()
await loginAsAlice()
await element(by.id('e2eOpenInviteCodesModal')).tap()
await expect(element(by.id('inviteCodesModal'))).toBeVisible()
@@ -27,14 +24,16 @@ describe('invite-codes', () => {
})
it('I can create a new account with the invite code', async () => {
await element(by.id('e2eOpenLoggedOutView')).tap()
await element(by.id('createAccountButton')).tap()
await device.takeScreenshot('1- opened create account screen')
await element(by.id('otherServerBtn')).tap()
await element(by.id('selectServiceButton')).tap()
await device.takeScreenshot('2- selected other server')
await element(by.id('customServerInput')).clearText()
await element(by.id('customServerInput')).typeText(service)
await element(by.id('customSelectBtn')).tap()
await element(by.id('customServerTextInput')).typeText(service)
await element(by.id('customServerTextInput')).tapReturnKey()
await element(by.id('doneBtn')).tap()
await device.takeScreenshot('3- input test server URL')
await element(by.id('nextBtn')).tap()
await element(by.id('inviteCodeInput')).typeText(inviteCode)
await element(by.id('emailInput')).typeText('example@test.com')
await element(by.id('passwordInput')).typeText('hunter2')
@@ -43,27 +42,6 @@ describe('invite-codes', () => {
await element(by.id('handleInput')).typeText('e2e-test')
await device.takeScreenshot('4- entered handle')
await element(by.id('nextBtn')).tap()
await expect(element(by.id('welcomeOnboarding'))).toBeVisible()
await element(by.id('continueBtn')).tap()
await expect(element(by.id('recommendedFeedsOnboarding'))).toBeVisible()
await element(by.id('continueBtn')).tap()
await expect(element(by.id('recommendedFollowsOnboarding'))).toBeVisible()
await element(by.id('continueBtn')).tap()
await expect(element(by.id('homeScreen'))).toBeVisible()
})
it('I get a notification for the new user', async () => {
await element(by.id('e2eSignOut')).tap()
await loginAsAlice()
await waitFor(element(by.id('homeScreen')))
.toBeVisible()
.withTimeout(5000)
await element(by.id('bottomBarNotificationsBtn')).tap()
await expect(element(by.id('invitedUser'))).toBeVisible()
})
it('I can dismiss the new user notification', async () => {
await element(by.id('dismissBtn')).tap()
await expect(element(by.id('invitedUser'))).not.toBeVisible()
await expect(element(by.id('onboardingInterests'))).toBeVisible()
})
})
+4
View File
@@ -1,5 +1,7 @@
/* eslint-env detox/detox */
import {describe, beforeAll, it} from '@jest/globals'
import {expect} from 'detox'
import {openApp, login, createServer} from '../util'
describe('Login', () => {
@@ -10,6 +12,8 @@ describe('Login', () => {
})
it('As Alice, I can login', async () => {
await element(by.id('e2eOpenLoggedOutView')).tap()
await expect(element(by.id('signInButton'))).toBeVisible()
await login(service, 'alice', 'hunter2', {
takeScreenshots: true,
@@ -1,5 +1,7 @@
/* eslint-env detox/detox */
import {describe, beforeAll, it} from '@jest/globals'
import {expect} from 'detox'
import {openApp, loginAsAlice, createServer} from '../util'
describe('Mergefeed', () => {
@@ -9,8 +11,12 @@ describe('Mergefeed', () => {
})
it('Login', async () => {
await element(by.id('e2eOpenLoggedOutView')).tap()
await loginAsAlice()
await element(by.id('e2eToggleMergefeed')).tap()
await element(by.id('bottomBarFeedsBtn')).tap()
await element(by.id('feed-alice-favs-toggleSave')).tap()
await element(by.id('e2eGotoHome')).tap()
})
it('Sees the expected mix of posts with default filters', async () => {
+47 -45
View File
@@ -1,6 +1,8 @@
/* eslint-env detox/detox */
import {openApp, loginAsAlice, loginAsBob, createServer, sleep} from '../util'
import {describe, beforeAll, it} from '@jest/globals'
import {expect} from 'detox'
import {openApp, loginAsAlice, loginAsBob, createServer} from '../util'
describe('Mod lists', () => {
beforeAll(async () => {
@@ -11,7 +13,6 @@ describe('Mod lists', () => {
})
it('Login and view my modlists', async () => {
await expect(element(by.id('signInButton'))).toBeVisible()
await loginAsAlice()
await element(by.id('e2eGotoModeration')).tap()
await element(by.id('moderationlistsBtn')).tap()
@@ -31,7 +32,7 @@ describe('Mod lists', () => {
it('Edit display name and description via the edit modlist modal', async () => {
await element(by.id('headerDropdownBtn')).tap()
await element(by.text('Edit List Details')).tap()
await element(by.text('Edit list details')).tap()
await expect(element(by.id('createOrEditListModal'))).toBeVisible()
await element(by.id('editNameInput')).clearText()
await element(by.id('editNameInput')).typeText('Bad Ppl')
@@ -49,7 +50,7 @@ describe('Mod lists', () => {
it('Remove description via the edit modlist modal', async () => {
await element(by.id('headerDropdownBtn')).tap()
await element(by.text('Edit List Details')).tap()
await element(by.text('Edit list details')).tap()
await expect(element(by.id('createOrEditListModal'))).toBeVisible()
await element(by.id('editDescriptionInput')).clearText()
await element(by.id('saveBtn')).tap()
@@ -61,38 +62,39 @@ describe('Mod lists', () => {
.withTimeout(5000)
})
it('Set avi via the edit modlist modal', async () => {
await expect(element(by.id('userAvatarFallback'))).toExist()
await element(by.id('headerDropdownBtn')).tap()
await element(by.text('Edit List Details')).tap()
await expect(element(by.id('createOrEditListModal'))).toBeVisible()
await element(by.id('changeAvatarBtn')).tap()
await element(by.text('Library')).tap()
await sleep(3e3)
await element(by.id('saveBtn')).tap()
await expect(element(by.id('createOrEditListModal'))).not.toBeVisible()
await expect(element(by.id('userAvatarImage'))).toExist()
// have to wait for the toast to clear
await waitFor(element(by.id('headerDropdownBtn')))
.toBeVisible()
.withTimeout(5000)
})
// DISABLED e2e environment is real finicky about avatar uploads -prf
// it('Set avi via the edit modlist modal', async () => {
// await expect(element(by.id('userAvatarFallback'))).toExist()
// await element(by.id('headerDropdownBtn')).tap()
// await element(by.text('Edit list details')).tap()
// await expect(element(by.id('createOrEditListModal'))).toBeVisible()
// await element(by.id('changeAvatarBtn')).tap()
// await element(by.text('Library')).tap()
// await sleep(3e3)
// await element(by.id('saveBtn')).tap()
// await expect(element(by.id('createOrEditListModal'))).not.toBeVisible()
// await expect(element(by.id('userAvatarImage'))).toExist()
// // have to wait for the toast to clear
// await waitFor(element(by.id('headerDropdownBtn')))
// .toBeVisible()
// .withTimeout(5000)
// })
it('Remove avi via the edit modlist modal', async () => {
await expect(element(by.id('userAvatarImage'))).toExist()
await element(by.id('headerDropdownBtn')).tap()
await element(by.text('Edit List Details')).tap()
await expect(element(by.id('createOrEditListModal'))).toBeVisible()
await element(by.id('changeAvatarBtn')).tap()
await element(by.text('Remove')).tap()
await element(by.id('saveBtn')).tap()
await expect(element(by.id('createOrEditListModal'))).not.toBeVisible()
await expect(element(by.id('userAvatarFallback'))).toExist()
// have to wait for the toast to clear
await waitFor(element(by.id('headerDropdownBtn')))
.toBeVisible()
.withTimeout(5000)
})
// it('Remove avi via the edit modlist modal', async () => {
// await expect(element(by.id('userAvatarImage'))).toExist()
// await element(by.id('headerDropdownBtn')).tap()
// await element(by.text('Edit list details')).tap()
// await expect(element(by.id('createOrEditListModal'))).toBeVisible()
// await element(by.id('changeAvatarBtn')).tap()
// await element(by.text('Remove')).tap()
// await element(by.id('saveBtn')).tap()
// await expect(element(by.id('createOrEditListModal'))).not.toBeVisible()
// await expect(element(by.id('userAvatarFallback'))).toExist()
// // have to wait for the toast to clear
// await waitFor(element(by.id('headerDropdownBtn')))
// .toBeVisible()
// .withTimeout(5000)
// })
it('Delete the modlist', async () => {
await element(by.id('headerDropdownBtn')).tap()
@@ -131,15 +133,15 @@ describe('Mod lists', () => {
await expect(element(by.id('user-warn-posts.test'))).toBeVisible()
await element(by.id('user-warn-posts.test-editBtn')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible()
await element(by.id('toggleBtn-Bad Ppl')).tap()
await element(by.id('saveBtn')).tap()
await element(by.id('user-warn-posts.test-addBtn')).tap()
await element(by.id('doneBtn')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible()
})
it('Shows the modlist on my profile', async () => {
await element(by.id('bottomBarProfileBtn')).tap()
await element(by.id('selector')).swipe('left')
await element(by.id('selector-4')).tap()
await element(by.id('profilePager-selector')).swipe('left')
await element(by.id('profilePager-selector-5')).tap()
await element(by.id('list-Bad Ppl')).tap()
})
@@ -152,15 +154,15 @@ describe('Mod lists', () => {
await element(by.id('profileHeaderDropdownBtn')).tap()
await element(by.text('Add to Lists')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible()
await element(by.id('toggleBtn-Bad Ppl')).tap()
await element(by.id('saveBtn')).tap()
await element(by.id('user-bob.test-addBtn')).tap()
await element(by.id('doneBtn')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible()
await element(by.id('profileHeaderDropdownBtn')).tap()
await element(by.text('Add to Lists')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible()
await element(by.id('toggleBtn-Bad Ppl')).tap()
await element(by.id('saveBtn')).tap()
await element(by.id('user-bob.test-addBtn')).tap()
await element(by.id('doneBtn')).tap()
await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible()
})
@@ -171,8 +173,8 @@ describe('Mod lists', () => {
await element(by.id('bottomBarSearchBtn')).tap()
await element(by.id('searchTextInput')).typeText('alice')
await element(by.id('searchAutoCompleteResult-alice.test')).tap()
await element(by.id('selector')).swipe('left')
await element(by.id('selector-3')).tap()
await element(by.id('profilePager-selector')).swipe('left')
await element(by.id('profilePager-selector-3')).tap()
await element(by.id('list-Bad Ppl')).tap()
await element(by.id('headerDropdownBtn')).tap()
await element(by.text('Report List')).tap()
+47 -35
View File
@@ -1,6 +1,9 @@
/* eslint-env detox/detox */
import {openApp, loginAsAlice, createServer, sleep} from '../util'
import {beforeAll, describe, it} from '@jest/globals'
import {expect} from 'detox'
import {createServer, loginAsAlice, openApp, sleep} from '../util'
describe('Profile screen', () => {
beforeAll(async () => {
@@ -11,17 +14,16 @@ describe('Profile screen', () => {
})
it('Login and navigate to my profile', async () => {
await expect(element(by.id('signInButton'))).toBeVisible()
await loginAsAlice()
await element(by.id('bottomBarProfileBtn')).tap()
})
it('Can see feeds', async () => {
await element(by.id('selector')).swipe('left')
await element(by.id('selector-4')).tap()
await element(by.id('profilePager-selector')).swipe('left')
await element(by.id('profilePager-selector-4')).tap()
await expect(element(by.id('feed-alice-favs'))).toBeVisible()
await element(by.id('selector')).swipe('right')
await element(by.id('selector-0')).tap()
await element(by.id('profilePager-selector')).swipe('right')
await element(by.id('profilePager-selector-0')).tap()
})
it('Open and close edit profile modal', async () => {
@@ -69,10 +71,10 @@ describe('Profile screen', () => {
await element(by.id('profileHeaderEditProfileButton')).tap()
await expect(element(by.id('editProfileModal'))).toBeVisible()
await element(by.id('changeBannerBtn')).tap()
await element(by.text('Library')).tap()
await element(by.text('Upload from Library')).tap()
await sleep(3e3)
await element(by.id('changeAvatarBtn')).tap()
await element(by.text('Library')).tap()
await element(by.text('Upload from Library')).tap()
await sleep(3e3)
await element(by.id('editProfileSaveBtn')).tap()
await expect(element(by.id('editProfileModal'))).not.toBeVisible()
@@ -86,9 +88,9 @@ describe('Profile screen', () => {
await element(by.id('profileHeaderEditProfileButton')).tap()
await expect(element(by.id('editProfileModal'))).toBeVisible()
await element(by.id('changeBannerBtn')).tap()
await element(by.text('Remove')).tap()
await element(by.text('Remove Banner')).tap()
await element(by.id('changeAvatarBtn')).tap()
await element(by.text('Remove')).tap()
await element(by.text('Remove Avatar')).tap()
await element(by.id('editProfileSaveBtn')).tap()
await expect(element(by.id('editProfileModal'))).not.toBeVisible()
await expect(element(by.id('userBannerFallback'))).toExist()
@@ -123,22 +125,31 @@ describe('Profile screen', () => {
await expect(element(by.id('profileHeaderAlert'))).not.toExist()
})
it('Can report another user', async () => {
await element(by.id('profileHeaderDropdownBtn')).tap()
await element(by.text('Report Account')).tap()
await expect(element(by.id('reportModal'))).toBeVisible()
await element(
by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'),
).tap()
await element(by.id('sendReportBtn')).tap()
await expect(element(by.id('reportModal'))).not.toBeVisible()
})
// TODO skipping because the test env PDS isnt setup correctly to handle the report -prf
// it('Can report another user', async () => {
// await element(by.id('profileHeaderDropdownBtn')).tap()
// await element(by.text('Report Account')).tap()
// await expect(element(by.id('reportModal'))).toBeVisible()
// await element(
// by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'),
// ).tap()
// await element(by.id('sendReportBtn')).tap()
// await expect(element(by.id('reportModal'))).not.toBeVisible()
// })
it('Can like posts', async () => {
await element(by.id('postsFeed-flatlist')).swipe(
'down',
'slow',
1,
0.5,
0.5,
)
const posts = by.id('feedItem-by-bob.test')
await expect(
element(by.id('likeCount').withAncestor(posts)).atIndex(0),
).toHaveText('0')
).not.toExist()
await element(by.id('likeBtn').withAncestor(posts)).atIndex(0).tap()
await expect(
element(by.id('likeCount').withAncestor(posts)).atIndex(0),
@@ -146,14 +157,14 @@ describe('Profile screen', () => {
await element(by.id('likeBtn').withAncestor(posts)).atIndex(0).tap()
await expect(
element(by.id('likeCount').withAncestor(posts)).atIndex(0),
).toHaveText('0')
).not.toExist()
})
it('Can repost posts', async () => {
const posts = by.id('feedItem-by-bob.test')
await expect(
element(by.id('repostCount').withAncestor(posts)).atIndex(0),
).toHaveText('0')
).not.toExist()
await element(by.id('repostBtn').withAncestor(posts)).atIndex(0).tap()
await expect(element(by.id('repostModal'))).toBeVisible()
await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap()
@@ -167,18 +178,19 @@ describe('Profile screen', () => {
await expect(element(by.id('repostModal'))).not.toBeVisible()
await expect(
element(by.id('repostCount').withAncestor(posts)).atIndex(0),
).toHaveText('0')
).not.toExist()
})
it('Can report posts', async () => {
const posts = by.id('feedItem-by-bob.test')
await element(by.id('postDropdownBtn').withAncestor(posts)).atIndex(0).tap()
await element(by.text('Report post')).tap()
await expect(element(by.id('reportModal'))).toBeVisible()
await element(
by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'),
).tap()
await element(by.id('sendReportBtn')).tap()
await expect(element(by.id('reportModal'))).not.toBeVisible()
})
// TODO skipping because the test env PDS isnt setup correctly to handle the report -prf
// it('Can report posts', async () => {
// const posts = by.id('feedItem-by-bob.test')
// await element(by.id('postDropdownBtn').withAncestor(posts)).atIndex(0).tap()
// await element(by.text('Report post')).tap()
// await expect(element(by.id('reportModal'))).toBeVisible()
// await element(
// by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'),
// ).tap()
// await element(by.id('sendReportBtn')).tap()
// await expect(element(by.id('reportModal'))).not.toBeVisible()
// })
})
+2
View File
@@ -1,5 +1,7 @@
/* eslint-env detox/detox */
import {describe, beforeAll, it} from '@jest/globals'
import {expect} from 'detox'
import {openApp, loginAsAlice, createServer} from '../util'
describe('Search screen', () => {
+3
View File
@@ -1,5 +1,7 @@
/* eslint-env detox/detox */
import {describe, beforeAll, it} from '@jest/globals'
import {expect} from 'detox'
import {openApp, loginAsAlice, createServer, sleep} from '../util'
describe('Self-labeling', () => {
@@ -26,6 +28,7 @@ describe('Self-labeling', () => {
await element(by.id('composerPublishBtn')).tap()
await expect(element(by.id('composeFAB'))).toBeVisible()
const posts = by.id('feedItem-by-alice.test')
await element(by.id('e2eRefreshHome')).tap()
await expect(
element(by.id('contentHider-embed').withAncestor(posts)).atIndex(0),
).toExist()
+3 -1
View File
@@ -1,5 +1,7 @@
/* eslint-env detox/detox */
import {describe, beforeAll, it} from '@jest/globals'
import {expect} from 'detox'
import {openApp, loginAsAlice, loginAsBob, createServer} from '../util'
describe('Thread muting', () => {
@@ -48,7 +50,7 @@ describe('Thread muting', () => {
await loginAsBob()
await element(by.id('bottomBarProfileBtn')).tap()
await element(by.id('selector-1')).tap()
await element(by.id('profilePager-selector-1')).tap()
const bobPosts = by.id('feedItem-by-bob.test')
await element(by.id('replyBtn').withAncestor(bobPosts)).atIndex(0).tap()
await element(by.id('composerTextInput')).typeText('Reply 2')
+38 -33
View File
@@ -1,6 +1,9 @@
/* eslint-env detox/detox */
import {openApp, loginAsAlice, createServer} from '../util'
import {beforeAll, describe, it} from '@jest/globals'
import {expect} from 'detox'
import {createServer, loginAsAlice, openApp} from '../util'
describe('Thread screen', () => {
beforeAll(async () => {
@@ -31,15 +34,15 @@ describe('Thread screen', () => {
it('Can like the root post', async () => {
const post = by.id('postThreadItem-by-bob.test')
await expect(
element(by.id('likeCount').withAncestor(post)).atIndex(0),
element(by.id('likeCount-expanded').withAncestor(post)).atIndex(0),
).not.toExist()
await element(by.id('likeBtn').withAncestor(post)).atIndex(0).tap()
await expect(
element(by.id('likeCount').withAncestor(post)).atIndex(0),
element(by.id('likeCount-expanded').withAncestor(post)).atIndex(0),
).toHaveText('1 like')
await element(by.id('likeBtn').withAncestor(post)).atIndex(0).tap()
await expect(
element(by.id('likeCount').withAncestor(post)).atIndex(0),
element(by.id('likeCount-expanded').withAncestor(post)).atIndex(0),
).not.toExist()
})
@@ -47,7 +50,7 @@ describe('Thread screen', () => {
const post = by.id('postThreadItem-by-carla.test')
await expect(
element(by.id('likeCount').withAncestor(post)).atIndex(0),
).toHaveText('0')
).not.toExist()
await element(by.id('likeBtn').withAncestor(post)).atIndex(0).tap()
await expect(
element(by.id('likeCount').withAncestor(post)).atIndex(0),
@@ -55,27 +58,27 @@ describe('Thread screen', () => {
await element(by.id('likeBtn').withAncestor(post)).atIndex(0).tap()
await expect(
element(by.id('likeCount').withAncestor(post)).atIndex(0),
).toHaveText('0')
).not.toExist()
})
it('Can repost the root post', async () => {
const post = by.id('postThreadItem-by-bob.test')
await expect(
element(by.id('repostCount').withAncestor(post)).atIndex(0),
element(by.id('repostCount-expanded').withAncestor(post)).atIndex(0),
).not.toExist()
await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap()
await expect(element(by.id('repostModal'))).toBeVisible()
await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap()
await expect(element(by.id('repostModal'))).not.toBeVisible()
await expect(
element(by.id('repostCount').withAncestor(post)).atIndex(0),
element(by.id('repostCount-expanded').withAncestor(post)).atIndex(0),
).toHaveText('1 repost')
await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap()
await expect(element(by.id('repostModal'))).toBeVisible()
await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap()
await expect(element(by.id('repostModal'))).not.toBeVisible()
await expect(
element(by.id('repostCount').withAncestor(post)).atIndex(0),
element(by.id('repostCount-expanded').withAncestor(post)).atIndex(0),
).not.toExist()
})
@@ -83,7 +86,7 @@ describe('Thread screen', () => {
const post = by.id('postThreadItem-by-carla.test')
await expect(
element(by.id('repostCount').withAncestor(post)).atIndex(0),
).toHaveText('0')
).not.toExist()
await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap()
await expect(element(by.id('repostModal'))).toBeVisible()
await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap()
@@ -97,30 +100,32 @@ describe('Thread screen', () => {
await expect(element(by.id('repostModal'))).not.toBeVisible()
await expect(
element(by.id('repostCount').withAncestor(post)).atIndex(0),
).toHaveText('0')
).not.toExist()
})
it('Can report the root post', async () => {
const post = by.id('postThreadItem-by-bob.test')
await element(by.id('postDropdownBtn').withAncestor(post)).atIndex(0).tap()
await element(by.text('Report post')).tap()
await expect(element(by.id('reportModal'))).toBeVisible()
await element(
by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'),
).tap()
await element(by.id('sendReportBtn')).tap()
await expect(element(by.id('reportModal'))).not.toBeVisible()
})
// TODO skipping because the test env PDS isnt setup correctly to handle the report -prf
// it('Can report the root post', async () => {
// const post = by.id('postThreadItem-by-bob.test')
// await element(by.id('postDropdownBtn').withAncestor(post)).atIndex(0).tap()
// await element(by.text('Report post')).tap()
// await expect(element(by.id('reportModal'))).toBeVisible()
// await element(
// by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'),
// ).tap()
// await element(by.id('sendReportBtn')).tap()
// await expect(element(by.id('reportModal'))).not.toBeVisible()
// })
it('Can report a reply post', async () => {
const post = by.id('postThreadItem-by-carla.test')
await element(by.id('postDropdownBtn').withAncestor(post)).atIndex(0).tap()
await element(by.text('Report post')).tap()
await expect(element(by.id('reportModal'))).toBeVisible()
await element(
by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'),
).tap()
await element(by.id('sendReportBtn')).tap()
await expect(element(by.id('reportModal'))).not.toBeVisible()
})
// TODO skipping because the test env PDS isnt setup correctly to handle the report -prf
// it('Can report a reply post', async () => {
// const post = by.id('postThreadItem-by-carla.test')
// await element(by.id('postDropdownBtn').withAncestor(post)).atIndex(0).tap()
// await element(by.text('Report post')).tap()
// await expect(element(by.id('reportModal'))).toBeVisible()
// await element(
// by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'),
// ).tap()
// await element(by.id('sendReportBtn')).tap()
// await expect(element(by.id('reportModal'))).not.toBeVisible()
// })
})
+29 -7
View File
@@ -1,5 +1,6 @@
import {resolveConfig} from 'detox/internals'
import {execSync} from 'child_process'
import {resolveConfig} from 'detox/internals'
import http from 'http'
const platform = device.getPlatform()
@@ -51,13 +52,14 @@ export async function login(
if (await isVisible('chooseAccountForm')) {
await element(by.id('chooseNewAccountBtn')).tap()
}
await element(by.id('loginSelectServiceButton')).tap()
await element(by.id('selectServiceButton')).tap()
if (takeScreenshots) {
await device.takeScreenshot('2- opened service selector')
}
await element(by.id('customSelectBtn')).tap()
await element(by.id('customServerTextInput')).typeText(service)
await element(by.id('customServerTextInput')).tapReturnKey()
await element(by.id('customServerSelectBtn')).tap()
await element(by.id('doneBtn')).tap()
if (takeScreenshots) {
await device.takeScreenshot('3- input custom service')
}
@@ -104,10 +106,30 @@ async function openAppForDebugBuild(platform: string, opts: any) {
await sleep(3000)
}
export async function createServer(path = '') {
const res = await fetch(`http://localhost:1986/${path}`, {method: 'POST'})
const resBody = await res.text()
return resBody
export async function createServer(path = ''): Promise<string> {
return new Promise(function (resolve, reject) {
var req = http.request(
{
method: 'POST',
host: 'localhost',
port: 1986,
path: `/${path}`,
},
function (res) {
const body: Buffer[] = []
res.on('data', chunk => body.push(chunk))
res.on('end', function () {
try {
resolve(Buffer.concat(body).toString())
} catch (e) {
reject(e)
}
})
},
)
req.on('error', reject)
req.end()
})
}
const getDeepLinkUrl = (url: string) =>
+27 -2
View File
@@ -1,9 +1,10 @@
import ImageResizer from '@bam.tech/react-native-image-resizer'
import RNFetchBlob from 'rn-fetch-blob'
import {
downloadAndResize,
DownloadAndResizeOpts,
} from '../../src/lib/media/manip'
import ImageResizer from '@bam.tech/react-native-image-resizer'
import RNFetchBlob from 'rn-fetch-blob'
describe('downloadAndResize', () => {
const errorSpy = jest.spyOn(global.console, 'error')
@@ -30,6 +31,7 @@ describe('downloadAndResize', () => {
const mockedFetch = RNFetchBlob.fetch as jest.Mock
mockedFetch.mockResolvedValueOnce({
path: jest.fn().mockReturnValue('file://downloaded-image.jpg'),
info: jest.fn().mockReturnValue({status: 200}),
flush: jest.fn(),
})
@@ -84,6 +86,7 @@ describe('downloadAndResize', () => {
const mockedFetch = RNFetchBlob.fetch as jest.Mock
mockedFetch.mockResolvedValueOnce({
path: jest.fn().mockReturnValue('file://downloaded-image'),
info: jest.fn().mockReturnValue({status: 200}),
flush: jest.fn(),
})
@@ -118,4 +121,26 @@ describe('downloadAndResize', () => {
{mode: 'cover'},
)
})
it('should return undefined for non-200 response', async () => {
const mockedFetch = RNFetchBlob.fetch as jest.Mock
mockedFetch.mockResolvedValueOnce({
path: jest.fn().mockReturnValue('file://downloaded-image'),
info: jest.fn().mockReturnValue({status: 400}),
flush: jest.fn(),
})
const opts: DownloadAndResizeOpts = {
uri: 'https://example.com/image',
width: 100,
height: 100,
maxSize: 500000,
mode: 'cover',
timeout: 10000,
}
const result = await downloadAndResize(opts)
expect(errorSpy).not.toHaveBeenCalled()
expect(result).toBeUndefined()
})
})
+403 -37
View File
@@ -1,17 +1,18 @@
import {RichText} from '@atproto/api'
import {
getYoutubeVideoId,
makeRecordUri,
toNiceDomain,
toShortUrl,
toShareUrl,
} from '../../src/lib/strings/url-helpers'
import {pluralize, enforceLen} from '../../src/lib/strings/helpers'
import {ago} from '../../src/lib/strings/time'
import {parseEmbedPlayerFromUrl} from 'lib/strings/embed-player'
import {cleanError} from '../../src/lib/strings/errors'
import {createFullHandle, makeValidHandle} from '../../src/lib/strings/handles'
import {enforceLen, pluralize} from '../../src/lib/strings/helpers'
import {detectLinkables} from '../../src/lib/strings/rich-text-detection'
import {shortenLinks} from '../../src/lib/strings/rich-text-manip'
import {makeValidHandle, createFullHandle} from '../../src/lib/strings/handles'
import {cleanError} from '../../src/lib/strings/errors'
import {ago} from '../../src/lib/strings/time'
import {
makeRecordUri,
toNiceDomain,
toShareUrl,
toShortUrl,
} from '../../src/lib/strings/url-helpers'
describe('detectLinkables', () => {
const inputs = [
@@ -335,32 +336,6 @@ describe('toShareUrl', () => {
})
})
describe('getYoutubeVideoId', () => {
it(' should return undefined for invalid youtube links', () => {
expect(getYoutubeVideoId('')).toBeUndefined()
expect(getYoutubeVideoId('https://www.google.com')).toBeUndefined()
expect(getYoutubeVideoId('https://www.youtube.com')).toBeUndefined()
expect(
getYoutubeVideoId('https://www.youtube.com/channelName'),
).toBeUndefined()
expect(
getYoutubeVideoId('https://www.youtube.com/channel/channelName'),
).toBeUndefined()
})
it('getYoutubeVideoId should return video id for valid youtube links', () => {
expect(getYoutubeVideoId('https://www.youtube.com/watch?v=videoId')).toBe(
'videoId',
)
expect(
getYoutubeVideoId(
'https://www.youtube.com/watch?v=videoId&feature=share',
),
).toBe('videoId')
expect(getYoutubeVideoId('https://youtu.be/videoId')).toBe('videoId')
})
})
describe('shortenLinks', () => {
const inputs = [
'start https://middle.com/foo/bar?baz=bux#hash end',
@@ -396,6 +371,7 @@ describe('shortenLinks', () => {
],
],
]
it('correctly shortens rich text while preserving facet URIs', () => {
for (let i = 0; i < inputs.length; i++) {
const input = inputs[i]
@@ -410,3 +386,393 @@ describe('shortenLinks', () => {
}
})
})
describe('parseEmbedPlayerFromUrl', () => {
const inputs = [
'https://youtu.be/videoId',
'https://www.youtube.com/watch?v=videoId',
'https://www.youtube.com/watch?v=videoId&feature=share',
'https://youtube.com/watch?v=videoId',
'https://youtube.com/watch?v=videoId&feature=share',
'https://youtube.com/shorts/videoId',
'https://m.youtube.com/watch?v=videoId',
'https://music.youtube.com/watch?v=videoId',
'https://youtube.com/shorts/',
'https://youtube.com/',
'https://youtube.com/random',
'https://twitch.tv/channelName',
'https://www.twitch.tv/channelName',
'https://m.twitch.tv/channelName',
'https://twitch.tv/channelName/clip/clipId',
'https://twitch.tv/videos/videoId',
'https://open.spotify.com/playlist/playlistId',
'https://open.spotify.com/playlist/playlistId?param=value',
'https://open.spotify.com/locale/playlist/playlistId',
'https://open.spotify.com/track/songId',
'https://open.spotify.com/track/songId?param=value',
'https://open.spotify.com/locale/track/songId',
'https://open.spotify.com/album/albumId',
'https://open.spotify.com/album/albumId?param=value',
'https://open.spotify.com/locale/album/albumId',
'https://soundcloud.com/user/track',
'https://soundcloud.com/user/sets/set',
'https://soundcloud.com/user/',
'https://music.apple.com/us/playlist/playlistName/playlistId',
'https://music.apple.com/us/album/albumName/albumId',
'https://music.apple.com/us/album/albumName/albumId?i=songId',
'https://vimeo.com/videoId',
'https://vimeo.com/videoId?autoplay=0',
'https://giphy.com/gifs/some-random-gif-name-gifId',
'https://giphy.com/gif/some-random-gif-name-gifId',
'https://giphy.com/gifs/',
'https://giphy.com/gifs/39248209509382934029?hh=100&ww=100',
'https://media.giphy.com/media/gifId/giphy.webp',
'https://media0.giphy.com/media/gifId/giphy.webp',
'https://media1.giphy.com/media/gifId/giphy.gif',
'https://media2.giphy.com/media/gifId/giphy.webp',
'https://media3.giphy.com/media/gifId/giphy.mp4',
'https://media4.giphy.com/media/gifId/giphy.webp',
'https://media5.giphy.com/media/gifId/giphy.mp4',
'https://media0.giphy.com/media/gifId/giphy.mp3',
'https://media1.google.com/media/gifId/giphy.webp',
'https://media.giphy.com/media/trackingId/gifId/giphy.webp',
'https://i.giphy.com/media/gifId/giphy.webp',
'https://i.giphy.com/media/gifId/giphy.webp',
'https://i.giphy.com/gifId.gif',
'https://i.giphy.com/gifId.gif',
'https://tenor.com/view/gifId',
'https://tenor.com/notView/gifId',
'https://tenor.com/view',
'https://tenor.com/view/gifId.gif',
'https://tenor.com/intl/view/gifId.gif',
'https://media.tenor.com/someID_AAAAC/someName.gif?hh=100&ww=100',
'https://media.tenor.com/someID_AAAAC/someName.gif',
'https://media.tenor.com/someID/someName.gif',
'https://media.tenor.com/someID',
'https://media.tenor.com',
]
const outputs = [
{
type: 'youtube_video',
source: 'youtube',
playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0',
},
{
type: 'youtube_video',
source: 'youtube',
playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0',
},
{
type: 'youtube_video',
source: 'youtube',
playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0',
},
{
type: 'youtube_video',
source: 'youtube',
playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0',
},
{
type: 'youtube_video',
source: 'youtube',
playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0',
},
{
type: 'youtube_short',
source: 'youtubeShorts',
hideDetails: true,
playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0',
},
{
type: 'youtube_video',
source: 'youtube',
playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0',
},
{
type: 'youtube_video',
source: 'youtube',
playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0',
},
undefined,
undefined,
undefined,
{
type: 'twitch_video',
source: 'twitch',
playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&channel=channelName&parent=localhost`,
},
{
type: 'twitch_video',
source: 'twitch',
playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&channel=channelName&parent=localhost`,
},
{
type: 'twitch_video',
source: 'twitch',
playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&channel=channelName&parent=localhost`,
},
{
type: 'twitch_video',
source: 'twitch',
playerUri: `https://clips.twitch.tv/embed?volume=0.5&autoplay=true&clip=clipId&parent=localhost`,
},
{
type: 'twitch_video',
source: 'twitch',
playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&video=videoId&parent=localhost`,
},
{
type: 'spotify_playlist',
source: 'spotify',
playerUri: `https://open.spotify.com/embed/playlist/playlistId`,
},
{
type: 'spotify_playlist',
source: 'spotify',
playerUri: `https://open.spotify.com/embed/playlist/playlistId`,
},
{
type: 'spotify_playlist',
source: 'spotify',
playerUri: `https://open.spotify.com/embed/playlist/playlistId`,
},
{
type: 'spotify_song',
source: 'spotify',
playerUri: `https://open.spotify.com/embed/track/songId`,
},
{
type: 'spotify_song',
source: 'spotify',
playerUri: `https://open.spotify.com/embed/track/songId`,
},
{
type: 'spotify_song',
source: 'spotify',
playerUri: `https://open.spotify.com/embed/track/songId`,
},
{
type: 'spotify_album',
source: 'spotify',
playerUri: `https://open.spotify.com/embed/album/albumId`,
},
{
type: 'spotify_album',
source: 'spotify',
playerUri: `https://open.spotify.com/embed/album/albumId`,
},
{
type: 'spotify_album',
source: 'spotify',
playerUri: `https://open.spotify.com/embed/album/albumId`,
},
{
type: 'soundcloud_track',
source: 'soundcloud',
playerUri: `https://w.soundcloud.com/player/?url=https://soundcloud.com/user/track&auto_play=true&visual=false&hide_related=true`,
},
{
type: 'soundcloud_set',
source: 'soundcloud',
playerUri: `https://w.soundcloud.com/player/?url=https://soundcloud.com/user/sets/set&auto_play=true&visual=false&hide_related=true`,
},
undefined,
{
type: 'apple_music_playlist',
source: 'appleMusic',
playerUri:
'https://embed.music.apple.com/us/playlist/playlistName/playlistId',
},
{
type: 'apple_music_album',
source: 'appleMusic',
playerUri: 'https://embed.music.apple.com/us/album/albumName/albumId',
},
{
type: 'apple_music_song',
source: 'appleMusic',
playerUri:
'https://embed.music.apple.com/us/album/albumName/albumId?i=songId',
},
{
type: 'vimeo_video',
source: 'vimeo',
playerUri: 'https://player.vimeo.com/video/videoId?autoplay=1',
},
{
type: 'vimeo_video',
source: 'vimeo',
playerUri: 'https://player.vimeo.com/video/videoId?autoplay=1',
},
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
undefined,
undefined,
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/39248209509382934029',
playerUri: 'https://i.giphy.com/media/39248209509382934029/200.webp',
},
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
undefined,
undefined,
undefined,
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
{
type: 'giphy_gif',
source: 'giphy',
isGif: true,
hideDetails: true,
metaUri: 'https://giphy.com/gifs/gifId',
playerUri: 'https://i.giphy.com/media/gifId/200.webp',
},
undefined,
undefined,
undefined,
undefined,
undefined,
{
type: 'tenor_gif',
source: 'tenor',
isGif: true,
hideDetails: true,
playerUri: 'https://t.gifs.bsky.app/someID_AAAAM/someName.gif',
dimensions: {
width: 100,
height: 100,
},
},
undefined,
undefined,
undefined,
undefined,
]
it('correctly grabs the correct id from uri', () => {
for (let i = 0; i < inputs.length; i++) {
const input = inputs[i]
const output = outputs[i]
const res = parseEmbedPlayerFromUrl(input)
expect(res).toEqual(output)
}
})
})
+47 -1
View File
@@ -1,11 +1,15 @@
import {describe, expect, it} from '@jest/globals'
import {
linkRequiresWarning,
isPossiblyAUrl,
isTrustedUrl,
linkRequiresWarning,
splitApexDomain,
} from '../../../src/lib/strings/url-helpers'
describe('linkRequiresWarning', () => {
type Case = [string, string, boolean]
const cases: Case[] = [
['http://example.com', 'http://example.com', false],
['http://example.com', 'example.com', false],
@@ -64,9 +68,17 @@ describe('linkRequiresWarning', () => {
['http://bsky.app/', 'https://google.com', true],
['https://bsky.app/', 'https://google.com', true],
// case insensitive
['https://Example.com', 'example.com', false],
['https://example.com', 'Example.com', false],
// bad uri inputs, default to true
['', '', true],
['example.com', 'example.com', true],
['/profile', 'Username', false],
['#', 'Show More', false],
['https://docs.bsky.app', 'https://docs.bsky.app', false],
['https://bsky.app/compose/intent?text=test', 'Compose a post', false],
]
it.each(cases)(
@@ -132,3 +144,37 @@ describe('splitApexDomain', () => {
},
)
})
describe('isTrustedUrl', () => {
const cases = [
['#', true],
['#profile', true],
['/', true],
['/profile', true],
['/profile/', true],
['/profile/bob.test', true],
['https://bsky.app', true],
['https://bsky.app/', true],
['https://bsky.app/profile/bob.test', true],
['https://www.bsky.app', true],
['https://www.bsky.app/', true],
['https://docs.bsky.app', true],
['https://bsky.social', true],
['https://bsky.social/blog', true],
['https://blueskyweb.xyz', true],
['https://blueskyweb.zendesk.com', true],
['http://bsky.app', true],
['http://bsky.social', true],
['http://blueskyweb.xyz', true],
['http://blueskyweb.zendesk.com', true],
['https://google.com', false],
['https://docs.google.com', false],
['https://google.com/#', false],
['https://blueskywebxzendesk.com', false],
]
it.each(cases)('given input uri %p, returns %p', (str, expected) => {
const output = isTrustedUrl(str)
expect(output).toEqual(expected)
})
})
+135 -20
View File
@@ -1,25 +1,72 @@
module.exports = function () {
const hasSentryToken = !!process.env.SENTRY_AUTH_TOKEN
const pkg = require('./package.json')
const SPLASH_CONFIG = {
backgroundColor: '#ffffff',
image: './assets/splash.png',
resizeMode: 'cover',
}
const DARK_SPLASH_CONFIG = {
backgroundColor: '#001429',
image: './assets/splash-dark.png',
resizeMode: 'cover',
}
const SPLASH_CONFIG_ANDROID = {
backgroundColor: '#0c7cff',
image: './assets/splash.png',
resizeMode: 'cover',
}
const DARK_SPLASH_CONFIG_ANDROID = {
backgroundColor: '#0f141b',
image: './assets/splash-dark.png',
resizeMode: 'cover',
}
module.exports = function (config) {
/**
* App version number. Should be incremented as part of a release cycle.
*/
const VERSION = pkg.version
/**
* Uses built-in Expo env vars
*
* @see https://docs.expo.dev/build-reference/variables/#built-in-environment-variables
*/
const PLATFORM = process.env.EAS_BUILD_PLATFORM
const IS_DEV = process.env.EXPO_PUBLIC_ENV === 'development'
const IS_TESTFLIGHT = process.env.EXPO_PUBLIC_ENV === 'testflight'
const IS_PRODUCTION = process.env.EXPO_PUBLIC_ENV === 'production'
const UPDATES_CHANNEL = IS_TESTFLIGHT
? 'testflight'
: IS_PRODUCTION
? 'production'
: undefined
const UPDATES_ENABLED = !!UPDATES_CHANNEL
const SENTRY_DIST = `${PLATFORM}.${VERSION}.${IS_TESTFLIGHT ? 'tf' : ''}${
IS_DEV ? 'dev' : ''
}`
return {
expo: {
version: VERSION,
name: 'Bluesky',
slug: 'bluesky',
scheme: 'bluesky',
owner: 'blueskysocial',
version: '1.56.0',
runtimeVersion: {
policy: 'appVersion',
},
orientation: 'portrait',
icon: './assets/icon.png',
userInterfaceStyle: 'automatic',
splash: {
image: './assets/cloud-splash.png',
resizeMode: 'cover',
backgroundColor: '#ffffff',
},
splash: SPLASH_CONFIG,
// hsl(211, 99%, 53%), same as palette.default.brandText
primaryColor: '#1083fe',
ios: {
buildNumber: '3',
supportsTablet: false,
bundleIdentifier: 'xyz.blueskyweb.app',
config: {
@@ -37,16 +84,30 @@ module.exports = function () {
'Used for profile pictures, posts, and other kinds of content',
},
associatedDomains: ['applinks:bsky.app', 'applinks:staging.bsky.app'],
splash: {
...SPLASH_CONFIG,
dark: DARK_SPLASH_CONFIG,
},
entitlements: {
'com.apple.security.application-groups': 'group.app.bsky',
},
},
androidStatusBar: {
barStyle: 'dark-content',
backgroundColor: '#ffffff',
barStyle: 'light-content',
backgroundColor: '#00000000',
},
// Dark nav bar in light mode is better than light nav bar in dark mode
androidNavigationBar: {
barStyle: 'light-content',
backgroundColor: DARK_SPLASH_CONFIG_ANDROID.backgroundColor,
},
android: {
versionCode: 46,
icon: './assets/icon.png',
adaptiveIcon: {
foregroundImage: './assets/adaptive-icon.png',
backgroundColor: '#ffffff',
foregroundImage: './assets/icon-android-foreground.png',
monochromeImage: './assets/icon-android-foreground.png',
backgroundImage: './assets/icon-android-background.png',
backgroundColor: '#1185FE',
},
googleServicesFile: './google-services.json',
package: 'xyz.blueskyweb.app',
@@ -59,52 +120,106 @@ module.exports = function () {
scheme: 'https',
host: 'bsky.app',
},
IS_DEV && {
scheme: 'http',
host: 'localhost:19006',
},
],
category: ['BROWSABLE', 'DEFAULT'],
},
],
splash: {
...SPLASH_CONFIG_ANDROID,
dark: DARK_SPLASH_CONFIG_ANDROID,
},
},
web: {
favicon: './assets/favicon.png',
},
updates: {
enabled: true,
fallbackToCacheTimeout: 1000,
url: 'https://u.expo.dev/55bd077a-d905-4184-9c7f-94789ba0f302',
url: 'https://updates.bsky.app/manifest',
enabled: UPDATES_ENABLED,
fallbackToCacheTimeout: 30000,
codeSigningCertificate: UPDATES_ENABLED
? './code-signing/certificate.pem'
: undefined,
codeSigningMetadata: UPDATES_ENABLED
? {
keyid: 'main',
alg: 'rsa-v1_5-sha256',
}
: undefined,
checkAutomatically: 'NEVER',
channel: UPDATES_CHANNEL,
},
assetBundlePatterns: ['**/*'],
plugins: [
'expo-localization',
hasSentryToken && 'sentry-expo',
Boolean(process.env.SENTRY_AUTH_TOKEN) && 'sentry-expo',
[
'expo-build-properties',
{
ios: {
deploymentTarget: '13.4',
newArchEnabled: false,
},
android: {
compileSdkVersion: 34,
targetSdkVersion: 34,
buildToolsVersion: '34.0.0',
kotlinVersion: '1.8.0',
newArchEnabled: false,
},
},
],
[
'expo-updates',
'expo-notifications',
{
username: 'blueskysocial',
icon: './assets/icon-android-notification.png',
color: '#1185fe',
},
],
'./plugins/withAndroidManifestPlugin.js',
'./plugins/withAndroidManifestFCMIconPlugin.js',
'./plugins/withAndroidStylesWindowBackgroundPlugin.js',
'./plugins/withAndroidStylesAccentColorPlugin.js',
'./plugins/withAndroidSplashScreenStatusBarTranslucentPlugin.js',
'./plugins/shareExtension/withShareExtensions.js',
].filter(Boolean),
extra: {
eas: {
build: {
experimental: {
ios: {
appExtensions: [
{
targetName: 'Share-with-Bluesky',
bundleIdentifier: 'xyz.blueskyweb.app.Share-with-Bluesky',
entitlements: {
'com.apple.security.application-groups': [
'group.app.bsky',
],
},
},
],
},
},
},
projectId: '55bd077a-d905-4184-9c7f-94789ba0f302',
},
},
hooks: {
postPublish: [
/*
* @see https://docs.expo.dev/guides/using-sentry/#app-configuration
*/
{
file: 'sentry-expo/upload-sourcemaps',
config: {
organization: 'blueskyweb',
project: 'react-native',
release: VERSION,
dist: SENTRY_DIST,
},
},
],
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 696 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 452 KiB

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M5 11a7 7 0 0 1 14 0c0 2.625-1.547 5.138-3.354 7.066a17.23 17.23 0 0 1-2.55 2.242 8.246 8.246 0 0 1-.924.577 2.904 2.904 0 0 1-.172.083 2.904 2.904 0 0 1-.172-.083 8.246 8.246 0 0 1-.923-.577 17.227 17.227 0 0 1-2.55-2.242C6.547 16.138 5 13.625 5 11Zm6.882 10.012Zm.232-.001h-.003a.047.047 0 0 0 .007.001l-.004-.001ZM12 2a9 9 0 0 0-9 9c0 3.375 1.953 6.362 3.895 8.434a19.216 19.216 0 0 0 2.856 2.508c.425.3.82.545 1.159.72.168.087.337.164.498.222.14.05.356.116.592.116s.451-.066.592-.116c.16-.058.33-.135.498-.222.339-.175.734-.42 1.159-.72.85-.6 1.87-1.457 2.856-2.508C19.047 17.362 21 14.375 21 11a9 9 0 0 0-9-9ZM7.38 9.927c2.774-.094 3.459 1.31 3.591 3.19a.89.89 0 0 1-.855.956c-2.774.094-3.458-1.31-3.59-3.19a.89.89 0 0 1 .854-.956Zm9.236 0c-2.774-.094-3.458 1.31-3.59 3.19a.89.89 0 0 0 .854.956c2.774.094 3.459-1.31 3.591-3.19a.89.89 0 0 0-.855-.956Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 997 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M8.148 2.034a1 1 0 0 1 1.35-.419c1.054.556 1.873 1.266 2.46 2.174.369.57.63 1.197.807 1.873 1.143-.349 2.194-.46 3.15-.342a5.122 5.122 0 0 1 3.134 1.556c1.564 1.63 2.086 4.183 1.922 6.58-.166 2.414-1.043 4.938-2.607 6.619-.792.851-1.78 1.505-2.95 1.782-1.063.251-2.213.176-3.415-.262-1.202.438-2.351.513-3.414.262-1.17-.277-2.158-.93-2.95-1.782-1.563-1.682-2.44-4.205-2.606-6.62-.164-2.396.358-4.949 1.921-6.579A5.121 5.121 0 0 1 8.085 5.32c.777-.095 1.617-.04 2.518.172a4.011 4.011 0 0 0-.325-.618c-.372-.576-.912-1.068-1.712-1.49a1 1 0 0 1-.418-1.35Zm.897 17.877c.71.167 1.557.117 2.562-.31a1 1 0 0 1 .784 0c1.005.428 1.853.477 2.563.31.715-.17 1.37-.579 1.946-1.198 1.171-1.26 1.932-3.303 2.076-5.394.144-2.109-.353-3.998-1.37-5.059a3.124 3.124 0 0 0-1.936-.955c-.83-.102-1.912.043-3.282.621a1 1 0 0 1-.778 0c-1.37-.578-2.45-.723-3.281-.62-.815.1-1.445.443-1.935.954-1.017 1.06-1.514 2.95-1.37 5.059.144 2.09.905 4.135 2.076 5.394.575.62 1.23 1.029 1.945 1.198Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M3.293 3.293A1 1 0 0 1 4 3h7.25a1 1 0 1 1 0 2H5v14h6.25a1 1 0 1 1 0 2H4a1 1 0 0 1-1-1V4a1 1 0 0 1 .293-.707Zm11.5 3.5a1 1 0 0 1 1.414 0l4.5 4.5a1 1 0 0 1 0 1.414l-4.5 4.5a1 1 0 0 1-1.414-1.414L17.586 13H8.75a1 1 0 1 1 0-2h8.836l-2.793-2.793a1 1 0 0 1 0-1.414Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 402 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M3 12a1 1 0 0 1 .293-.707l6-6a1 1 0 0 1 1.414 1.414L6.414 11H20a1 1 0 1 1 0 2H6.414l4.293 4.293a1 1 0 0 1-1.414 1.414l-6-6A1 1 0 0 1 3 12Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 281 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M12.707 3.293a1 1 0 0 0-1.414 0l-4.5 4.5a1 1 0 0 0 1.414 1.414L11 6.414v8.836a1 1 0 1 0 2 0V6.414l2.793 2.793a1 1 0 1 0 1.414-1.414l-4.5-4.5ZM5 12.75a1 1 0 1 0-2 0V20a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-7.25a1 1 0 1 0-2 0V19H5v-6.25Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 372 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M5 3a1 1 0 0 1 1 1v1.423c.498-.46 1.02-.869 1.58-1.213C8.863 3.423 10.302 3 12.028 3a9 9 0 1 1-8.487 12 1 1 0 0 1 1.885-.667A7 7 0 1 0 12.028 5c-1.37 0-2.444.327-3.402.915-.474.29-.93.652-1.383 1.085H9a1 1 0 0 1 0 2H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 391 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M8 6a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v9a1 1 0 1 1-2 0V8.414l-9.793 9.793a1 1 0 0 1-1.414-1.414L15.586 7H9a1 1 0 0 1-1-1Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 260 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" d="M4.213 6.886c-.673-1.35.334-2.889 1.806-2.889H17.98c1.472 0 2.479 1.539 1.806 2.89l-5.982 11.997c-.74 1.484-2.87 1.484-3.61 0L4.213 6.886Z"/></svg>

After

Width:  |  Height:  |  Size: 240 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M12 4a8 8 0 1 0 4.21 14.804 1 1 0 0 1 1.054 1.7A9.958 9.958 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 1.104-.27 2.31-.949 3.243-.716.984-1.849 1.6-3.331 1.465a4.207 4.207 0 0 1-2.93-1.585c-.94 1.21-2.388 1.94-3.985 1.715-2.53-.356-4.04-2.91-3.682-5.458.358-2.547 2.514-4.586 5.044-4.23.905.127 1.68.536 2.286 1.126a1 1 0 0 1 1.964.368l-.515 3.545v.002a2.222 2.222 0 0 0 1.999 2.526c.75.068 1.212-.21 1.533-.65.358-.493.566-1.245.566-2.067a8 8 0 0 0-8-8Zm-.112 5.13c-1.195-.168-2.544.819-2.784 2.529-.24 1.71.784 3.03 1.98 3.198 1.195.168 2.543-.819 2.784-2.529.24-1.71-.784-3.03-1.98-3.198Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 756 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M6.17 5.004c-.553-.029-.814.107-.937.23-.122.122-.258.383-.23.936.03.552.222 1.28.611 2.15.282.628.655 1.304 1.112 2.005a28.26 28.26 0 0 1 1.72-1.88 28.258 28.258 0 0 1 1.88-1.719 14.886 14.886 0 0 0-2.007-1.112c-.868-.39-1.597-.581-2.15-.61Zm5.83.44c-.985-.688-1.953-1.247-2.863-1.655-.998-.447-1.978-.736-2.863-.782-.885-.047-1.791.148-2.455.812-.664.664-.859 1.57-.812 2.455.046.885.335 1.865.782 2.863.408.91.967 1.878 1.655 2.863-.688.985-1.247 1.953-1.655 2.863-.447.998-.736 1.978-.782 2.863-.047.885.148 1.791.812 2.455.664.663 1.57.859 2.455.812.885-.046 1.865-.335 2.863-.782.91-.408 1.878-.967 2.863-1.655.985.688 1.952 1.247 2.863 1.655.998.447 1.978.736 2.863.782.885.047 1.791-.148 2.455-.812.663-.664.859-1.57.812-2.455-.046-.885-.335-1.865-.782-2.863-.408-.91-.967-1.878-1.655-2.863.688-.985 1.247-1.952 1.655-2.863.447-.998.736-1.978.782-2.863.047-.885-.148-1.791-.812-2.455-.664-.664-1.57-.859-2.455-.812-.885.046-1.865.335-2.863.782-.91.408-1.878.967-2.863 1.655Zm0 2.497A25.9 25.9 0 0 0 9.86 9.86 25.899 25.899 0 0 0 7.94 12c.569.711 1.211 1.431 1.92 2.14.709.709 1.429 1.351 2.14 1.92a25.925 25.925 0 0 0 2.14-1.92A25.925 25.925 0 0 0 16.06 12a25.921 25.921 0 0 0-1.92-2.14A25.904 25.904 0 0 0 12 7.94Zm5.274 2.384a28.232 28.232 0 0 0-1.72-1.88 28.27 28.27 0 0 0-1.88-1.719 14.89 14.89 0 0 1 2.007-1.112c.868-.39 1.597-.581 2.15-.61.552-.029.813.107.936.23.123.122.258.383.23.936-.03.552-.222 1.28-.611 2.15a14.883 14.883 0 0 1-1.112 2.005Zm0 3.35a28.24 28.24 0 0 1-1.72 1.88 28.24 28.24 0 0 1-1.88 1.719c.702.457 1.378.83 2.007 1.112.868.39 1.597.581 2.15.61.552.03.813-.106.936-.23.123-.122.258-.383.23-.935-.03-.553-.222-1.282-.611-2.15a14.888 14.888 0 0 0-1.112-2.006Zm-6.949 3.599a28.23 28.23 0 0 1-1.88-1.72 28.27 28.27 0 0 1-1.719-1.88 14.89 14.89 0 0 0-1.112 2.007c-.39.868-.581 1.597-.61 2.15-.029.552.107.813.23.936.122.123.383.258.936.23.552-.03 1.28-.222 2.15-.611a14.884 14.884 0 0 0 2.005-1.112Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M3 5a1 1 0 0 0 0 2h18a1 1 0 1 0 0-2H3Zm-1 7a1 1 0 0 1 1-1h18a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm0 6a1 1 0 0 1 1-1h18a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 286 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M5.002 17.036V5h14v12.036h-3.986a1 1 0 0 0-.639.23l-2.375 1.968-2.344-1.965a1 1 0 0 0-.643-.233H5.002ZM20.002 3h-16a1 1 0 0 0-1 1v14.036a1 1 0 0 0 1 1h4.65l2.704 2.266a1 1 0 0 0 1.28.004l2.74-2.27h4.626a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1Zm-7.878 3.663c-1.39 0-2.5 1.135-2.5 2.515a1 1 0 0 0 2 0c0-.294.232-.515.5-.515a.507.507 0 0 1 .489.6.174.174 0 0 1-.027.048 1.1 1.1 0 0 1-.267.226c-.508.345-1.128.923-1.286 1.978a1 1 0 1 0 1.978.297.762.762 0 0 1 .14-.359c.063-.086.155-.169.293-.262.436-.297 1.18-.885 1.18-2.013 0-1.38-1.11-2.515-2.5-2.515ZM12 15.75a1.25 1.25 0 1 1 0-2.5 1.25 1.25 0 0 1 0 2.5Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 738 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" d="M19.002 3a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H12.28l-4.762 2.858A1 1 0 0 1 6.002 21v-2h-1a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3h14Z"/></svg>

After

Width:  |  Height:  |  Size: 221 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M2.002 6a3 3 0 0 1 3-3h14a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H12.28l-4.762 2.858A1 1 0 0 1 6.002 21v-2h-1a3 3 0 0 1-3-3V6Zm3-1a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h2a1 1 0 0 1 1 1v1.234l3.486-2.092a1 1 0 0 1 .514-.142h7a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-14Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 386 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M4 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4Zm1 16V9h14v10H5ZM5 7h14V5H5v2Zm3 10.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5ZM17.25 12a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0ZM12 13.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5ZM9.25 12a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0ZM12 17.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 512 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M8 2a1 1 0 0 1 1 1v1h6V3a1 1 0 1 1 2 0v1h2a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2V3a1 1 0 0 1 1-1ZM5 6v3h14V6H5Zm14 5H5v8h14v-8Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 296 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M8.371 3.89A2 2 0 0 1 10.035 3h3.93a2 2 0 0 1 1.664.89L17.035 6H20a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.965L8.37 3.89ZM12 9a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 330 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M8.371 3.89A2 2 0 0 1 10.035 3h3.93a2 2 0 0 1 1.664.89L17.035 6H20a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.965L8.37 3.89ZM13.965 5h-3.93L8.63 7.11A2 2 0 0 1 6.965 8H4v11h16V8h-2.965a2 2 0 0 1-1.664-.89L13.965 5ZM12 11a2 2 0 1 0 0 4 2 2 0 0 0 0-4Zm-4 2a4 4 0 1 1 8 0 4 4 0 0 1-8 0Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 447 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M13.832 1.014a1 1 0 0 1 1.154.818L14 2l.986-.168v.003l.001.005.002.014.007.045.021.156c.017.13.035.312.048.527.025.42.028 1.01-.082 1.6-.127.69-.447 1.31-.701 1.726a7.107 7.107 0 0 1-.498.712l-.01.014-.004.005-.002.001v.002L13 6l.767.642a1 1 0 0 1-1.535-1.282l.002-.003.017-.02a5.13 5.13 0 0 0 .324-.47c.198-.325.378-.705.442-1.049.068-.37.071-.78.051-1.12a6.268 6.268 0 0 0-.05-.504l-.004-.025m.818-1.155a1 1 0 0 0-.818 1.155Zm5.257 1.545a1 1 0 0 1 .602 1.28l-.45 1.25a1 1 0 0 1-1.882-.678l.45-1.25a1 1 0 0 1 1.28-.602ZM6.524 7.136a2 2 0 0 1 3.294-.732l7.778 7.778a2 2 0 0 1-.732 3.294L4.653 21.91c-1.596.579-3.142-.967-2.563-2.563L6.524 7.136Zm9.658 8.46L8.404 7.818 3.97 20.03l12.212-4.434Zm5.712-8.543a1 1 0 0 1-.447 1.341l-1 .5a1 1 0 1 1-.894-1.788l1-.5a1 1 0 0 1 1.341.447Zm-4.687-.26a1 1 0 0 1 0 1.414l-1 1a1 1 0 1 1-1.414-1.414l1-1a1 1 0 0 1 1.414 0Zm-.206 4.165A1 1 0 0 1 18.042 10L18 11l.042-1 .003.001h.014l.035.003.117.008a7.693 7.693 0 0 1 1.594.306c.423.135.861.352 1.168.516a11.873 11.873 0 0 1 .508.288l.032.02.01.006.004.002L21 12l.527-.85a1 1 0 0 1-1.054 1.7l-.005-.003-.023-.014a7.477 7.477 0 0 0-.415-.236 5.497 5.497 0 0 0-.835-.374A5.684 5.684 0 0 0 17.973 12l-.015-.002h-.002a1 1 0 0 1-.955-1.041Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M21.474 2.98a2.5 2.5 0 0 1 .545 3.494l-10.222 14a2.5 2.5 0 0 1-3.528.52L2.49 16.617a2.5 2.5 0 0 1 3.018-3.986l3.75 2.84L17.98 3.525a2.5 2.5 0 0 1 3.493-.545Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 300 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M21.59 3.193a1 1 0 0 1 .217 1.397l-11.706 16a1 1 0 0 1-1.429.193l-6.294-5a1 1 0 1 1 1.244-1.566l5.48 4.353 11.09-15.16a1 1 0 0 1 1.398-.217Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 283 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M3.293 8.293a1 1 0 0 1 1.414 0L12 15.586l7.293-7.293a1 1 0 1 1 1.414 1.414l-8 8a1 1 0 0 1-1.414 0l-8-8a1 1 0 0 1 0-1.414Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 263 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M15.707 3.293a1 1 0 0 1 0 1.414L8.414 12l7.293 7.293a1 1 0 0 1-1.414 1.414l-8-8a1 1 0 0 1 0-1.414l8-8a1 1 0 0 1 1.414 0Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 263 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M8.293 3.293a1 1 0 0 1 1.414 0l8 8a1 1 0 0 1 0 1.414l-8 8a1 1 0 0 1-1.414-1.414L15.586 12 8.293 4.707a1 1 0 0 1 0-1.414Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 263 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M12 6a1 1 0 0 1 .707.293l8 8a1 1 0 0 1-1.414 1.414L12 8.414l-7.293 7.293a1 1 0 0 1-1.414-1.414l8-8A1 1 0 0 1 12 6Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 256 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M12 4a8 8 0 0 0-6.32 12.906L16.906 5.68A7.962 7.962 0 0 0 12 4Zm6.32 3.094L7.094 18.32A8 8 0 0 0 18.32 7.094ZM2 12C2 6.477 6.477 2 12 2a9.972 9.972 0 0 1 7.071 2.929A9.972 9.972 0 0 1 22 12c0 5.523-4.477 10-10 10a9.972 9.972 0 0 1-7.071-2.929A9.972 9.972 0 0 1 2 12Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 409 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16ZM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm8-1a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v5a1 1 0 1 1-2 0v-4a1 1 0 0 1-1-1Zm1-3a1 1 0 1 0 2 0 1 1 0 0 0-2 0Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 351 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M8.17 4A3.001 3.001 0 0 1 11 2h2c1.306 0 2.418.835 2.83 2H17a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3h1.17ZM8 6H7a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1h-1v1a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V6Zm6 0V5a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v1h4Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 422 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M14.242 3.03a1 1 0 0 1 .728 1.213l-4 16a1 1 0 1 1-1.94-.485l4-16a1 1 0 0 1 1.213-.728ZM6.707 7.293a1 1 0 0 1 0 1.414L3.414 12l3.293 3.293a1 1 0 1 1-1.414 1.414l-4-4a1 1 0 0 1 0-1.414l4-4a1 1 0 0 1 1.414 0Zm10.586 0a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1 0 1.414l-4 4a1 1 0 1 1-1.414-1.414L20.586 12l-3.293-3.293a1 1 0 0 1 0-1.414Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 466 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M7 2a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0V3a1 1 0 0 1 1-1Zm4 0a1 1 0 0 1 1 1v2a1 1 0 1 1-2 0V3a1 1 0 0 1 1-1Zm4 0a1 1 0 0 1 1 1v2a1 1 0 1 1-2 0V3a1 1 0 0 1 1-1ZM4 9a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2h.5a3.5 3.5 0 1 1 0 7H18v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V9Zm12 0H6v11h10V9Zm2 5h.5a1.5 1.5 0 0 0 0-3H18v3Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 436 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M4 12c0-4.09 3.527-7.5 8-7.5s8 3.41 8 7.5c0 1.579-.419 2.056-.708 2.236-.388.241-1.031.286-2.058.153-.33-.043-.652-.096-.991-.152a65.905 65.905 0 0 0-.531-.087c-.52-.081-1.077-.156-1.61-.164-1.065-.016-2.336.245-2.996 1.567-.418.834-.295 1.67-.078 2.314.18.534.47 1.055.683 1.437v.001l.097.175.01.018C7.432 19.407 4 16.033 4 12Zm8-9.5C6.532 2.5 2 6.7 2 12s4.532 9.5 10 9.5c.401 0 .812-.04 1.166-.193.41-.176.761-.517.866-1.028.085-.416-.03-.796-.118-1.029a5.981 5.981 0 0 0-.351-.73l-.12-.215c-.215-.392-.403-.73-.52-1.078-.13-.387-.111-.614-.029-.78.146-.291.404-.473 1.178-.461.385.005.825.06 1.329.14.15.023.308.05.47.077.36.059.742.122 1.105.17 1.021.132 2.325.213 3.373-.439C21.496 15.22 22 13.874 22 12c0-5.3-4.532-9.5-10-9.5Zm3.5 8.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM9 12.25a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm1.5-2.75a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 1011 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M2 12a2 2 0 1 1 4 0 2 2 0 0 1-4 0Zm16 0a2 2 0 1 1 4 0 2 2 0 0 1-4 0Zm-6-2a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 245 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16ZM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm8-5a1 1 0 0 1 1 1v3a1 1 0 1 1-2 0V8a1 1 0 0 1 1-1Zm4 0a1 1 0 0 1 1 1v3a1 1 0 1 1-2 0V8a1 1 0 0 1 1-1Zm-5.894 7.803a1 1 0 0 1 1.341-.447c1.719.859 3.387.859 5.106 0a1 1 0 1 1 .894 1.788c-2.281 1.141-4.613 1.141-6.894 0a1 1 0 0 1-.447-1.341Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 489 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm8-10C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2ZM9.351 12.13c1.898-1.507 2.176-2.95 1.613-3.83a1.524 1.524 0 0 0-1.225-.707 1.562 1.562 0 0 0-1.218.53 1.561 1.561 0 0 0-1.326-.082c-.456.186-.8.588-.91 1.083-.227 1.02.527 2.282 2.826 3.048a.256.256 0 0 0 .24-.043Zm5.538.042c2.299-.766 3.053-2.027 2.826-3.048a1.524 1.524 0 0 0-.91-1.082 1.561 1.561 0 0 0-1.326.081 1.562 1.562 0 0 0-1.217-.53 1.524 1.524 0 0 0-1.226.706c-.563.881-.285 2.325 1.613 3.83.068.054.158.07.24.043Zm1.072 2.38a4 4 0 0 1-7.924 0c-.04-.293.218-.525.514-.499 2.309.206 4.587.206 6.896 0 .296-.026.555.206.514.5Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 786 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M6.343 6.343a8 8 0 1 1 11.314 11.314A8 8 0 0 1 6.343 6.343ZM19.071 4.93c-3.905-3.905-10.237-3.905-14.142 0-3.905 3.905-3.905 10.237 0 14.142 3.905 3.905 10.237 3.905 14.142 0 3.905-3.905 3.905-10.237 0-14.142Zm-3.537 9.535a5 5 0 0 0-7.07 0 1 1 0 1 0 1.413 1.415 3 3 0 0 1 4.243 0 1 1 0 0 0 1.414-1.415ZM16 9.5c0 .828-.56 1.5-1.25 1.5s-1.25-.672-1.25-1.5.56-1.5 1.25-1.5S16 8.672 16 9.5ZM9.25 11c.69 0 1.25-.672 1.25-1.5S9.94 8 9.25 8 8 8.672 8 9.5 8.56 11 9.25 11Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 607 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M12 11.708 2.654 4.06A.998.998 0 0 1 3 4h18c.122 0 .238.022.346.061L12 11.708ZM2 19V6.11l9.367 7.664a1 1 0 0 0 1.266 0L22 6.11V19a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 303 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M4.568 4h14.864c.252 0 .498 0 .706.017.229.019.499.063.77.201a2 2 0 0 1 .874.874c.138.271.182.541.201.77.017.208.017.454.017.706v10.864c0 .252 0 .498-.017.706a2.022 2.022 0 0 1-.201.77 2 2 0 0 1-.874.874 2.022 2.022 0 0 1-.77.201c-.208.017-.454.017-.706.017H4.568c-.252 0-.498 0-.706-.017a2.022 2.022 0 0 1-.77-.201 2 2 0 0 1-.874-.874 2.022 2.022 0 0 1-.201-.77C2 17.93 2 17.684 2 17.432V6.568c0-.252 0-.498.017-.706.019-.229.063-.499.201-.77a2 2 0 0 1 .874-.874c.271-.138.541-.182.77-.201C4.07 4 4.316 4 4.568 4Zm.456 2L12 11.708 18.976 6H5.024ZM20 7.747l-6.733 5.509a2 2 0 0 1-2.534 0L4 7.746V17.4a8.187 8.187 0 0 0 .011.589h.014c.116.01.278.011.575.011h14.8a8.207 8.207 0 0 0 .589-.012v-.013c.01-.116.011-.279.011-.575V7.747Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 871 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M12 2a1 1 0 0 1 .889.542l1.679 3.259 3.491-1.117a1 1 0 0 1 1.257 1.257L18.2 9.432l3.259 1.679a1 1 0 0 1 0 1.778l-3.124 1.61 2.609 5.098a1 1 0 0 1-1.346 1.346l-5.098-2.61-1.61 3.125a1 1 0 0 1-1.778 0l-1.679-3.259-3.491 1.117a1 1 0 0 1-1.257-1.257L5.8 14.568l-3.259-1.679a1 1 0 0 1 0-1.778l3.124-1.61-2.609-5.098a1 1 0 0 1 1.346-1.346l5.098 2.61-.455.89.455-.89 1.61-3.125A1 1 0 0 1 12 2Zm0 3.183-.72 1.4a2 2 0 0 1-2.69.864L6.248 6.248 7.447 8.59a2 2 0 0 1-.865 2.69L5.183 12l1.534.79a2 2 0 0 1 .989 2.387L7.18 16.82l1.643-.526a2 2 0 0 1 2.387.99l.79 1.533.72-1.4a2 2 0 0 1 2.69-.864l2.342 1.199-1.199-2.342a2 2 0 0 1 .864-2.69l1.4-.72-1.534-.79a2 2 0 0 1-.989-2.387l.526-1.643-1.643.526a2 2 0 0 1-2.387-.99L12 5.184Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 857 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M2.293 2.293a1 1 0 0 1 1.414 0L7.335 5.92l.03.03 3.22 3.222 4.243 4.242 3.22 3.22.03.03 3.63 3.629a1 1 0 0 1-1.415 1.414l-3.09-3.09c-2.65 1.478-5.625 1.778-8.421.869-3.039-.987-5.779-3.37-7.67-7.027a1 1 0 0 1 0-.918c1.086-2.1 2.452-3.78 3.996-5.019L2.293 3.707a1 1 0 0 1 0-1.414Zm4.24 5.654 2.021 2.021a4 4 0 0 0 5.478 5.478l1.688 1.688c-2.042.982-4.246 1.124-6.32.45-2.34-.76-4.594-2.586-6.265-5.584.97-1.739 2.135-3.083 3.398-4.053Zm3.535 3.535 2.45 2.45a2 2 0 0 1-2.45-2.45Zm.81-5.405c3.573-.49 7.45 1.369 9.987 5.923a14.797 14.797 0 0 1-1.347 2.02 1 1 0 1 0 1.564 1.247 17.078 17.078 0 0 0 1.806-2.808 1 1 0 0 0 0-.918c-2.833-5.479-7.584-8.088-12.281-7.446a1 1 0 0 0 .271 1.982Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 825 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M7.002 5a1 1 0 0 0-2 0v11.587l-1.295-1.294a1 1 0 0 0-1.414 1.414l3.002 3a1 1 0 0 0 1.414 0l2.998-3a1 1 0 0 0-1.414-1.414l-1.291 1.292V5ZM16 16a1 1 0 1 0 0 2h4a1 1 0 1 0 0-2h-4Zm-3-4a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2h-6a1 1 0 0 1-1-1Zm-1-6a1 1 0 1 0 0 2h8a1 1 0 1 0 0-2h-8Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 411 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M3 4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v4a1 1 0 0 1-.293.707L15 14.414V20a1 1 0 0 1-.758.97l-4 1A1 1 0 0 1 9 21v-6.586L3.293 8.707A1 1 0 0 1 3 8V4Zm2 1v2.586l5.707 5.707A1 1 0 0 1 11 14v5.72l2-.5V14a1 1 0 0 1 .293-.707L19 7.586V5H5Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 371 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M4 4a2 2 0 0 1 2-2h13.131c1.598 0 2.55 1.78 1.665 3.11L18.202 9l2.594 3.89c.886 1.33-.067 3.11-1.665 3.11H6v5a1 1 0 1 1-2 0V4Zm2 10h13.131l-2.593-3.89a2 2 0 0 1 0-2.22L19.13 4H6v10Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 323 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M1 8a3 3 0 0 1 3-3h16a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V8Zm3-1a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1H4Zm4 2a1 1 0 0 1 1 1v1h1a1 1 0 1 1 0 2H9v1a1 1 0 1 1-2 0v-1H6a1 1 0 1 1 0-2h1v-1a1 1 0 0 1 1-1Zm5.5 4.5a1.25 1.25 0 1 0 2.5 0 1.25 1.25 0 0 0-2.5 0Zm3-3a1.25 1.25 0 1 0 2.5 0 1.25 1.25 0 0 0-2.5 0Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 477 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M4 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4Zm1 16V5h14v14H5Zm10.725-5.2c0 .566-.283.872-.802.872-.538 0-.848-.318-.848-.872v-3.635c0-.512.314-.826.82-.826h2.496c.35 0 .609.272.609.64 0 .369-.26.629-.609.629h-1.666v.973h1.47c.365 0 .608.248.608.613 0 .36-.247.613-.608.613h-1.47v.993Zm-3.367.872c.526 0 .813-.31.813-.872v-3.627c0-.558-.295-.873-.825-.873s-.825.31-.825.873V13.8c0 .558.302.872.837.872Zm-3.879.078C6.92 14.75 6 13.827 6 12.287v-.617c0-1.47.955-2.42 2.472-2.42.589 0 1.139.147 1.548.388.404.236.664.562.664.915 0 .373-.271.636-.656.636a.82.82 0 0 1-.41-.108 2.34 2.34 0 0 1-.271-.177c-.208-.148-.421-.3-.746-.3-.644 0-.95.38-.95 1.155v.52c0 .768.306 1.168.903 1.168.436 0 .735-.248.735-.61v-.061h-.146c-.412 0-.632-.194-.632-.551 0-.353.216-.535.632-.535h.806c.617 0 .884.256.884.834v.166c0 1.253-.92 2.06-2.354 2.06Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 1000 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M3 4a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H3Zm1 14V6h16v12H4Zm2-5.713c0 1.54.92 2.463 2.48 2.463 1.434 0 2.353-.807 2.353-2.06v-.166c0-.578-.267-.834-.884-.834h-.806c-.416 0-.632.182-.632.535 0 .357.22.55.632.55h.146v.063c0 .36-.299.609-.735.609-.597 0-.904-.4-.904-1.168v-.52c0-.775.307-1.155.951-1.155.325 0 .538.152.746.3.089.064.176.127.272.177a.82.82 0 0 0 .409.108c.385 0 .656-.263.656-.636 0-.353-.26-.679-.664-.915-.409-.24-.96-.388-1.548-.388C6.955 9.25 6 10.2 6 11.67v.617Zm6.358 2.385c.526 0 .813-.31.813-.872v-3.627c0-.558-.295-.873-.825-.873s-.825.31-.825.873V13.8c0 .558.302.872.837.872Zm3.367-.872c0 .566-.283.872-.802.872-.538 0-.848-.318-.848-.872v-3.635c0-.512.314-.826.82-.826h2.496c.35 0 .609.272.609.64 0 .369-.26.629-.609.629h-1.666v.973h1.47c.365 0 .608.248.608.613 0 .36-.247.613-.608.613h-1.47v.993Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 993 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M4.062 11h2.961c.103-2.204.545-4.218 1.235-5.77.06-.136.123-.269.188-.399A8.007 8.007 0 0 0 4.062 11ZM12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2Zm0 2c-.227 0-.518.1-.868.432-.354.337-.719.872-1.047 1.61-.561 1.263-.958 2.991-1.06 4.958h5.95c-.102-1.967-.499-3.695-1.06-4.958-.328-.738-.693-1.273-1.047-1.61C12.518 4.099 12.227 4 12 4Zm4.977 7c-.103-2.204-.545-4.218-1.235-5.77a9.78 9.78 0 0 0-.188-.399A8.006 8.006 0 0 1 19.938 11h-2.961Zm-2.003 2H9.026c.101 1.966.498 3.695 1.06 4.958.327.738.692 1.273 1.046 1.61.35.333.641.432.868.432.227 0 .518-.1.868-.432.354-.337.719-.872 1.047-1.61.561-1.263.958-2.991 1.06-4.958Zm.58 6.169c.065-.13.128-.263.188-.399.69-1.552 1.132-3.566 1.235-5.77h2.961a8.006 8.006 0 0 1-4.384 6.169Zm-7.108 0a9.877 9.877 0 0 1-.188-.399c-.69-1.552-1.132-3.566-1.235-5.77H4.062a8.006 8.006 0 0 0 4.384 6.169Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 1005 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M8 5a2 2 0 1 0 0 4 2 2 0 0 0 0-4ZM4 7a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm13-1a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm-3.5 1.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0Zm5.826 7.376c-.919-.779-2.052-1.03-3.1-.787a1 1 0 0 1-.451-1.949c1.671-.386 3.45.028 4.844 1.211 1.397 1.185 2.348 3.084 2.524 5.579a1 1 0 0 1-.997 1.07H18a1 1 0 1 1 0-2h3.007c-.29-1.47-.935-2.49-1.681-3.124ZM3.126 19h9.747c-.61-3.495-2.867-5-4.873-5-2.006 0-4.263 1.505-4.873 5ZM8 12c3.47 0 6.64 2.857 6.998 7.93A1 1 0 0 1 14 21H2a1 1 0 0 1-.998-1.07C1.36 14.857 4.53 12 8 12Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 674 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M3 4a1 1 0 0 1 1-1h1a8.003 8.003 0 0 1 7.75 6.006A7.985 7.985 0 0 1 19 6h1a1 1 0 0 1 1 1v1a8 8 0 0 1-8 8v4a1 1 0 1 1-2 0v-7a8 8 0 0 1-8-8V4Zm2 1a6 6 0 0 1 6 6 6 6 0 0 1-6-6Zm8 9a6 6 0 0 1 6-6 6 6 0 0 1-6 6Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 349 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M9.124 3.008a1 1 0 0 1 .868 1.116L9.632 7h5.985l.39-3.124a1 1 0 0 1 1.985.248L17.632 7H20a1 1 0 1 1 0 2h-2.617l-.75 6H20a1 1 0 1 1 0 2h-3.617l-.39 3.124a1 1 0 1 1-1.985-.248l.36-2.876H8.382l-.39 3.124a1 1 0 1 1-1.985-.248L6.368 17H4a1 1 0 1 1 0-2h2.617l.75-6H4a1 1 0 1 1 0-2h3.617l.39-3.124a1 1 0 0 1 1.117-.868ZM9.383 9l-.75 6h5.984l.75-6H9.383Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 489 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" d="M12.489 21.372c8.528-4.78 10.626-10.47 9.022-14.47-.779-1.941-2.414-3.333-4.342-3.763-1.697-.378-3.552.003-5.169 1.287-1.617-1.284-3.472-1.665-5.17-1.287-1.927.43-3.562 1.822-4.34 3.764-1.605 4 .493 9.69 9.021 14.47a1 1 0 0 0 .978 0Z"/></svg>

After

Width:  |  Height:  |  Size: 336 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M16.734 5.091c-1.238-.276-2.708.047-4.022 1.38a1 1 0 0 1-1.424 0C9.974 5.137 8.504 4.814 7.266 5.09c-1.263.282-2.379 1.206-2.92 2.556C3.33 10.18 4.252 14.84 12 19.348c7.747-4.508 8.67-9.168 7.654-11.7-.541-1.351-1.657-2.275-2.92-2.557Zm4.777 1.812c1.604 4-.494 9.69-9.022 14.47a1 1 0 0 1-.978 0C2.983 16.592.885 10.902 2.49 6.902c.779-1.942 2.414-3.334 4.342-3.764 1.697-.378 3.552.003 5.169 1.286 1.617-1.283 3.472-1.664 5.17-1.286 1.927.43 3.562 1.822 4.34 3.764Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 608 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5Zm16 0H5v7.213l1.246-.932.044-.03a3 3 0 0 1 3.863.454c1.468 1.58 2.941 2.749 4.847 2.749 1.703 0 2.855-.555 4-1.618V5Zm0 10.357c-1.112.697-2.386 1.097-4 1.097-2.81 0-4.796-1.755-6.313-3.388a1 1 0 0 0-1.269-.164L5 14.712V19h14v-3.643ZM15 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm-3 1a3 3 0 1 1 6 0 3 3 0 0 1-6 0Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 513 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M13.5 4a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM10 5a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM8 6a1 1 0 0 0 0 2v2.64c-.212.25-.45.515-.711.8l-.129.142c-.312.342-.649.711-.974 1.092-.731.857-1.488 1.866-1.89 2.99A4.845 4.845 0 0 0 4 17.297 4.702 4.702 0 0 0 8.702 22h6.596A4.702 4.702 0 0 0 20 17.298c0-.575-.114-1.122-.297-1.634-.401-1.124-1.157-2.133-1.89-2.99-.324-.38-.66-.75-.973-1.092l-.129-.141c-.26-.286-.5-.55-.711-.8V8a1 1 0 1 0 0-2H8Zm2 5.35V8h4v3.35l.22.275c.306.383.661.777 1.013 1.163l.13.143c.315.345.628.688.93 1.042.372.435.704.861.974 1.28l-.159.025c-.845.13-1.838.242-2.581.222-.842-.022-1.475-.217-2.227-.454l-.027-.008c-.746-.235-1.61-.507-2.746-.538-.743-.02-1.617.064-2.38.165.173-.228.36-.459.56-.692.302-.354.615-.697.93-1.042l.13-.143c.352-.386.707-.78 1.014-1.163L10 11.35Zm7.41 5.905c.21-.032.407-.064.586-.095A2.702 2.702 0 0 1 15.298 20H8.702A2.702 2.702 0 0 1 6 17.298c0-.142.013-.286.039-.434.236-.043.53-.093.853-.142.845-.13 1.837-.242 2.581-.222.842.022 1.475.217 2.227.454l.027.008c.746.235 1.61.507 2.746.538.931.024 2.07-.113 2.937-.245Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Some files were not shown because too many files have changed in this diff Show More