Skip to content

Commit 128bc21

Browse files
authored
Merge pull request #681 from Lemoncode/dev
fix settings size
2 parents 2b4bb14 + 2791c6e commit 128bc21

6 files changed

Lines changed: 50 additions & 10 deletions

File tree

src/core/local-disk/local-disk.model.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { ShapeModel } from '../model';
2+
import { CanvasSize } from '../providers/canvas/canvas.model';
23

34
export interface Page {
45
id: string;
@@ -10,4 +11,5 @@ export interface QuickMockFileContract {
1011
version: string;
1112
pages: Page[];
1213
customColors: (string | null)[];
14+
size: CanvasSize;
1315
}

src/core/local-disk/shapes-to-document.mapper.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { FONT_SIZE_VALUES } from '@/common/components/mock-components/front-components/shape.const';
22
import { ShapeModel } from '../model';
3-
import { DocumentModel } from '../providers/canvas/canvas.model';
3+
import {
4+
createDefaultCanvasSize,
5+
DocumentModel,
6+
} from '../providers/canvas/canvas.model';
47
import { QuickMockFileContract } from './local-disk.model';
58
import { APP_CONSTANTS } from '../providers/canvas/canvas.model';
69

@@ -12,6 +15,7 @@ export const mapFromShapesArrayToQuickMockFileDocument = (
1215
version: '0.2',
1316
pages: fullDocument.pages,
1417
customColors: fullDocument.customColors,
18+
size: fullDocument.size,
1519
};
1620
};
1721

@@ -24,6 +28,7 @@ export const mapFromQuickMockFileDocumentToApplicationDocument = (
2428
customColors:
2529
fileDocument.customColors ||
2630
new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
31+
size: fileDocument.size ?? createDefaultCanvasSize(),
2732
};
2833
};
2934

@@ -129,5 +134,6 @@ export const mapFromQuickMockFileDocumentToApplicationDocumentV0_1 = (
129134
customColors:
130135
fileDocument.customColors ||
131136
new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
137+
size: fileDocument.size,
132138
};
133139
};

src/core/local-disk/shapes-to.document.mapper.spec.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import {
55
} from './shapes-to-document.mapper';
66
import { ShapeModel } from '../model';
77
import { QuickMockFileContract } from './local-disk.model';
8-
import { DocumentModel } from '../providers/canvas/canvas.model';
8+
import {
9+
createDefaultCanvasSize,
10+
DocumentModel,
11+
} from '../providers/canvas/canvas.model';
912
import { APP_CONSTANTS } from '../providers/canvas/canvas.model';
1013

1114
describe('shapes to document mapper', () => {
@@ -35,6 +38,7 @@ describe('shapes to document mapper', () => {
3538
},
3639
],
3740
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
41+
size: createDefaultCanvasSize(),
3842
};
3943

4044
const expectedResult: QuickMockFileContract = {
@@ -47,6 +51,7 @@ describe('shapes to document mapper', () => {
4751
},
4852
],
4953
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
54+
size: createDefaultCanvasSize(),
5055
};
5156
// Act
5257
const result = mapFromShapesArrayToQuickMockFileDocument(document);
@@ -90,6 +95,7 @@ describe('shapes to document mapper', () => {
9095
},
9196
],
9297
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
98+
size: createDefaultCanvasSize(),
9399
};
94100

95101
const expectedResult: QuickMockFileContract = {
@@ -102,6 +108,7 @@ describe('shapes to document mapper', () => {
102108
},
103109
],
104110
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
111+
size: createDefaultCanvasSize(),
105112
};
106113

107114
// Act
@@ -125,6 +132,7 @@ describe('shapes to document mapper', () => {
125132
},
126133
],
127134
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
135+
size: createDefaultCanvasSize(),
128136
};
129137

130138
const expectedResult: DocumentModel = {
@@ -137,6 +145,7 @@ describe('shapes to document mapper', () => {
137145
},
138146
],
139147
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
148+
size: createDefaultCanvasSize(),
140149
};
141150
//act
142151
const result =
@@ -157,6 +166,7 @@ describe('shapes to document mapper', () => {
157166
},
158167
],
159168
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
169+
size: createDefaultCanvasSize(),
160170
};
161171

162172
const expectedResult: DocumentModel = {
@@ -169,6 +179,7 @@ describe('shapes to document mapper', () => {
169179
},
170180
],
171181
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
182+
size: createDefaultCanvasSize(),
172183
};
173184

174185
//act
@@ -201,6 +212,7 @@ describe('shapes to document mapper', () => {
201212
},
202213
],
203214
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
215+
size: createDefaultCanvasSize(),
204216
};
205217

206218
const expectedResult: DocumentModel = {
@@ -224,6 +236,7 @@ describe('shapes to document mapper', () => {
224236
},
225237
],
226238
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
239+
size: createDefaultCanvasSize(),
227240
};
228241

