• 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
..
components Loading commit data...
config Loading commit data...
helpers Loading commit data...
services Loading commit data...
store Loading commit data...
test Loading commit data...
util Loading commit data...
cross-origin-rpc.js Loading commit data...
icons.js Loading commit data...
index.js Loading commit data...
markdown-commands.js Loading commit data...
media-embedder.js Loading commit data...
render-markdown.js Loading commit data...
search-client.js Loading commit data...
service-context.js Loading commit data...
websocket.js Loading commit data...