Chore: Migrate app/commands to typescript (#3697)
This commit is contained in:
parent
9b369e548e
commit
97f8271127
|
@ -1,5 +1,6 @@
|
||||||
/* eslint-disable no-bitwise */
|
/* eslint-disable no-bitwise */
|
||||||
import KeyCommands, { constants } from 'react-native-keycommands';
|
import { NativeSyntheticEvent } from 'react-native';
|
||||||
|
import KeyCommands, { constants, KeyCommand } from 'react-native-keycommands';
|
||||||
|
|
||||||
import I18n from './i18n';
|
import I18n from './i18n';
|
||||||
|
|
||||||
|
@ -136,13 +137,18 @@ const keyCommands = [
|
||||||
}))
|
}))
|
||||||
];
|
];
|
||||||
|
|
||||||
export const setKeyCommands = () => KeyCommands.setKeyCommands(keyCommands);
|
export const setKeyCommands = (): void => KeyCommands.setKeyCommands(keyCommands);
|
||||||
|
|
||||||
export const deleteKeyCommands = () => KeyCommands.deleteKeyCommands(keyCommands);
|
export const deleteKeyCommands = (): void => KeyCommands.deleteKeyCommands(keyCommands);
|
||||||
|
|
||||||
export const KEY_COMMAND = 'KEY_COMMAND';
|
export const KEY_COMMAND = 'KEY_COMMAND';
|
||||||
|
|
||||||
export const commandHandle = (event, key, flags = []) => {
|
interface IKeyCommandEvent extends NativeSyntheticEvent<typeof KeyCommand> {
|
||||||
|
input: string;
|
||||||
|
modifierFlags: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const commandHandle = (event: IKeyCommandEvent, key: string | string[], flags: string[] = []): boolean => {
|
||||||
const { input, modifierFlags } = event;
|
const { input, modifierFlags } = event;
|
||||||
let _flags = 0;
|
let _flags = 0;
|
||||||
if (flags.includes('command') && flags.includes('alternate')) {
|
if (flags.includes('command') && flags.includes('alternate')) {
|
||||||
|
@ -155,35 +161,41 @@ export const commandHandle = (event, key, flags = []) => {
|
||||||
return key.includes(input) && modifierFlags === _flags;
|
return key.includes(input) && modifierFlags === _flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const handleCommandTyping = event => commandHandle(event, KEY_TYPING);
|
export const handleCommandTyping = (event: IKeyCommandEvent): boolean => commandHandle(event, KEY_TYPING);
|
||||||
|
|
||||||
export const handleCommandSubmit = event => commandHandle(event, KEY_SEND_MESSAGE);
|
export const handleCommandSubmit = (event: IKeyCommandEvent): boolean => commandHandle(event, KEY_SEND_MESSAGE);
|
||||||
|
|
||||||
export const handleCommandShowUpload = event => commandHandle(event, KEY_UPLOAD, ['command']);
|
export const handleCommandShowUpload = (event: IKeyCommandEvent): boolean => commandHandle(event, KEY_UPLOAD, ['command']);
|
||||||
|
|
||||||
export const handleCommandScroll = event =>
|
export const handleCommandScroll = (event: IKeyCommandEvent): boolean =>
|
||||||
commandHandle(event, [constants.keyInputUpArrow, constants.keyInputDownArrow], ['alternate']);
|
commandHandle(event, [constants.keyInputUpArrow, constants.keyInputDownArrow], ['alternate']);
|
||||||
|
|
||||||
export const handleCommandRoomActions = event => commandHandle(event, KEY_ROOM_ACTIONS, ['command']);
|
export const handleCommandRoomActions = (event: IKeyCommandEvent): boolean => commandHandle(event, KEY_ROOM_ACTIONS, ['command']);
|
||||||
|
|
||||||
export const handleCommandSearchMessages = event => commandHandle(event, KEY_SEARCH, ['command']);
|
export const handleCommandSearchMessages = (event: IKeyCommandEvent): boolean => commandHandle(event, KEY_SEARCH, ['command']);
|
||||||
|
|
||||||
export const handleCommandReplyLatest = event => commandHandle(event, KEY_REPLY, ['command']);
|
export const handleCommandReplyLatest = (event: IKeyCommandEvent): boolean => commandHandle(event, KEY_REPLY, ['command']);
|
||||||
|
|
||||||
export const handleCommandSelectServer = event => commandHandle(event, KEY_SELECT, ['command', 'alternate']);
|
export const handleCommandSelectServer = (event: IKeyCommandEvent): boolean =>
|
||||||
|
commandHandle(event, KEY_SELECT, ['command', 'alternate']);
|
||||||
|
|
||||||
export const handleCommandShowPreferences = event => commandHandle(event, KEY_PREFERENCES, ['command']);
|
export const handleCommandShowPreferences = (event: IKeyCommandEvent): boolean =>
|
||||||
|
commandHandle(event, KEY_PREFERENCES, ['command']);
|
||||||
|
|
||||||
export const handleCommandSearching = event => commandHandle(event, KEY_SEARCH, ['command', 'alternate']);
|
export const handleCommandSearching = (event: IKeyCommandEvent): boolean =>
|
||||||
|
commandHandle(event, KEY_SEARCH, ['command', 'alternate']);
|
||||||
|
|
||||||
export const handleCommandSelectRoom = event => commandHandle(event, KEY_SELECT, ['command']);
|
export const handleCommandSelectRoom = (event: IKeyCommandEvent): boolean => commandHandle(event, KEY_SELECT, ['command']);
|
||||||
|
|
||||||
export const handleCommandPreviousRoom = event => commandHandle(event, KEY_PREVIOUS_ROOM, ['command']);
|
export const handleCommandPreviousRoom = (event: IKeyCommandEvent): boolean =>
|
||||||
|
commandHandle(event, KEY_PREVIOUS_ROOM, ['command']);
|
||||||
|
|
||||||
export const handleCommandNextRoom = event => commandHandle(event, KEY_NEXT_ROOM, ['command']);
|
export const handleCommandNextRoom = (event: IKeyCommandEvent): boolean => commandHandle(event, KEY_NEXT_ROOM, ['command']);
|
||||||
|
|
||||||
export const handleCommandShowNewMessage = event => commandHandle(event, KEY_NEW_ROOM, ['command']);
|
export const handleCommandShowNewMessage = (event: IKeyCommandEvent): boolean => commandHandle(event, KEY_NEW_ROOM, ['command']);
|
||||||
|
|
||||||
export const handleCommandAddNewServer = event => commandHandle(event, KEY_ADD_SERVER, ['command', 'alternate']);
|
export const handleCommandAddNewServer = (event: IKeyCommandEvent): boolean =>
|
||||||
|
commandHandle(event, KEY_ADD_SERVER, ['command', 'alternate']);
|
||||||
|
|
||||||
export const handleCommandOpenServerDropdown = event => commandHandle(event, KEY_SERVER_SELECTION, ['command', 'alternate']);
|
export const handleCommandOpenServerDropdown = (event: IKeyCommandEvent): boolean =>
|
||||||
|
commandHandle(event, KEY_SERVER_SELECTION, ['command', 'alternate']);
|
Loading…
Reference in New Issue