141 lines
4.5 KiB
TypeScript
141 lines
4.5 KiB
TypeScript
// 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;
|