diff --git a/src/pages/DatabaseServiceTest.js b/src/pages/DatabaseServiceTest.js new file mode 100644 index 0000000..2ab95ab --- /dev/null +++ b/src/pages/DatabaseServiceTest.js @@ -0,0 +1,128 @@ +// src/pages/DatabaseTestPage.js +import React, {useState, useEffect} from 'react'; +import { + View, + Text, + TextInput, + Button, + ScrollView, + StyleSheet, +} from 'react-native'; +import {initializeDatabase} from '../utils/DatabaseService'; + +const DatabaseTestPage = () => { + const [db, setDb] = useState(null); + const [users, setUsers] = useState([]); + const [username, setUsername] = useState(''); + const [email, setEmail] = useState(''); + + useEffect(() => { + initializeDatabase().then(database => { + setDb(database); + fetchUsers(database); + }); + }, []); + + const fetchUsers = database => { + database.transaction(tx => { + tx.executeSql('SELECT * FROM Users', [], (tx, results) => { m + const fetchedUsers = []; + for (let i = 0; i < results.rows.length; i++) { + fetchedUsers.push(results.rows.item(i)); + } + setUsers(fetchedUsers); + }); + }); + }; + + const addUser = () => { + if (db && username && email) { + db.transaction(tx => { + tx.executeSql( + 'INSERT INTO Users (username, email, created_at, updated_at) VALUES (?, ?, datetime("now"), datetime("now"))', + [username, email], + () => { + fetchUsers(db); + setUsername(''); + setEmail(''); + }, + ); + }); + } + }; + + const deleteUser = userId => { + if (db) { + db.transaction(tx => { + tx.executeSql('DELETE FROM Users WHERE id = ?', [userId], () => { + fetchUsers(db); + }); + }); + } + }; + + return ( + + + + +