@@ -92,6 +92,8 @@ const EmptySet = new Set<string>();
92
92
93
93
export const CanvasView = React . memo ( ( props : ContainerBaseProps ) => {
94
94
const currentTheme = useContext ( ThemeContext ) ?. theme ;
95
+ const isDefaultTheme = useContext ( ThemeContext ) ?. themeId === 'default-theme-id' ;
96
+ const isPreviewTheme = useContext ( ThemeContext ) ?. themeId === 'preview-theme' ;
95
97
const editorState = useContext ( EditorContext ) ;
96
98
const [ dragSelectedComps , setDragSelectedComp ] = useState ( EmptySet ) ;
97
99
const scrollContainerRef = useRef ( null ) ;
@@ -124,6 +126,8 @@ export const CanvasView = React.memo((props: ContainerBaseProps) => {
124
126
125
127
const bgColor = useMemo (
126
128
( ) => {
129
+ if ( isPreviewTheme ) return currentTheme ?. canvas ?? defaultTheme . canvas ;
130
+
127
131
const themeGridBgColor = preventStylesOverwriting ? undefined : currentTheme ?. canvas ;
128
132
return themeGridBgColor || appSettings . gridBg || defaultTheme . canvas ;
129
133
} ,
@@ -132,6 +136,8 @@ export const CanvasView = React.memo((props: ContainerBaseProps) => {
132
136
133
137
const bgImage = useMemo (
134
138
( ) => {
139
+ if ( isPreviewTheme ) return currentTheme ?. gridBgImage ;
140
+
135
141
const themeGridBgImage = preventStylesOverwriting ? undefined : currentTheme ?. gridBgImage ;
136
142
return themeGridBgImage || appSettings . gridBgImage ;
137
143
} ,
@@ -140,34 +146,44 @@ export const CanvasView = React.memo((props: ContainerBaseProps) => {
140
146
141
147
const bgImageRepeat = useMemo (
142
148
( ) => {
149
+ if ( isPreviewTheme ) return currentTheme ?. gridBgImageRepeat ?? defaultTheme . gridBgImageRepeat ;
150
+
143
151
const themeGridBgImageRepeat = preventStylesOverwriting ? undefined : currentTheme ?. gridBgImageRepeat ;
144
152
return themeGridBgImageRepeat || appSettings . gridBgImageRepeat || defaultTheme ?. gridBgImageRepeat ;
145
153
} ,
146
154
[ preventStylesOverwriting , appSettings , currentTheme , defaultTheme ] ,
147
155
) ;
148
156
const bgImageSize = useMemo (
149
157
( ) => {
158
+ if ( isPreviewTheme ) return currentTheme ?. gridBgImageSize ?? defaultTheme . gridBgImageSize ;
159
+
150
160
const themeGridBgImageSize = preventStylesOverwriting ? undefined : currentTheme ?. gridBgImageSize ;
151
161
return themeGridBgImageSize || appSettings . gridBgImageSize || defaultTheme ?. gridBgImageSize ;
152
162
} ,
153
163
[ preventStylesOverwriting , appSettings , currentTheme , defaultTheme ] ,
154
164
) ;
155
165
const bgImagePosition = useMemo (
156
166
( ) => {
167
+ if ( isPreviewTheme ) return currentTheme ?. gridBgImagePosition ?? defaultTheme . gridBgImagePosition ;
168
+
157
169
const themeGridBgImagePosition = preventStylesOverwriting ? undefined : currentTheme ?. gridBgImagePosition ;
158
170
return themeGridBgImagePosition || appSettings . gridBgImagePosition || defaultTheme ?. gridBgImagePosition ;
159
171
} ,
160
172
[ preventStylesOverwriting , appSettings , currentTheme , defaultTheme ] ,
161
173
) ;
162
174
const bgImageOrigin = useMemo (
163
175
( ) => {
176
+ if ( isPreviewTheme ) return currentTheme ?. gridBgImageOrigin ?? defaultTheme . gridBgImageOrigin ;
177
+
164
178
const themeGridBgImageOrigin = preventStylesOverwriting ? undefined : currentTheme ?. gridBgImageOrigin ;
165
179
return themeGridBgImageOrigin || appSettings . gridBgImageOrigin || defaultTheme ?. gridBgImageOrigin ;
166
180
} ,
167
181
[ preventStylesOverwriting , appSettings , currentTheme , defaultTheme ] ,
168
182
) ;
169
183
170
184
const defaultGrid = useMemo ( ( ) => {
185
+ if ( isPreviewTheme ) return currentTheme ?. gridColumns ?? defaultTheme . gridColumns ?? String ( DEFAULT_GRID_COLUMNS ) ;
186
+
171
187
const themeGridColumns = preventStylesOverwriting ? undefined : currentTheme ?. gridColumns ;
172
188
return themeGridColumns
173
189
|| String ( appSettings ?. gridColumns )
@@ -176,6 +192,8 @@ export const CanvasView = React.memo((props: ContainerBaseProps) => {
176
192
} , [ preventStylesOverwriting , appSettings , currentTheme , defaultTheme ] ) ;
177
193
178
194
const defaultRowHeight = useMemo ( ( ) => {
195
+ if ( isPreviewTheme ) return currentTheme ?. gridRowHeight ?? defaultTheme . gridRowHeight ?? String ( DEFAULT_ROW_HEIGHT ) ;
196
+
179
197
const themeGridRowHeight = preventStylesOverwriting ? undefined : currentTheme ?. gridRowHeight ;
180
198
return themeGridRowHeight
181
199
|| String ( appSettings ?. gridRowHeight )
@@ -184,6 +202,8 @@ export const CanvasView = React.memo((props: ContainerBaseProps) => {
184
202
} , [ preventStylesOverwriting , appSettings , currentTheme , defaultTheme ] ) ;
185
203
186
204
const defaultRowCount = useMemo ( ( ) => {
205
+ if ( isPreviewTheme ) return currentTheme ?. gridRowCount ?? defaultTheme . gridRowCount ;
206
+
187
207
const themeGridRowCount = preventStylesOverwriting ? undefined : currentTheme ?. gridRowCount ;
188
208
return themeGridRowCount
189
209
|| appSettings ?. gridRowCount
@@ -192,13 +212,20 @@ export const CanvasView = React.memo((props: ContainerBaseProps) => {
192
212
} , [ preventStylesOverwriting , appSettings , currentTheme , defaultTheme ] ) ;
193
213
194
214
const defaultContainerPadding : [ number , number ] = useMemo ( ( ) => {
195
- if ( isMobile ) return DEFAULT_MOBILE_PADDING ;
215
+ const DEFAULT_PADDING = isMobile ? DEFAULT_MOBILE_PADDING : DEFAULT_CONTAINER_PADDING ;
216
+
217
+ if ( isPreviewTheme ) {
218
+ return [
219
+ currentTheme ?. gridPaddingX ?? defaultTheme . gridPaddingX ?? DEFAULT_PADDING [ 0 ] ,
220
+ currentTheme ?. gridPaddingY ?? defaultTheme . gridPaddingY ?? DEFAULT_PADDING [ 1 ] ,
221
+ ] ;
222
+ }
196
223
197
- const themeGridPaddingX = preventStylesOverwriting ? undefined : currentTheme ?. gridPaddingX ;
198
- const themeGridPaddingY = preventStylesOverwriting ? undefined : currentTheme ?. gridPaddingY ;
224
+ const themeGridPaddingX = preventStylesOverwriting || isDefaultTheme ? undefined : currentTheme ?. gridPaddingX ;
225
+ const themeGridPaddingY = preventStylesOverwriting || isDefaultTheme ? undefined : currentTheme ?. gridPaddingY ;
199
226
200
- let paddingX = themeGridPaddingX || appSettings ?. gridPaddingX || defaultTheme ?. gridPaddingX || DEFAULT_CONTAINER_PADDING [ 0 ] ;
201
- let paddingY = themeGridPaddingY || appSettings ?. gridPaddingY || defaultTheme ?. gridPaddingY || DEFAULT_CONTAINER_PADDING [ 1 ] ;
227
+ let paddingX = themeGridPaddingX ?? appSettings ?. gridPaddingX ?? defaultTheme ?. gridPaddingX ?? DEFAULT_PADDING [ 0 ] ;
228
+ let paddingY = themeGridPaddingY ?? appSettings ?. gridPaddingY ?? defaultTheme ?. gridPaddingY ?? DEFAULT_PADDING [ 1 ] ;
202
229
203
230
return [ paddingX , paddingY ] ;
204
231
} , [ preventStylesOverwriting , appSettings , isMobile , currentTheme , defaultTheme ] ) ;
0 commit comments