Skip to content

Commit 8d3d4d2

Browse files
author
William Gorge
committed
LKE-13676 fix: limit thumbnail size
1 parent 07b1c02 commit 8d3d4d2

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/api/Visualization/types.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,17 @@ export interface IVisualizationTimeline {
148148
}
149149

150150
export interface VisualizationThumbnailData {
151-
svg: string;
151+
svg: string; // Should not exceed a certain size, cf isThumbnailTooLarge
152+
}
153+
154+
export const MAX_VISUALIZATION_THUMBNAIL_SIZE_BYTES = 2_097_152; // 2MB
155+
156+
export function isThumbnailTooLarge(
157+
thumbnail: VisualizationThumbnailData | null | undefined
158+
): boolean {
159+
const thumbnailContent = thumbnail?.svg ?? '';
160+
const thumbnailSizeBytes = new TextEncoder().encode(thumbnailContent).byteLength;
161+
return thumbnailSizeBytes > MAX_VISUALIZATION_THUMBNAIL_SIZE_BYTES;
152162
}
153163

154164
export interface BaseVisualization {
@@ -222,7 +232,7 @@ export interface ICreateVisualizationParams extends IDataSourceParams {
222232
timeline?: IVisualizationTimeline;
223233
layout?: VisualizationLayout;
224234
geo?: IVisualizationGeo;
225-
thumbnail?: VisualizationThumbnailData;
235+
thumbnail?: VisualizationThumbnailData | null; // Set explicitly to null to remove an existing thumbnail
226236
}
227237

228238
export interface IDuplicateVisualizationParams extends IDataSourceParams {

0 commit comments

Comments
 (0)