mirror of
https://github.com/stablyai/orca.git
synced 2026-10-30 16:47:34 +00:00
refactor(renderer): group Jira task creation and summary modules (#34413)
This commit is contained in:
@@ -184,8 +184,8 @@
|
||||
4 src/renderer/src/components/terminal/terminal-tab-bulk-actions.ts
|
||||
2 src/renderer/src/components/terminal/terminal-tab-create.ts
|
||||
2 src/renderer/src/components/use-new-linear-issue-projects.ts
|
||||
4 src/renderer/src/components/use-task-page-jira-creation-metadata.ts
|
||||
4 src/renderer/src/components/use-task-page-jira-issue-creation.ts
|
||||
4 src/renderer/src/components/task-page/jira/use-task-page-jira-creation-metadata.ts
|
||||
4 src/renderer/src/components/task-page/jira/use-task-page-jira-issue-creation.ts
|
||||
1 src/renderer/src/components/use-task-page-jira-list-effects.ts
|
||||
2 src/renderer/src/components/task-page/use-task-page-provider-metadata.ts
|
||||
2 src/renderer/src/components/task-page/use-task-page-store-bindings.ts
|
||||
|
||||
@@ -76,7 +76,7 @@ const SUPPRESSED_REACT_DOCTOR_DIAGNOSTICS = new Map([
|
||||
'react-doctor(no-adjust-state-on-prop-change)',
|
||||
new Set([
|
||||
'src/renderer/src/components/task-page/github/use-task-page-github-issue-draft.ts',
|
||||
'src/renderer/src/components/use-task-page-jira-creation-state.ts'
|
||||
'src/renderer/src/components/task-page/jira/use-task-page-jira-creation-state.ts'
|
||||
])
|
||||
],
|
||||
[
|
||||
|
||||
+1
-1
@@ -400,7 +400,7 @@
|
||||
{
|
||||
"files": [
|
||||
"src/renderer/src/components/task-page/github/use-task-page-github-issue-draft.ts",
|
||||
"src/renderer/src/components/use-task-page-jira-creation-state.ts"
|
||||
"src/renderer/src/components/task-page/jira/use-task-page-jira-creation-state.ts"
|
||||
],
|
||||
"rules": [
|
||||
"react-doctor/no-adjust-state-on-prop-change"
|
||||
|
||||
@@ -20,8 +20,8 @@ import { useTaskPageLinearBoard } from './linear/use-task-page-linear-board'
|
||||
import { useTaskPageJiraListProjection } from '../use-task-page-jira-list-projection'
|
||||
import { useTaskPageLinearCreationState } from './linear/use-task-page-linear-creation-state'
|
||||
import { useTaskPageGitHubMutationState } from './github/use-task-page-github-mutation-state'
|
||||
import { useTaskPageJiraCreationState } from '../use-task-page-jira-creation-state'
|
||||
import { useTaskPageJiraCreationMetadata } from '../use-task-page-jira-creation-metadata'
|
||||
import { useTaskPageJiraCreationState } from './jira/use-task-page-jira-creation-state'
|
||||
import { useTaskPageJiraCreationMetadata } from './jira/use-task-page-jira-creation-metadata'
|
||||
import { useTaskPageGitHubListProjection } from './github/use-task-page-github-list-projection'
|
||||
import { useTaskPageGitHubSearchPagination } from './github/use-task-page-github-search-pagination'
|
||||
import { useTaskPageGitHubLandingRefresh } from './github/use-task-page-github-landing-refresh'
|
||||
@@ -31,8 +31,8 @@ import { useTaskPageWorkspaceActions } from './use-task-page-workspace-actions'
|
||||
import { useTaskPageGitHubIssueCreation } from './github/use-task-page-github-issue-creation'
|
||||
import { useTaskPageLinearProjectCreation } from './linear/use-task-page-linear-project-creation'
|
||||
import { useTaskPageLinearIssueCreation } from './linear/use-task-page-linear-issue-creation'
|
||||
import { useTaskPageJiraIssueCreation } from '../use-task-page-jira-issue-creation'
|
||||
import { useTaskPageJiraSummaryGeneration } from '../use-task-page-jira-summary-generation'
|
||||
import { useTaskPageJiraIssueCreation } from './jira/use-task-page-jira-issue-creation'
|
||||
import { useTaskPageJiraSummaryGeneration } from './jira/use-task-page-jira-summary-generation'
|
||||
import { useTaskPageGlobalEffects } from './use-task-page-global-effects'
|
||||
import { useTaskPageLinearListEffects } from './linear/use-task-page-linear-list-effects'
|
||||
import { useTaskPageLinearInOrcaEffects } from './linear/use-task-page-linear-in-orca-effects'
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import type { TaskPageJiraCreationMetadataModel } from '../../use-task-page-jira-creation-metadata'
|
||||
import type { TaskPageJiraCreationMetadataModel } from '../jira/use-task-page-jira-creation-metadata'
|
||||
import { getWorkItemRepo } from '@/lib/work-item-repo-row'
|
||||
import { useCallback, useMemo, useEffect } from 'react'
|
||||
import type { GitHubWorkItem } from '../../../../../shared/github/work-item-types'
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useCallback } from 'react'
|
||||
import type { TaskPageComposerActionsModel } from '../use-task-page-composer-actions'
|
||||
import { getJiraSelfUser } from '@/components/jira-self-user'
|
||||
import { JiraUserPicker, type JiraUserPickerFixedOption } from '@/components/jira-user-picker'
|
||||
import { hasJiraAssigneeCreateField } from '@/components/task-page-jira-create-fields'
|
||||
import { hasJiraAssigneeCreateField } from '@/components/task-page/jira/task-page-jira-create-fields'
|
||||
import { getJiraProjectSelectionKey } from '@/components/task-page-jira-project-selection'
|
||||
import { jiraListAssignableUsersForProject } from '@/runtime/runtime-jira-client'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
|
||||
@@ -34,7 +34,7 @@ import { Input } from '@/components/ui/input'
|
||||
import {
|
||||
getJiraCreateAllowedValueLabel,
|
||||
isJiraScalarUserCreateField
|
||||
} from '@/components/task-page-jira-create-fields'
|
||||
} from '@/components/task-page/jira/task-page-jira-create-fields'
|
||||
import { TaskPageJiraIssueAssigneeField } from './IssueAssigneeField'
|
||||
import { TaskPageJiraIssueUserField } from './IssueUserField'
|
||||
export function TaskPageJiraIssueDialog({
|
||||
|
||||
@@ -4,7 +4,7 @@ import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/re
|
||||
import userEvent from '@testing-library/user-event'
|
||||
import { afterEach, beforeEach, expect, it, vi } from 'vitest'
|
||||
import { TaskPageJiraIssueDialog } from './IssueDialog'
|
||||
import { useTaskPageJiraIssueCreation } from '../../use-task-page-jira-issue-creation'
|
||||
import { useTaskPageJiraIssueCreation } from './use-task-page-jira-issue-creation'
|
||||
import type { TaskPageComposerActionsModel } from '../use-task-page-composer-actions'
|
||||
import type { JiraCreateField } from '../../../../../shared/jira/jira-types'
|
||||
import type { TaskSourceContext } from '../../../../../shared/task-source-context'
|
||||
@@ -16,9 +16,9 @@ const { search, create, getIssue } = vi.hoisted(() => ({
|
||||
}))
|
||||
vi.mock('@/runtime/runtime-jira-client', () => ({
|
||||
jiraSearchUsers: search,
|
||||
jiraCreateIssue: create,
|
||||
jiraGetIssue: getIssue
|
||||
}))
|
||||
vi.mock('@/runtime/runtime-jira-user-fields-client', () => ({ jiraCreateIssue: create }))
|
||||
afterEach(cleanup)
|
||||
beforeEach(() => {
|
||||
vi.resetAllMocks()
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ import {
|
||||
isJiraUserCreateField,
|
||||
isVisibleJiraCreateField
|
||||
} from './task-page-jira-create-fields'
|
||||
import type { JiraCreateField } from '../../../shared/jira/jira-types'
|
||||
import type { JiraCreateField } from '../../../../../shared/jira/jira-types'
|
||||
|
||||
function field(overrides: Partial<JiraCreateField> = {}): JiraCreateField {
|
||||
return { key: 'customfield_1', name: 'Custom', required: true, ...overrides }
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
import { buildJiraCreateTextAdf } from '@/components/jira-create-adf'
|
||||
import type { JiraCreateField } from '../../../shared/jira/jira-types'
|
||||
import type { JiraCreateField } from '../../../../../shared/jira/jira-types'
|
||||
|
||||
// 'assignee' is system here because the dialog renders a dedicated picker for it.
|
||||
const JIRA_CREATE_SYSTEM_FIELD_KEYS = new Set([
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
import { useJiraCreateAssignee } from './use-jira-create-assignee'
|
||||
import { useJiraCreateAssignee } from '../../use-jira-create-assignee'
|
||||
import React, { useCallback, useEffect, useMemo } from 'react'
|
||||
|
||||
import { filterJiraProjectPickerProjects } from '@/components/jira-project-picker-filter'
|
||||
import { isVisibleJiraCreateField } from '@/components/task-page-jira-create-fields'
|
||||
import { isVisibleJiraCreateField } from '@/components/task-page/jira/task-page-jira-create-fields'
|
||||
import {
|
||||
compareJiraProjectsByDisplayLabel,
|
||||
getJiraProjectSelectionKey
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
import type { TaskPageGitHubMutationStateModel } from './task-page/github/use-task-page-github-mutation-state'
|
||||
import type { TaskPageGitHubMutationStateModel } from '../github/use-task-page-github-mutation-state'
|
||||
import { useState, useRef, useEffect } from 'react'
|
||||
import type { JiraIssueType, JiraCreateField } from '../../../shared/jira/jira-types'
|
||||
import type { JiraIssueType, JiraCreateField } from '../../../../../shared/jira/jira-types'
|
||||
import { useTaskCreationDraftRetention } from '@/components/use-task-creation-draft-retention'
|
||||
import { writeNewJiraIssueDraft } from './task-page/task-page-draft-storage'
|
||||
import { writeNewJiraIssueDraft } from '../task-page-draft-storage'
|
||||
import { useTaskPageJiraCreationProjects } from './use-task-page-jira-creation-projects'
|
||||
export function useTaskPageJiraCreationStatePrelude(model: TaskPageGitHubMutationStateModel) {
|
||||
const {
|
||||
+4
-3
@@ -1,10 +1,11 @@
|
||||
import type { TaskPageLinearIssueCreationModel } from './task-page/linear/use-task-page-linear-issue-creation'
|
||||
import type { TaskPageLinearIssueCreationModel } from '../linear/use-task-page-linear-issue-creation'
|
||||
import { useCallback } from 'react'
|
||||
import {
|
||||
buildJiraCreateSubmission,
|
||||
hasJiraAssigneeCreateField
|
||||
} from '@/components/task-page-jira-create-fields'
|
||||
import { jiraCreateIssue, jiraGetIssue } from '@/runtime/runtime-jira-client'
|
||||
} from '@/components/task-page/jira/task-page-jira-create-fields'
|
||||
import { jiraCreateIssue } from '@/runtime/runtime-jira-user-fields-client'
|
||||
import { jiraGetIssue } from '@/runtime/runtime-jira-client'
|
||||
import { toast } from 'sonner'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
import { defaultScopeSource } from '@/lib/default-creation-host'
|
||||
+5
-2
@@ -2,8 +2,11 @@
|
||||
import { act, useState } from 'react'
|
||||
import { renderHook, cleanup } from '@testing-library/react'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import type { JiraIssueSummaryGenerationResult } from '../../../shared/jira/jira-issue-summary-generation'
|
||||
import { LOCAL_EXECUTION_HOST_ID, toRuntimeExecutionHostId } from '../../../shared/execution-host'
|
||||
import type { JiraIssueSummaryGenerationResult } from '../../../../../shared/jira/jira-issue-summary-generation'
|
||||
import {
|
||||
LOCAL_EXECUTION_HOST_ID,
|
||||
toRuntimeExecutionHostId
|
||||
} from '../../../../../shared/execution-host'
|
||||
import { useTaskPageJiraSummaryGeneration } from './use-task-page-jira-summary-generation'
|
||||
|
||||
const mocks = vi.hoisted(() => ({ generate: vi.fn(), cancel: vi.fn(), error: vi.fn() }))
|
||||
+4
-4
@@ -1,14 +1,14 @@
|
||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { createBrowserUuid } from '@/lib/browser-uuid'
|
||||
import { createNonSecureContextUuid as createBrowserUuid } from '../../../../../shared/non-secure-context-uuid'
|
||||
import { isWebClientLocation } from '@/lib/web-client-location'
|
||||
import { ipcOrRuntimeTargetForHostId } from '@/runtime/runtime-client-target'
|
||||
import {
|
||||
generateRuntimeJiraIssueSummary,
|
||||
cancelRuntimeJiraIssueSummary
|
||||
} from '@/runtime/runtime-jira-summary-generation-client'
|
||||
import type { RuntimeClientTarget } from '../../../shared/runtime-client-target'
|
||||
import type { JiraIssueSummaryGenerationRequest } from '../../../shared/jira/jira-issue-summary-generation'
|
||||
import { getTaskSourceCacheScope } from '../../../shared/task-source-context'
|
||||
import type { RuntimeClientTarget } from '../../../../../shared/runtime-client-target'
|
||||
import type { JiraIssueSummaryGenerationRequest } from '../../../../../shared/jira/jira-issue-summary-generation'
|
||||
import { getTaskSourceCacheScope } from '../../../../../shared/task-source-context'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
import type { TaskPageJiraIssueCreationModel } from './use-task-page-jira-issue-creation'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { TaskPageJiraSummaryGenerationModel } from '../use-task-page-jira-summary-generation'
|
||||
import type { TaskPageJiraSummaryGenerationModel } from './jira/use-task-page-jira-summary-generation'
|
||||
import { useEffect } from 'react'
|
||||
import { addAppKeyListener, removeAppKeyListener } from '@/lib/app-keyboard-router'
|
||||
export function useTaskPageGlobalEffects(model: TaskPageJiraSummaryGenerationModel) {
|
||||
|
||||
Reference in New Issue
Block a user