@@ -5,12 +5,14 @@ import type { IntegrationFn } from '@sentry/types';
5
5
6
6
interface ReplayCanvasOptions {
7
7
enableManualSnapshot ?: boolean ;
8
+ maxCanvasSize ?: [ width : number , height : number ] ;
8
9
quality : 'low' | 'medium' | 'high' ;
9
10
}
10
11
11
12
type GetCanvasManager = ( options : CanvasManagerOptions ) => CanvasManagerInterface ;
12
13
export interface ReplayCanvasIntegrationOptions {
13
14
enableManualSnapshot ?: boolean ;
15
+ maxCanvasSize ?: number ;
14
16
recordCanvas : true ;
15
17
getCanvasManager : GetCanvasManager ;
16
18
sampling : {
@@ -59,6 +61,7 @@ export const _replayCanvasIntegration = ((options: Partial<ReplayCanvasOptions>
59
61
const _canvasOptions = {
60
62
quality : options . quality || 'medium' ,
61
63
enableManualSnapshot : options . enableManualSnapshot ,
64
+ maxCanvasSize : options . maxCanvasSize || [ 1280 , 1280 ] ,
62
65
} ;
63
66
64
67
let canvasManagerResolve : ( value : CanvasManager ) => void ;
@@ -67,15 +70,16 @@ export const _replayCanvasIntegration = ((options: Partial<ReplayCanvasOptions>
67
70
return {
68
71
name : INTEGRATION_NAME ,
69
72
getOptions ( ) : ReplayCanvasIntegrationOptions {
70
- const { quality, enableManualSnapshot } = _canvasOptions ;
73
+ const { quality, enableManualSnapshot, maxCanvasSize } = _canvasOptions ;
71
74
72
75
return {
73
76
enableManualSnapshot,
74
77
recordCanvas : true ,
75
- getCanvasManager : ( options : CanvasManagerOptions ) => {
78
+ getCanvasManager : ( getCanvasManagerOptions : CanvasManagerOptions ) => {
76
79
const manager = new CanvasManager ( {
77
- ...options ,
80
+ ...getCanvasManagerOptions ,
78
81
enableManualSnapshot,
82
+ maxCanvasSize,
79
83
errorHandler : ( err : unknown ) => {
80
84
try {
81
85
if ( typeof err === 'object' ) {
0 commit comments