mirror of
https://github.com/standardnotes/mobile.git
synced 2026-02-05 05:21:26 -05:00
feature: use locked from application state for side menu
This commit is contained in:
@@ -60,7 +60,7 @@ export const AppStackComponent = (
|
||||
// Context
|
||||
const application = useContext(ApplicationContext);
|
||||
const theme = useContext(ThemeContext);
|
||||
const isLocked = useIsLocked();
|
||||
const [isLocked] = useIsLocked();
|
||||
const [hasEditor] = useHasEditor();
|
||||
|
||||
// State
|
||||
|
||||
@@ -25,7 +25,7 @@ export const useSignedIn = (
|
||||
// Context
|
||||
const application = React.useContext(ApplicationContext);
|
||||
|
||||
const isLocked = useIsLocked();
|
||||
const [isLocked] = useIsLocked();
|
||||
|
||||
// State
|
||||
const [signedIn, setSignedIn] = React.useState(false);
|
||||
@@ -59,7 +59,7 @@ export const useSignedIn = (
|
||||
};
|
||||
}, [application, signedInCallback, signedOutCallback, isLocked]);
|
||||
|
||||
return signedIn;
|
||||
return [signedIn];
|
||||
};
|
||||
|
||||
export const useOutOfSync = () => {
|
||||
@@ -97,7 +97,7 @@ export const useOutOfSync = () => {
|
||||
return removeSignedInObserver;
|
||||
}, [application]);
|
||||
|
||||
return outOfSync;
|
||||
return [outOfSync];
|
||||
};
|
||||
|
||||
export const useIsLocked = () => {
|
||||
@@ -130,7 +130,7 @@ export const useIsLocked = () => {
|
||||
};
|
||||
}, [application]);
|
||||
|
||||
return isLocked;
|
||||
return [isLocked];
|
||||
};
|
||||
|
||||
export const useHasEditor = () => {
|
||||
|
||||
@@ -50,7 +50,7 @@ type Props = {
|
||||
|
||||
export const NoteList = (props: Props): JSX.Element => {
|
||||
// Context
|
||||
const signedIn = useSignedIn();
|
||||
const [signedIn] = useSignedIn();
|
||||
const application = useContext(ApplicationContext);
|
||||
const themeService = useContext(ThemeServiceContext);
|
||||
const theme = useContext(ThemeContext);
|
||||
|
||||
@@ -49,7 +49,7 @@ export const Notes = ({
|
||||
* Update sync status
|
||||
*/
|
||||
const [loading, decrypting, refreshing, startRefreshing] = useSyncStatus();
|
||||
const signedIn = useSignedIn();
|
||||
const [signedIn] = useSignedIn();
|
||||
|
||||
// State
|
||||
const [sortBy, setSortBy] = useState<CollectionSort>(() =>
|
||||
|
||||
@@ -25,7 +25,7 @@ export const Root = (): JSX.Element | null => {
|
||||
// Context
|
||||
const application = useContext(ApplicationContext);
|
||||
const theme = useContext(ThemeContext);
|
||||
const isLocked = useIsLocked();
|
||||
const [isLocked] = useIsLocked();
|
||||
|
||||
// State
|
||||
const [, setWidth] = useState<number | undefined>(undefined);
|
||||
|
||||
@@ -19,7 +19,7 @@ type Props = {
|
||||
export const EncryptionSection = (props: Props) => {
|
||||
// Context
|
||||
const application = useContext(ApplicationContext);
|
||||
const isLocked = useIsLocked();
|
||||
const [isLocked] = useIsLocked();
|
||||
|
||||
// State
|
||||
const [protocolDisplayName, setProtocolDisplayName] = useState('');
|
||||
|
||||
@@ -26,7 +26,7 @@ type Props = {
|
||||
export const OptionsSection = ({ title, encryptionAvailable }: Props) => {
|
||||
// Context
|
||||
const application = useContext(ApplicationContext);
|
||||
const signedIn = useSignedIn();
|
||||
const [signedIn] = useSignedIn();
|
||||
const navigation = useNavigation<
|
||||
ModalStackNavigationProp<typeof SCREEN_SETTINGS>['navigation']
|
||||
>();
|
||||
|
||||
@@ -43,7 +43,7 @@ export const Settings = (props: Props) => {
|
||||
props.navigation.goBack();
|
||||
}, [props.navigation]);
|
||||
|
||||
const signedIn = useSignedIn(goBack);
|
||||
const [signedIn] = useSignedIn(goBack);
|
||||
|
||||
return (
|
||||
<Container
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { Circle } from '@Components/Circle';
|
||||
import { useOutOfSync, useSignedIn } from '@Lib/snjs_helper_hooks';
|
||||
import { useIsLocked, useOutOfSync, useSignedIn } from '@Lib/snjs_helper_hooks';
|
||||
import { ApplicationContext } from '@Root/ApplicationContext';
|
||||
import React, { useContext, useEffect, useMemo, useState } from 'react';
|
||||
import { ViewProps } from 'react-native';
|
||||
import { ApplicationEvent, ContentType } from 'snjs';
|
||||
import { ContentType } from 'snjs';
|
||||
import { ThemeContext } from 'styled-components/native';
|
||||
import {
|
||||
Cell,
|
||||
@@ -27,9 +27,9 @@ export const SideMenuHero: React.FC<Props> = props => {
|
||||
const theme = useContext(ThemeContext);
|
||||
|
||||
// State
|
||||
const signedIn = useSignedIn();
|
||||
const [isLocked, setIsLocked] = React.useState<boolean>(true);
|
||||
const isOutOfSync = useOutOfSync();
|
||||
const [signedIn] = useSignedIn();
|
||||
const [isLocked] = useIsLocked();
|
||||
const [isOutOfSync] = useOutOfSync();
|
||||
const [itemsLength, setItemsLength] = useState(0);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -45,40 +45,6 @@ export const SideMenuHero: React.FC<Props> = props => {
|
||||
return removeStreamItems;
|
||||
}, [application, itemsLength]);
|
||||
|
||||
useEffect(() => {
|
||||
let mounted = true;
|
||||
const getIsLocked = async () => {
|
||||
const locked = await application?.isLocked();
|
||||
if (mounted) {
|
||||
if (locked === undefined) {
|
||||
setIsLocked(true);
|
||||
} else {
|
||||
setIsLocked(Boolean(locked));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const removeSignedInObserver = application?.addEventObserver(
|
||||
async event => {
|
||||
if (
|
||||
event === ApplicationEvent.Launched ||
|
||||
event === ApplicationEvent.SignedIn ||
|
||||
event === ApplicationEvent.WillSync
|
||||
) {
|
||||
setIsLocked(false);
|
||||
}
|
||||
if (event === ApplicationEvent.SignedOut) {
|
||||
getIsLocked();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return () => {
|
||||
mounted = false;
|
||||
removeSignedInObserver && removeSignedInObserver();
|
||||
};
|
||||
}, [application]);
|
||||
|
||||
const textData = useMemo(() => {
|
||||
const hasEncryption = application?.isEncryptionAvailable();
|
||||
if (!signedIn) {
|
||||
|
||||
Reference in New Issue
Block a user