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 ( <> + + + + + + + + + B + + + 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()