Add action types

This commit is contained in:
Labhansh Agrawal 2019-12-27 21:03:21 +05:30 committed by Benjamin Staneck
parent f40496f127
commit 38c534b3aa
10 changed files with 291 additions and 3 deletions

View file

@ -1,5 +1,5 @@
import rpc from '../rpc';
import INIT from '../constants';
import {INIT} from '../constants';
import {Dispatch} from 'redux';
export default function init() {

View file

@ -1,2 +1,16 @@
export const CONFIG_LOAD = 'CONFIG_LOAD';
export const CONFIG_RELOAD = 'CONFIG_RELOAD';
export interface ConfigLoadAction {
type: typeof CONFIG_LOAD;
config: any;
now?: number;
}
export interface ConfigReloadAction {
type: typeof CONFIG_RELOAD;
config: any;
now: number;
}
export type ConfigActions = ConfigLoadAction | ConfigReloadAction;

View file

@ -1,3 +1,7 @@
const INIT = 'INIT';
export const INIT = 'INIT';
export default INIT;
export interface InitAction {
type: typeof INIT;
}
export type InitActions = InitAction;

View file

@ -1,2 +1,15 @@
export const NOTIFICATION_MESSAGE = 'NOTIFICATION_MESSAGE';
export const NOTIFICATION_DISMISS = 'NOTIFICATION_DISMISS';
export interface NotificationMessageAction {
type: typeof NOTIFICATION_MESSAGE;
text: string;
url: string | null;
dismissable: boolean;
}
export interface NotificationDismissAction {
type: typeof NOTIFICATION_DISMISS;
id: string;
}
export type NotificationActions = NotificationMessageAction | NotificationDismissAction;

View file

@ -14,3 +14,95 @@ export const SESSION_SET_XTERM_TITLE = 'SESSION_SET_XTERM_TITLE';
export const SESSION_SET_CWD = 'SESSION_SET_CWD';
export const SESSION_SEARCH = 'SESSION_SEARCH';
export const SESSION_SEARCH_CLOSE = 'SESSION_SEARCH_CLOSE';
export interface SessionAddAction {
type: typeof SESSION_ADD;
uid: string;
shell: string | null;
pid: number | null;
cols: number | null;
rows: number | null;
splitDirection?: string;
activeUid: string | null;
now: number;
}
export interface SessionResizeAction {
type: typeof SESSION_RESIZE;
uid: string;
cols: number;
rows: number;
isStandaloneTerm: boolean;
now: number;
}
export interface SessionRequestAction {
type: typeof SESSION_REQUEST;
}
export interface SessionAddDataAction {
type: typeof SESSION_ADD_DATA;
}
export interface SessionPtyDataAction {
type: typeof SESSION_PTY_DATA;
uid: string;
now: number;
}
export interface SessionPtyExitAction {
type: typeof SESSION_PTY_EXIT;
uid: string;
}
export interface SessionUserExitAction {
type: typeof SESSION_USER_EXIT;
uid: string;
}
export interface SessionSetActiveAction {
type: typeof SESSION_SET_ACTIVE;
uid: string;
}
export interface SessionClearActiveAction {
type: typeof SESSION_CLEAR_ACTIVE;
}
export interface SessionUserDataAction {
type: typeof SESSION_USER_DATA;
}
export interface SessionUrlSetAction {
type: typeof SESSION_URL_SET;
uid: string;
}
export interface SessionUrlUnsetAction {
type: typeof SESSION_URL_UNSET;
uid: string;
}
export interface SessionSetXtermTitleAction {
type: typeof SESSION_SET_XTERM_TITLE;
uid: string;
title: string;
}
export interface SessionSetCwdAction {
type: typeof SESSION_SET_CWD;
cwd: string;
}
export interface SessionSearchAction {
type: typeof SESSION_SEARCH;
uid: string;
}
export interface SessionSearchCloseAction {
type: typeof SESSION_SEARCH_CLOSE;
uid: string;
}
export type SessionActions =
| SessionAddAction
| SessionResizeAction
| SessionRequestAction
| SessionAddDataAction
| SessionPtyDataAction
| SessionPtyExitAction
| SessionUserExitAction
| SessionSetActiveAction
| SessionClearActiveAction
| SessionUserDataAction
| SessionUrlSetAction
| SessionUrlUnsetAction
| SessionSetXtermTitleAction
| SessionSetCwdAction
| SessionSearchAction
| SessionSearchCloseAction;

View file

@ -1,2 +1,11 @@
export const CLOSE_TAB = 'CLOSE_TAB';
export const CHANGE_TAB = 'CHANGE_TAB';
export interface CloseTabAction {
type: typeof CLOSE_TAB;
}
export interface ChangeTabAction {
type: typeof CHANGE_TAB;
}
export type TabActions = CloseTabAction | ChangeTabAction;

View file

@ -6,3 +6,25 @@ export const DIRECTION = {
HORIZONTAL: 'HORIZONTAL',
VERTICAL: 'VERTICAL'
};
export interface TermGroupRequestAction {
type: typeof TERM_GROUP_REQUEST;
}
export interface TermGroupExitAction {
type: typeof TERM_GROUP_EXIT;
uid: string;
}
export interface TermGroupResizeAction {
type: typeof TERM_GROUP_RESIZE;
uid: string;
sizes: number[];
}
export interface TermGroupExitActiveAction {
type: typeof TERM_GROUP_EXIT_ACTIVE;
}
export type TermGroupActions =
| TermGroupRequestAction
| TermGroupExitAction
| TermGroupResizeAction
| TermGroupExitActiveAction;

View file

@ -22,3 +22,104 @@ export const UI_ENTER_FULLSCREEN = 'UI_ENTER_FULLSCREEN';
export const UI_LEAVE_FULLSCREEN = 'UI_LEAVE_FULLSCREEN';
export const UI_CONTEXTMENU_OPEN = 'UI_CONTEXTMENU_OPEN';
export const UI_COMMAND_EXEC = 'UI_COMMAND_EXEC';
export interface UIFontSizeSetAction {
type: typeof UI_FONT_SIZE_SET;
value: number;
}
export interface UIFontSizeIncrAction {
type: typeof UI_FONT_SIZE_INCR;
}
export interface UIFontSizeDecrAction {
type: typeof UI_FONT_SIZE_DECR;
}
export interface UIFontSizeResetAction {
type: typeof UI_FONT_SIZE_RESET;
}
export interface UIFontSmoothingSetAction {
type: typeof UI_FONT_SMOOTHING_SET;
fontSmoothing: string;
}
export interface UIMoveLeftAction {
type: typeof UI_MOVE_LEFT;
}
export interface UIMoveRightAction {
type: typeof UI_MOVE_RIGHT;
}
export interface UIMoveToAction {
type: typeof UI_MOVE_TO;
}
export interface UIMoveNextPaneAction {
type: typeof UI_MOVE_NEXT_PANE;
}
export interface UIMovePrevPaneAction {
type: typeof UI_MOVE_PREV_PANE;
}
export interface UIShowPreferencesAction {
type: typeof UI_SHOW_PREFERENCES;
}
export interface UIWindowMoveAction {
type: typeof UI_WINDOW_MOVE;
}
export interface UIWindowMaximizeAction {
type: typeof UI_WINDOW_MAXIMIZE;
}
export interface UIWindowUnmaximizeAction {
type: typeof UI_WINDOW_UNMAXIMIZE;
}
export interface UIWindowGeometryChangedAction {
type: typeof UI_WINDOW_GEOMETRY_CHANGED;
}
export interface UIOpenFileAction {
type: typeof UI_OPEN_FILE;
}
export interface UIOpenSshUrlAction {
type: typeof UI_OPEN_SSH_URL;
}
export interface UIOpenHamburgerMenuAction {
type: typeof UI_OPEN_HAMBURGER_MENU;
}
export interface UIWindowMinimizeAction {
type: typeof UI_WINDOW_MINIMIZE;
}
export interface UIWindowCloseAction {
type: typeof UI_WINDOW_CLOSE;
}
export interface UIEnterFullscreenAction {
type: typeof UI_ENTER_FULLSCREEN;
}
export interface UILeaveFullscreenAction {
type: typeof UI_LEAVE_FULLSCREEN;
}
export interface UIContextmenuOpenAction {
type: typeof UI_CONTEXTMENU_OPEN;
}
export interface UICommandExecAction {
type: typeof UI_COMMAND_EXEC;
}
export type UIActions =
| UIFontSizeSetAction
| UIFontSizeIncrAction
| UIFontSizeDecrAction
| UIFontSizeResetAction
| UIFontSmoothingSetAction
| UIMoveLeftAction
| UIMoveRightAction
| UIMoveToAction
| UIMoveNextPaneAction
| UIMovePrevPaneAction
| UIShowPreferencesAction
| UIWindowMoveAction
| UIWindowMaximizeAction
| UIWindowUnmaximizeAction
| UIWindowGeometryChangedAction
| UIOpenFileAction
| UIOpenSshUrlAction
| UIOpenHamburgerMenuAction
| UIWindowMinimizeAction
| UIWindowCloseAction
| UIEnterFullscreenAction
| UILeaveFullscreenAction
| UIContextmenuOpenAction
| UICommandExecAction;

View file

@ -1,2 +1,15 @@
export const UPDATE_INSTALL = 'UPDATE_INSTALL';
export const UPDATE_AVAILABLE = 'UPDATE_AVAILABLE';
export interface UpdateInstallAction {
type: typeof UPDATE_INSTALL;
}
export interface UpdateAvailableAction {
type: typeof UPDATE_AVAILABLE;
version: string;
notes: string | null;
releaseUrl: string;
canInstall: boolean;
}
export type UpdateActions = UpdateInstallAction | UpdateAvailableAction;

20
lib/hyper.d.ts vendored
View file

@ -155,6 +155,26 @@ export type hyperPlugin = {
import rootReducer from './reducers/index';
export type HyperState = ReturnType<typeof rootReducer>;
import {UIActions} from './constants/ui';
import {ConfigActions} from './constants/config';
import {SessionActions} from './constants/sessions';
import {NotificationActions} from './constants/notifications';
import {UpdateActions} from './constants/updater';
import {TermGroupActions} from './constants/term-groups';
import {InitActions} from './constants';
import {TabActions} from './constants/tabs';
export type HyperActions = (
| UIActions
| ConfigActions
| SessionActions
| NotificationActions
| UpdateActions
| TermGroupActions
| InitActions
| TabActions
) & {effect?: () => void};
type immutableRecord<T> = {[k in keyof T]: Immutable<T[k]>};
export type TermsProps = {