Skip to content

Commit 8bceb98

Browse files
authored
fix: nav works for addons with no modules (#357)
1 parent 5b2ed21 commit 8bceb98

File tree

7 files changed

+57
-19
lines changed

7 files changed

+57
-19
lines changed

addon/components/docs-viewer/x-autogenerated-api-docs/component.js

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -58,30 +58,33 @@ export default Component.extend({
5858
```
5959
*/
6060
moduleIndex: computed(function() {
61-
let modules = this.get('sections').filter(section => section.type === 'modules')[0].items;
61+
let modulesSection = this.get('sections').filter(section => section.type === 'modules')[0];
62+
63+
if (modulesSection) {
64+
let modules = modulesSection.items;
6265

63-
/*
66+
/*
6467
Intermediate data structure:
6568
6669
```
6770
{
68-
'@ember-cli-addon-docs': {
69-
'keyboard-config': {},
70-
'router': {},
71-
'utils': {
72-
'compile-markdown': {}
73-
}
74-
}
71+
'@ember-cli-addon-docs': {
72+
'keyboard-config': {},
73+
'router': {},
74+
'utils': {
75+
'compile-markdown': {}
76+
}
77+
}
7578
};
7679
```
77-
*/
78-
let index = {};
79-
modules.forEach(module => {
80-
let parts = module.id.split('/');
81-
_set(index, parts, {});
82-
});
80+
*/
81+
let index = {};
82+
modules.forEach(module => {
83+
let parts = module.id.split('/');
84+
_set(index, parts, {});
85+
});
8386

84-
let transform = (obj, id) => Object.keys(obj)
87+
let transform = (obj, id) => Object.keys(obj)
8588
.map(key => {
8689
let node = {
8790
name: key
@@ -96,7 +99,8 @@ export default Component.extend({
9699
return node;
97100
});
98101

99-
return transform(index)[0];
102+
return transform(index)[0];
103+
}
100104
})
101105

102106
});

addon/components/docs-viewer/x-autogenerated-api-docs/template.hbs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99
{{/each}}
1010
{{/each}}
1111

12-
{{docs-viewer/x-section 'Modules'}}
12+
{{#if this.moduleIndex}}
13+
{{docs-viewer/x-section 'Modules'}}
1314

14-
{{docs-viewer/x-autogenerated-api-docs/module-nav node=this.moduleIndex root=root}}
15+
{{docs-viewer/x-autogenerated-api-docs/module-nav node=this.moduleIndex root=root}}
16+
{{/if}}
1517

1618
{{/if}}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import Component from '@ember/component';
2+
3+
/**
4+
An autodocumented component.
5+
6+
@class SomeComponent
7+
@public
8+
*/
9+
export default Component.extend({
10+
11+
12+
});

test-apps/new-addon/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
},
2525
"devDependencies": {
2626
"ember-cli-addon-docs": "*",
27+
"ember-cli-addon-docs-yuidoc": "*",
2728
"broccoli-asset-rev": "*",
2829
"ember-cli": "*",
2930
"ember-cli-dependency-checker": "*",

test-apps/new-addon/tests/acceptance/sanity-checks-test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,10 @@ module('Acceptance | sanity checks test', function(hooks) {
2727
backgroundColor: 'rgb(40, 44, 52)'
2828
});
2929
});
30+
31+
test('the docs route & viewer render', async function(assert) {
32+
await visit('/docs');
33+
34+
assert.dom().includesText('Overview');
35+
});
3036
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{{#docs-viewer as |viewer|}}
2+
{{#viewer.nav as |nav|}}
3+
{{nav.section 'Introduction'}}
4+
{{nav.item 'Overview' 'docs.index'}}
5+
{{/viewer.nav}}
6+
7+
{{#viewer.main}}
8+
{{outlet}}
9+
{{/viewer.main}}
10+
{{/docs-viewer}}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Overview
2+
3+
Hello, world.

0 commit comments

Comments
 (0)