Skip to content

Commit 1e8aed4

Browse files
committed
Merge branch 'develop' of https://github.com/depromeet/layer into 619-회고-작성-시-좌측-ui-버튼-연동회고-추가-템플리-변경-멤버
2 parents 2bcc1b3 + 6f107aa commit 1e8aed4

23 files changed

Lines changed: 129 additions & 63 deletions

File tree

apps/web/src/app/desktop/component/analysis/AnalysisDialog/AnalysisContent.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ type AnalysisContentProps = {
1313
export default function AnalysisContent({ selectedTab, analysisData }: AnalysisContentProps) {
1414
const { questions, individuals } = analysisData;
1515

16-
console.log("analysisData", analysisData);
17-
1816
return (
1917
<>
2018
{selectedTab === "회고" && <AnalysisRetrospectTab analysisData={analysisData} />}

apps/web/src/app/desktop/component/analysis/AnalysisDialog/AnalysisHeader.tsx

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { css } from "@emotion/react";
55
import { TEAM_ANALYSIS_MENU_TABS, PERSONAL_ANALYSIS_MENU_TABS, AnalysisTab } from ".";
66
import { useNavigate, useSearchParams } from "react-router-dom";
77
import { PATHS } from "@layer/shared";
8+
import { useEffect, useRef } from "react";
9+
import { useNavigation } from "@/component/common/LocalNavigationBar/context/NavigationContext";
810

911
type AnalysisHeaderProps = {
1012
selectedTab: AnalysisTab;
@@ -15,18 +17,30 @@ type AnalysisHeaderProps = {
1517
};
1618

1719
export default function AnalysisHeader({ selectedTab, isPersonal, isOverviewVisible, handleTabClick, onToggleOverview }: AnalysisHeaderProps) {
18-
const [searchParams] = useSearchParams();
1920
const navigate = useNavigate();
21+
const [searchParams] = useSearchParams();
22+
23+
const { isCollapsed, toggleCollapse } = useNavigation();
2024

2125
const title = searchParams.get("title");
2226
const spaceId = searchParams.get("spaceId");
2327

2428
const menuTabs = isPersonal ? PERSONAL_ANALYSIS_MENU_TABS : TEAM_ANALYSIS_MENU_TABS;
2529

30+
const originalIsCollapsedRef = useRef<boolean>(isCollapsed);
31+
2632
const handleClose = () => {
27-
navigate(PATHS.DesktopcompleteRetrospectCreate(spaceId as string));
33+
if (isCollapsed && !originalIsCollapsedRef.current) {
34+
toggleCollapse();
35+
}
36+
37+
navigate(PATHS.DesktopCompleteRetrospectCreate(spaceId as string));
2838
};
2939

40+
useEffect(() => {
41+
originalIsCollapsedRef.current = isCollapsed;
42+
}, []);
43+
3044
return (
3145
<section
3246
css={css`
@@ -42,7 +56,7 @@ export default function AnalysisHeader({ selectedTab, isPersonal, isOverviewVisi
4256
`}
4357
>
4458
<Icon
45-
icon="ic_close"
59+
icon="ic_analysis_close"
4660
size={2.0}
4761
css={css`
4862
cursor: pointer;

apps/web/src/app/desktop/component/analysis/AnalysisOverview/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export default function AnalysisOverview({ spaceId }: AnalysisOverviewProps) {
4040
isPending={isRetrospectsPending}
4141
retrospects={proceedingRetrospects}
4242
emptyMessage="작성중인 회고가 없습니다."
43+
spaceId={spaceId}
4344
/>
4445

4546
<RetrospectSection

apps/web/src/app/desktop/component/retrospectCreate/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export function RetrospectCreate() {
5454
},
5555
{
5656
onSuccess: () => {
57-
navigate(PATHS.DesktopcompleteRetrospectCreate(String(spaceIdNumber)));
57+
navigate(PATHS.DesktopCompleteRetrospectCreate(String(spaceIdNumber)));
5858
closeFunnelModal();
5959
toast.success("회고가 생성되었어요!");
6060
},

apps/web/src/app/desktop/component/retrospectWrite/complete/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ export function RetrospectWriteComplete() {
205205
<Button
206206
onClick={() => {
207207
close();
208-
navigate(PATHS.DesktopcompleteRetrospectCreate(String(spaceId)));
208+
navigate(PATHS.DesktopCompleteRetrospectCreate(String(spaceId)));
209209
}}
210210
>
211211
완료

apps/web/src/app/desktop/component/retrospectWrite/index.tsx

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { createContext, useEffect, useState } from "react";
55
import { WriteDialog } from "./writeDialog";
66
import { LoadingModal } from "@/component/common/Modal/LoadingModal";
77
import { useSearchParams } from "react-router-dom";
8+
import { useNavigation } from "@/component/common/LocalNavigationBar/context/NavigationContext";
89

910
export type PhaseContextProps = {
1011
data: QuestionData;
@@ -60,11 +61,7 @@ function RetrospectWrite({ isOverviewVisible, handleToggleOverview }: Retrospect
6061
const defaultData: QuestionData = { isTemporarySaved: false, questions: [] };
6162
const [adjustedData, setAdjustedData] = useState<QuestionData>();
6263

63-
useEffect(() => {
64-
if (data) {
65-
setAdjustedData(adjustOrder(data));
66-
}
67-
}, [data]);
64+
const { isCollapsed, handleCollapse } = useNavigation();
6865

6966
const maxPhase = (adjustedData?.questions.length ?? 0) - 1;
7067

@@ -80,6 +77,18 @@ function RetrospectWrite({ isOverviewVisible, handleToggleOverview }: Retrospect
8077
setPhase(phase);
8178
};
8279

80+
useEffect(() => {
81+
if (!isCollapsed) {
82+
handleCollapse(true);
83+
}
84+
}, []);
85+
86+
useEffect(() => {
87+
if (data) {
88+
setAdjustedData(adjustOrder(data));
89+
}
90+
}, [data]);
91+
8392
return (
8493
<>
8594
{isLoading && <LoadingModal purpose={"회고 작성을 위한 데이터를 가져오고 있어요"} />}

apps/web/src/app/desktop/component/retrospectWrite/writeDialog/WriteDialogHeader.tsx

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ import { Typography } from "@/component/common/typography";
33
import { DESIGN_TOKEN_COLOR } from "@/style/designTokens";
44
import { css } from "@emotion/react";
55
import { PATHS } from "@layer/shared";
6-
import { useContext } from "react";
6+
import { useContext, useRef } from "react";
77
import { useNavigate, useSearchParams } from "react-router-dom";
88
import { PhaseContext } from "..";
99
import { useModal } from "@/hooks/useModal";
10+
import { useNavigation } from "@/component/common/LocalNavigationBar/context/NavigationContext";
1011

1112
interface WriteDialogHeaderProps {
1213
isOverviewVisible: boolean;
@@ -29,14 +30,21 @@ export function WriteDialogHeader({
2930
const navigate = useNavigate();
3031
const [searchParams] = useSearchParams();
3132
const { movePhase } = useContext(PhaseContext);
33+
const { isCollapsed, toggleCollapse } = useNavigation();
3234

3335
const spaceId = searchParams.get("spaceId");
3436

37+
const originalIsCollapsedRef = useRef<boolean>(isCollapsed);
38+
3539
const handleClose = () => {
3640
if (hasChanges()) {
3741
handleOpenTemporarySaveModal();
3842
} else {
39-
navigate(PATHS.DesktopcompleteRetrospectCreate(spaceId as string));
43+
// * LocalNavigationBar 상태 복원 로직
44+
if (isCollapsed && !originalIsCollapsedRef.current) {
45+
toggleCollapse();
46+
}
47+
navigate(PATHS.DesktopCompleteRetrospectCreate(spaceId as string));
4048
}
4149
};
4250

@@ -65,32 +73,31 @@ export function WriteDialogHeader({
6573
background-color: #fff;
6674
`}
6775
>
68-
<div
76+
<section
6977
css={css`
7078
display: flex;
71-
align-items: center;
72-
gap: 0.4rem;
79+
gap: 1.2rem;
7380
`}
7481
>
7582
<Icon
76-
icon="ic_quit"
77-
size={1.8}
78-
color={DESIGN_TOKEN_COLOR.gray600}
83+
icon="ic_analysis_close"
84+
size={2.0}
7985
css={css`
80-
margin: 0.3rem;
86+
color: ${DESIGN_TOKEN_COLOR.gray600};
87+
cursor: pointer;
8188
`}
8289
onClick={handleClose}
8390
/>
8491
<Icon
8592
icon={isOverviewVisible ? "ic_expand" : "ic_shrink"}
86-
size={1.8}
87-
color={DESIGN_TOKEN_COLOR.gray600}
93+
size={2.0}
8894
css={css`
89-
margin: 0.3rem;
95+
color: ${DESIGN_TOKEN_COLOR.gray600};
96+
cursor: pointer;
9097
`}
9198
onClick={handleToggleOverview}
9299
/>
93-
</div>
100+
</section>
94101

95102
{isComplete && (
96103
<div

apps/web/src/app/desktop/component/retrospectWrite/writeDialog/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ export function WriteDialog({ isOverviewVisible, handleToggleOverview }: WriteDi
236236
leftButtonText={"임시저장"}
237237
confirm={() => {
238238
handleModalClose("temporary-save");
239-
navigate(PATHS.DesktopcompleteRetrospectCreate(String(spaceId)));
239+
navigate(PATHS.DesktopCompleteRetrospectCreate(String(spaceId)));
240240
}}
241241
quit={mutateSaveTemporaryData}
242242
/>

apps/web/src/app/desktop/retrospect/AnalysisPage.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,15 @@ import { useApiOptionsGetSpaceInfo } from "@/hooks/api/space/useApiOptionsGetSpa
99

1010
import AnalysisDialog from "../component/analysis/AnalysisDialog";
1111
import AnalysisOverview from "../component/analysis/AnalysisOverview";
12+
import { useNavigation } from "@/component/common/LocalNavigationBar/context/NavigationContext";
1213

1314
export default function AnalysisPage() {
1415
const [searchParams] = useSearchParams();
1516
const [isOverviewVisible, setIsOverviewVisible] = useState(true);
1617
const [currentSpace, setCurrentSpace] = useAtom(currentSpaceState);
1718

19+
const { isCollapsed, handleCollapse } = useNavigation();
20+
1821
const spaceId = searchParams.get("spaceId");
1922
const retrospectId = searchParams.get("retrospectId");
2023

@@ -24,6 +27,12 @@ export default function AnalysisPage() {
2427
setIsOverviewVisible(!isOverviewVisible);
2528
};
2629

30+
useEffect(() => {
31+
if (!isCollapsed) {
32+
handleCollapse(true);
33+
}
34+
}, []);
35+
2736
useEffect(() => {
2837
if (spaceId && spaceInfo && (!currentSpace || String(currentSpace.id) !== spaceId)) {
2938
setCurrentSpace(spaceInfo);

apps/web/src/app/desktop/retrospectWrite/RetrospectWritePage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ function RetroSpectWritePage() {
99
const [isOverviewVisible, setIsOverviewVisible] = useState(true);
1010

1111
const spaceId = searchParams.get("spaceId");
12+
const retrospectId = searchParams.get("retrospectId");
1213

1314
const handleToggleOverview = () => {
1415
setIsOverviewVisible(!isOverviewVisible);
@@ -36,7 +37,7 @@ function RetroSpectWritePage() {
3637
>
3738
<AnalysisOverview spaceId={spaceId} />
3839
</section>
39-
<RetrospectWrite isOverviewVisible={isOverviewVisible} handleToggleOverview={handleToggleOverview} />
40+
<RetrospectWrite key={retrospectId} isOverviewVisible={isOverviewVisible} handleToggleOverview={handleToggleOverview} />
4041
</div>
4142
);
4243
}

0 commit comments

Comments
 (0)