import {useCallback} from 'react';
import {useNavigation} from '@react-navigation/native';
import {StackNavigationProp} from '@react-navigation/stack';
import {RootStackParamList} from '@navigation/interfaces';
import {Screens} from '@shared/constants';

export const useGoBack = () => {
  const navigation = useNavigation<StackNavigationProp<RootStackParamList>>();

  const goBack = useCallback(() => {
    if (navigation.canGoBack()) {
      navigation.goBack();
    } else {
      navigation.reset({routes: [{name: Screens.TABS}], index: 0});
    }
    return true;
  }, [navigation]);

  return {goBack};
};
