e63cdc30-10ed-42f8-b5cf-cc34fb2da07b.js.map 9.39 KB
{"version":3,"sources":["assets/script/game/ui/presenter/MessageViewPresenter.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { Presenter } from \"../../../common/classbase/PresenterBase\";\nimport { MessageView, MessageEntryItemProps, MessageViewType } from \"../view/type/MessageView\";\nimport { GameModelManager } from \"../../model/GameModelManager\";\nimport { ReadonlyPlot, SentenceType, SentenceTextContent, SentenceMediaContent } from \"../../../avg/model/PlotModel\";\nimport { DeepReadonly, shallowEqual } from \"simba-utils\";\nimport { richNodesToCocosString } from \"../../../avg/utils/RichTextUtils\";\nimport { UIManager } from \"../../../common/gameplay/managers/UIManager\";\nimport { ChatListViewPresenter } from \"./ChatListViewPresenter\";\nimport { RegPresenter } from \"../PresenterCCViewFactory\";\nimport { MessageSceneModel } from \"../../model/MessageSceneModel\";\nimport { PlotManager } from \"../../../avg/PlotManager\";\nimport { PlotSceneType } from \"../../Enums\";\nimport { PhoneCallViewPresenter } from \"./PhoneCallViewPresenter\";\n\nfunction getSentenceText(content: DeepReadonly<SentenceTextContent> | DeepReadonly<SentenceMediaContent>) {\n    let text = \"\"\n    switch (content.type) {\n        case SentenceType.TEXT:\n            text = richNodesToCocosString(content.value);\n            break;\n        case SentenceType.AUDIO:\n            text = \"[Voice]\";\n            break;\n        case SentenceType.IMAGE:\n            text = \"[Image]\";\n            break;\n        case SentenceType.VIDEO:\n            text = \"[Video]\";\n            break;\n    }\n    return text;\n}\n\nfunction getPlotString(plot?: ReadonlyPlot) {\n    if (plot) {\n        let text = \"\";\n        let sentence:any = plot.sentences[0];\n        if (sentence.content) {\n            if (sentence.content.type === SentenceType.SELECT) {\n                let select = PlotManager.getPlotSelection(plot.id);\n                if (select !== undefined) {\n                    let option = sentence.content.value[select];\n                    if (option.content) {\n                        text = getSentenceText(option.content);\n                    } else {\n                        text = option.summary;\n                    }\n                }\n            } else {\n                text = getSentenceText(sentence.content);\n            }\n        }\n        return text;\n    }\n    return \"\";\n}\n\n@RegPresenter(MessageViewType)\nexport default class MessageViewPresenter extends Presenter<undefined, MessageView> {\n    static uuid = \"MessageViewPresenter\";\n    private _scenesActive: { [key: number]: boolean } = {};\n    private _currPlotHasMsg = false;\n\n    onOpen() {\n        super.onOpen(undefined);\n        this.checkScenesActive();\n        this.setViewProps();\n        this._disposable.add(GameModelManager.MessageSceneChanged.on(() => {\n            if (!this._currPlotHasMsg && !this._view.isHidden && !this._isInBackground) {\n                this.checkScenesActive();\n                this.setViewProps();\n            }\n        }));\n        this._disposable.add(PlotManager.PlotStartEvent.on(() => {\n            if (this._currPlotHasMsg && !this._view.isHidden && !this._isInBackground) {\n                this.checkScenesActive();\n                this.setViewProps();\n            }\n        }));\n        this.checkPhoneCall();\n    }\n\n    onShow() {\n        super.onShow();\n        this.checkScenesActive();\n        this.setViewProps();\n        this.checkPhoneCall();\n    }\n\n    checkPhoneCall() {\n        if (PlotManager.getCurrentPlots()[0].plotSceneType === PlotSceneType.PhoneCall) {\n            UIManager.pushPresenter(PhoneCallViewPresenter, undefined);\n        }\n    }\n\n    onEnterForeground() {\n        super.onEnterForeground();\n        this.checkScenesActive();\n        this.setViewProps();\n        this.checkPhoneCall();\n    }\n\n    private checkScenesActive = () => {\n        this._currPlotHasMsg = false;\n        this._scenesActive = GameModelManager.getMessageScenesModel().reduce((pv, v) => (pv[v.id] = this.checkSceneActive(v), pv), {});\n    }\n\n    private checkSceneActive = (model: MessageSceneModel) => {\n        let ret = PlotManager.getCurrentPlots().findIndex(v => v.plotSceneType === PlotSceneType.Message && v.plotSceneTypeId === model.id) >= 0;\n        if (ret) this._currPlotHasMsg = true;\n        return ret;\n    }\n\n    private setViewProps() {\n        this._view.setProps({ // 暂每条只有一个头像,群聊显示单独头像,以后可能群聊显示多人头像\n            items: GameModelManager.getMessageScenesModel().map(\n                v => {\n                    return {\n                        key: v.id + \"\", icons: [GameModelManager.getRoleData(v.config.roles[0])!.getHeadIcon(true)],\n                        title: GameModelManager.getConfigLanguageTxt(v.config.title), lastMsg: getPlotString(v.lastPlot),\n                        redDot: this._scenesActive[v.id]\n                    }\n                }),\n            onItemClick: this.onItemClick\n        });\n    }\n\n    private onItemClick = (key: string) => {\n        console.log(\"item click\", key);\n        let sceneModel = GameModelManager.getMessageSceneModel(parseInt(key));\n        if (!sceneModel) { console.error(\"message scene model not found \", key); return; }\n        UIManager.pushPresenter(ChatListViewPresenter, sceneModel);\n    }\n}"]}