import { createStackNavigator } from '@react-navigation/stack';
import React from 'react';
import { useTranslation } from 'react-i18next';
import HeaderRightHome from '../components/buttons/HeaderHome';
import { useTheme } from '../contexts/theme';
import Chat from '../screens/Chat';
import ContactDetails from '../screens/ContactDetails';
import CredentialDetails from '../screens/CredentialDetails';
import CredentialOffer from '../screens/CredentialOffer';
import ListContacts from '../screens/ListContacts';
import ProofDetails from '../screens/ProofDetails';
import ProofRequest from '../screens/ProofRequest';
import RenameContact from '../screens/RenameContact';
import WhatAreContacts from '../screens/WhatAreContacts';
import { Screens } from '../types/navigators';
import { useDefaultStackOptions } from './defaultStackOptions';
import { TOKENS, useServices } from '../container-api';
const ContactStack = () => {
  const Stack = createStackNavigator();
  const theme = useTheme();
  const {
    t
  } = useTranslation();
  const defaultStackOptions = useDefaultStackOptions(theme);
  const [ScreenOptionsDictionary] = useServices([TOKENS.OBJECT_SCREEN_CONFIG]);
  return /*#__PURE__*/React.createElement(Stack.Navigator, {
    screenOptions: {
      ...defaultStackOptions
    }
  }, /*#__PURE__*/React.createElement(Stack.Screen, {
    name: Screens.Contacts,
    component: ListContacts,
    options: {
      title: t('Screens.Contacts'),
      ...ScreenOptionsDictionary[Screens.Contacts]
    }
  }), /*#__PURE__*/React.createElement(Stack.Screen, {
    name: Screens.ContactDetails,
    component: ContactDetails,
    options: {
      title: t('Screens.ContactDetails'),
      ...ScreenOptionsDictionary[Screens.ContactDetails]
    }
  }), /*#__PURE__*/React.createElement(Stack.Screen, {
    name: Screens.RenameContact,
    component: RenameContact,
    options: {
      title: t('Screens.RenameContact'),
      ...ScreenOptionsDictionary[Screens.RenameContact]
    }
  }), /*#__PURE__*/React.createElement(Stack.Screen, {
    name: Screens.Chat,
    component: Chat,
    options: {
      ...ScreenOptionsDictionary[Screens.Chat]
    }
  }), /*#__PURE__*/React.createElement(Stack.Screen, {
    name: Screens.WhatAreContacts,
    component: WhatAreContacts,
    options: {
      title: '',
      ...ScreenOptionsDictionary[Screens.WhatAreContacts]
    }
  }), /*#__PURE__*/React.createElement(Stack.Screen, {
    name: Screens.CredentialDetails,
    component: CredentialDetails,
    options: {
      title: t('Screens.CredentialDetails'),
      ...ScreenOptionsDictionary[Screens.CredentialDetails]
    }
  }), /*#__PURE__*/React.createElement(Stack.Screen, {
    name: Screens.CredentialOffer,
    component: CredentialOffer,
    options: {
      title: t('Screens.CredentialOffer'),
      ...ScreenOptionsDictionary[Screens.CredentialOffer]
    }
  }), /*#__PURE__*/React.createElement(Stack.Screen, {
    name: Screens.ProofDetails,
    component: ProofDetails,
    options: () => ({
      title: '',
      headerRight: () => /*#__PURE__*/React.createElement(HeaderRightHome, null),
      ...ScreenOptionsDictionary[Screens.ProofDetails]
    })
  }), /*#__PURE__*/React.createElement(Stack.Screen, {
    name: Screens.ProofRequest,
    component: ProofRequest,
    options: {
      title: t('Screens.ProofRequest'),
      ...ScreenOptionsDictionary[Screens.ProofRequest]
    }
  }));
};
export default ContactStack;
//# sourceMappingURL=ContactStack.js.map