Skip to content

Commit d45f3bb

Browse files
authored
Merge pull request #350 from youda97/tabs
feat(tabs): Add skeleton state
2 parents ce0477a + 606e945 commit d45f3bb

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

src/tabs/tab-headers.component.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,12 @@ import { Tab } from "./tab.component";
2525
@Component({
2626
selector: "ibm-tab-headers",
2727
template: `
28-
<nav class="bx--tabs" role="navigation">
28+
<nav
29+
class="bx--tabs"
30+
[ngClass]="{
31+
'bx--skeleton': skeleton
32+
}"
33+
role="navigation">
2934
<div class="bx--tabs-trigger" tabindex="0" (click)="showTabList()">
3035
<a href="javascript:void(0)" class="bx--tabs-trigger-text" tabindex="-1">
3136
<ng-container *ngIf="!getSelectedTab().headingIsTemplate">
@@ -102,6 +107,10 @@ export class TabHeaders implements AfterViewInit, AfterContentInit {
102107
* @memberof TabHeaders
103108
*/
104109
@Input() followFocus: boolean;
110+
/**
111+
* Set to `true` to put tabs in a loading state.
112+
*/
113+
@Input() skeleton = false;
105114

106115
/**
107116
* Gets the Unordered List element that holds the `Tab` headings from the view DOM.

src/tabs/tabs.component.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,15 @@ import { TabHeaders } from "./tab-headers.component";
4141
template: `
4242
<ibm-tab-headers
4343
*ngIf="hasTabHeaders() && position === 'top'"
44+
[skeleton]="skeleton"
4445
[tabs]="tabs"
4546
[followFocus]="followFocus"
4647
[cacheActive]="cacheActive">
4748
</ibm-tab-headers>
4849
<ng-content></ng-content>
4950
<ibm-tab-headers
5051
*ngIf="hasTabHeaders() && position === 'bottom'"
52+
[skeleton]="skeleton"
5153
[tabs]="tabs"
5254
[cacheActive]="cacheActive">
5355
</ibm-tab-headers>
@@ -71,6 +73,10 @@ export class Tabs implements AfterContentInit {
7173
* @memberof Tabs
7274
*/
7375
@Input() followFocus = true;
76+
/**
77+
* Set to `true` to put tabs in a loading state.
78+
*/
79+
@Input() skeleton = false;
7480

7581
/**
7682
* Maintains a `QueryList` of the `Tab` elements and updates if `Tab`s are added or removed.

src/tabs/tabs.stories.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,12 @@ storiesOf("Tabs", module)
3939
<ibm-tab [heading]="customTab">foo</ibm-tab>
4040
</ibm-tabs>
4141
`
42+
}))
43+
.add("Skeleton", () => ({
44+
template: `
45+
<ibm-tabs skeleton="true">
46+
<ibm-tab></ibm-tab>
47+
<ibm-tab></ibm-tab>
48+
</ibm-tabs>
49+
`
4250
}));

0 commit comments

Comments
 (0)