diff --git a/src/view/index.ts b/src/view/index.ts
index d15fc6c2..fb26844c 100644
--- a/src/view/index.ts
+++ b/src/view/index.ts
@@ -3,6 +3,7 @@ import {library} from '@fortawesome/fontawesome-svg-core'
import {faAngleLeft} from '@fortawesome/free-solid-svg-icons/faAngleLeft'
import {faAngleRight} from '@fortawesome/free-solid-svg-icons/faAngleRight'
import {faArrowLeft} from '@fortawesome/free-solid-svg-icons/faArrowLeft'
+import {faArrowRightFromBracket} from '@fortawesome/free-solid-svg-icons'
import {faArrowUpFromBracket} from '@fortawesome/free-solid-svg-icons/faArrowUpFromBracket'
import {faArrowUpRightFromSquare} from '@fortawesome/free-solid-svg-icons/faArrowUpRightFromSquare'
import {faArrowsRotate} from '@fortawesome/free-solid-svg-icons/faArrowsRotate'
@@ -38,6 +39,7 @@ export function setup() {
faAngleLeft,
faAngleRight,
faArrowLeft,
+ faArrowRightFromBracket,
faArrowUpFromBracket,
faArrowUpRightFromSquare,
faArrowsRotate,
diff --git a/src/view/screens/Login.tsx b/src/view/screens/Login.tsx
index 110e23ff..73a49fb8 100644
--- a/src/view/screens/Login.tsx
+++ b/src/view/screens/Login.tsx
@@ -9,7 +9,7 @@ import {
View,
useWindowDimensions,
} from 'react-native'
-import Svg, {Line} from 'react-native-svg'
+import Svg, {Circle, Line, Text as SvgText} from 'react-native-svg'
import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
import {observer} from 'mobx-react-lite'
import {s, colors} from '../lib/styles'
@@ -30,6 +30,61 @@ const SigninOrCreateAccount = ({
return (
<>
+
+
+
Bluesky
[ private beta ]
@@ -85,6 +140,7 @@ const Signin = ({onPressBack}: {onPressBack: () => void}) => {
} catch (e: any) {
const errMsg = e.toString()
console.log(e)
+ setIsProcessing(false)
if (errMsg.includes('Authentication Required')) {
setError('Invalid username or password')
} else if (errMsg.includes('Network request failed')) {
@@ -94,14 +150,12 @@ const Signin = ({onPressBack}: {onPressBack: () => void}) => {
} else {
setError(errMsg.replace(/^Error:/, ''))
}
- } finally {
- setIsProcessing(false)
}
}
return (
-
+
Bluesky
[ private beta ]
@@ -199,9 +253,17 @@ const styles = StyleSheet.create({
flex: 1,
},
hero: {
+ flex: 2,
+ justifyContent: 'center',
+ },
+ smallHero: {
flex: 1,
justifyContent: 'center',
},
+ logo: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ },
title: {
textAlign: 'center',
color: colors.white,
diff --git a/src/view/shell/mobile/accounts-menu.tsx b/src/view/shell/mobile/accounts-menu.tsx
index fb8b9682..b4b53860 100644
--- a/src/view/shell/mobile/accounts-menu.tsx
+++ b/src/view/shell/mobile/accounts-menu.tsx
@@ -14,8 +14,10 @@ import {s, colors} from '../../lib/styles'
export function createAccountsMenu({
debug_onPressItem,
+ onPressLogout,
}: {
debug_onPressItem: () => void
+ onPressLogout: () => void
}): RootSiblings {
const onPressItem = (_index: number) => {
sibling.destroy()
@@ -41,6 +43,18 @@ export function createAccountsMenu({
New Account
+ {
+ sibling.destroy()
+ onPressLogout()
+ }}>
+
+ Log out
+
>
),
diff --git a/src/view/shell/mobile/index.tsx b/src/view/shell/mobile/index.tsx
index 2a0a96a2..2e0e1b36 100644
--- a/src/view/shell/mobile/index.tsx
+++ b/src/view/shell/mobile/index.tsx
@@ -117,6 +117,7 @@ export const MobileShell: React.FC = observer(() => {
const onPressAvi = () =>
createAccountsMenu({
debug_onPressItem: () => store.nav.navigate('/profile/alice.test'),
+ onPressLogout: () => store.session.logout(),
})
const onPressLocation = () => setLocationMenuActive(true)
const onPressEllipsis = () => createLocationMenu()