import { getCharWidth } from 'state/app'; import { updateMessageHeight } from 'state/messages'; import { when } from 'utils/observe'; import { measureScrollBarWidth } from 'utils'; import { addResizeListener } from 'utils/size'; const menuWidth = 200; const messagePadding = 30; const smallScreen = 600; export default function widthUpdates({ store }) { when(store, getCharWidth, charWidth => { window.messageIndent = 6 * charWidth; const scrollBarWidth = measureScrollBarWidth(); let prevWrapWidth; function updateWidth(windowWidth) { let wrapWidth = windowWidth - scrollBarWidth - messagePadding; if (windowWidth > smallScreen) { wrapWidth -= menuWidth; } if (wrapWidth !== prevWrapWidth) { prevWrapWidth = wrapWidth; store.dispatch(updateMessageHeight(wrapWidth, charWidth, windowWidth)); } } addResizeListener(updateWidth, true); }); }