import { unionize, ofType, UnionOf } from '~/common/unionize';
import { Dispatch } from 'redux';
+export const SLIDE_TIMEOUT = 500;
+
export const detailsPanelActions = unionize({
TOGGLE_DETAILS_PANEL: ofType<{}>(),
LOAD_DETAILS_PANEL: ofType<string>()
export const toggleDetailsPanel = () => (dispatch: Dispatch) => {
// because of material-ui issue resizing details panel breaks tabs.
// triggering window resize event fixes that.
- const detailsPanelAnimationDuration = 500;
setTimeout(() => {
window.dispatchEvent(new Event('resize'));
- }, detailsPanelAnimationDuration);
+ }, SLIDE_TIMEOUT);
dispatch(detailsPanelActions.TOGGLE_DETAILS_PANEL());
};
import * as classnames from "classnames";
import { connect } from 'react-redux';
import { RootState } from '~/store/store';
-import { detailsPanelActions } from "~/store/details-panel/details-panel-action";
import { CloseIcon } from '~/components/icon/icon';
import { EmptyResource } from '~/models/empty';
import { Dispatch } from "redux";
import { getResource } from '~/store/resources/resources';
import { ResourceData } from "~/store/resources-data/resources-data-reducer";
import { getResourceData } from "~/store/resources-data/resources-data";
-import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
+import { toggleDetailsPanel, SLIDE_TIMEOUT } from '~/store/details-panel/details-panel-action';
type CssRules = 'root' | 'container' | 'opened' | 'headerContainer' | 'headerIcon' | 'tabContainer';
const DRAWER_WIDTH = 320;
-const SLIDE_TIMEOUT = 500;
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
root: {
background: theme.palette.background.paper,