hyper/lib/containers/terms.ts

85 lines
2.8 KiB
TypeScript
Raw Normal View History

2016-07-13 12:44:24 -08:00
import Terms from '../components/terms';
import {connect} from '../utils/plugins';
import {resizeSession, sendSessionData, setSessionXtermTitle, setActiveSession, onSearch} from '../actions/sessions';
2017-11-03 12:24:41 -08:00
import {openContextMenu} from '../actions/ui';
2019-12-03 03:03:52 -09:00
import {getRootGroups} from '../selectors';
import {HyperState, HyperDispatch} from '../hyper';
2016-07-13 12:44:24 -08:00
const mapStateToProps = (state: HyperState) => {
const {sessions} = state.sessions;
return {
sessions,
cols: state.ui.cols,
rows: state.ui.rows,
scrollback: state.ui.scrollback,
termGroups: getRootGroups(state),
activeRootGroup: state.termGroups.activeRootGroup,
activeSession: state.sessions.activeUid,
customCSS: state.ui.termCSS,
write: state.sessions.write,
fontSize: state.ui.fontSizeOverride ? state.ui.fontSizeOverride : state.ui.fontSize,
fontFamily: state.ui.fontFamily,
fontWeight: state.ui.fontWeight,
fontWeightBold: state.ui.fontWeightBold,
lineHeight: state.ui.lineHeight,
letterSpacing: state.ui.letterSpacing,
uiFontFamily: state.ui.uiFontFamily,
fontSmoothing: state.ui.fontSmoothingOverride,
padding: state.ui.padding,
cursorColor: state.ui.cursorColor,
cursorAccentColor: state.ui.cursorAccentColor,
cursorShape: state.ui.cursorShape,
cursorBlink: state.ui.cursorBlink,
borderColor: state.ui.borderColor,
selectionColor: state.ui.selectionColor,
colors: state.ui.colors,
foregroundColor: state.ui.foregroundColor,
backgroundColor: state.ui.backgroundColor,
bell: state.ui.bell,
bellSoundURL: state.ui.bellSoundURL,
bellSound: state.ui.bellSound,
copyOnSelect: state.ui.copyOnSelect,
modifierKeys: state.ui.modifierKeys,
quickEdit: state.ui.quickEdit,
webGLRenderer: state.ui.webGLRenderer,
2020-05-06 11:04:14 -08:00
webLinksActivationKey: state.ui.webLinksActivationKey,
macOptionSelectionMode: state.ui.macOptionSelectionMode,
disableLigatures: state.ui.disableLigatures
};
};
2016-07-13 12:44:24 -08:00
const mapDispatchToProps = (dispatch: HyperDispatch) => {
return {
onData(uid: string, data: any) {
dispatch(sendSessionData(uid, data));
},
2016-07-13 12:44:24 -08:00
onTitle(uid: string, title: string) {
dispatch(setSessionXtermTitle(uid, title));
},
2016-07-13 12:44:24 -08:00
onResize(uid: string, cols: number, rows: number) {
dispatch(resizeSession(uid, cols, rows));
},
2017-11-03 12:24:41 -08:00
onActive(uid: string) {
dispatch(setActiveSession(uid));
},
toggleSearch(uid: string) {
dispatch(onSearch(uid));
},
onContextMenu(uid: string, selection: any) {
dispatch(setActiveSession(uid));
dispatch(openContextMenu(uid, selection));
}
};
};
const TermsContainer = connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true})(Terms, 'Terms');
2016-07-13 12:44:24 -08:00
export default TermsContainer;
export type TermsConnectedProps = ReturnType<typeof mapStateToProps> & ReturnType<typeof mapDispatchToProps>;