Skip to content

Commit 885790e

Browse files
committed
fix(sidepanel): can' t change backdropClass (#UIM-732) (#704)
1 parent 54bb75b commit 885790e

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

packages/mosaic/sidepanel/sidepanel-config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ export class McSidepanelConfig<D = any> {
2323
/** Whether the sidepanel has a backdrop. */
2424
hasBackdrop?: boolean = true;
2525

26+
backdropClass?: string;
27+
2628
/** When we open multiple sidepanels, backdrop appears only once, except cases then this flag is true. */
2729
requiredBackdrop?: boolean = false;
2830

packages/mosaic/sidepanel/sidepanel.service.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,10 @@ export class McSidepanelService implements OnDestroy {
4747
this.closeSidepanels(this.openedSidepanelsAtThisLevel);
4848
}
4949

50-
open<T, D = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,
51-
config?: McSidepanelConfig<D>): McSidepanelRef<T> {
50+
open<T, D = any>(
51+
componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,
52+
config?: McSidepanelConfig<D>
53+
): McSidepanelRef<T> {
5254
const fullConfig = {
5355
...(this.defaultOptions || new McSidepanelConfig()),
5456
...config
@@ -170,6 +172,10 @@ export class McSidepanelService implements OnDestroy {
170172
}
171173

172174
private getBackdropClass(config: McSidepanelConfig): string {
175+
if (config.hasBackdrop && config.backdropClass) {
176+
return config.backdropClass;
177+
}
178+
173179
const hasOpenedSidepanelWithBackdrop =
174180
this.openedSidepanels.some((sidepanelRef) => sidepanelRef.config.hasBackdrop!);
175181

packages/mosaic/sidepanel/sidepanel.spec.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,12 @@ describe('McSidepanelService', () => {
252252
expect(overlayContainerElement.querySelector('.custom-overlay')).not.toBeNull();
253253
});
254254

255+
it('should be able to set custom backdrop class', () => {
256+
sidepanelService.open(SimpleSidepanelExample, { backdropClass: 'custom-backdrop' });
257+
258+
expect(overlayContainerElement.querySelector('.custom-backdrop')).not.toBeNull();
259+
});
260+
255261
it('should add indent when open more than one sidepanel with same position', () => {
256262
sidepanelService.open(SimpleSidepanelExample);
257263

0 commit comments

Comments
 (0)