Bluesky app fork with some witchin' additions 💫

adding 'better auto resolve stuff'

OAuth may be coming soon since blacksky just implemented it and I saw another implementation recently that wasn't from a former Bluesky PBC employee

xan.lol 7f89f826 1df13c73

verified
+8 -7
+7 -6
src/screens/Login/LoginForm.tsx
··· 14 import {useLingui} from '@lingui/react' 15 16 import {useRequestNotificationsPermission} from '#/lib/notifications/notifications' 17 - import {isNetworkError} from '#/lib/strings/errors' 18 - import {cleanError} from '#/lib/strings/errors' 19 import {createFullHandle} from '#/lib/strings/handles' 20 import {logger} from '#/logger' 21 import {useSetHasCheckedForStarterPack} from '#/state/preferences/used-starter-packs' 22 import {useSessionApi} from '#/state/session' ··· 86 }, []) 87 88 const onPressNext = async () => { 89 - if (isProcessing) return 90 Keyboard.dismiss() 91 LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) 92 setError('') ··· 193 <Trans>Hosting provider</Trans> 194 {isResolvingService && ( 195 <ActivityIndicator 196 - size={12} 197 color={t.palette.contrast_500} 198 style={a.ml_sm} 199 /> ··· 230 if (!id) return 231 if ( 232 id.startsWith('did:') || 233 - (id.includes('.') && !id.includes('@')) 234 ) { 235 debouncedResolveService(id) 236 } ··· 373 variant="solid" 374 color="primary" 375 size="large" 376 - onPress={onPressNext}> 377 <ButtonText> 378 <Trans>Next</Trans> 379 </ButtonText>
··· 14 import {useLingui} from '@lingui/react' 15 16 import {useRequestNotificationsPermission} from '#/lib/notifications/notifications' 17 + import {cleanError, isNetworkError} from '#/lib/strings/errors' 18 import {createFullHandle} from '#/lib/strings/handles' 19 + import {isValidDomain} from '#/lib/strings/url-helpers' 20 import {logger} from '#/logger' 21 import {useSetHasCheckedForStarterPack} from '#/state/preferences/used-starter-packs' 22 import {useSessionApi} from '#/state/session' ··· 86 }, []) 87 88 const onPressNext = async () => { 89 + if (isProcessing || isResolvingService || serviceUrl === undefined) return 90 Keyboard.dismiss() 91 LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) 92 setError('') ··· 193 <Trans>Hosting provider</Trans> 194 {isResolvingService && ( 195 <ActivityIndicator 196 + size={10} 197 color={t.palette.contrast_500} 198 style={a.ml_sm} 199 /> ··· 230 if (!id) return 231 if ( 232 id.startsWith('did:') || 233 + (!id.includes('@') && isValidDomain(id)) 234 ) { 235 debouncedResolveService(id) 236 } ··· 373 variant="solid" 374 color="primary" 375 size="large" 376 + onPress={onPressNext} 377 + disabled={isResolvingService || serviceUrl === undefined}> 378 <ButtonText> 379 <Trans>Next</Trans> 380 </ButtonText>
+1 -1
src/screens/Login/index.tsx
··· 147 ) 148 149 const debouncedResolveService = useMemo( 150 - () => debounce(resolveIdentity, 800), 151 [resolveIdentity], 152 ) 153
··· 147 ) 148 149 const debouncedResolveService = useMemo( 150 + () => debounce(resolveIdentity, 400), 151 [resolveIdentity], 152 ) 153