diff --git a/config/focus-setting-read-baseline.txt b/config/focus-setting-read-baseline.txt index c5d8f9f9d98..03a3734884d 100644 --- a/config/focus-setting-read-baseline.txt +++ b/config/focus-setting-read-baseline.txt @@ -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 diff --git a/config/scripts/check-changed-code-quality.mjs b/config/scripts/check-changed-code-quality.mjs index 3faffb83128..207cf7ae389 100644 --- a/config/scripts/check-changed-code-quality.mjs +++ b/config/scripts/check-changed-code-quality.mjs @@ -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' ]) ], [ diff --git a/package.json b/package.json index 156e06c34e6..14a1102fd46 100644 --- a/package.json +++ b/package.json @@ -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" diff --git a/src/renderer/src/components/task-page/TaskPage.tsx b/src/renderer/src/components/task-page/TaskPage.tsx index 57b264d9cab..c1abc3c8482 100644 --- a/src/renderer/src/components/task-page/TaskPage.tsx +++ b/src/renderer/src/components/task-page/TaskPage.tsx @@ -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' diff --git a/src/renderer/src/components/task-page/github/use-task-page-github-list-projection.ts b/src/renderer/src/components/task-page/github/use-task-page-github-list-projection.ts index 6364ee412f7..8a98410dfd4 100644 --- a/src/renderer/src/components/task-page/github/use-task-page-github-list-projection.ts +++ b/src/renderer/src/components/task-page/github/use-task-page-github-list-projection.ts @@ -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' diff --git a/src/renderer/src/components/task-page/jira/IssueAssigneeField.tsx b/src/renderer/src/components/task-page/jira/IssueAssigneeField.tsx index b80fa473946..fa40a9dfe1f 100644 --- a/src/renderer/src/components/task-page/jira/IssueAssigneeField.tsx +++ b/src/renderer/src/components/task-page/jira/IssueAssigneeField.tsx @@ -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' diff --git a/src/renderer/src/components/task-page/jira/IssueDialog.tsx b/src/renderer/src/components/task-page/jira/IssueDialog.tsx index 8135afd91fa..4d3e7d7a568 100644 --- a/src/renderer/src/components/task-page/jira/IssueDialog.tsx +++ b/src/renderer/src/components/task-page/jira/IssueDialog.tsx @@ -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({ diff --git a/src/renderer/src/components/task-page/jira/IssueUserField.test.tsx b/src/renderer/src/components/task-page/jira/IssueUserField.test.tsx index 24c564d8a62..3a4b9849028 100644 --- a/src/renderer/src/components/task-page/jira/IssueUserField.test.tsx +++ b/src/renderer/src/components/task-page/jira/IssueUserField.test.tsx @@ -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() diff --git a/src/renderer/src/components/task-page-jira-create-fields.test.ts b/src/renderer/src/components/task-page/jira/task-page-jira-create-fields.test.ts similarity index 99% rename from src/renderer/src/components/task-page-jira-create-fields.test.ts rename to src/renderer/src/components/task-page/jira/task-page-jira-create-fields.test.ts index f31825c7ca0..0b520c41069 100644 --- a/src/renderer/src/components/task-page-jira-create-fields.test.ts +++ b/src/renderer/src/components/task-page/jira/task-page-jira-create-fields.test.ts @@ -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 { return { key: 'customfield_1', name: 'Custom', required: true, ...overrides } diff --git a/src/renderer/src/components/task-page-jira-create-fields.ts b/src/renderer/src/components/task-page/jira/task-page-jira-create-fields.ts similarity index 98% rename from src/renderer/src/components/task-page-jira-create-fields.ts rename to src/renderer/src/components/task-page/jira/task-page-jira-create-fields.ts index 289a6c60cea..75728349eb3 100644 --- a/src/renderer/src/components/task-page-jira-create-fields.ts +++ b/src/renderer/src/components/task-page/jira/task-page-jira-create-fields.ts @@ -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([ diff --git a/src/renderer/src/components/use-task-page-jira-creation-metadata.ts b/src/renderer/src/components/task-page/jira/use-task-page-jira-creation-metadata.ts similarity index 100% rename from src/renderer/src/components/use-task-page-jira-creation-metadata.ts rename to src/renderer/src/components/task-page/jira/use-task-page-jira-creation-metadata.ts diff --git a/src/renderer/src/components/use-task-page-jira-creation-projects.ts b/src/renderer/src/components/task-page/jira/use-task-page-jira-creation-projects.ts similarity index 98% rename from src/renderer/src/components/use-task-page-jira-creation-projects.ts rename to src/renderer/src/components/task-page/jira/use-task-page-jira-creation-projects.ts index 8c4a6522ba7..1ed13b5af49 100644 --- a/src/renderer/src/components/use-task-page-jira-creation-projects.ts +++ b/src/renderer/src/components/task-page/jira/use-task-page-jira-creation-projects.ts @@ -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 diff --git a/src/renderer/src/components/use-task-page-jira-creation-state.ts b/src/renderer/src/components/task-page/jira/use-task-page-jira-creation-state.ts similarity index 97% rename from src/renderer/src/components/use-task-page-jira-creation-state.ts rename to src/renderer/src/components/task-page/jira/use-task-page-jira-creation-state.ts index 8fcff26f4ce..f25f6d3a6fd 100644 --- a/src/renderer/src/components/use-task-page-jira-creation-state.ts +++ b/src/renderer/src/components/task-page/jira/use-task-page-jira-creation-state.ts @@ -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 { diff --git a/src/renderer/src/components/use-task-page-jira-issue-creation.ts b/src/renderer/src/components/task-page/jira/use-task-page-jira-issue-creation.ts similarity index 94% rename from src/renderer/src/components/use-task-page-jira-issue-creation.ts rename to src/renderer/src/components/task-page/jira/use-task-page-jira-issue-creation.ts index c0d4f09b664..fdf609363fd 100644 --- a/src/renderer/src/components/use-task-page-jira-issue-creation.ts +++ b/src/renderer/src/components/task-page/jira/use-task-page-jira-issue-creation.ts @@ -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' diff --git a/src/renderer/src/components/use-task-page-jira-summary-generation.test.tsx b/src/renderer/src/components/task-page/jira/use-task-page-jira-summary-generation.test.tsx similarity index 98% rename from src/renderer/src/components/use-task-page-jira-summary-generation.test.tsx rename to src/renderer/src/components/task-page/jira/use-task-page-jira-summary-generation.test.tsx index 7bc9fd8cc6f..e7e2213fc3f 100644 --- a/src/renderer/src/components/use-task-page-jira-summary-generation.test.tsx +++ b/src/renderer/src/components/task-page/jira/use-task-page-jira-summary-generation.test.tsx @@ -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() })) diff --git a/src/renderer/src/components/use-task-page-jira-summary-generation.ts b/src/renderer/src/components/task-page/jira/use-task-page-jira-summary-generation.ts similarity index 95% rename from src/renderer/src/components/use-task-page-jira-summary-generation.ts rename to src/renderer/src/components/task-page/jira/use-task-page-jira-summary-generation.ts index 8073d26288f..cc7ef45adf2 100644 --- a/src/renderer/src/components/use-task-page-jira-summary-generation.ts +++ b/src/renderer/src/components/task-page/jira/use-task-page-jira-summary-generation.ts @@ -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' diff --git a/src/renderer/src/components/task-page/use-task-page-global-effects.ts b/src/renderer/src/components/task-page/use-task-page-global-effects.ts index 63962d62320..7b897de4113 100644 --- a/src/renderer/src/components/task-page/use-task-page-global-effects.ts +++ b/src/renderer/src/components/task-page/use-task-page-global-effects.ts @@ -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) {