react-native-twopane-navigation
Version:
React Native package for dual screen devices navigation support (Surface Duo)
63 lines (54 loc) • 1.43 kB
text/typescript
import { IKeyOnlyAction } from 'src';
import { IExtensionOptions, paneType } from "../../../utilities/interfaces";
import { IKeyAction, IScreenOnlyAction, IKeyScreenAction } from "./key.interface";
import { PUSH_KEY, POP_KEY, MOVE_TO_FRONT_KEY, REMOVE_KEY, CHANGE_SCREEN_KEY, POP_TO_FRONT_KEY } from "./key.types";
export const pushKey = (
screen: paneType,
key: string,
isMerge: boolean,
extensionOptions?: IExtensionOptions
): IKeyAction => ({
type: PUSH_KEY,
payload: {
screen: screen,
key: key,
isMerge: isMerge,
extensionOptions
}
});
/**
* Removes all elements of the stack and returns element in index 0
*/
export const popToFront = (screen: paneType): IScreenOnlyAction => ({
type: POP_TO_FRONT_KEY,
payload: {
screen: screen
}
});
/**
* Go back one element in the stack
*/
export const popScreen = (key: string): IKeyOnlyAction => ({
type: POP_KEY,
payload: {
key: key
}
});
export const moveToFront = (screen: paneType,
key: string
): IKeyScreenAction => ({
type: MOVE_TO_FRONT_KEY,
payload: {
screen: screen,
key: key
}
});
export const changeScreen = (screen: paneType,
key: string
): IKeyScreenAction => ({
type: CHANGE_SCREEN_KEY,
payload: {
screen: screen,
key: key
}
});