229242
//act
@@ -276,6 +289,7 @@ describe('shapes to document mapper', () => {
276289
},
277290
],
278291
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
292+
size: createDefaultCanvasSize(),
279293
};
280294

281295
const expectedResult: DocumentModel = {
@@ -293,6 +307,7 @@ describe('shapes to document mapper', () => {
293307
},
294308
],
295309
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
310+
size: createDefaultCanvasSize(),
296311
};
297312

298313
//act
@@ -345,6 +360,7 @@ describe('shapes to document mapper', () => {
345360
},
346361
],
347362
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
363+
size: createDefaultCanvasSize(),
348364
};
349365

350366
const expectedResult: DocumentModel = {
@@ -357,6 +373,7 @@ describe('shapes to document mapper', () => {
357373
},
358374
],
359375
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
376+
size: createDefaultCanvasSize(),
360377
};
361378

362379
//act

src/core/providers/canvas/canvas.model.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,17 @@ export interface DocumentModel {
2626
pages: Page[];
2727
activePageIndex: number;
2828
customColors: (string | null)[];
29+
size: {
30+
width: number;
31+
height: number;
32+
};
2933
}
3034

35+
export const createDefaultCanvasSize = (): CanvasSize => ({
36+
width: 3000,
37+
height: 3000,
38+
});
39+
3140
export const createDefaultDocumentModel = (): DocumentModel => ({
3241
activePageIndex: 0,
3342
pages: [
@@ -38,6 +47,7 @@ export const createDefaultDocumentModel = (): DocumentModel => ({
3847
},
3948
],
4049
customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null),
50+
size: createDefaultCanvasSize(),
4151
});
4252

4353
export interface SelectionInfo {

src/core/providers/canvas/canvas.provider.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { createShape } from '@/pods/canvas/model';
66
import { useHistoryManager } from '@/common/undo-redo';
77
import { useStateWithInterceptor } from './canvas.hook';
88
import {
9-
CanvasSize,
9+
createDefaultCanvasSize,
1010
createDefaultDocumentModel,
1111
DocumentModel,
1212
} from './canvas.model';
@@ -30,10 +30,7 @@ export const CanvasProvider: React.FC<Props> = props => {
3030
const [isThumbnailContextMenuVisible, setIsThumbnailContextMenuVisible] =
3131
React.useState(false);
3232
const [howManyLoadedDocuments, setHowManyLoadedDocuments] = React.useState(0);
33-
const [canvasSize, setCanvasSize] = React.useState<CanvasSize>({
34-
width: 3000,
35-
height: 3000,
36-
});
33+
const [canvasSize, setCanvasSize] = React.useState(createDefaultCanvasSize());
3734
const [loadSampleDocument, setLoadSampleDocument] = React.useState(true);
3835

3936
const {
@@ -222,6 +219,8 @@ export const CanvasProvider: React.FC<Props> = props => {
222219
);
223220

224221
const createNewFullDocument = () => {
222+
setDocument(createDefaultDocumentModel());
223+
setCanvasSize(createDefaultCanvasSize());
225224
setDocumentAndMarkDirtyState(createDefaultDocumentModel(), false);
226225
setFileName('');
227226
};
@@ -336,6 +335,7 @@ export const CanvasProvider: React.FC<Props> = props => {
336335
setDocument(document);
337336
setHowManyLoadedDocuments(numberOfDocuments => numberOfDocuments + 1);
338337
setCustomColors(document.customColors);
338+
setCanvasSize(document.size);
339339
};
340340

341341
const [customColors, setCustomColors] = React.useState<(string | null)[]>(
@@ -379,6 +379,7 @@ export const CanvasProvider: React.FC<Props> = props => {
379379
fullDocument: {
380380
...document,
381381
customColors,
382+
size: canvasSize,
382383
},
383384
addNewPage,
384385
duplicatePage,
@@ -392,8 +393,8 @@ export const CanvasProvider: React.FC<Props> = props => {
392393
isThumbnailContextMenuVisible,
393394
setIsThumbnailContextMenuVisible,
394395
howManyLoadedDocuments,
395-
canvasSize: canvasSize,
396-
setCanvasSize: setCanvasSize,
396+
canvasSize,
397+
setCanvasSize,
397398
customColors,
398399
updateColorSlot,
399400
dropRef,

src/pods/canvas/sample-document.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
import { DocumentModel } from '@/core/providers/canvas/canvas.model';
1+
import {
2+
createDefaultCanvasSize,
3+
DocumentModel,
4+
} from '@/core/providers/canvas/canvas.model';
25

36
export const sampleDocument: DocumentModel = {
47
activePageIndex: 0,
@@ -680,4 +683,5 @@ export const sampleDocument: DocumentModel = {
680683
null,
681684
null,
682685
],
686+
size: createDefaultCanvasSize(),
683687
};

0 commit comments

Comments
 (0)