import React, {useEffect, useMemo} from "react"; import {Text, View} from "react-native-ui-lib"; import * as ScreenOrientation from "expo-screen-orientation"; import TabletContainer from "../tablet_components/TabletContainer"; import SingleUserChoreList from "./SingleUserChoreList"; import { useGetFamilyMembers } from "@/hooks/firebase/useGetFamilyMembers"; import { ImageBackground, StyleSheet } from "react-native"; import { colorMap } from "@/constants/colorMap"; import { ScrollView } from "react-native-gesture-handler"; import { ProfileType, useAuthContext } from "@/contexts/AuthContext"; import AddChore from "../../todos/AddChore"; const TabletChoresPage = () => { const {data: users} = useGetFamilyMembers(); const { user: currentUser } = useAuthContext(); const sortedUsers = useMemo(() => { return users ?.filter(member => member.userType !== ProfileType.FAMILY_DEVICE) .sort((a, b) => { if (a.uid === currentUser?.uid) return -1; if (b.uid === currentUser?.uid) return 1; const typePriority = { [ProfileType.PARENT]: 0, [ProfileType.CHILD]: 1, [ProfileType.CAREGIVER]: 2 }; return typePriority[a.userType] - typePriority[b.userType]; }); }, [users, currentUser]); // Function to lock the screen orientation to landscape const lockScreenOrientation = async () => { await ScreenOrientation.lockAsync( ScreenOrientation.OrientationLock.LANDSCAPE_RIGHT ); }; useEffect(() => { lockScreenOrientation(); // Lock orientation when the component mounts return () => { // Optional: Unlock to default when the component unmounts ScreenOrientation.unlockAsync(); }; }, []); const capitalizeFirstLetter = (str: string) => { if (!str) return ""; return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase(); }; return ( {sortedUsers ?.filter((member) => member.userType !== ProfileType.FAMILY_DEVICE) .map((user, index) => ( {user.pfp ? ( ) : ( {user.firstName.at(0)} {user.lastName.at(0)} )} {user.firstName} ({capitalizeFirstLetter(user.userType)}) ))} ); }; const styles = StyleSheet.create({ pfp: { width: 46.74, aspectRatio: 1, borderRadius: 13.33, }, name: { fontFamily: "Manrope_600SemiBold", fontSize: 22.43, color: "#2c2c2c", }, addBtn: { position: 'absolute', bottom: 50, right: 220 } }); export default TabletChoresPage;