react-vnc
Version:
A React Component to connect to a websockified VNC client using noVNC.
54 lines (53 loc) • 1.88 kB
TypeScript
import { default as React } from 'react';
import { default as RFB, NoVncEventType, NoVncEvents, NoVncOptions } from '@novnc/novnc/lib/rfb';
type EventListeners = {
[T in NoVncEventType]?: (event: NoVncEvents[T]) => void;
};
export interface Props {
url?: string;
websocket?: WebSocket;
style?: object;
className?: string;
viewOnly?: boolean;
rfbOptions?: Partial<NoVncOptions>;
focusOnClick?: boolean;
clipViewport?: boolean;
dragViewport?: boolean;
scaleViewport?: boolean;
resizeSession?: boolean;
showDotCursor?: boolean;
background?: string;
qualityLevel?: number;
compressionLevel?: number;
autoConnect?: boolean;
retryDuration?: number;
debug?: boolean;
onConnect?: EventListeners['connect'];
onDisconnect?: EventListeners['disconnect'];
onCredentialsRequired?: EventListeners['credentialsrequired'];
onSecurityFailure?: EventListeners['securityfailure'];
onClipboard?: EventListeners['clipboard'];
onBell?: EventListeners['bell'];
onDesktopName?: EventListeners['desktopname'];
onCapabilities?: EventListeners['capabilities'];
onClippingViewport?: EventListeners['clippingviewport'];
}
export type VncScreenHandle = {
connect: () => void;
disconnect: () => void;
connected: boolean;
sendCredentials: (credentials: NoVncOptions["credentials"]) => void;
sendKey: (keysym: number, code: string, down?: boolean) => void;
sendCtrlAltDel: () => void;
focus: () => void;
blur: () => void;
machineShutdown: () => void;
machineReboot: () => void;
machineReset: () => void;
clipboardPaste: (text: string) => void;
rfb: RFB | null;
loading: boolean;
eventListeners: EventListeners;
};
declare const _default: React.ForwardRefExoticComponent<Props & React.RefAttributes<VncScreenHandle>>;
export default _default;