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 { ScrollView } from "react-native-gesture-handler"; import { ProfileType, useAuthContext } from "@/contexts/AuthContext"; import AddChore from "../../todos/AddChore"; import { useAtom } from "jotai"; import { selectedUserAtom } from "@/components/pages/calendar/atoms"; const TabletChoresPage = () => { const {data: users} = useGetFamilyMembers(); const { user: currentUser } = useAuthContext(); const [selectedUser] = useAtom(selectedUserAtom); 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]); const lockScreenOrientation = async () => { await ScreenOrientation.lockAsync( ScreenOrientation.OrientationLock.LANDSCAPE_RIGHT ); }; useEffect(() => { lockScreenOrientation(); return () => { ScreenOrientation.unlockAsync(); }; }, []); const capitalizeFirstLetter = (str: string) => { if (!str) return ""; return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase(); }; return ( {sortedUsers ?.filter((member) => !selectedUser || selectedUser.uid === 'family-view' || selectedUser.uid === member.uid ) .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;