• Robert Knight's avatar
    Make service-using components typecheck correctly · 4be722ea
    Robert Knight authored
    Previously all components that used injected services did not have their
    usage type-checked because `withServices` returned `any`.
    
    This commit refactors the API of `withServices` to make it easier to
    typecheck and adds types. The major API change is that the list of injected
    services is now passed as a second argument to `withServices` rather
    than by setting an `injectedProps` property on the component. This makes
    it easy to infer that the component returned by `withServices(Widget,
    ['serviceA', 'serviceB'])` has the same props as `Widget` but without
    `serviceA` or `serviceB`.
    
    Making these changes also turned up a handful of mistakes in existing
    types which are fixed here:
    
     - Correct `auth` type used by `HelpPanel`
     - Correct type of `thread` prop used by `ThreadCard`
     - Correct optionality of boolean arguments in callbacks to `Excerpt`
     - Change `showActions` logic in `Annotation` to make it more obvious
       to TS that the actions are only shown when there is an annotation
     - Remove unused props passed to `GroupList`
    
    Additionally there was a type error with TopBar's `auth` prop which is
    less trivial to fix, so I have punted it to a future commit.
    4be722ea
Name
Last commit
Last update
.github Loading commit data...
bin Loading commit data...
dev-server Loading commit data...
docs Loading commit data...
embedding-examples Loading commit data...
images Loading commit data...
requirements Loading commit data...
scripts Loading commit data...
src Loading commit data...
.babelrc Loading commit data...
.dockerignore Loading commit data...
.eslintignore Loading commit data...
.eslintrc Loading commit data...
.gitignore Loading commit data...
.npmignore Loading commit data...
.npmrc Loading commit data...
.prettierignore Loading commit data...
.python-version Loading commit data...
CODE_OF_CONDUCT Loading commit data...
Dockerfile Loading commit data...
Jenkinsfile Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
codecov.yml Loading commit data...
gulpfile.js Loading commit data...
package.json Loading commit data...
requirements-dev.in Loading commit data...
tox.ini Loading commit data...
tsconfig.json Loading commit data...
yarn.lock Loading commit data...