Skip to content

Commit ec380c9

Browse files
authored
refactor(tile): define header on tile level (#1567)
1 parent 5413ab6 commit ec380c9

File tree

9 files changed

+242
-326
lines changed

9 files changed

+242
-326
lines changed

src/components/common/context.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,12 @@ export type TileManagerContext = {
1414
overlay: Ref<HTMLElement>;
1515
};
1616

17-
export type TileContext = {
18-
/** The igc-tile component instance. */
19-
instance: IgcTileComponent;
20-
/** The fullscreen controller of the igc-tile instance. */
21-
fullscreenController: ReturnType<typeof addFullscreenController>;
22-
};
23-
2417
const carouselContext = createContext<IgcCarouselComponent>(
2518
Symbol('carousel-context')
2619
);
2720

28-
const tileContext = createContext<TileContext>(Symbol('tile-context'));
29-
3021
const tileManagerContext = createContext<TileManagerContext>(
3122
Symbol('tile-manager-context')
3223
);
3324

34-
export { carouselContext, tileContext, tileManagerContext };
25+
export { carouselContext, tileManagerContext };

src/components/tile-manager/themes/tile.base.scss

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,27 @@
7373
transform: scale(0);
7474
z-index: 10;
7575
}
76+
77+
// REVIEW copied from tile-header.base.scss
78+
79+
[part='header'] {
80+
display: flex;
81+
align-items: center;
82+
gap: sizable(rem(12px), rem(16px), rem(16px));
83+
padding-block: sizable(rem(8px), rem(13px), rem(13px));
84+
padding-inline: sizable(rem(12px), rem(16px), rem(20px));
85+
}
86+
87+
::slotted([slot='title']) {
88+
@include type-style('h6');
89+
@include ellipsis();
90+
91+
margin-bottom: 0;
92+
min-width: 2ch;
93+
}
94+
95+
[part='actions'] {
96+
display: flex;
97+
gap: rem(8px);
98+
margin-inline-start: auto;
99+
}

src/components/tile-manager/tile-dnd.spec.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import {
1212
simulatePointerDown,
1313
simulatePointerMove,
1414
} from '../common/utils.spec.js';
15-
import IgcTileHeaderComponent from './tile-header.js';
1615
import IgcTileManagerComponent from './tile-manager.js';
1716
import type IgcTileComponent from './tile.js';
1817

@@ -57,9 +56,7 @@ describe.skip('Tile drag and drop', () => {
5756
const result = Array.from(range(5)).map(
5857
(i) => html`
5958
<igc-tile id="tile${i}">
60-
<igc-tile-header slot="header">
61-
<h3 slot="title">Tile ${i + 1}</h3>
62-
</igc-tile-header>
59+
<h3 slot="title">Tile ${i + 1}</h3>
6360
6461
<div>
6562
<p>Content in tile ${i + 1}</p>
@@ -283,7 +280,8 @@ describe.skip('Tile drag and drop', () => {
283280
});
284281

285282
const dragAndDrop = async (draggedTile: Element, dropTarget: Element) => {
286-
const header = draggedTile.querySelector(IgcTileHeaderComponent.tagName)!;
283+
const header =
284+
draggedTile.shadowRoot?.querySelector('div[part="header"]')!;
287285
const dropTargetRect = dropTarget.getBoundingClientRect();
288286

289287
simulatePointerDown(header);
@@ -377,10 +375,10 @@ describe.skip('Tile drag and drop', () => {
377375
return Promise.resolve();
378376
});
379377

380-
const header = draggedTile.querySelector(IgcTileHeaderComponent.tagName);
378+
const header =
379+
draggedTile.shadowRoot?.querySelector('div[part="header"]');
381380
const actionButtons =
382-
header?.shadowRoot?.querySelectorAll(IgcIconButtonComponent.tagName) ||
383-
[];
381+
header?.querySelectorAll(IgcIconButtonComponent.tagName) || [];
384382
const btnFullscreen = actionButtons[1];
385383
simulateClick(btnFullscreen);
386384
await elementUpdated(tileManager);

src/components/tile-manager/tile-header.ts

Lines changed: 0 additions & 132 deletions
This file was deleted.

0 commit comments

Comments
 (0)