From 5b0abec171ec4890010b58646865c6ec80f12495 Mon Sep 17 00:00:00 2001 From: Hentry Martin Date: Fri, 1 Aug 2025 21:19:19 +0200 Subject: [PATCH 1/2] feat --- .../src/pages/copilot-request-form/index.tsx | 42 ++++++++++++++++--- src/apps/copilots/src/services/projects.ts | 5 +++ 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/src/apps/copilots/src/pages/copilot-request-form/index.tsx b/src/apps/copilots/src/pages/copilot-request-form/index.tsx index 750c86f04..b93dd89e9 100644 --- a/src/apps/copilots/src/pages/copilot-request-form/index.tsx +++ b/src/apps/copilots/src/pages/copilot-request-form/index.tsx @@ -1,7 +1,7 @@ import { FC, useContext, useEffect, useMemo, useState } from 'react' import { bind, debounce, isEmpty } from 'lodash' import { toast } from 'react-toastify' -import { Params, useNavigate, useParams } from 'react-router-dom' +import { Params, useNavigate, useParams, useSearchParams } from 'react-router-dom' import classNames from 'classnames' import { profileContext, ProfileContextData } from '~/libs/core' @@ -9,9 +9,10 @@ import { Button, IconSolid, InputDatePicker, InputMultiselectOption, InputRadio, InputSelect, InputSelectReact, InputText, InputTextarea } from '~/libs/ui' import { InputSkillSelector } from '~/libs/shared' -import { getProjects, ProjectsResponse, useProjects } from '../../services/projects' +import { getProject, getProjects, ProjectsResponse, useProjects } from '../../services/projects' import { ProjectTypes, ProjectTypeValues } from '../../constants' import { CopilotRequestResponse, saveCopilotRequest, useCopilotRequest } from '../../services/copilot-requests' +import { Project } from '../../models/Project' import styles from './styles.module.scss' @@ -37,11 +38,13 @@ const CopilotRequestForm: FC<{}> = () => { const { profile }: ProfileContextData = useContext(profileContext) const navigate = useNavigate() const routeParams: Params = useParams() + const [params] = useSearchParams() const [formValues, setFormValues] = useState({}) const [isFormChanged, setIsFormChanged] = useState(false) const [formErrors, setFormErrors] = useState({}) const [paymentType, setPaymentType] = useState('') + const [projectFromQuery, setProjectFromQuery] = useState() const { data: copilotRequestData }: CopilotRequestResponse = useCopilotRequest(routeParams.requestId) @@ -51,15 +54,42 @@ const CopilotRequestForm: FC<{}> = () => { } }, [copilotRequestData]) + const fetchProject = async (): Promise => { + const projectId = params.get('projectId') + + if (!projectId) { + return + } + + const project = await getProject(projectId as string) + + setFormValues((prevValues: any) => ({ + ...prevValues, + projectId: project.id, + })) + setIsFormChanged(true) + setProjectFromQuery(project) + } + + useEffect(() => { + fetchProject() + }, [params]) + const { data: projects = [] }: ProjectsResponse = useProjects(undefined, { filter: { id: copilotRequestData?.projectId }, isPaused: () => !copilotRequestData?.projectId, }) - const projectOptions = useMemo(() => projects.map(p => ({ - label: p.name, - value: p.id, - })), [projects]) + const projectOptions = useMemo(() => { + const projectsFromResponse = projects.map(p => ({ + label: p.name, + value: p.id, + })) + + return projectFromQuery + ? [...projectsFromResponse, { label: projectFromQuery.name, value: projectFromQuery.id }] + : projectsFromResponse + }, [projects, projectFromQuery]) const projectTypes = ProjectTypes ? ProjectTypes.map(project => ({ label: project, diff --git a/src/apps/copilots/src/services/projects.ts b/src/apps/copilots/src/services/projects.ts index 85b32f9cf..096c373ef 100644 --- a/src/apps/copilots/src/services/projects.ts +++ b/src/apps/copilots/src/services/projects.ts @@ -58,6 +58,11 @@ export const useProjects = (search?: string, config?: {isPaused?: () => boolean, }) } +export const getProject = (projectId: string): Promise => { + const url = `${baseUrl}/${projectId}` + return xhrGetAsync(url) +} + export const getProjects = (search?: string, filter?: any): Promise => { const params = { name: `"${search}"`, ...filter } const url = buildUrl(baseUrl, params) From 4da8cb05932b827ca9730bbf7cc477d04f2dd4b4 Mon Sep 17 00:00:00 2001 From: Hentry Martin Date: Fri, 1 Aug 2025 21:21:42 +0200 Subject: [PATCH 2/2] fix: circle ci config updates --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c8df4fd99..93ebaa7d6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -222,7 +222,7 @@ workflows: - LVT-256 - CORE-635 - feat/system-admin - - pm-1506_1 + - pm-1365_1 - deployQa: context: org-global