Skip to content

Commit 1370fd4

Browse files
committed
Add Glint support to the AuTabs component
1 parent 4862368 commit 1370fd4

File tree

5 files changed

+54
-22
lines changed

5 files changed

+54
-22
lines changed

addon/components/au-tabs.gjs

-13
This file was deleted.

addon/components/au-tabs.gts

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import type { TOC } from '@ember/component/template-only';
2+
3+
export interface AuTabsSignature {
4+
Args: {
5+
reversed?: boolean;
6+
};
7+
Blocks: {
8+
default: [typeof Tab];
9+
};
10+
Element: HTMLElement;
11+
}
12+
13+
const AuTabs: TOC<AuTabsSignature> = <template>
14+
<nav class="au-c-tabs {{if @reversed 'au-c-tabs--reversed'}}" ...attributes>
15+
<ul class="au-c-tabs-list">
16+
{{yield Tab}}
17+
</ul>
18+
</nav>
19+
</template>;
20+
21+
export default AuTabs;
22+
23+
interface TabSignature {
24+
Blocks: {
25+
default: [];
26+
};
27+
Element: HTMLLIElement;
28+
}
29+
30+
const Tab: TOC<TabSignature> = <template>
31+
<li class="au-c-tabs-list__item" ...attributes>
32+
{{yield}}
33+
</li>
34+
</template>;

addon/template-registry.ts

+2
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import type AuPill from '@appuniversum/ember-appuniversum/components/au-pill';
3838
import type AuRadioGroup from '@appuniversum/ember-appuniversum/components/au-radio-group';
3939
import type AuRadio from '@appuniversum/ember-appuniversum/components/au-radio';
4040
import type AuTable from '@appuniversum/ember-appuniversum/components/au-table';
41+
import type AuTabs from '@appuniversum/ember-appuniversum/components/au-tabs';
4142
import type AuToolbar from '@appuniversum/ember-appuniversum/components/au-toolbar';
4243

4344
// Modifiers
@@ -84,6 +85,7 @@ export default interface AppuniversumRegistry {
8485
AuRadioGroup: typeof AuRadioGroup;
8586
AuRadio: typeof AuRadio;
8687
AuTable: typeof AuTable;
88+
AuTabs: typeof AuTabs;
8789
AuToolbar: typeof AuToolbar;
8890

8991
// Modifiers

tests/integration/components/au-tabs-test.js tests/integration/components/au-tabs-test.gts

+11-9
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
1-
import { module, test } from 'qunit';
2-
import { setupRenderingTest } from 'ember-qunit';
1+
import AuTabs from '@appuniversum/ember-appuniversum/components/au-tabs';
32
import { render } from '@ember/test-helpers';
4-
import { hbs } from 'ember-cli-htmlbars';
3+
import { setupRenderingTest } from 'ember-qunit';
4+
import { module, test } from 'qunit';
55

66
module('Integration | Component | au-tabs', function (hooks) {
77
setupRenderingTest(hooks);
88

99
test('it yields a `Tab` component', async function (assert) {
10-
await render(hbs`
11-
<AuTabs data-test-tabs as |Tab|>
12-
<Tab data-test-tab="foo">Foo</Tab>
13-
<Tab data-test-tab="bar">Bar</Tab>
14-
</AuTabs>
15-
`);
10+
await render(
11+
<template>
12+
<AuTabs data-test-tabs as |Tab|>
13+
<Tab data-test-tab="foo">Foo</Tab>
14+
<Tab data-test-tab="bar">Bar</Tab>
15+
</AuTabs>
16+
</template>,
17+
);
1618

1719
assert.dom('[data-test-tabs] [data-test-tab]').exists({ count: 2 });
1820
assert.dom('[data-test-tab="foo"]').hasText('Foo');

tests/integration/components/loose-mode-test.ts

+7
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,13 @@ module('Integration | Component | Loose mode', function (hooks) {
276276
assert.dom('[data-test-table]').exists();
277277
});
278278

279+
test('`<AuTabs>` resolves in loose mode', async function (assert) {
280+
await render(hbs`
281+
<AuTabs data-test-tabs />
282+
`);
283+
assert.dom('[data-test-tabs]').exists();
284+
});
285+
279286
test('`<AuToolbar>` resolves in loose mode', async function (assert) {
280287
await render(hbs`
281288
<AuToolbar data-test-toolbar></AuToolbar>

0 commit comments

Comments
 (0)