diff --git a/packages/iceworks-client/package.json b/packages/iceworks-client/package.json index c73c77dc94..2ae373b2f0 100644 --- a/packages/iceworks-client/package.json +++ b/packages/iceworks-client/package.json @@ -24,6 +24,7 @@ "glob": "^7.1.4", "history": "^4.9.0", "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", "lodash.uniqby": "^4.7.0", "loglevel": "^1.6.1", "loglevel-plugin-prefix": "^0.8.4", diff --git a/packages/iceworks-client/src/components/XtermTerminal/index.js b/packages/iceworks-client/src/components/XtermTerminal/index.js index ec849238e2..1e2c848eb3 100644 --- a/packages/iceworks-client/src/components/XtermTerminal/index.js +++ b/packages/iceworks-client/src/components/XtermTerminal/index.js @@ -1,5 +1,6 @@ import React, { useRef, useEffect } from 'react'; import PropTypes from 'prop-types'; +import debounce from 'lodash.debounce'; import Icon from '@components/Icon'; import termManager from '@utils/termManager'; import useTermTheme from '@hooks/useTermTheme'; @@ -19,6 +20,14 @@ const XtermTerminal = ({ id, name, options }) => { currentTerm.writeChunk(`${name}\x1B[0m `); } } + + const handleResize = debounce(() => { currentTerm.fit(); }, 500); + // listen reszie + window.addEventListener('resize', handleResize); + + return () => { + window.removeEventListener('resize', handleResize); + }; }, []); const { termTheme } = useTermTheme(); @@ -35,7 +44,7 @@ const XtermTerminal = ({ id, name, options }) => { className={styles.clearIcon} onClick={() => term.clear(id)} /> -
+
); }; diff --git a/packages/iceworks-client/src/components/XtermTerminal/index.module.scss b/packages/iceworks-client/src/components/XtermTerminal/index.module.scss index 90cfdcb6a0..25ff3de933 100644 --- a/packages/iceworks-client/src/components/XtermTerminal/index.module.scss +++ b/packages/iceworks-client/src/components/XtermTerminal/index.module.scss @@ -14,3 +14,7 @@ cursor: pointer; } } + +.xtermRef { + height: 100%; +} diff --git a/packages/iceworks-client/src/pages/Engineering/components/Task/index.module.scss b/packages/iceworks-client/src/pages/Engineering/components/Task/index.module.scss index 6ff8421a33..7f69e7e513 100644 --- a/packages/iceworks-client/src/pages/Engineering/components/Task/index.module.scss +++ b/packages/iceworks-client/src/pages/Engineering/components/Task/index.module.scss @@ -4,14 +4,16 @@ .content { margin: 20px 0; - flex: auto 1 1; + flex: 1 1 auto; + min-height: 0; } } // TODO: should use :local,but ice-scripts not support :global { .next-card-body { - flex: 1; + flex: 1 1 auto; + min-height: 0; } .next-card-content { display: flex; diff --git a/packages/iceworks-client/src/pages/Engineering/index.module.scss b/packages/iceworks-client/src/pages/Engineering/index.module.scss index 7e8111bf82..2859816762 100644 --- a/packages/iceworks-client/src/pages/Engineering/index.module.scss +++ b/packages/iceworks-client/src/pages/Engineering/index.module.scss @@ -5,6 +5,7 @@ .main { flex: 1; margin: 20px; + min-width: 0; } }