import React, { useContext, useEffect } from 'react'; import { Linking } from 'react-native'; import { initJIRAApi } from '../JIRAApi.service'; import { useJIRASubmission } from './useJIRASubmission.hook'; import { useJIRAComponents } from './useJIRAComponents.hook'; import { Typography, GlobalProps, AttachmentAlert, SubmissionOrderEnum, } from '../../../components'; export const useJIRAIntegration = () => { const { isEnabled, JIRAComponents } = useJIRAComponents(); const { issue, isDone, isLoading, isAttaching, submitToJIRA, } = useJIRASubmission(); const { jira, authState } = useContext(GlobalProps); useEffect(() => { if (!jira) return; initJIRAApi({ ...jira, jira: authState.jira }); }, [authState]); const JIRAConfirmationComponents = issue && ( <> Linking.openURL(issue.self)} > JIRA Linking.openURL(issue.self)} > Issue ID: {issue.key} ); const handleSubmit = isEnabled ? submitToJIRA : null; return { submitToJIRA: handleSubmit, JIRAComponents, isJIRALoading: isLoading, isJIRAUploadDone: isDone, isJIRAEnabled: isEnabled, JIRAConfirmationComponents: { [SubmissionOrderEnum.Jira]: JIRAConfirmationComponents, }, }; };