Skip to content

Commit 4f9824a

Browse files
committed
fix: 머지 충돌 해결
1 parent 720891c commit 4f9824a

File tree

8 files changed

+120
-50
lines changed

8 files changed

+120
-50
lines changed

apps/frontend/src/app/routeTree.gen.ts

Lines changed: 65 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -10,85 +10,104 @@
1010

1111
// Import Routes
1212

13-
import { Route as rootRoute } from "./routes/__root";
14-
import { Route as IndexImport } from "./routes/index";
15-
import { Route as WorkspaceWorkspaceIdImport } from "./routes/workspace/$workspaceId";
13+
import { Route as rootRoute } from './routes/__root'
14+
import { Route as IndexImport } from './routes/index'
15+
import { Route as JoinIndexImport } from './routes/join/index'
16+
import { Route as WorkspaceWorkspaceIdImport } from './routes/workspace/$workspaceId'
1617

1718
// Create/Update Routes
1819

1920
const IndexRoute = IndexImport.update({
20-
id: "/",
21-
path: "/",
21+
id: '/',
22+
path: '/',
2223
getParentRoute: () => rootRoute,
23-
} as any);
24+
} as any)
25+
26+
const JoinIndexRoute = JoinIndexImport.update({
27+
id: '/join/',
28+
path: '/join/',
29+
getParentRoute: () => rootRoute,
30+
} as any)
2431

2532
const WorkspaceWorkspaceIdRoute = WorkspaceWorkspaceIdImport.update({
26-
id: "/workspace/$workspaceId",
27-
path: "/workspace/$workspaceId",
33+
id: '/workspace/$workspaceId',
34+
path: '/workspace/$workspaceId',
2835
getParentRoute: () => rootRoute,
29-
} as any);
36+
} as any)
3037

3138
// Populate the FileRoutesByPath interface
3239

33-
declare module "@tanstack/react-router" {
40+
declare module '@tanstack/react-router' {
3441
interface FileRoutesByPath {
35-
"/": {
36-
id: "/";
37-
path: "/";
38-
fullPath: "/";
39-
preLoaderRoute: typeof IndexImport;
40-
parentRoute: typeof rootRoute;
41-
};
42-
"/workspace/$workspaceId": {
43-
id: "/workspace/$workspaceId";
44-
path: "/workspace/$workspaceId";
45-
fullPath: "/workspace/$workspaceId";
46-
preLoaderRoute: typeof WorkspaceWorkspaceIdImport;
47-
parentRoute: typeof rootRoute;
48-
};
42+
'/': {
43+
id: '/'
44+
path: '/'
45+
fullPath: '/'
46+
preLoaderRoute: typeof IndexImport
47+
parentRoute: typeof rootRoute
48+
}
49+
'/workspace/$workspaceId': {
50+
id: '/workspace/$workspaceId'
51+
path: '/workspace/$workspaceId'
52+
fullPath: '/workspace/$workspaceId'
53+
preLoaderRoute: typeof WorkspaceWorkspaceIdImport
54+
parentRoute: typeof rootRoute
55+
}
56+
'/join/': {
57+
id: '/join/'
58+
path: '/join'
59+
fullPath: '/join'
60+
preLoaderRoute: typeof JoinIndexImport
61+
parentRoute: typeof rootRoute
62+
}
4963
}
5064
}
5165

5266
// Create and export the route tree
5367

5468
export interface FileRoutesByFullPath {
55-
"/": typeof IndexRoute;
56-
"/workspace/$workspaceId": typeof WorkspaceWorkspaceIdRoute;
69+
'/': typeof IndexRoute
70+
'/workspace/$workspaceId': typeof WorkspaceWorkspaceIdRoute
71+
'/join': typeof JoinIndexRoute
5772
}
5873

5974
export interface FileRoutesByTo {
60-
"/": typeof IndexRoute;
61-
"/workspace/$workspaceId": typeof WorkspaceWorkspaceIdRoute;
75+
'/': typeof IndexRoute
76+
'/workspace/$workspaceId': typeof WorkspaceWorkspaceIdRoute
77+
'/join': typeof JoinIndexRoute
6278
}
6379

6480
export interface FileRoutesById {
65-
__root__: typeof rootRoute;
66-
"/": typeof IndexRoute;
67-
"/workspace/$workspaceId": typeof WorkspaceWorkspaceIdRoute;
81+
__root__: typeof rootRoute
82+
'/': typeof IndexRoute
83+
'/workspace/$workspaceId': typeof WorkspaceWorkspaceIdRoute
84+
'/join/': typeof JoinIndexRoute
6885
}
6986

7087
export interface FileRouteTypes {
71-
fileRoutesByFullPath: FileRoutesByFullPath;
72-
fullPaths: "/" | "/workspace/$workspaceId";
73-
fileRoutesByTo: FileRoutesByTo;
74-
to: "/" | "/workspace/$workspaceId";
75-
id: "__root__" | "/" | "/workspace/$workspaceId";
76-
fileRoutesById: FileRoutesById;
88+
fileRoutesByFullPath: FileRoutesByFullPath
89+
fullPaths: '/' | '/workspace/$workspaceId' | '/join'
90+
fileRoutesByTo: FileRoutesByTo
91+
to: '/' | '/workspace/$workspaceId' | '/join'
92+
id: '__root__' | '/' | '/workspace/$workspaceId' | '/join/'
93+
fileRoutesById: FileRoutesById
7794
}
7895

7996
export interface RootRouteChildren {
80-
IndexRoute: typeof IndexRoute;
81-
WorkspaceWorkspaceIdRoute: typeof WorkspaceWorkspaceIdRoute;
97+
IndexRoute: typeof IndexRoute
98+
WorkspaceWorkspaceIdRoute: typeof WorkspaceWorkspaceIdRoute
99+
JoinIndexRoute: typeof JoinIndexRoute
82100
}
83101

84102
const rootRouteChildren: RootRouteChildren = {
85103
IndexRoute: IndexRoute,
86104
WorkspaceWorkspaceIdRoute: WorkspaceWorkspaceIdRoute,
87-
};
105+
JoinIndexRoute: JoinIndexRoute,
106+
}
88107

