Skip to content

Commit 565df59

Browse files
committed
Don’t export default
Exporting default makes it difficult to stitch all the typescript declaration files together
1 parent 9815006 commit 565df59

24 files changed

+132
-154
lines changed

sampleApp/sample.tsx

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import * as React from 'react';
22
import * as ReactDOM from 'react-dom';
33

4-
import OneNotePicker from '../src/oneNotePicker';
5-
import GlobalProps from '../src/props/globalProps';
6-
import OneNoteDataProvider from '../src/providers/oneNoteDataProvider';
7-
import Notebook from '../src/oneNoteDataStructures/notebook';
8-
import NotebookListUpdater from '../src/oneNoteDataStructures/notebookListUpdater';
9-
import SampleOneNoteDataProvider from './sampleOneNoteDataProvider';
4+
import {OneNotePicker} from '../src/oneNotePicker';
5+
import {GlobalProps} from '../src/props/globalProps';
6+
import {OneNoteDataProvider} from '../src/providers/oneNoteDataProvider';
7+
import {Notebook} from '../src/oneNoteDataStructures/notebook';
8+
import {NotebookListUpdater} from '../src/oneNoteDataStructures/notebookListUpdater';
9+
import {SampleOneNoteDataProvider} from './sampleOneNoteDataProvider';
1010

1111
let oneNoteDataProvider: OneNoteDataProvider = new SampleOneNoteDataProvider();
1212

1313
let render = (globalProps: GlobalProps, notebooks: Notebook[]) => {
1414
ReactDOM.render(
15-
<OneNotePicker globals={globalProps.globals} notebooks={notebooks} />,
15+
<OneNotePicker globals={globalProps.globals} notebooks={notebooks}/>,
1616
document.getElementById('oneNotePicker') as HTMLElement
1717
);
1818
};

sampleApp/sampleOneNoteDataProvider.ts

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import '../node_modules/onenoteapi/target/oneNoteApi';
22

3-
import OneNoteDataProvider from '../src/providers/oneNoteDataProvider';
4-
import Notebook from '../src/oneNoteDataStructures/notebook';
5-
import Section from '../src/oneNoteDataStructures/section';
6-
import Page from '../src/oneNoteDataStructures/page';
7-
import OneNoteApiResponseTransformer from '../src/oneNoteDataStructures/oneNoteApiResponseTransformer';
3+
import {OneNoteDataProvider} from '../src/providers/oneNoteDataProvider';
4+
import {Notebook} from '../src/oneNoteDataStructures/notebook';
5+
import {Section} from '../src/oneNoteDataStructures/section';
6+
import {Page} from '../src/oneNoteDataStructures/page';
7+
import {OneNoteApiResponseTransformer} from '../src/oneNoteDataStructures/oneNoteApiResponseTransformer';
88

