Files
musicland/src/navigation/NavigationService.js
T
2025-09-02 11:45:27 +02:00

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);
}
};