// Metro module 6255 (f6256). import { useMemo } from "react"; import UserStore from "../../../stores/UserStore"; import FamilyCenterStore from "../FamilyCenterStore"; import { UserLinkStatus, UserLinkType, FAMILY_CENTER_REQUEST_QR_CODE_URL, MAX_PARENT_TO_TEEN_ACTIVE_CONNECTIONS, MAX_TEEN_TO_PARENT_ACTIVE_CONNECTIONS, PENDING_LINK_REQUEST_TIMESTAMP_FORMATTER, ACCEPTED_LINK_REQUEST_TIMESTAMP_FORMATTER } from "../FamilyCenterConstants"; import { useStateFromStores, useStateFromStoresArray } from "../../../_bundle/defaultAreStatesEqual"; import useIsInAdultAgeGroup from "./useIsInAdultAgeGroup"; import { useSelectedTeenId } from "./useSelectedTeen"; import { formatUserActivityTimestamp, formatLinkTimestamp } from "../FamilyCenterUtils"; function $mk78094($env) { return () => { const r1 = $env; return Object.values(r1[1]).filter($mk105016(r1)).sort((a, b) => new Date(a.updated_at).getTime() - new Date(b.updated_at).getTime()).map((item) => item.user_id).filter((item) => item != null); }; } function $mk78095($env) { return () => $env[0].map($mk105020($env.$parent)); } function $mk78096() { return (a0) => a0 != null; } function $mk105016($env) { return (a0) => a0 != null && a0.link_status === $env[0]; } function $mk105020($env) { return (a0) => $env[4].getUser(a0); } let $mk78093 = function() { return () => FamilyCenterStore.getLinkedUsers(); }; let env3973 = {}; export function useUserIdsForLinkStatus(a0) { let env15621; const r1 = env15621 = { $parent: env3973 }; env15621[0] = a0; const stateFromStores3 = useStateFromStores([FamilyCenterStore], $mk78093()); env15621[1] = stateFromStores3; return useMemo($mk78094(r1), [stateFromStores3, a0]); } export function useUsersForLinkStatus(a0) { let env15622; let env15623; const r1 = env15622 = { $parent: env3973 }; const r5 = env15623 = { $parent: env3973 }; env15623[0] = a0; const stateFromStores3 = useStateFromStores([FamilyCenterStore], $mk78093()); env15623[1] = stateFromStores3; env15622[0] = useMemo($mk78094(r5), [stateFromStores3, a0]); return useStateFromStoresArray([UserStore], $mk78095(r1)).filter($mk78096()); } export function useActiveLinkUserIds() { let env15624; const ACTIVE = UserLinkStatus.ACTIVE; const r8 = env15624 = { $parent: env3973 }; env15624[0] = ACTIVE; env15624[1] = void 0; const stateFromStores3 = useStateFromStores([FamilyCenterStore], $mk78093()); env15624[1] = stateFromStores3; return useMemo($mk78094(r8), [stateFromStores3, ACTIVE]); } export function getActiveLinkUserIds() { return Object.values(FamilyCenterStore.getLinkedUsers()).filter((item) => item != null && item.link_status === UserLinkStatus.ACTIVE).sort((a, b) => new Date(a.updated_at).getTime() - new Date(b.updated_at).getTime()).map((item) => item.user_id).filter((item) => item != null); } export function useActiveLinkUsers() { let env15625; let env15626; const ACTIVE = UserLinkStatus.ACTIVE; const r11 = env15625 = { $parent: env3973 }; env15625[0] = void 0; const r5 = env15626 = { $parent: env3973 }; env15626[0] = ACTIVE; env15626[1] = void 0; const stateFromStores3 = useStateFromStores([FamilyCenterStore], $mk78093()); env15626[1] = stateFromStores3; env15625[0] = useMemo($mk78094(r5), [stateFromStores3, ACTIVE]); return useStateFromStoresArray([UserStore], $mk78095(r11)).filter($mk78096()); } export function useHasActiveLinks() { let env15627; const ACTIVE = UserLinkStatus.ACTIVE; const r9 = env15627 = { $parent: env3973 }; env15627[0] = ACTIVE; env15627[1] = void 0; const stateFromStores3 = useStateFromStores([FamilyCenterStore], $mk78093()); env15627[1] = stateFromStores3; return useMemo($mk78094(r9), [stateFromStores3, ACTIVE]).length > 0; } export function useHasActiveParentLinks() { const stateFromStores = useStateFromStores([FamilyCenterStore], () => FamilyCenterStore.getLinkedUsers()); return useMemo(() => Object.values(stateFromStores).some((item) => item != null && item.link_status === UserLinkStatus.ACTIVE && item.link_type === UserLinkType.PARENT), [stateFromStores]); } export function useUserQRLinkUrl() { const stateFromStores3 = useStateFromStores([FamilyCenterStore], () => FamilyCenterStore.getLinkCode()); const stateFromStores4 = useStateFromStores([UserStore], () => UserStore.getCurrentUser()); return stateFromStores3 == null ? null : stateFromStores4 == null ? null : (0, FAMILY_CENTER_REQUEST_QR_CODE_URL)(stateFromStores4.id, stateFromStores3); } export function useHasMaxConnections() { let env15629; const isInAdultAgeGroup = useIsInAdultAgeGroup(); const ACTIVE = UserLinkStatus.ACTIVE; const r12 = env15629 = { $parent: env3973 }; env15629[0] = ACTIVE; env15629[1] = void 0; const stateFromStores3 = useStateFromStores([FamilyCenterStore], $mk78093()); env15629[1] = stateFromStores3; return useMemo($mk78094(r12), [stateFromStores3, ACTIVE]).length >= (isInAdultAgeGroup ? MAX_PARENT_TO_TEEN_ACTIVE_CONNECTIONS : MAX_TEEN_TO_PARENT_ACTIVE_CONNECTIONS); } export function usePendingRequestCount() { const stateFromStores2 = useStateFromStores([UserStore], () => UserStore.getCurrentUser()); const stateFromStores3 = useStateFromStores([FamilyCenterStore], () => FamilyCenterStore.getLinkedUsers()); return stateFromStores2 == null ? 0 : Object.values(stateFromStores3).filter((item) => item != null && item.link_status === UserLinkStatus.PENDING && stateFromStores2.id !== item.requestor_id).length; } export function useRequiresParentalConsent(a0) { const stateFromStores3 = useStateFromStores([FamilyCenterStore], () => FamilyCenterStore.getLinkedUsers()); let r14 = a0 != null; if (r14) { let r16 = stateFromStores3[a0]?.teen_requires_parental_consent; if (r16 == null) { r16 = false; } r14 = r16; } return r14; } export function useAcceptedRequestsCount() { let env15631; const ACTIVE = UserLinkStatus.ACTIVE; const r8 = env15631 = { $parent: env3973 }; env15631[0] = ACTIVE; env15631[1] = void 0; const stateFromStores3 = useStateFromStores([FamilyCenterStore], $mk78093()); env15631[1] = stateFromStores3; return useMemo($mk78094(r8), [stateFromStores3, ACTIVE]).length; } export function useActivityWindowTimeStamp(c15632_0) { const selectedTeenId = useSelectedTeenId(); const stateFromStores3 = useStateFromStores([FamilyCenterStore], () => selectedTeenId != null ? FamilyCenterStore.getRangeStartTimestamp() : null); return stateFromStores3 != null ? formatUserActivityTimestamp(new Date(stateFromStores3).getTime(), () => c15632_0, 7) : null; } export function useLinkTimestampText(c15633_0, a1) { const stateFromStores3 = useStateFromStores([FamilyCenterStore], () => FamilyCenterStore.getLinkTimestamp(c15633_0)); return stateFromStores3 != null ? formatLinkTimestamp(Date.parse(stateFromStores3), a1 === UserLinkStatus.PENDING ? PENDING_LINK_REQUEST_TIMESTAMP_FORMATTER : ACCEPTED_LINK_REQUEST_TIMESTAMP_FORMATTER) : null; }