Added post and put and delete functionality both to user and modules, also updated users so that it by default has the user set to registered as not registered, but gives a dropdown allowing a person to select whether they are registered or not

This commit is contained in:
bobbert committed 2025-12-09 14:31:38 +00:00
1 parent 63287d4a46
commit 80efb0be54
3 files changed
+60 -39

No files matched your search

+18 -17
View File
@@ -1,9 +1,10 @@
import {LogBox, Text} from "react-native";
import {Alert, LogBox, Text} from "react-native";
import Screen from "../layout/Screen";
import UserList from "../entity/users/UserList";
import {Button, ButtonTray} from "../UI/Button";
import Icons from "../UI/Icons";
import useLoad from "../API/useLoad";
import API from "../API/API";
const UserListScreen = ({navigation}) => {
// Initialisation -------------
@@ -23,31 +24,31 @@ const UserListScreen = ({navigation}) => {
navigation.goBack();
};
const handleAdd = (user) => setUsers([...users, user]);
const handleModify = (updatedUser) => setUsers(
users.map((user) => (user.UserID === updatedUser.UserID) ? updatedUser : user),
);
const onAdd = (user) => {
handleAdd(user);
navigation.goBack();
const handleAdd = async (user) => {
const result = await API.post(usersEndpoint, user);
if (result.isSuccess) {
await loadUsers(usersEndpoint)
navigation.goBack();
} else
Alert.alert(result.message);
};
const onModify = (user) => {
handleModify(user);
navigation.replace('UserViewScreen', {user, onDelete, onModify});
const onModify = async (user) => {
const putEndpoint = `${usersEndpoint}/${user.UserID}`;
const result = await API.put(putEndpoint, user);
if ( result.isSuccess ) {
await loadUsers(usersEndpoint)
navigation.navigate('UserListScreen');
} else
Alert.alert(result.message);
};
const goToViewScreen = (user) =>
navigation.navigate('UserViewScreen', {user, onDelete, onModify});
const goToAddScreen = () =>
navigation.navigate('UserAddScreen', {onAdd});
navigation.navigate('UserAddScreen', {onAdd: handleAdd});
const handleSwitchToModules = () => {
navigation.navigate("ModuleListScreen");
};
// View -----------------------
return (