Skip to content

Commit 230e9cf

Browse files
Ability to supply a baseUrl (#4)
* Ability to supply a baseUrl * Update handleEvent.ts --------- Co-authored-by: Marc Veens <[email protected]>
1 parent de84d84 commit 230e9cf

File tree

4 files changed

+9
-3
lines changed

4 files changed

+9
-3
lines changed

src/DrawIoEmbed.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import React from 'react';
1414
export const DrawIoEmbed = forwardRef<DrawIoEmbedRef, DrawIoEmbedProps>(
1515
(props, ref) => {
1616
const {
17+
baseUrl,
1718
urlParameters,
1819
configuration,
1920
xml,
@@ -31,7 +32,7 @@ export const DrawIoEmbed = forwardRef<DrawIoEmbedRef, DrawIoEmbedProps>(
3132

3233
const iframeRef = useRef<HTMLIFrameElement>(null);
3334
const action = useActions(iframeRef);
34-
const iframeUrl = getEmbedUrl(urlParameters, !!configuration);
35+
const iframeUrl = getEmbedUrl(baseUrl, urlParameters, !!configuration);
3536
const [isInitialized, setIsInitialized] = useState(false);
3637

3738
const messageHandler = (evt: MessageEvent) => {

src/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { useActions } from './hooks/useActions';
22

33
export type DrawIoEmbedProps = {
4+
/**
5+
* Base URL for draw.io embed URL. Defaults to https://embed.diagrams.net
6+
*/
7+
baseUrl?: string;
48
/**
59
* Parameters documented at https://www.drawio.com/doc/faq/embed-mode
610
*/

src/utils/getEmbedUrl.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { UrlParameters } from '../types';
22

33
export const getEmbedUrl = (
4+
baseUrl?: string,
45
urlParameters?: UrlParameters,
56
addConfiguration?: boolean
67
) => {
7-
const url = new URL('/', 'https://embed.diagrams.net');
8+
const url = new URL('/', baseUrl ?? 'https://embed.diagrams.net');
89
const urlSearchParams = new URLSearchParams();
910

1011
urlSearchParams.append('proto', 'json');

src/utils/handleEvent.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ type EventHandler = {
55
};
66

77
export function handleEvent(event: MessageEvent, handlers: EventHandler) {
8-
if (!event.origin.includes('embed.diagrams.net')) {
8+
if (!event.origin.includes('embed.diagrams.net') && !event.origin.includes(baseUrl)) {
99
return;
1010
}
1111

0 commit comments

Comments
 (0)