X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/a06392b6e6c0ad1aa9e674b82a068c71ef2fb3a3..0fbbf3d45c99486c384605d1cc286d2552dee7f1:/src/store/dialog/with-dialog.ts diff --git a/src/store/dialog/with-dialog.ts b/src/store/dialog/with-dialog.ts index d53a79d6..6eaee0d2 100644 --- a/src/store/dialog/with-dialog.ts +++ b/src/store/dialog/with-dialog.ts @@ -18,18 +18,20 @@ export type WithDialogDispatchProps = { }; export type WithDialogProps = WithDialogStateProps & WithDialogDispatchProps; - export const withDialog = (id: string) => - (component: React.ComponentType & P>) => + // TODO: How to make compiler happy with & P instead of & any? + (component: React.ComponentType & any>) => connect(mapStateToProps(id), mapDispatchToProps(id))(component); +const emptyData = {}; + export const mapStateToProps = (id: string) => (state: { dialog: DialogState }): WithDialogStateProps => { const dialog = state.dialog[id]; - return dialog ? dialog : { open: false, data: {} }; + return dialog ? dialog : { open: false, data: emptyData }; }; export const mapDispatchToProps = (id: string) => (dispatch: Dispatch): WithDialogDispatchProps => ({ closeDialog: () => { dispatch(dialogActions.CLOSE_DIALOG({ id })); } -}); \ No newline at end of file +});