42 lines
1004 B
JavaScript
42 lines
1004 B
JavaScript
import React, { setGlobal } from "reactn";
|
|
import { StackActions } from "@react-navigation/native";
|
|
|
|
import { isDesktop } from "../hooks/useLayoutType";
|
|
import { Routes } from "./Routes";
|
|
|
|
export const navigationRef = React.createRef();
|
|
|
|
export function navigate(name, params) {
|
|
navigationRef.current?.navigate(name, params);
|
|
}
|
|
|
|
export function push(name, params) {
|
|
if (!navigationRef.current) return;
|
|
try {
|
|
navigationRef.current.dispatch(StackActions.push(name, params));
|
|
} catch (e) {
|
|
// Fallback to navigate if push not available
|
|
navigationRef.current?.navigate?.(name, params);
|
|
}
|
|
}
|
|
|
|
export function dispatch(route) {
|
|
navigationRef.current?.dispatch(route);
|
|
}
|
|
|
|
export function reset(route) {
|
|
navigationRef.current?.reset(route);
|
|
}
|
|
|
|
export function goBack() {
|
|
navigationRef.current?.goBack();
|
|
}
|
|
|
|
export const navigateToTask = (taskData = {}) => {
|
|
if (isDesktop) {
|
|
setGlobal({ currentTaskData: taskData });
|
|
} else {
|
|
navigate(Routes.TaskDetails, taskData);
|
|
}
|
|
};
|