Bluesky app fork with some witchin' additions 💫

Theme more throbbers

xan.lol bdb1b75b 55659198

verified
+18 -13
+1 -1
README.md
··· 86 - [ ] Additional translation service providers + setting (Deepl, Kagi) 87 - [ ] Collapse labels past the 1st (or 2nd,...; customizable) from the same labeler into a labeler clip of the same style "(+)" 88 - [ ] Move Mutuals label to the follow button 89 - - [ ] New fun language(s) 90 - [ ] Bitchsky PDS and .social site 91 92 #### Bugs
··· 86 - [ ] Additional translation service providers + setting (Deepl, Kagi) 87 - [ ] Collapse labels past the 1st (or 2nd,...; customizable) from the same labeler into a labeler clip of the same style "(+)" 88 - [ ] Move Mutuals label to the follow button 89 + - [ ] New fun language/locale(s) 90 - [ ] Bitchsky PDS and .social site 91 92 #### Bugs
+1 -1
src/screens/Login/ForgotPasswordForm.tsx
··· 131 </Button> 132 <View style={a.flex_1} /> 133 {!serviceDescription || isProcessing ? ( 134 - <ActivityIndicator /> 135 ) : ( 136 <Button 137 label={_(msg`Next`)}
··· 131 </Button> 132 <View style={a.flex_1} /> 133 {!serviceDescription || isProcessing ? ( 134 + <ActivityIndicator color={t.palette.primary_500} /> 135 ) : ( 136 <Button 137 label={_(msg`Next`)}
+1 -1
src/screens/Login/LoginForm.tsx
··· 332 </Button> 333 ) : !serviceDescription ? ( 334 <> 335 - <ActivityIndicator /> 336 <Text style={[t.atoms.text_contrast_high, a.pl_md]}> 337 <Trans>Connecting...</Trans> 338 </Text>
··· 332 </Button> 333 ) : !serviceDescription ? ( 334 <> 335 + <ActivityIndicator color={t.palette.primary_500} /> 336 <Text style={[t.atoms.text_contrast_high, a.pl_md]}> 337 <Trans>Connecting...</Trans> 338 </Text>
+1 -1
src/screens/Login/SetNewPasswordForm.tsx
··· 176 </Button> 177 <View style={a.flex_1} /> 178 {isProcessing ? ( 179 - <ActivityIndicator /> 180 ) : ( 181 <Button 182 label={_(msg`Next`)}
··· 176 </Button> 177 <View style={a.flex_1} /> 178 {isProcessing ? ( 179 + <ActivityIndicator color={t.palette.primary_500} /> 180 ) : ( 181 <Button 182 label={_(msg`Next`)}
+3 -1
src/screens/Search/SearchResults.tsx
··· 102 export {SearchResults} 103 104 function Loader() { 105 return ( 106 <Layout.Content> 107 <View style={[a.py_xl]}> 108 - <ActivityIndicator /> 109 </View> 110 </Layout.Content> 111 )
··· 102 export {SearchResults} 103 104 function Loader() { 105 + const t = useTheme() 106 + 107 return ( 108 <Layout.Content> 109 <View style={[a.py_xl]}> 110 + <ActivityIndicator color={t.palette.primary_500} /> 111 </View> 112 </Layout.Content> 113 )
+3 -2
src/screens/Search/components/AutocompleteResults.tsx
··· 8 import {useModerationOpts} from '#/state/preferences/moderation-opts' 9 import {SearchLinkCard} from '#/view/shell/desktop/Search' 10 import {SearchProfileCard} from '#/screens/Search/components/SearchProfileCard' 11 - import {atoms as a, native} from '#/alf' 12 import * as Layout from '#/components/Layout' 13 14 let AutocompleteResults = ({ ··· 26 onResultPress: () => void 27 onProfileClick: (profile: AppBskyActorDefs.ProfileViewBasic) => void 28 }): React.ReactNode => { 29 const {_} = useLingui() 30 const moderationOpts = useModerationOpts() 31 return ( ··· 34 !moderationOpts ? ( 35 <Layout.Content> 36 <View style={[a.py_xl]}> 37 - <ActivityIndicator /> 38 </View> 39 </Layout.Content> 40 ) : (
··· 8 import {useModerationOpts} from '#/state/preferences/moderation-opts' 9 import {SearchLinkCard} from '#/view/shell/desktop/Search' 10 import {SearchProfileCard} from '#/screens/Search/components/SearchProfileCard' 11 + import {atoms as a, native, useTheme} from '#/alf' 12 import * as Layout from '#/components/Layout' 13 14 let AutocompleteResults = ({ ··· 26 onResultPress: () => void 27 onProfileClick: (profile: AppBskyActorDefs.ProfileViewBasic) => void 28 }): React.ReactNode => { 29 + const t = useTheme() 30 const {_} = useLingui() 31 const moderationOpts = useModerationOpts() 32 return ( ··· 35 !moderationOpts ? ( 36 <Layout.Content> 37 <View style={[a.py_xl]}> 38 + <ActivityIndicator color={t.palette.primary_500} /> 39 </View> 40 </Layout.Content> 41 ) : (
+2 -1
src/screens/Signup/StepCaptcha/index.tsx
··· 68 token?: string 69 payload?: string 70 }) { 71 const {_} = useLingui() 72 const theme = useTheme() 73 const {state, dispatch} = useSignupContext() ··· 160 onError={onError} 161 /> 162 ) : ( 163 - <ActivityIndicator size="large" /> 164 )} 165 </View> 166 <FormError error={state.error} />
··· 68 token?: string 69 payload?: string 70 }) { 71 + const t = useTheme() 72 const {_} = useLingui() 73 const theme = useTheme() 74 const {state, dispatch} = useSignupContext() ··· 161 onError={onError} 162 /> 163 ) : ( 164 + <ActivityIndicator size="large" color={t.palette.primary_500} /> 165 )} 166 </View> 167 <FormError error={state.error} />
+1 -1
src/view/com/lists/MyLists.tsx
··· 141 } else if (item === LOADING) { 142 return ( 143 <View style={{padding: 20}}> 144 - <ActivityIndicator /> 145 </View> 146 ) 147 }
··· 141 } else if (item === LOADING) { 142 return ( 143 <View style={{padding: 20}}> 144 + <ActivityIndicator color={t.palette.primary_500} /> 145 </View> 146 ) 147 }
+1 -1
src/view/com/modals/UserAddRemoveLists.tsx
··· 227 </View> 228 <View> 229 {isProcessing || typeof membership === 'undefined' ? ( 230 - <ActivityIndicator /> 231 ) : ( 232 <Button 233 testID={`user-${handle}-addBtn`}
··· 227 </View> 228 <View> 229 {isProcessing || typeof membership === 'undefined' ? ( 230 + <ActivityIndicator color={t.palette.primary_500} /> 231 ) : ( 232 <Button 233 testID={`user-${handle}-addBtn`}
+1 -1
src/view/com/notifications/NotificationFeed.tsx
··· 151 () => 152 isFetchingNextPage ? ( 153 <View style={styles.feedFooter}> 154 - <ActivityIndicator /> 155 </View> 156 ) : ( 157 <View />
··· 151 () => 152 isFetchingNextPage ? ( 153 <View style={styles.feedFooter}> 154 + <ActivityIndicator color={t.palette.primary_500} /> 155 </View> 156 ) : ( 157 <View />
+3 -2
src/view/shell/desktop/Search.tsx
··· 17 import {Link} from '#/view/com/util/Link' 18 import {Text} from '#/view/com/util/text/Text' 19 import {SearchProfileCard} from '#/screens/Search/components/SearchProfileCard' 20 - import {atoms as a} from '#/alf' 21 import {SearchInput} from '#/components/forms/SearchInput' 22 23 let SearchLinkCard = ({ ··· 72 export {SearchLinkCard} 73 74 export function DesktopSearch() { 75 const {_} = useLingui() 76 const pal = usePalette('default') 77 const navigation = useNavigation<NavigationProp>() ··· 123 ]}> 124 {isFetching && !autocompleteData?.length ? ( 125 <View style={{padding: 8}}> 126 - <ActivityIndicator /> 127 </View> 128 ) : ( 129 <>
··· 17 import {Link} from '#/view/com/util/Link' 18 import {Text} from '#/view/com/util/text/Text' 19 import {SearchProfileCard} from '#/screens/Search/components/SearchProfileCard' 20 + import {atoms as a, useTheme} from '#/alf' 21 import {SearchInput} from '#/components/forms/SearchInput' 22 23 let SearchLinkCard = ({ ··· 72 export {SearchLinkCard} 73 74 export function DesktopSearch() { 75 + const t = useTheme() 76 const {_} = useLingui() 77 const pal = usePalette('default') 78 const navigation = useNavigation<NavigationProp>() ··· 124 ]}> 125 {isFetching && !autocompleteData?.length ? ( 126 <View style={{padding: 8}}> 127 + <ActivityIndicator color={t.palette.primary_500} /> 128 </View> 129 ) : ( 130 <>