mirror of https://github.com/trezor/trezor-wallet
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.4 KiB
70 lines
1.4 KiB
/* @flow */
|
|
|
|
import * as LOG from 'actions/constants/log';
|
|
import copy from 'copy-to-clipboard';
|
|
|
|
import type { Action, ThunkAction, GetState, Dispatch } from 'flowtype';
|
|
import type { LogEntry } from 'reducers/LogReducer';
|
|
|
|
export type LogAction =
|
|
| {
|
|
type: typeof LOG.OPEN,
|
|
}
|
|
| {
|
|
type: typeof LOG.CLOSE,
|
|
}
|
|
| {
|
|
type: typeof LOG.COPY_RESET,
|
|
}
|
|
| {
|
|
type: typeof LOG.COPY_SUCCESS,
|
|
}
|
|
| {
|
|
type: typeof LOG.ADD,
|
|
payload: LogEntry,
|
|
};
|
|
|
|
export const toggle = (): ThunkAction => (dispatch: Dispatch, getState: GetState): void => {
|
|
if (!getState().log.opened) {
|
|
window.scrollTo(0, 0);
|
|
|
|
dispatch({
|
|
type: LOG.OPEN,
|
|
});
|
|
} else {
|
|
dispatch({
|
|
type: LOG.CLOSE,
|
|
});
|
|
}
|
|
};
|
|
|
|
export const add = (type: string, message: any): Action => ({
|
|
type: LOG.ADD,
|
|
payload: {
|
|
time: new Date().getTime(),
|
|
type,
|
|
message,
|
|
},
|
|
});
|
|
|
|
export const copyToClipboard = (): ThunkAction => (
|
|
dispatch: Dispatch,
|
|
getState: GetState
|
|
): void => {
|
|
const { entries } = getState().log;
|
|
try {
|
|
const res = copy(JSON.stringify(entries));
|
|
if (res) {
|
|
dispatch({
|
|
type: LOG.COPY_SUCCESS,
|
|
});
|
|
}
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
};
|
|
|
|
export const resetCopyState = (): Action => ({
|
|
type: LOG.COPY_RESET,
|
|
});
|