// Metro module 5094 (f5095). import _slicedToArray from "../../_bundle/_slicedToArray"; import { TypeTag } from "../../_bundle/Module1413"; import { LibdiscoreStore } from "../libdiscore/stores/LibdiscoreStore"; import Durations from "../../utils/Durations"; import { StickerMetadataTypes } from "./StickersTypes"; let c3061_4, c3061_5, HOUR, deriveStickerMetadata, ingestStickerPack, $mk75383 = function() { return function parsePackStickers(a0) { const r0 = {}; for (const item of a0) { r0[item.id] = parseServerPackSticker(item); } return r0; }; }; const parseServerPackSticker = function parseServerPackSticker(item) { const r0 = { id: item.id, tags: item.tags, type: item.type, name: item.name, description: item.description, format_type: item.format_type, pack_id: item.pack_id }; r0[TypeTag] = "PackSticker"; return r0; }; deriveStickerMetadata = function deriveStickerMetadata(a0, a1) { const r2 = []; r2.push({ type: StickerMetadataTypes.STICKER_NAME, value: a0.name.trim().toLocaleLowerCase() }); if (a1 != null) { r2.push({ type: StickerMetadataTypes.PACK_NAME, value: a1.name }); } return r2; }; ingestStickerPack = function ingestStickerPack(item, packStickersDatabase, packsDatabase, premiumPacksDatabase, a4) { packsDatabase.set(item.id, item); premiumPacksDatabase.set(item.id, item); const setPartition = packStickersDatabase.setPartition; const { id, stickers } = item; setPartition.call(packStickersDatabase, id, $mk75383()(stickers)); }; c3061_4 = false; c3061_5 = null; HOUR = Durations.Millis.HOUR; class StickersPackStore extends LibdiscoreStore { static displayName = "StickersPackStore"; packsDatabase = this.addKVDatabase("stickerPacks"); packStickersDatabase = this.addKKVDatabase("packStickers"); packStickerByIdIndex = this.packStickersDatabase.addSecondaryKVIndex("id"); premiumPacksDatabase = this.addKVDatabase("premiumPacks"); getAllPackStickers = this.packStickersDatabase.memoized((a0) => { const map = new Map(); for (const key in a0) { map.set(key, Object.values(a0[key].root)); } return map; }); getStickerMetadataMap = this.packStickersDatabase.memoized((a0) => { const map = new Map(); for (const key in a0) { for (const item of Object.entries(a0[key].root)) { const r44 = _slicedToArray(item, 2); map.set(r44[0], deriveStickerMetadata(r44[1], this.packsDatabase.get(key))); } } return map; }); getPremiumPacks = this.premiumPacksDatabase.memoized((a0) => Object.values(a0)); stateWrapper() { return { packsDatabase: this.packsDatabase, packStickersDatabase: this.packStickersDatabase, premiumPacksDatabase: this.premiumPacksDatabase, markDirty: () => this.markDirty(), clearAllDBs: () => this.clearAllDatabases() }; } get isFetchingStickerPacks() { return c3061_4; } get hasLoadedStickerPacks() { return c3061_5 != null && c3061_5 + HOUR > performance.now(); } getStickerById(a0) { return this.packStickerByIdIndex.get(a0); } isPremiumPack(a0) { return this.premiumPacksDatabase.get(a0) != null; } getStickerPack(a0) { return this.packsDatabase.get(a0); } } const stickersPackStore = new StickersPackStore({ LOGOUT: (a0, a1) => { (0, a1.clearAllDBs)(); }, STICKER_PACK_FETCH_SUCCESS: ({ pack }, a1) => { const { packStickersDatabase, packsDatabase } = a1; a1.premiumPacksDatabase; packsDatabase.set(pack.id, pack); const { id, stickers } = pack; packStickersDatabase.setPartition(id, $mk75383()(stickers)); }, STICKER_PACKS_FETCH_START: (a0, { markDirty: markDirty2 }) => { c3061_4 = true; markDirty2(); }, STICKER_PACKS_FETCH_SUCCESS: ({ packs }, { packStickersDatabase, packsDatabase, premiumPacksDatabase, markDirty: markDirty2 }) => { c3061_4 = false; markDirty2(); c3061_5 = performance.now(); for (const item of packs) { ingestStickerPack(item, packStickersDatabase, packsDatabase, premiumPacksDatabase, true); } }, PACK_STICKER_FETCH_SUCCESS: ({ sticker }, { packStickersDatabase }) => { const { pack_id, id } = sticker; const r9 = { id: sticker.id, tags: sticker.tags, type: sticker.type, name: sticker.name, description: sticker.description, format_type: sticker.format_type, pack_id: sticker.pack_id }; r9[TypeTag] = "PackSticker"; packStickersDatabase.setRecord(pack_id, id, r9); } }); export default stickersPackStore;