mirror of
https://github.com/urosran/cally.git
synced 2025-11-26 00:24:53 +00:00
Merge branch 'dev'
# Conflicts: # components/pages/calendar/MonthCalendar.tsx
This commit is contained in:
@ -7,26 +7,36 @@ import { ProfileType, useAuthContext } from "@/contexts/AuthContext";
|
|||||||
import { useAtom } from "jotai";
|
import { useAtom } from "jotai";
|
||||||
import { selectedUserAtom } from "@/components/pages/calendar/atoms";
|
import { selectedUserAtom } from "@/components/pages/calendar/atoms";
|
||||||
|
|
||||||
|
type UserProfile = {
|
||||||
|
uid: string;
|
||||||
|
firstName: string;
|
||||||
|
lastName: string;
|
||||||
|
userType: string;
|
||||||
|
eventColor: string;
|
||||||
|
pfp?: string;
|
||||||
|
};
|
||||||
|
|
||||||
const UsersList = () => {
|
const UsersList = () => {
|
||||||
const { user: currentUser } = useAuthContext();
|
const { user: currentUser } = useAuthContext();
|
||||||
const { data: familyMembers, refetch: refetchFamilyMembers } =
|
const { data: familyMembers, refetch: refetchFamilyMembers } =
|
||||||
useGetFamilyMembers();
|
useGetFamilyMembers();
|
||||||
const [selectedUser, setSelectedUser] = useAtom(selectedUserAtom);
|
const [selectedUser, setSelectedUser] = useAtom<UserProfile | null>(selectedUserAtom);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
refetchFamilyMembers();
|
refetchFamilyMembers();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const sortedMembers = useMemo(() => {
|
const sortedMembers = useMemo(() => {
|
||||||
const filtered = familyMembers
|
const filtered = familyMembers?.filter(
|
||||||
?.filter((member) => member.userType !== ProfileType.FAMILY_DEVICE);
|
(member) => member.userType !== ProfileType.FAMILY_DEVICE
|
||||||
|
) || [];
|
||||||
|
|
||||||
const currentUserData = filtered?.find(m => m.uid === currentUser?.uid);
|
const currentUserData = filtered.find(m => m.uid === currentUser?.uid);
|
||||||
const parents = filtered?.filter(m => m.userType === ProfileType.PARENT && m.uid !== currentUser?.uid) || [];
|
const parents = filtered.filter(m => m.userType === ProfileType.PARENT && m.uid !== currentUser?.uid);
|
||||||
const children = filtered?.filter(m => m.userType === ProfileType.CHILD && m.uid !== currentUser?.uid) || [];
|
const children = filtered.filter(m => m.userType === ProfileType.CHILD && m.uid !== currentUser?.uid);
|
||||||
const caregivers = filtered?.filter(m => m.userType === ProfileType.CAREGIVER && m.uid !== currentUser?.uid) || [];
|
const caregivers = filtered.filter(m => m.userType === ProfileType.CAREGIVER && m.uid !== currentUser?.uid);
|
||||||
|
|
||||||
const familyViewOption = {
|
const familyViewOption: UserProfile = {
|
||||||
uid: 'family-view',
|
uid: 'family-view',
|
||||||
firstName: 'Family',
|
firstName: 'Family',
|
||||||
lastName: 'View',
|
lastName: 'View',
|
||||||
@ -66,8 +76,11 @@ const UsersList = () => {
|
|||||||
key={index}
|
key={index}
|
||||||
source={{ uri: member.pfp }}
|
source={{ uri: member.pfp }}
|
||||||
style={styles.pfp}
|
style={styles.pfp}
|
||||||
borderRadius={200}
|
imageStyle={{
|
||||||
imageStyle={{ borderWidth: 2, borderColor: "red" }}
|
borderRadius: 200,
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor: member.eventColor || colorMap.teal
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
<View
|
<View
|
||||||
@ -77,8 +90,8 @@ const UsersList = () => {
|
|||||||
backgroundColor={member.eventColor || colorMap.teal}
|
backgroundColor={member.eventColor || colorMap.teal}
|
||||||
>
|
>
|
||||||
<Text color="white">
|
<Text color="white">
|
||||||
{member.firstName.at(0)}
|
{member.firstName.charAt(0)}
|
||||||
{member.lastName.at(0)}
|
{member.lastName.charAt(0)}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -73,7 +73,7 @@ export const EventCell: React.FC<EventCellProps> = React.memo((
|
|||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
eventCell: {
|
eventCell: {
|
||||||
flex: 1,
|
flex: 1,
|
||||||
borderRadius: 4,
|
borderRadius: 5,
|
||||||
paddingHorizontal: 8,
|
paddingHorizontal: 8,
|
||||||
paddingBottom: 8,
|
paddingBottom: 8,
|
||||||
height: '100%',
|
height: '100%',
|
||||||
|
|||||||
Reference in New Issue
Block a user