Skip to content
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
b5e61ff
chore: storybook 설치 및 폰트, svgr 설정
LeeTaegyung Aug 15, 2025
a99a573
fix: storybook 테스트중 버튼 컴포넌트 내에 이미지 불러오는 부분 에러 발생하여 위치 변경 및 수정
LeeTaegyung Aug 15, 2025
3e282e1
chore: 리액트쿼리 설치 및 Provider 설정
LeeTaegyung Aug 15, 2025
78ce64b
chore: next fetch cache 설정 삭제
LeeTaegyung Aug 15, 2025
8174ac9
refactor: todo list api 리액트 쿼리로 변경
LeeTaegyung Aug 15, 2025
a9cbfaf
refactor: todo check update api 리액트 쿼리로 변경
LeeTaegyung Aug 15, 2025
20bd1e4
refactor: todo add form api 리액트 쿼리로 변경
LeeTaegyung Aug 17, 2025
c491afe
chore: 쿼리키 관리를 위해 쿼리팩토리 패턴으로 분리
LeeTaegyung Aug 17, 2025
d4811cf
fix: 동시 낙관적 업데이트 완료시 캐시 무효화 조건문 추가
LeeTaegyung Aug 17, 2025
26745bd
chore: getQueryData 타입 지정 수정
LeeTaegyung Aug 17, 2025
ba4e9b8
refactor: 리액트쿼리 훅 분리
LeeTaegyung Aug 17, 2025
dfcdf97
chore: clsx, react-hook-form 설치
LeeTaegyung Aug 17, 2025
b6f52f5
style: 상세페이지 퍼블리싱
LeeTaegyung Aug 17, 2025
d84164a
feat: 이미지 업로드 기능 구현
LeeTaegyung Aug 18, 2025
757dd17
feat: 메모영역 컴포넌트 분리 및 react-hook-form 연동
LeeTaegyung Aug 18, 2025
9348797
feat: 수정하기 기능 구현
LeeTaegyung Aug 18, 2025
1b8252c
feat: 삭제하기 기능 구현
LeeTaegyung Aug 18, 2025
37105c5
chore: 데이터 없을시 UI 분리
LeeTaegyung Aug 18, 2025
c8d3b98
chore: 스토리북 추가
LeeTaegyung Aug 18, 2025
3d00233
chore: storybook 설정 파일 수정
LeeTaegyung Aug 18, 2025
6478ca5
feat: 토스트 추가
LeeTaegyung Aug 18, 2025
ae9680f
chore: 불필요한 console 삭제
LeeTaegyung Aug 18, 2025
c0a7eec
chore: 빌드 에러 수정
LeeTaegyung Aug 18, 2025
8d303e7
chore: 빌드 에러 수정
LeeTaegyung Aug 18, 2025
ad2e62b
refactor(mentor): ToastContainer 임포트 수정
LeeTaegyung Sep 17, 2025
293764a
refactor(mentor): 여러개의 mutation 발생시 return 하는 코드를 안정성 있게 cancelQuery로 수정
LeeTaegyung Sep 17, 2025
53ba117
refactor(mentor): 토스트 배열에서 한개로 수정
LeeTaegyung Sep 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,6 @@ yarn-error.log*
# typescript
*.tsbuildinfo
next-env.d.ts

*storybook.log
storybook-static
36 changes: 36 additions & 0 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import type { StorybookConfig } from "@storybook/nextjs";

const config: StorybookConfig = {
stories: ["../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
addons: [],
framework: {
name: "@storybook/nextjs",
options: {},
},
staticDirs: [
"../public",
{
from: "../public/fonts",
to: "public/fonts",
},
],
webpackFinal: async (config) => {
config.module = config.module || {};
config.module.rules = config.module.rules || [];

const imageRule = config.module.rules.find((rule) =>
rule?.["test"]?.test(".svg")
);
if (imageRule) {
imageRule["exclude"] = /\.svg$/;
}

config.module.rules.push({
test: /\.svg$/,
use: ["@svgr/webpack"],
});

return config;
},
};
export default config;
24 changes: 24 additions & 0 deletions .storybook/preview.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import React from "react";
import type { Preview } from "@storybook/nextjs";
import "../src/app/globals.css";
import { nanumsquare } from "../src/app/layout";

const preview: Preview = {
parameters: {
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
},
},
decorators: [
(Story) => (
<div className={nanumsquare.className}>
<Story />
</div>
),
],
};

export default preview;
9 changes: 5 additions & 4 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
// For more info, see https://github.com/storybookjs/eslint-plugin-storybook#configuration-flat-config-format
import storybook from "eslint-plugin-storybook";

import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";
Expand All @@ -11,11 +14,8 @@ const compat = new FlatCompat({

const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),

{
plugins: {
import: pluginImport,
},
plugins: ["import"],
rules: {
// 쓰이지 않는 변수 검사
"no-unused-vars": "off",
Expand Down Expand Up @@ -61,6 +61,7 @@ const eslintConfig = [
],
},
},
...storybook.configs["flat/recommended"],
];

export default eslintConfig;
9 changes: 9 additions & 0 deletions next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,15 @@ const nextConfig: NextConfig = {

return config;
},
images: {
remotePatterns: [
{
protocol: "https",
hostname: "sprint-fe-project.s3.ap-northeast-2.amazonaws.com",
pathname: "/**", // 경로 패턴, 모든 이미지 허용
},
],
},
};

export default nextConfig;
Loading