Skip to content

Commit 9de2697

Browse files
authored
Merge pull request #30 from LinkyBoard/dev
[WEB] 배포 최신화
2 parents 7621ebf + 64b30d3 commit 9de2697

63 files changed

Lines changed: 2397 additions & 2169 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/web/next.config.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import type { NextConfig } from "next";
22

3+
import { S3_BASE_URL } from "@/utils/env";
4+
35
const nextConfig: NextConfig = {
46
images: {
57
remotePatterns: [
@@ -13,6 +15,14 @@ const nextConfig: NextConfig = {
1315
},
1416
],
1517
},
18+
async rewrites() {
19+
return [
20+
{
21+
source: "/api/s3/:path*",
22+
destination: `${S3_BASE_URL}/:path*`,
23+
},
24+
];
25+
},
1626
turbopack: {
1727
rules: {
1828
"*.svg": {
@@ -22,6 +32,7 @@ const nextConfig: NextConfig = {
2232
},
2333
},
2434
devIndicators: false,
35+
reactStrictMode: false,
2536
webpack(config) {
2637
// Grab the existing rule that handles SVG imports
2738
const fileLoaderRule = config.module.rules.find(

apps/web/package.json

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,18 @@
99
"lint": "eslint --fix \"**/*.{ts,tsx,md}\""
1010
},
1111
"dependencies": {
12+
"@blocknote/core": "^0.40.0",
13+
"@blocknote/react": "^0.40.0",
14+
"@blocknote/shadcn": "^0.40.0",
15+
"@hookform/resolvers": "^5.2.1",
16+
"@linkyboard/components": "workspace:*",
1217
"@linkyboard/hooks": "workspace:*",
1318
"@linkyboard/utils": "workspace:*",
14-
"@linkyboard/components": "workspace:*",
15-
"@hookform/resolvers": "^5.2.1",
1619
"@next/third-parties": "^15.5.4",
1720
"@tanstack/react-query": "^5.84.1",
18-
"@tiptap/extension-code-block": "^3.1.0",
19-
"@tiptap/extension-highlight": "^3.1.0",
20-
"@tiptap/extension-image": "^3.1.0",
21-
"@tiptap/extension-link": "^3.1.0",
22-
"@tiptap/extension-placeholder": "^3.1.0",
23-
"@tiptap/pm": "^3.1.0",
24-
"@tiptap/react": "^3.1.0",
25-
"@tiptap/starter-kit": "^3.1.0",
26-
"@uiw/react-md-editor": "^4.0.8",
2721
"@xyflow/react": "^12.8.2",
2822
"ky": "^1.8.2",
2923
"lucide-react": "^0.536.0",
30-
"marked": "^16.2.0",
3124
"next": "15.5.4",
3225
"react": "19.1.0",
3326
"react-dom": "19.1.0",

apps/web/src/app/(with-side-bar)/library/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import SearchHeader from "@/components/(with-side-bar)/layout/search-header";
21
import AddCategoryDialog from "@/components/(with-side-bar)/library/layout/add-category-dialog";
2+
import SearchHeader from "@/components/common/search-header";
33
import LibraryPage from "@/page/library";
44

55
interface LibraryPageProps {
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import TopicStickerDetailModal from "@/components/(with-side-bar)/topic/sticker/topic-sticker-detail-modal";
2+
3+
import TopicStickerDetail from "../../sticker/page";
4+
5+
interface InterceptedTopicDetailProps {
6+
params: Promise<{
7+
id: string;
8+
}>;
9+
searchParams: Promise<{
10+
stickerId: string;
11+
}>;
12+
}
13+
14+
export default async function InterceptedTopicDetail(props: InterceptedTopicDetailProps) {
15+
const { id } = await props.params;
16+
const { stickerId } = await props.searchParams;
17+
18+
return (
19+
<TopicStickerDetailModal id={id} stickerId={stickerId}>
20+
<TopicStickerDetail {...props} />
21+
</TopicStickerDetailModal>
22+
);
23+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export default function Default() {
2+
return null;
3+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
interface TopicStickerDetailLayoutProps {
2+
children: React.ReactNode;
3+
modal: React.ReactNode;
4+
}
5+
6+
export default function TopicStickerDetailLayout({
7+
children,
8+
modal,
9+
}: TopicStickerDetailLayoutProps) {
10+
return (
11+
<>
12+
{children}
13+
{modal}
14+
<div id="modal-root" />
15+
</>
16+
);
17+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { redirect, RedirectType } from "next/navigation";
2+
3+
import type { ContentTypeOptions } from "@/constants/content";
4+
import TopicBoardPage from "@/page/topic/[id]";
5+
6+
interface TopicBoardProps {
7+
params: Promise<{ id: string }>;
8+
searchParams: Promise<{ type?: ContentTypeOptions }>;
9+
}
10+
11+
export default async function TopicBoard({ params, searchParams }: TopicBoardProps) {
12+
const { id } = await params;
13+
const { type } = await searchParams;
14+
15+
if (!id) {
16+
return redirect("/topic", RedirectType.replace);
17+
}
18+
19+
return <TopicBoardPage id={id} type={type || "ALL"} />;
20+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import TopicStickerDetailPage from "@/page/topic/[id]/sticker";
2+
3+
interface TopicDetailProps {
4+
params: Promise<{
5+
id: string;
6+
}>;
7+
searchParams: Promise<{
8+
stickerId: string;
9+
}>;
10+
}
11+
12+
export default async function TopicStickerDetail({ params, searchParams }: TopicDetailProps) {
13+
const { id } = await params;
14+
const { stickerId } = await searchParams;
15+
16+
return <TopicStickerDetailPage id={id} stickerId={stickerId} />;
17+
}
Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
1-
import type { ContentTypeOptions } from "@/constants/content";
2-
import TopicBoardPage from "@/page/topic";
1+
import NewTopicPage from "@/page/topic";
32

4-
interface TopicBoardProps {
5-
searchParams: Promise<{ id?: string; type?: ContentTypeOptions }>;
6-
}
7-
8-
export default async function TopicBoard({ searchParams }: TopicBoardProps) {
9-
const { id, type } = await searchParams;
10-
11-
return <TopicBoardPage id={id || ""} type={type || "ALL"} />;
3+
export default async function NewTopic() {
4+
return <NewTopicPage />;
125
}

0 commit comments

Comments
 (0)