Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! 이 PR은 사용자가 마이페이지에서 진행 중인 프로젝트를 클릭했을 때, 이전에 작업하던 스텝부터 원활하게 이어서 진행할 수 있도록 사용자 경험을 개선합니다. 프로젝트의 상태에 따라 적절한 페이지로 이동시키고, 업로드 스텝 페이지 내에서 사용자가 완료하지 않은 첫 번째 스텝을 자동으로 식별하여 해당 스텝으로 안내하는 기능을 추가했습니다. 이를 통해 사용자는 자신의 작업 흐름을 끊김 없이 이어갈 수 있습니다. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new navigation flow for 'in-progress' projects, directing users to a multi-step upload page. On this upload page, a new mechanism ensures users are automatically redirected to the next uncompleted step. However, a critical issue was identified where the current redirection logic prevents users from navigating to previous steps, as it always forces them to the 'targetStep'. The reviewer suggests modifying this logic to only apply when stepNum is 1, allowing users to revisit prior steps.
| useEffect(() => { | ||
| if (!projectId || !stepCode) return; | ||
| if (!project) return; | ||
|
|
||
| const stepResponses = project.stepResponses ?? []; | ||
|
|
||
| if (stepResponses.length === 0) { | ||
| setIsStepResolved(true); | ||
| return; | ||
| } | ||
|
|
||
| const nextStepIndex = stepResponses.findIndex( | ||
| (step) => !step.userSubmittedResult, | ||
| ); | ||
|
|
||
| const targetStep = | ||
| nextStepIndex === -1 ? stepResponses.length : nextStepIndex + 1; | ||
|
|
||
| if (stepNum !== targetStep) { | ||
| navigate(`${ROUTE_PATHS.UPLOAD_STEP_BASE}/${projectId}/${targetStep}`, { | ||
| replace: true, | ||
| }); | ||
| } else { | ||
| setIsStepResolved(true); | ||
| } | ||
| }, [project, stepNum, projectId, navigate]); |
There was a problem hiding this comment.
PR 설명에 언급된 '이전 단계로' 버튼 비활성화 문제를 발견했습니다. 이는 사용자의 의도와 다른 페이지 이동을 유발하여 주요 기능 사용에 제약을 주는 문제입니다.
현재 구현은 stepNum과 관계없이 항상 targetStep으로 리디렉션하여, 사용자가 이전 단계로 이동할 수 없게 만듭니다.
이 로직은 사용자가 마이페이지에서 프로젝트를 처음 시작할 때만 실행되어야 합니다. 진입점이 /step/.../1 이므로, stepNum이 1일 때만 리디렉션 로직을 실행하도록 제한하면 이 문제를 해결할 수 있습니다. 아래와 같이 수정을 제안합니다.
useEffect(() => {
if (!project) return;
const stepResponses = project.stepResponses ?? [];
// 사용자가 이전 단계로 이동하는 것을 허용하기 위해,
// 마이페이지에서 진입하는 첫 단계(stepNum === 1)에서만 다음 진행할 단계로 리디렉션합니다.
if (stepNum === 1 && stepResponses.length > 0) {
const nextStepIndex = stepResponses.findIndex(
(step) => !step.userSubmittedResult,
);
const targetStep =
nextStepIndex === -1 ? stepResponses.length : nextStepIndex + 1;
if (targetStep !== stepNum) {
navigate(`${ROUTE_PATHS.UPLOAD_STEP_BASE}/${projectId}/${targetStep}`, {
replace: true,
});
return;
}
}
setIsStepResolved(true);
}, [project, stepNum, projectId, navigate]);
There was a problem hiding this comment.
다음 이슈에서 처리하려했는데 stepNum === 1일 때만 리다이렉션되도록 수정하는 게 좋을 것 같습니다.
반영하겠습니다.
|
과제 업로드 단계 페이지(UploadStepPage) 리펙토링과 충돌이 있을 수 있어 두 이슈를 하나의 PR로 다시 올리겠습니다. |
📝 요약 (Summary)
마이페이지에서 진행 중인 프로젝트 클릭 시 이전에 진행하던 스텝부터 이어서 작업할 수 있도록 구현했습니다.
✅ 주요 변경 사항 (Key Changes)
💻 상세 구현 내용 (Implementation Details)
프로젝트 클릭 분기
ProjectListSection스텝 자동 판별
UploadStepPage🚀 트러블 슈팅 (Trouble Shooting)
해당 없음
이전 단계로 버튼
인디케이터 ui
📸 스크린샷 (Screenshots)
해당 없음
#️⃣ 관련 이슈 (Related Issues)