// Metro module 9939 (f9940). import { useState, useRef, useEffect } from "react"; import SavedMessagesStore from "./SavedMessagesStore"; import { SavedMessageSortTypes } from "./SavedMessagesTypes"; import useRefreshSavedMessages from "./useRefreshSavedMessages"; import { useStateFromStoresArray } from "../../_bundle/Module589"; import { isNotNullish } from "../../utils/GlobalUtils"; function $mk83579() { return (a0) => a0.saveData; } const getSavedMessagesForType = function getSavedMessagesForType(a0) { if (SavedMessageSortTypes.BOOKMARK === a0) { return SavedMessagesStore.getMessageBookmarks(); } if (SavedMessageSortTypes.REMINDER === a0) { return SavedMessagesStore.getMessageReminders(); } return SavedMessagesStore.getSavedMessages(); }; export default function useSavedMessagesForPage(r3 = SavedMessageSortTypes.ALL) { let state, setState, ref; const ALL = r3; state = void 0; setState = void 0; ref = void 0; [state, setState] = useState(() => (SavedMessageSortTypes.BOOKMARK === ALL ? SavedMessagesStore.getMessageBookmarks() : SavedMessageSortTypes.REMINDER === ALL ? SavedMessagesStore.getMessageReminders() : SavedMessagesStore.getSavedMessages()).map($mk83579())); ref = useRef(SavedMessagesStore.getIsStale()); useEffect(() => { let lastChanged; const handleChange2 = function handleChange() { const lastChanged2 = SavedMessagesStore.getLastChanged(); if (lastChanged !== lastChanged2) { lastChanged = lastChanged2; if (ref.current && !SavedMessagesStore.getIsStale()) { ref.current = false; setState((SavedMessageSortTypes.BOOKMARK === ALL ? SavedMessagesStore.getMessageBookmarks() : SavedMessageSortTypes.REMINDER === ALL ? SavedMessagesStore.getMessageReminders() : SavedMessagesStore.getSavedMessages()).map($mk83579())); return void 0; } setState((prevState) => { const r0 = [...prevState]; const map = new Map(getSavedMessagesForType(ALL).map((item) => [item.saveData.messageId, item])); for (const item of prevState) { if (map.has(item.messageId)) { map.delete(item.messageId); } else { r0.splice(r0.indexOf(item), 1); } } for (const item2 of map.values()) { r0.push(item2.saveData); } return r0; }); } }; lastChanged = SavedMessagesStore.getLastChanged(); SavedMessagesStore.addChangeListener(handleChange2); return () => { SavedMessagesStore.removeChangeListener(handleChange2); }; }, [ALL]); useRefreshSavedMessages(); return useStateFromStoresArray([SavedMessagesStore], () => state.map((item) => SavedMessagesStore.getSavedMessage(item.channelId, item.messageId)).filter(isNotNullish)); };