1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-27 10:32:58 +02:00
joplin/packages/pdf-viewer/messageService.ts

37 lines
945 B
TypeScript
Raw Normal View History

export default class MessageService {
private viewerType: string;
public constructor(type: string) {
this.viewerType = type;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied
private sendMessage = (name: string, data?: any) => {
if (this.viewerType === 'full') {
const message = {
name,
...data,
};
window.postMessage(message, '*');
} else if (this.viewerType === 'mini') {
const message = {
name,
data,
target: 'webview',
};
window.parent.postMessage(message, '*');
}
};
public textSelected = (text: string) => {
this.sendMessage('textSelected', { text });
};
public close = () => {
this.sendMessage('close');
};
public openExternalViewer = () => {
this.sendMessage('externalViewer');
};
public openFullScreenViewer = (resourceId: string, pageNo: number) => {
this.sendMessage('openPdfViewer', { resourceId, pageNo });
};
}