89108
export const routeTree = rootRoute
90109
._addFileChildren(rootRouteChildren)
91-
._addFileTypes<FileRouteTypes>();
110+
._addFileTypes<FileRouteTypes>()
92111

93112
/* ROUTE_MANIFEST_START
94113
{
@@ -97,14 +116,18 @@ export const routeTree = rootRoute
97116
"filePath": "__root.tsx",
98117
"children": [
99118
"/",
100-
"/workspace/$workspaceId"
119+
"/workspace/$workspaceId",
120+
"/join/"
101121
]
102122
},
103123
"/": {
104124
"filePath": "index.tsx"
105125
},
106126
"/workspace/$workspaceId": {
107127
"filePath": "workspace/$workspaceId.tsx"
128+
},
129+
"/join/": {
130+
"filePath": "join/index.tsx"
108131
}
109132
}
110133
}

apps/frontend/src/routes/join/index.tsx renamed to apps/frontend/src/app/routes/join/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { useEffect } from "react";
22
import { createFileRoute, useNavigate } from "@tanstack/react-router";
3-
import { useValidateWorkspaceInviteLink } from "@/features/workspace/model/useWorkspaceInvite";
43
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
54

5+
import { useValidateWorkspaceInviteLink } from "@/features/workspace";
6+
67
const joinQueryClient = new QueryClient();
78

89
function JoinWrapper() {
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
2+
3+
import { getUser, logout } from "../api/authApi";
4+
5+
export const useGetUser = () => {
6+
return useQuery({
7+
queryKey: ["user"],
8+
queryFn: getUser,
9+
retry: false,
10+
refetchOnWindowFocus: false,
11+
});
12+
};
13+
14+
export const useLogout = () => {
15+
const queryClient = useQueryClient();
16+
17+
const logoutMutation = useMutation({
18+
mutationFn: logout,
19+
onSuccess: async () => {
20+
queryClient.setQueryData(["user"], null);
21+
await queryClient.invalidateQueries({ queryKey: ["user"] });
22+
},
23+
});
24+
25+
return logoutMutation;
26+
};

apps/frontend/src/features/workspace/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
export { useUserWorkspace } from "./model/workspaceQuries";
2-
export { useProtectedWorkspace } from "./model/use";
2+
export { useProtectedWorkspace } from "./model/useProtectedWorkspace";
3+
export { useValidateWorkspaceInviteLink } from "./model/workspaceMutations";
34

45
export { ShareTool } from "./ui/ShareTool";
56
export { WorkspaceAddButton } from "./ui/WorkspaceAddButton";

apps/frontend/src/features/workspace/model/useProtectedWorkspace.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useEffect } from "react";
22
import { useNavigate } from "@tanstack/react-router";
3-
import { useCurrentWorkspace } from "@/features/workspace/model/useWorkspace";
3+
import { useCurrentWorkspace } from "@/features/workspace/model/workspaceQuries";
44

55
export const useProtectedWorkspace = () => {
66
const navigate = useNavigate();

apps/frontend/src/features/workspace/model/workspaceMutations.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
createWorkspaceInviteLink,
1010
validateWorkspaceInviteLink,
1111
} from "../api/worskspaceInviteApi";
12+
import { useWorkspace } from "@/shared/lib";
1213

1314
// response로 workspaceId가 오는데 userWorkspace를 어떻게 invalidate 할까?
1415
// login state에 있는 userId로?
@@ -48,9 +49,9 @@ export const useValidateWorkspaceInviteLink = () => {
4849

4950
export const useToggleWorkspaceStatus = (
5051
currentStatus: "public" | "private" | undefined,
51-
currentWorkspaceId: string,
5252
) => {
5353
const queryClient = useQueryClient();
54+
const currentWorkspaceId = useWorkspace();
5455

5556
return useMutation({
5657
mutationFn: () => {
@@ -67,6 +68,7 @@ export const useToggleWorkspaceStatus = (
6768
},
6869
onSuccess: () => {
6970
queryClient.invalidateQueries({ queryKey: ["userWorkspace"] });
71+
queryClient.invalidateQueries({ queryKey: ["currentWorkspace"] });
7072
},
7173
});
7274
};
Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,27 @@
11
import { useQuery } from "@tanstack/react-query";
22

3-
import { getUserWorkspaces } from "../api/workspaceApi";
3+
import { getUserWorkspaces, getCurrentWorkspace } from "../api/workspaceApi";
4+
import { useGetUser } from "@/features/auth";
5+
import { useWorkspace } from "@/shared/lib/useWorkspace";
46

57
export const useUserWorkspace = () => {
68
return useQuery({
79
queryKey: ["userWorkspace"],
810
queryFn: getUserWorkspaces,
911
});
1012
};
13+
14+
export const useCurrentWorkspace = () => {
15+
const workspaceId = useWorkspace();
16+
const { data: user, isError } = useGetUser();
17+
18+
const snowflakeId = isError ? "null" : (user?.snowflakeId ?? "null");
19+
20+
return useQuery({
21+
queryKey: ["currentWorkspace", workspaceId, snowflakeId],
22+
queryFn: () => getCurrentWorkspace(workspaceId, snowflakeId),
23+
enabled: Boolean(workspaceId),
24+
retry: false,
25+
refetchOnWindowFocus: false,
26+
});
27+
};

apps/frontend/src/features/workspace/ui/ShareTool/SharePanel.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { useState } from "react";
2-
import { Switch } from "@/shared/ui/Switch";
32
import { Globe2, Lock, Copy, CheckCheck } from "lucide-react";
4-
import { useCreateWorkspaceInviteLink } from "../../model/useWorkspaceInvite";
5-
import { useCurrentWorkspace } from "../../model/workspaceQuries";
63

4+
import { useCreateWorkspaceInviteLink } from "../../model/workspaceMutations";
5+
import { useCurrentWorkspace } from "../../model/workspaceQuries";
76
import { useToggleWorkspaceStatus } from "../../model/workspaceMutations";
87
import { useWorkspaceStatus } from "../../model/useWorkspaceStatus";
98
import { useGetUser } from "@/features/auth";
109
import { useWorkspace } from "@/shared/lib";
10+
import { Switch } from "@/shared/ui";
1111

1212
const createFrontendUrl = (apiUrl: string, currentWorkspaceId: string) => {
1313
const searchParams = new URLSearchParams();

0 commit comments

Comments
 (0)