43 lines
2.3 KiB
TypeScript
43 lines
2.3 KiB
TypeScript
// Metro module 12033 (f12034).
|
|
import { useMemo } from "react";
|
|
import ContentInventoryOutboxStore from "../../content_inventory/ContentInventoryOutboxStore";
|
|
import PresenceStore from "../../../stores/PresenceStore";
|
|
import useDiscoverableApplicationStream from "../../blocking/useDiscoverableApplicationStream";
|
|
import { useStateFromStores } from "../../../_bundle/Module589";
|
|
import { getUserProfileLiveActivities } from "../utils/UserProfileStackedActivityCardUtils";
|
|
import * as _utils from "../../content_inventory/utils";
|
|
import { isListenedSessionEntry, isWatchedMediaEntry, isRecentActivityEntry } from "../../content_inventory/ContentInventoryTypes";
|
|
import { isMatchingListeningActivity, isMatchingWatchActivity } from "../../content_inventory/matchUtils";
|
|
const live = [];
|
|
const recent = [];
|
|
export default function useUserProfileActivity(a0) {
|
|
let stateFromStores2;
|
|
const discoverableApplicationStream = useDiscoverableApplicationStream(a0);
|
|
const stateFromStores = useStateFromStores([PresenceStore], () => PresenceStore.getActivities(a0));
|
|
stateFromStores2 = useStateFromStores([ContentInventoryOutboxStore], () => ContentInventoryOutboxStore.getUserOutbox(a0));
|
|
const memo = useMemo(() => {
|
|
let live2 = getUserProfileLiveActivities(stateFromStores);
|
|
const userProfileLiveActivities = live2;
|
|
let recent2 = stateFromStores2 == null ? void 0 : stateFromStores2.entries.filter((entry) => {
|
|
const isEntryLive = _utils.isEntryLive(entry);
|
|
return isEntryLive ? !isEntryLive : isListenedSessionEntry(entry) ? entry.extra.entries.length > 0 && !userProfileLiveActivities.some((userProfileLiveActivity) => userProfileLiveActivity != null && isMatchingListeningActivity(entry, userProfileLiveActivity)) : isWatchedMediaEntry(entry) ? !userProfileLiveActivities.some((userProfileLiveActivity) => userProfileLiveActivity != null && isMatchingWatchActivity(entry, userProfileLiveActivity)) : isRecentActivityEntry(entry);
|
|
});
|
|
if (userProfileLiveActivities.length === 0) {
|
|
live2 = live;
|
|
}
|
|
if (!(recent2 != null && recent2.length !== 0)) {
|
|
recent2 = recent;
|
|
}
|
|
return {
|
|
live: live2,
|
|
recent: recent2
|
|
};
|
|
}, [stateFromStores, stateFromStores2?.entries]);
|
|
return {
|
|
live: memo.live,
|
|
recent: memo.recent,
|
|
stream: discoverableApplicationStream,
|
|
outbox: stateFromStores2
|
|
};
|
|
};
|