99
let mockResponse: OneNoteApi.ResponsePackage<any> = {
1010
parsedResponse: JSON.parse(`{
@@ -213,7 +213,7 @@ let mockResponse: OneNoteApi.ResponsePackage<any> = {
213213
request: new XMLHttpRequest()
214214
};
215215

216-
class SampleOneNoteDataProvider implements OneNoteDataProvider {
216+
export class SampleOneNoteDataProvider implements OneNoteDataProvider {
217217
getNotebooks(): Promise<Notebook[]> {
218218
let responseTransformer = new OneNoteApiResponseTransformer();
219219
let notebooks = responseTransformer.transformNotebooks(mockResponse.parsedResponse.value);
@@ -222,9 +222,7 @@ class SampleOneNoteDataProvider implements OneNoteDataProvider {
222222

223223
getPages(section: Section): Promise<Page[]> {
224224
let id = '' + (Math.floor(Math.random() * 500000));
225-
let pages = [{ parent: section, id: id, name: 'Page:' + id }];
225+
let pages = [{parent: section, id: id, name: 'Page:' + id}];
226226
return Promise.resolve(pages);
227227
}
228228
}
229-
230-
export default SampleOneNoteDataProvider;

sampleApp/standalone.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
];
2929

3030
ReactDOM.render(
31-
React.createElement(OneNotePicker.default, { globals: mockGlobals, notebooks: mockNotebooks}, null),
31+
React.createElement(OneNotePicker.OneNotePicker, { globals: mockGlobals, notebooks: mockNotebooks}, null),
3232
document.getElementById('oneNotePicker'));
3333
</script>
3434
</body>

src/components/notebookItem.tsx

+17-13
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import * as React from 'react';
22

3-
import SectionItem from './sectionItem';
4-
import SectionGroupItem from './sectionGroupItem';
5-
import GlobalProps from '../props/globalProps';
6-
import Notebook from '../oneNoteDataStructures/notebook';
7-
import OneNoteItemUtils from '../oneNoteDataStructures/oneNoteItemUtils';
3+
import {SectionItem} from './sectionItem';
4+
import {SectionGroupItem} from './sectionGroupItem';
5+
import {GlobalProps} from '../props/globalProps';
6+
import {Notebook} from '../oneNoteDataStructures/notebook';
7+
import {OneNoteItemUtils} from '../oneNoteDataStructures/oneNoteItemUtils';
88

99
export interface NotebookItemProps extends GlobalProps {
1010
notebook: Notebook;
@@ -17,7 +17,7 @@ export interface NotebookItemState {
1717
export class NotebookItem extends React.Component<NotebookItemProps, NotebookItemState> {
1818
constructor(props) {
1919
super(props);
20-
this.state = { expanded: props.expanded };
20+
this.state = {expanded: props.expanded};
2121
}
2222

2323
private onClick() {
@@ -28,7 +28,7 @@ export class NotebookItem extends React.Component<NotebookItemProps, NotebookIte
2828

2929
// We are only interested in expanding if either sections/pages are deemed selectable
3030
if (this.isExpandable()) {
31-
this.setState({ expanded: !this.state.expanded });
31+
this.setState({expanded: !this.state.expanded});
3232
}
3333
}
3434

@@ -46,21 +46,25 @@ export class NotebookItem extends React.Component<NotebookItemProps, NotebookIte
4646

4747
return (
4848
<li aria-selected={isSelected} aria-expanded={this.state.expanded} role='treeitem'>
49-
<a className={isSelected ? 'picker-selectedItem' : ''} onClick={this.onClick.bind(this)} tabIndex={0} href='#'>
49+
<a className={isSelected ? 'picker-selectedItem' : ''} onClick={this.onClick.bind(this)} tabIndex={0}
50+
href='#'>
5051
<div className='picker-icon-left'>
5152
<img src={require('../images/notebook_icon.png')}/>
5253
</div>
5354
<div>
5455
<label className='ms-fontSize-sPlus'>{this.props.notebook.name}</label>
5556
</div>
5657
</a>
57-
<ul role='group' className='picker-list-header' style={this.state.expanded ? { display: 'block' } : { display: 'none' }}>
58-
{this.props.notebook.sectionGroups.map(sectionGroup => <SectionGroupItem globals={this.props.globals} sectionGroup={sectionGroup} key={sectionGroup.name}></SectionGroupItem>)}
59-
{this.props.notebook.sections.map(section => <SectionItem globals={this.props.globals} section={section} key={section.name}></SectionItem>)}
58+
<ul role='group' className='picker-list-header'
59+
style={this.state.expanded ? {display: 'block'} : {display: 'none'}}>
60+
{this.props.notebook.sectionGroups.map(sectionGroup => <SectionGroupItem
61+
globals={this.props.globals} sectionGroup={sectionGroup}
62+
key={sectionGroup.name}></SectionGroupItem>)}
63+
{this.props.notebook.sections.map(section => <SectionItem globals={this.props.globals}
64+
section={section}
65+
key={section.name}></SectionItem>)}
6066
</ul>
6167
</li>
6268
);
6369
}
6470
}
65-
66-
export default NotebookItem;

src/components/pageItem.tsx

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import * as React from 'react';
22

3-
import GlobalProps from '../props/globalProps';
4-
import Page from '../oneNoteDataStructures/page';
5-
import OneNoteItemUtils from '../oneNoteDataStructures/oneNoteItemUtils';
3+
import {GlobalProps} from '../props/globalProps';
4+
import {Page} from '../oneNoteDataStructures/page';
5+
import {OneNoteItemUtils} from '../oneNoteDataStructures/oneNoteItemUtils';
66

77
export interface PageItemProps extends GlobalProps {
88
page: Page;
@@ -26,7 +26,8 @@ export class PageItem extends React.Component<PageItemProps, null> {
2626
// TODO image is a placeholder as we don't support pages yet
2727
return (
2828
<li aria-selected={isSelected} role='treeitem'>
29-
<a className={isSelected ? 'picker-selectedItem' : ''} onClick={this.onClick.bind(this)} tabIndex={0} href='#'>
29+
<a className={isSelected ? 'picker-selectedItem' : ''} onClick={this.onClick.bind(this)} tabIndex={0}
30+
href='#'>
3031
<div className='picker-icon-left'>
3132
<img src={require('../images/section_icon.png')}/>
3233
</div>
@@ -38,5 +39,3 @@ export class PageItem extends React.Component<PageItemProps, null> {
3839
);
3940
}
4041
}
41-
42-
export default PageItem;

src/components/sectionGroupItem.tsx

+13-10
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import * as React from 'react';
22

3-
import SectionItem from './sectionItem';
4-
import GlobalProps from '../props/globalProps';
5-
import SectionGroup from '../oneNoteDataStructures/sectionGroup';
3+
import {SectionItem} from './sectionItem';
4+
import {GlobalProps} from '../props/globalProps';
5+
import {SectionGroup} from '../oneNoteDataStructures/sectionGroup';
66

77
export interface SectionGroupItemProps extends GlobalProps {
88
sectionGroup: SectionGroup;
@@ -15,13 +15,13 @@ export interface SectionGroupItemState {
1515
export class SectionGroupItem extends React.Component<SectionGroupItemProps, SectionGroupItemState> {
1616
constructor(props) {
1717
super(props);
18-
this.state = { expanded: props.expanded };
18+
this.state = {expanded: props.expanded};
1919
}
2020

2121
private onClick() {
2222
// We are only interested in expanding if either sections/pages are deemed selectable
2323
if (this.isExpandable()) {
24-
this.setState({ expanded: !this.state.expanded });
24+
this.setState({expanded: !this.state.expanded});
2525
}
2626
}
2727

@@ -41,13 +41,16 @@ export class SectionGroupItem extends React.Component<SectionGroupItemProps, Sec
4141
<label className='ms-fontSize-sPlus'>{this.props.sectionGroup.name}</label>
4242
</div>
4343
</a>
44-
<ul role='group' className='picker-list-header' style={this.state.expanded ? { display: 'block' } : { display: 'none' }}>
45-
{this.props.sectionGroup.sectionGroups.map(sectionGroup => <SectionGroupItem globals={this.props.globals} sectionGroup={sectionGroup} key={sectionGroup.name}></SectionGroupItem>)}
46-
{this.props.sectionGroup.sections.map(section => <SectionItem globals={this.props.globals} section={section} key={section.name}></SectionItem>)}
44+
<ul role='group' className='picker-list-header'
45+
style={this.state.expanded ? {display: 'block'} : {display: 'none'}}>
46+
{this.props.sectionGroup.sectionGroups.map(sectionGroup => <SectionGroupItem
47+
globals={this.props.globals} sectionGroup={sectionGroup}
48+
key={sectionGroup.name}></SectionGroupItem>)}
49+
{this.props.sectionGroup.sections.map(section => <SectionItem globals={this.props.globals}
50+
section={section}
51+
key={section.name}></SectionItem>)}
4752
</ul>
4853
</li>
4954
);
5055
}
5156
}
52-
53-
export default SectionGroupItem;

src/components/sectionItem.tsx

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import * as React from 'react';
22

3-
import PageItem from './pageItem';
4-
import GlobalProps from '../props/globalProps';
5-
import Section from '../oneNoteDataStructures/section';
6-
import OneNoteItemUtils from '../oneNoteDataStructures/oneNoteItemUtils';
3+
import {PageItem} from './pageItem';
4+
import {GlobalProps} from '../props/globalProps';
5+
import {Section} from '../oneNoteDataStructures/section';
6+
import {OneNoteItemUtils} from '../oneNoteDataStructures/oneNoteItemUtils';
77

88
export interface SectionItemProps extends GlobalProps {
99
section: Section;
@@ -16,7 +16,7 @@ export interface SectionItemState {
1616
export class SectionItem extends React.Component<SectionItemProps, SectionItemState> {
1717
constructor(props) {
1818
super(props);
19-
this.state = { expanded: props.expanded };
19+
this.state = {expanded: props.expanded};
2020
}
2121

2222
private onClick() {
@@ -33,7 +33,7 @@ export class SectionItem extends React.Component<SectionItemProps, SectionItemSt
3333
if (!section.pages) {
3434
this.getPagesAndNotify();
3535
}
36-
this.setState({ expanded: !this.state.expanded });
36+
this.setState({expanded: !this.state.expanded});
3737
}
3838
}
3939

@@ -64,7 +64,8 @@ export class SectionItem extends React.Component<SectionItemProps, SectionItemSt
6464
// TODO we will need to design some sort of 'spinner' experience, likely when (expanded && !pages)
6565
return (
6666
<li aria-selected={isSelected} aria-expanded={this.state.expanded} role='treeitem'>
67-
<a className={isSelected ? 'picker-selectedItem' : ''} onClick={this.onClick.bind(this)} tabIndex={0} href='#'>
67+
<a className={isSelected ? 'picker-selectedItem' : ''} onClick={this.onClick.bind(this)} tabIndex={0}
68+
href='#'>
6869
<div className='picker-icon-left'>
6970
<img src={require('../images/section_icon.png')}/>
7071
</div>
@@ -73,13 +74,12 @@ export class SectionItem extends React.Component<SectionItemProps, SectionItemSt
7374
</div>
7475
</a>
7576
{!!pages
76-
? <ul role='group' style={this.state.expanded ? { display: 'block' } : { display: 'none' }}>
77-
{pages.map(page => <PageItem globals={this.props.globals} page={page} key={page.id}></PageItem>)}
77+
? <ul role='group' style={this.state.expanded ? {display: 'block'} : {display: 'none'}}>
78+
{pages.map(page => <PageItem globals={this.props.globals} page={page}
79+
key={page.id}></PageItem>)}
7880
</ul>
7981
: undefined}
8082
</li >
8183
);
8284
}
8385
}
84-
85-
export default SectionItem;

src/oneNoteDataStructures/notebook.ts

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import OneNoteItem from './oneNoteItem';
2-
import Section from './section';
3-
import SectionGroup from './sectionGroup';
1+
import {OneNoteItem} from './oneNoteItem';
2+
import {Section} from './section';
3+
import {SectionGroup} from './sectionGroup';
44

5-
interface Notebook extends OneNoteItem {
5+
export interface Notebook extends OneNoteItem {
66
expanded: boolean;
77
sectionGroups: SectionGroup[];
88
sections: Section[];
99
}
10-
11-
export default Notebook;

src/oneNoteDataStructures/notebookListUpdater.ts

+6-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import Notebook from './notebook';
2-
import SectionGroup from './sectionGroup';
3-
import Section from './section';
4-
import Page from './page';
1+
import {Notebook} from './notebook';
2+
import {SectionGroup} from './sectionGroup';
3+
import {Section} from './section';
4+
import {Page} from './page';
55

66
type SectionParent = Notebook | SectionGroup;
77

@@ -11,7 +11,7 @@ type SectionParent = Notebook | SectionGroup;
1111
* internal notebook list object * will be modified or replaced. Logic relying
1212
* on this class should use the getter as the most recent source of truth.
1313
*/
14-
class NotebookListUpdater {
14+
export class NotebookListUpdater {
1515
private notebooks: Notebook[];
1616

1717
constructor(initialNotebooks: Notebook[]) {
@@ -58,7 +58,7 @@ class NotebookListUpdater {
5858
this.preserveSectionParent(originalSectionGroup, newSectionGroup);
5959
}
6060
}
61-
61+
6262
// TODO cut down on repeat code after we have UTs
6363
for (let newSection of next.sections) {
6464
let originalSection = original.sections.find(section => section.id === newSection.id);
@@ -119,5 +119,3 @@ class NotebookListUpdater {
119119
return undefined;
120120
}
121121
}
122-
123-
export default NotebookListUpdater;

src/oneNoteDataStructures/oneNoteApiResponseTransformer.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import Notebook from './notebook';
2-
import SectionGroup from './sectionGroup';
3-
import Section from './section';
4-
import Page from './page';
1+
import {Notebook} from './notebook';
2+
import {SectionGroup} from './sectionGroup';
3+
import {Section} from './section';
4+
import {Page} from './page';
55

66
/**
77
* Provides methods to transform data structures to equivalent data
88
* structures used by the OneNotePicker.
99
*/
10-
class OneNoteApiResponseTransformer {
10+
export class OneNoteApiResponseTransformer {
1111
private defaultExpanded: boolean = false;
1212

1313
transformNotebooks(notebookList: OneNoteApi.Notebook[]): Notebook[] {
@@ -74,4 +74,3 @@ class OneNoteApiResponseTransformer {
7474
}
7575
}
7676

77-
export default OneNoteApiResponseTransformer;
+1-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
interface OneNoteItem {
1+
export interface OneNoteItem {
22
// Undefined is there so we can treat every OneNoteItem as the same
33
// in our tree-walking, despite notebooks not having parents
44
parent: OneNoteItem | undefined;
55

66
id: string;
77
name: string;
88
}
9-
10-
export default OneNoteItem;

src/oneNoteDataStructures/oneNoteItemUtils.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import OneNoteItem from './oneNoteItem';
1+
import {OneNoteItem} from './oneNoteItem';
22

3-
class OneNoteItemUtils {
3+
export class OneNoteItemUtils {
44
/**
55
* Given a OneNote item, returns a list representing the item's
66
* ancestry, starting from the root notebook.
@@ -17,5 +17,3 @@ class OneNoteItemUtils {
1717
return ancestry;
1818
}
1919
}
20-
21-
export default OneNoteItemUtils;

src/oneNoteDataStructures/page.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import OneNoteItem from './oneNoteItem';
1+
import {OneNoteItem} from './oneNoteItem';
22

3-
interface Page extends OneNoteItem {
3+
export interface Page extends OneNoteItem {
44
}
5-
6-
export default Page;

src/oneNoteDataStructures/section.ts

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
import OneNoteItem from './oneNoteItem';
2-
import Page from './page';
1+
import {OneNoteItem} from './oneNoteItem';
2+
import {Page} from './page';
33

4-
interface Section extends OneNoteItem {
4+
export interface Section extends OneNoteItem {
55
expanded: boolean;
66
pages: Page[] | undefined;
77
}
8-
9-
export default Section;

0 commit comments

Comments
 (0)