mirror of
https://github.com/sinanyuntu/trade-message-center.git
synced 2026-09-17 13:22:11 +08:00
* feat: add OneTalk quote reply support * chore(task): archive 09-17-onetalk-quote-reply-protocol * chore: record journal * docs: format OneTalk DOM card collection plan * chore: release 0.8.29 * chore: release 0.8.30
64 lines
3.0 KiB
TypeScript
64 lines
3.0 KiB
TypeScript
// 启动 OneTalk 页面监听与当前会话同步能力
|
|
|
|
import { installOneTalkConversationIdCopyControl } from "./dom/conversation-id-copy.ts";
|
|
import {
|
|
installOneTalkActionStatusTooltip,
|
|
readOneTalkActionStatusTooltip,
|
|
} from "./dom/action-status-tooltip.ts";
|
|
import { ConnectionStatusTooltip } from "./connection-status-tooltip.ts";
|
|
import { BindingStatusTooltip } from "./binding-status-tooltip.ts";
|
|
import { HistoryBootstrapProgressTooltip } from "./current-conversation-history/bootstrap-progress-tooltip.ts";
|
|
import { createSendObservationCorrelator } from "./message-observer/send-observation.ts";
|
|
import { createOneTalkQuoteSourceIndex } from "./message-observer/quote-source-index.ts";
|
|
import { installOneTalkContactProfileObserver } from "./contact-observer/entry.ts";
|
|
import { installOneTalkCollectionObservers } from "./collection/entry.ts";
|
|
import { installOneTalkRenderedCardObserver } from "./card-observer/entry.ts";
|
|
import { createOneTalkObservedPublisher } from "./collection/observed-publisher.ts";
|
|
import { createOneTalkPageCommandHandler } from "./commands/index.ts";
|
|
import {
|
|
createOneTalkPageBuyerFactsObservedSink,
|
|
createOneTalkPageRenderedCardObservedSink,
|
|
createOneTalkPageObservedSink,
|
|
createOneTalkPageProfileObservedSink,
|
|
installOneTalkMainPageBridge,
|
|
} from "../page-bridge/main.ts";
|
|
|
|
/** 启动 main-page 目录下的全部 OneTalk 页面能力。 */
|
|
const installOneTalkPageFeatures = (): void => {
|
|
installOneTalkActionStatusTooltip(window);
|
|
const tooltip = readOneTalkActionStatusTooltip(window);
|
|
if (!tooltip) throw new Error("onetalk_action_status_tooltip_unavailable");
|
|
const historyBootstrapProgress = new HistoryBootstrapProgressTooltip(tooltip);
|
|
const connectionStatus = new ConnectionStatusTooltip(tooltip);
|
|
const bindingStatus = new BindingStatusTooltip(tooltip);
|
|
installOneTalkConversationIdCopyControl(window);
|
|
const sendObservation = createSendObservationCorrelator();
|
|
const quoteSources = createOneTalkQuoteSourceIndex();
|
|
const profileObserver = installOneTalkContactProfileObserver(
|
|
window,
|
|
createOneTalkPageProfileObservedSink(window),
|
|
);
|
|
const observedSink = createOneTalkPageObservedSink(window);
|
|
const buyerFactSink = createOneTalkPageBuyerFactsObservedSink(window);
|
|
const renderedCardSink = createOneTalkPageRenderedCardObservedSink(window);
|
|
const publish = createOneTalkObservedPublisher(observedSink, sendObservation.observe);
|
|
const onCommand = createOneTalkPageCommandHandler(window, {
|
|
sendObservation,
|
|
quoteSources,
|
|
observedSink: publish,
|
|
profileObserver,
|
|
historyBootstrapProgress,
|
|
});
|
|
installOneTalkMainPageBridge(
|
|
window,
|
|
onCommand,
|
|
undefined,
|
|
(disconnected) => connectionStatus.update(disconnected),
|
|
(unbound) => bindingStatus.update(unbound),
|
|
);
|
|
installOneTalkCollectionObservers(window, publish, buyerFactSink, quoteSources);
|
|
installOneTalkRenderedCardObserver(window, renderedCardSink);
|
|
};
|
|
|
|
installOneTalkPageFeatures();
|