fixing offline login persist

This commit is contained in:
balzack 2024-08-15 08:09:36 -07:00
parent e6990f0ddf
commit 6c0b0ef86a
9 changed files with 33 additions and 13 deletions

View File

@ -605,7 +605,10 @@
"-DFOLLY_CFG_NO_COROUTINES=1",
"-DFOLLY_HAVE_CLOCK_GETTIME=1",
);
OTHER_LDFLAGS = "$(inherited) ";
OTHER_LDFLAGS = (
"$(inherited)",
" ",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
USE_HERMES = true;
@ -677,7 +680,10 @@
"-DFOLLY_CFG_NO_COROUTINES=1",
"-DFOLLY_HAVE_CLOCK_GETTIME=1",
);
OTHER_LDFLAGS = "$(inherited) ";
OTHER_LDFLAGS = (
"$(inherited)",
" ",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
USE_HERMES = true;

View File

@ -1458,7 +1458,7 @@ SPEC CHECKSUMS:
RNScreens: aa943ad421c3ced3ef5a47ede02b0cbfc43a012e
RNVectorIcons: 2a2f79274248390b80684ea3c4400bd374a15c90
SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
Yoga: 88480008ccacea6301ff7bf58726e27a72931c8d
Yoga: 04f1db30bb810187397fa4c37dd1868a27af229c
PODFILE CHECKSUM: 8461018d8deceb200962c829584af7c2eb345c80

View File

@ -25,10 +25,9 @@ export class SessionStore implements SqlStore {
stmt: string,
params: (string | number | null)[],
): Promise<any[]> {
console.log("GET: ", stmt);
const res = await this.db.executeSql(stmt, params);
const rows = [];
if (res[0] && res[0].rows && res[0].rows > 1) {
if (res[0] && res[0].rows && res[0].rows.length > 0) {
for (let i = 0; i < res[0].rows.length; i++) {
rows.push(res[0].rows.item(i));
}

View File

@ -83,7 +83,7 @@ export const styles = StyleSheet.create({
maxWidth: 300,
width: '80%',
margin: 4,
marginTop: 24,
marginTop: 16,
},
hidden: {
width: '50%',

View File

@ -10,6 +10,7 @@ export function Access() {
const [ text, setText ] = useState('');
const { state, actions } = useAccess()
const [disabled, setDisabled] = useState(false)
const [showPassword, setShowPassword] = useState(false);
const login = async () => {
if (!state.loading) {
@ -101,9 +102,9 @@ export function Access() {
autoComplete="off"
autoCorrect={false}
label="Password"
secureTextEntry
secureTextEntry={!showPassword}
left={<TextInput.Icon icon="lock" />}
right={<TextInput.Icon icon="eye" />}
right={showPassword ? <TextInput.Icon icon="eye-off" onPress={() => setShowPassword(false)} /> : <TextInput.Icon icon="eye" onPress={() => setShowPassword(true)} />}
onChangeText={value => actions.setPassword(value)}
/>
<Button
@ -111,7 +112,7 @@ export function Access() {
style={styles.submit}
onPress={login}
loading={state.loading}
disabled={!state.username || !state.password}
disabled={!state.username || !state.password || !state.node}
>
{state.strings.login}
</Button>

View File

@ -13,7 +13,7 @@ export function useAccess() {
const [state, setState] = useState({
wide: null,
strings: settings.state.strings,
mode: '',
mode: 'account',
username: '',
handle: '',
password: '',

View File

@ -1,7 +1,7 @@
import { useState, useEffect, useRef } from 'react'
import { DatabagSDK, Session } from 'databag-client-sdk'
import { SessionStore } from '../SessionStore'
const DATABAG_DB = 'db_v200.db';
const DATABAG_DB = 'db_v201.db';
export function useAppContext() {
const sdk = useRef(new DatabagSDK(null))

View File

@ -1,6 +1,20 @@
import { Button } from 'react-native-paper';
import { Text } from 'react-native';
import { AppContext } from '../context/AppContext';
import { View } from 'react-native';
import { useContext } from 'react';
export function Session() {
return <Text>SESSION</Text>
const app = useContext(AppContext);
return (
<View>
<Text>SESSION!</Text>
<Text>SESSION!</Text>
<Text>SESSION!</Text>
<Text>SESSION!</Text>
<Button mode="contained" onPress={app.actions.accountLogout}>LOGOUT</Button>
</View>
);
}

View File

@ -35,7 +35,7 @@ export class OfflineStore implements Store {
public async init(): Promise<Login | null> {
await this.sql.set("CREATE TABLE IF NOT EXISTS app (key text, value text, unique(key));");
await this.sql.set("INSERT OR IGNORE INTO app (key, value) values ('session', null);");
await this.sql.set("INSERT OR IGNORE INTO app (key, value) values ('login', null);");
return await this.getAppValue('login', null);
}