diff --git a/lib/agile_keychain_test.ts b/lib/agile_keychain_test.ts
index 9cf3f78..b360008 100644
--- a/lib/agile_keychain_test.ts
+++ b/lib/agile_keychain_test.ts
@@ -90,7 +90,6 @@ testLib.addAsyncTest('Import item from .1pif file', (assert) => {
actualItems.then((items) => {
assert.equal(items.length, 1, 'Imported expected number of items');
var expectedItem = agile_keychain.fromAgileKeychainItem(null, {
- "vault": null,
"updatedAt": 1398413120,
"title": "Facebook",
"securityLevel": "SL5",
@@ -725,4 +724,3 @@ testLib.addAsyncTest('Removing item succeeds if file is already removed', assert
assert.ok(testVault.items[0].isTombstone());
});
});
-
diff --git a/lib/siteinfo/service.ts b/lib/siteinfo/service.ts
index 2f4002a..e86ad69 100644
--- a/lib/siteinfo/service.ts
+++ b/lib/siteinfo/service.ts
@@ -58,12 +58,12 @@ import url_util = require('../base/url_util');
// list of known and tags that point
// to an icon for the site.
//
-// See also:
+// See also:
// - http://microformats.org/wiki/existing-rel-values (list of known
// values for 'rel' attribute of tags)
// - http://www.iacquire.com/blog/18-meta-tags-every-webpage-should-have-in-2013
// - Google structured data testing tool: http://www.google.com/webmasters/tools/richsnippets
-//
+//
export enum MetaTagType {
Meta,
@@ -265,7 +265,6 @@ export class SiteInfoService implements site_info.SiteInfoProvider {
var result: site_info.QueryResult = {
info: {
url: url,
- iconUrl: null,
icons: []
},
state: site_info.QueryState.Updating
@@ -597,4 +596,3 @@ export class DuckDuckGoClient {
}
}
}
-
diff --git a/lib/vfs/node.ts b/lib/vfs/node.ts
index 7664254..f61a9e3 100644
--- a/lib/vfs/node.ts
+++ b/lib/vfs/node.ts
@@ -174,7 +174,7 @@ export class FileVFS implements vfs.VFS {
}
login(): Q.Promise {
- return Q({ user: process.env.USER });
+ return Q({});
}
isLoggedIn(): boolean {
@@ -247,4 +247,3 @@ export class FileVFS implements vfs.VFS {
return fullPath;
}
}
-
diff --git a/typings/argparse.d.ts b/typings/argparse.d.ts
index af8d554..bd46245 100644
--- a/typings/argparse.d.ts
+++ b/typings/argparse.d.ts
@@ -13,6 +13,8 @@ declare module "argparse" {
nargs? : any; // number or string
type? : string;
defaultValue? : any;
+ help?: string;
+ choices?: string[];
}
export interface Subparsers {
@@ -25,4 +27,3 @@ declare module "argparse" {
parseArgs(args?: string[]) : any;
}
}
-
diff --git a/webui/app_view.ts b/webui/app_view.ts
index b928add..0a4cf3e 100644
--- a/webui/app_view.ts
+++ b/webui/app_view.ts
@@ -56,7 +56,7 @@ export interface AppServices {
fs: vfs.VFS;
}
-export interface AppViewProps {
+export interface AppViewProps extends react.Props {
services: AppServices;
viewportRect: reactutil.Rect;
itemStore: ui_item_store.Store;
@@ -160,7 +160,7 @@ class AppView extends typed_react.Component {
children.push(this.renderItemDetails());
children.push(this.renderToasters());
- var menu = reactutil.TransitionGroupF({ key: 'toolbar-menu' },
+ var menu = reactutil.TransitionGroupF({ key: 'toolbar-menu' },
this.state.appMenuSourceRect ? this.renderMenu('menu') : null
);
children.push(menu);
@@ -189,7 +189,7 @@ class AppView extends typed_react.Component {
progressMax: syncState.total
}));
}
- return reactutil.TransitionGroupF({ key: 'toasterList' },
+ return reactutil.TransitionGroupF({ key: 'toasterList' },
toasters
);
}
@@ -376,4 +376,3 @@ class AppView extends typed_react.Component {
}
export var AppViewF = reactutil.createFactory(AppView);
-
diff --git a/webui/base/reactutil.ts b/webui/base/reactutil.ts
index b99864f..9a11f43 100644
--- a/webui/base/reactutil.ts
+++ b/webui/base/reactutil.ts
@@ -6,6 +6,17 @@ import env = require('../../lib/base/env');
import transition_events = require('./transition_events');
import tsutil = require('../../lib/base/tsutil');
+/** Extends the CSSProperties interface which as of 16/08/15
+ * only lists a small subset of CSS properties with one with
+ * a catch-all for other properties.
+ *
+ * See also https://github.com/borisyankov/DefinitelyTyped/pull/5089 for
+ * a discussion on how best to resolve this upstream.
+ */
+export interface ExtendedCSSProperties extends react.CSSProperties {
+ [index: string]: number | string;
+}
+
/** Component factory returned by createFactory(). This extends
* React.Factory with an additional property that specifies the
* type of component which the factory creates.
@@ -179,4 +190,3 @@ export class TransitionEndListener {
transition_events.removeEndEventListener(this.node, this.listener);
}
}
-
diff --git a/webui/base/reactutil_test.ts b/webui/base/reactutil_test.ts
index a4d6661..57ca58d 100644
--- a/webui/base/reactutil_test.ts
+++ b/webui/base/reactutil_test.ts
@@ -3,8 +3,14 @@
import reactutil = require('./reactutil');
import testLib = require('../../lib/test');
+interface PropMergeResult {
+ id?: string;
+ className?: string;
+ onClick?: string;
+};
+
testLib.addTest('merge props', (assert) => {
- assert.deepEqual(reactutil.mergeProps({
+ assert.deepEqual(reactutil.mergeProps({
id: 'instanceId',
className: 'instanceClass',
onClick: 'event handler'
@@ -34,4 +40,3 @@ testLib.addTest('object changes', (assert) => {
});
testLib.start();
-
diff --git a/webui/controls/button.ts b/webui/controls/button.ts
index e02fc96..1d0acf2 100644
--- a/webui/controls/button.ts
+++ b/webui/controls/button.ts
@@ -150,7 +150,7 @@ export enum Style {
Icon
}
-export interface ButtonProps {
+export interface ButtonProps extends react.Props {
onClick: (e: react.MouseEvent) => void;
/** Label for the button */
@@ -177,8 +177,6 @@ export interface ButtonProps {
/** Prevents interaction with the button */
disabled?: boolean;
-
- children?: any;
}
export class Button extends typed_react.Component {
@@ -295,4 +293,3 @@ export class Button extends typed_react.Component {
}
export var ButtonF = reactutil.createFactory(Button);
-
diff --git a/webui/controls/demo.ts b/webui/controls/demo.ts
index 01c90f4..7acf77c 100644
--- a/webui/controls/demo.ts
+++ b/webui/controls/demo.ts
@@ -46,7 +46,7 @@ var theme = style.create({
}
});
-interface ControlDemoAppProps {
+interface ControlDemoAppProps extends react.Props {
viewportRect: reactutil.Rect;
}
@@ -203,4 +203,3 @@ function main() {
if (env.isBrowser()) {
main();
}
-
diff --git a/webui/controls/menu.ts b/webui/controls/menu.ts
index 7d3b1eb..fdd96d6 100644
--- a/webui/controls/menu.ts
+++ b/webui/controls/menu.ts
@@ -77,7 +77,7 @@ var theme = style.create({
label: {
width: '100%',
height: '100%',
-
+
// give menu item label its own stacking context so
// that it renders on top of ripple effect
transform: 'translate3d(0,0,0)'
@@ -97,7 +97,7 @@ interface MenuState {
showTime?: Date;
}
-export interface MenuProps {
+export interface MenuProps extends react.Props {
/** The source rect of the icon which triggered the
* menu.
*/
@@ -369,4 +369,3 @@ export class Menu extends typed_react.Component {
}
export var MenuF = reactutil.createFactory(Menu);
-
diff --git a/webui/controls/ripple.ts b/webui/controls/ripple.ts
index 6a4fca1..6075e68 100644
--- a/webui/controls/ripple.ts
+++ b/webui/controls/ripple.ts
@@ -1,7 +1,7 @@
///
// Material Design style touch-ripple.
-// See https://www.polymer-project.org/docs/elements/paper-elements.html#paper-ripple
+// See https://www.polymer-project.org/docs/elements/paper-elements.html#paper-ripple
import react = require('react');
import style = require('ts-style');
@@ -38,7 +38,7 @@ enum Phase {
Release
}
-export interface InkRippleProps {
+export interface InkRippleProps extends react.Props {
/** Fill style for the expanding ripple.
* The background of the ripple uses a lighter version of
* this color.
@@ -259,4 +259,3 @@ export class InkRipple extends typed_react.Component, react.HTMLAttributes {
+ // redeclare 'ref' here to resolve conflict between
+ // react.Props.ref and react.HTMLAttributes.ref
+ ref?: string;
+
href: string;
fill: string;
viewBox: {
@@ -35,4 +39,3 @@ export class SvgIcon extends typed_react.Component {
}
export var SvgIconF = reactutil.createFactory(SvgIcon);
-
diff --git a/webui/controls/text_field.ts b/webui/controls/text_field.ts
index 8ed9555..8d4d33f 100644
--- a/webui/controls/text_field.ts
+++ b/webui/controls/text_field.ts
@@ -167,7 +167,7 @@ export interface TextFieldStyle {
fontFamily?: string;
}
-export interface TextFieldProps {
+export interface TextFieldProps extends react.Props {
/** Specifies the type of field */
type?: string;
@@ -414,4 +414,3 @@ export class TextField extends typed_react.Component {
message: string;
progressValue?: number;
progressMax?: number;
@@ -97,4 +97,3 @@ export class Toaster extends typed_react.Component {
}
export var ToasterF = reactutil.createFactory(Toaster, transition_mixin.TransitionMixinM);
-
diff --git a/webui/details_view.ts b/webui/details_view.ts
index 7904027..1fd7456 100644
--- a/webui/details_view.ts
+++ b/webui/details_view.ts
@@ -213,7 +213,7 @@ interface ItemFieldState {
value?: string;
}
-interface ItemFieldProps {
+interface ItemFieldProps extends react.Props {
label: string;
value: string;
type: FieldType;
@@ -383,7 +383,7 @@ export enum ItemEditMode {
EditItem
}
-export interface DetailsViewProps {
+export interface DetailsViewProps extends react.Props {
entryRect?: reactutil.Rect;
viewportRect: reactutil.Rect;
animateEntry: boolean;
@@ -972,7 +972,7 @@ export class DetailsView extends typed_react.Component;
-
+
/** Create an icon provider which uses @p provider to fetch
* icon data. @p iconSize specifies the size of icon to make from
* the available icons for a given URL.
@@ -402,7 +402,7 @@ class Cache {
}
}
-export interface IconControlProps {
+export interface IconControlProps extends react.Props {
location: string;
iconProvider: IconProvider;
isFocused: boolean;
@@ -512,4 +512,3 @@ export class FakeIconProvider implements IconProvider {
}
export var IconControlF = reactutil.createFactory(IconControl);
-
diff --git a/webui/item_list_view.ts b/webui/item_list_view.ts
index 274000a..894ded3 100644
--- a/webui/item_list_view.ts
+++ b/webui/item_list_view.ts
@@ -152,7 +152,7 @@ interface ItemListViewState {
filter?: string;
}
-export class ItemListViewProps {
+export interface ItemListViewProps extends react.Props {
items: item_store.Item[];
selectedItem: item_store.Item;
onSelectedItemChanged: (item: item_store.Item, rect: reactutil.Rect) => void;
@@ -254,7 +254,7 @@ export class ItemListView extends typed_react.Component {
key: string;
item: item_store.Item;
onSelected: () => void;
@@ -327,7 +327,7 @@ interface ItemListState {
itemHeight?: number;
}
-class ItemListProps {
+export interface ItemListProps extends react.Props {
items: item_store.Item[];
filter: string;
filterUrl: string;
@@ -598,7 +598,7 @@ class ItemList extends typed_react.Component {
var ItemListF = reactutil.createFactory(ItemList);
-class ItemListToolbarProps {
+export interface ItemListToolbarProps extends react.Props {
filterUrl: string;
onQueryChanged: (query: string) => void;
diff --git a/webui/setup_view.ts b/webui/setup_view.ts
index 040c1aa..71d40fd 100644
--- a/webui/setup_view.ts
+++ b/webui/setup_view.ts
@@ -157,7 +157,7 @@ var theme = style.create({
}
});
-interface NavButtonProps {
+interface NavButtonProps extends react.Props {
label: string;
onClick: () => void;
iconUrl?: string;
@@ -181,7 +181,7 @@ class NavButton extends typed_react.Component {
}
var NavButtonF = reactutil.createFactory(NavButton);
-interface CloudStoreListProps {
+interface CloudStoreListProps extends react.Props {
vfs: vfs.VFS;
onSelectStore: (path: string) => void;
}
@@ -266,7 +266,7 @@ class CloudStoreList extends typed_react.Component {
stores: settings.AccountMap;
onSelectStore: (account: settings.Account) => void;
onAddStore: () => void;
@@ -317,7 +317,7 @@ class StoreList extends typed_react.Component {
var StoreListF = reactutil.createFactory(StoreList);
-export interface SetupViewProps {
+export interface SetupViewProps extends react.Props {
settings: settings.Store;
fs: vfs.VFS;
}
@@ -340,9 +340,7 @@ interface NewStoreOptions {
hint?: string;
}
-interface SlideProps {
- children?: react.ReactElement[];
-
+interface SlideProps extends react.Props {
xTranslation: number;
opacity: number;
}
@@ -365,7 +363,7 @@ class Slide extends typed_react.Component {
var SlideF = reactutil.createFactory(Slide);
-interface NewStoreFormProps {
+interface NewStoreFormProps extends react.Props {
onGoBack: () => void;
onCreate: (options: NewStoreOptions) => Q.Promise;
}
@@ -817,4 +815,3 @@ export class SetupView extends typed_react.Component {
value: string;
iconUrl: string;
onClick: () => void;
@@ -17,4 +19,3 @@ export function createButton(props: ToolbarButtonProps) {
onClick: null
}, props));
}
-
diff --git a/webui/unlock_view.ts b/webui/unlock_view.ts
index 8416292..ae48ab0 100644
--- a/webui/unlock_view.ts
+++ b/webui/unlock_view.ts
@@ -108,7 +108,7 @@ interface UnlockViewState {
failedUnlockCount?: number;
}
-export class UnlockViewProps {
+export interface UnlockViewProps extends react.Props {
store: item_store.Store;
isLocked: boolean;
onUnlock: () => void;
@@ -226,4 +226,3 @@ export class UnlockView extends typed_react.Component