Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 #513

Merged
merged 17 commits into from
Nov 21, 2024

Conversation

dmdgpdi
Copy link
Collaborator

@dmdgpdi dmdgpdi commented Nov 21, 2024

  • Close

What is this PR? 🔍

  • PickRecord를 구현했습니다.

  • 픽 태그 수정 가능

  • 기능 :

  • issue : #

Changes 📝

Precaution

  • 백엔드 테스트를 위한 긴급한 PR입니다.

@dmdgpdi dmdgpdi added feat 기능 frontend 프론트 관련 labels Nov 21, 2024
@dmdgpdi dmdgpdi self-assigned this Nov 21, 2024
Copy link
Collaborator

@kimminkyeu kimminkyeu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@dmdgpdi dmdgpdi merged commit 1bb833d into frontend Nov 21, 2024
1 check passed
dmdgpdi added a commit that referenced this pull request Nov 22, 2024
* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* 🚀 프론트 서버 배포 설정

* 🚀 프론트 브랜치와 연결

* 🚀 docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* ♻️ refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* 🚨 fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* [FEAT] 픽 휴지통 이동 및 휴지통에서 픽 삭제 구현, 픽 포커스 변경 (#515)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* feat: deletePicks api 함수 구현

* design: TagPicker 화면 짤림 수정

* feat: 우클릭 휴지통 이동 및 삭제 구현

* feat: PickRecord로 렌더링 변경

* feat: 페이지 이동시, pick item 외부 클릭시 선택된 요소 초기화

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정 (#520)

* [FIX] 두번 useEffect 호출 되는 거 방지 (#518)

* chore: 로그인 페이지 작업 (#508)

* [DESIGN] 디자인 작업 (#524)

* chore: 로그인 페이지 작업

* feat: 디자인 작업 반영

* fix: 미사용 import 제거

* fix: 서치 버그 해결

* [DESIGN] 배포전 PR (#529)

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정

* feat: Gap 컴포넌트 변경

* design: PickRecord 이미지 영역 사이즈 변경

* design: 헤더 Image table 명명

* design: flex-shrink 적용

* chore: 코드 스타일 변경

* fix: TagPicker 컴포넌트 floating element style 변경

* design: TagRecord Input 디자인 변경

* design: font 모든 부분에 동일하게 적용

* refactor: moveFolderToRecycleBin refactoring

* design: 디자인 변경

* design:2차변경

* design: 버튼 color 추가

* feat: PickSearchRecord 추가

* feat: 링크 추가

---------

Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>
dmdgpdi added a commit that referenced this pull request Nov 22, 2024
* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* 🚀 프론트 서버 배포 설정

* 🚀 프론트 브랜치와 연결

* 🚀 docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* ♻️ refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* 🚨 fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [FEAT] 에러 요청에 대한 로깅 구현 (#481)

* feat: error request logging 구현

* feat: 기존 예외처리 로직에 요청 로깅 추가

* chore: 주석 추가

* fix: 로깅 방식 변경 - application.log에 sql 로깅 제외

* fix: 누락된 로깅 로직 추가

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* �[FEAT] 폴더 export 기능 구현 (#504)

* feat: 폴더 export 기능 구현

* feat: url 수정

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)

* refactor: 픽 제목 최대 길이 제약조건 추가

* feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가

* refactor: bean validation 예외 상세하게 반환하도록 수정

* refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결

* fix: title이 null일 때 터지는 오류 해결

* fix: && 문법 오류 수정

* [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)

* refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결

* refactor: pick unique index title 제거

* refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리

* refactor: 불필요한 메서드 제거 및 메서드명 변경

* refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가

* refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음.

* refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경

* refactor: 메서드명 수정

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* [BUG] 픽 태그 리스트 수정 시 데드락 문제 수정 (#514)

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* hotfix: Pick 엔티티의 Link Lazy -> Eager

* [FEAT] 픽 휴지통 이동 및 휴지통에서 픽 삭제 구현, 픽 포커스 변경 (#515)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* feat: deletePicks api 함수 구현

* design: TagPicker 화면 짤림 수정

* feat: 우클릭 휴지통 이동 및 삭제 구현

* feat: PickRecord로 렌더링 변경

* feat: 페이지 이동시, pick item 외부 클릭시 선택된 요소 초기화

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* [REFACTOR] PickTag 테이블에 낙관적 락 설정 (#519)

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* refactor: 픽태그 삭제 부분 수정

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정 (#520)

* [FIX] 두번 useEffect 호출 되는 거 방지 (#518)

* refactor: pick 수정하는 부분에 비관적 락 추가 (#521)

* chore: 로그인 페이지 작업 (#508)

* [FEAT] 크롬 북마크 Import 기능 구현 (#522)

* fix: access token, JSESSIONID 로깅 안하도록 수정, multipart file 캐싱 안하도록 수정

* fix: 입력값이 공백 또는 null일 경우 update하지 않음, 기본값을 빈스트링("")으로 설정

* feat: ogTag 업데이트 구현 및 필요한 의존성 추가

* feat: chrome 북마크 import를 위한 메소드 추가

* feat: chrome 북마크 import export 구현

* refactor: 주석 수정

* refactor: swagger 설정 수정

* refactor: link의 title과 description 필드 text타입으로 수정

* chore: 주석 typo 수정

* refactor: typo 수정

* [DESIGN] 디자인 작업 (#524)

* chore: 로그인 페이지 작업

* feat: 디자인 작업 반영

* fix: 미사용 import 제거

* fix: 서치 버그 해결

* feat: og 태그 데이터 가져오는 api 구현 (#525)

* refactor: 운영 서버에서 스웨거 접근 못하도록 변경 (#527)

* [DESIGN] 배포전 PR (#529)

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정

* feat: Gap 컴포넌트 변경

* design: PickRecord 이미지 영역 사이즈 변경

* design: 헤더 Image table 명명

* design: flex-shrink 적용

* chore: 코드 스타일 변경

* fix: TagPicker 컴포넌트 floating element style 변경

* design: TagRecord Input 디자인 변경

* design: font 모든 부분에 동일하게 적용

* refactor: moveFolderToRecycleBin refactoring

* design: 디자인 변경

* design:2차변경

* design: 버튼 color 추가

* feat: PickSearchRecord 추가

* feat: 링크 추가

* fix: url 수정 및 구현안된 기능 숨기기

---------

Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>
Co-authored-by: Pak Su Hyung <[email protected]>
Co-authored-by: Sangwon Yang <[email protected]>
dmdgpdi added a commit that referenced this pull request Nov 22, 2024
* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* 🚀 프론트 서버 배포 설정

* 🚀 프론트 브랜치와 연결

* 🚀 docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* ♻️ refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* 🚨 fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [FEAT] 에러 요청에 대한 로깅 구현 (#481)

* feat: error request logging 구현

* feat: 기존 예외처리 로직에 요청 로깅 추가

* chore: 주석 추가

* fix: 로깅 방식 변경 - application.log에 sql 로깅 제외

* fix: 누락된 로깅 로직 추가

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* �[FEAT] 폴더 export 기능 구현 (#504)

* feat: 폴더 export 기능 구현

* feat: url 수정

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)

* refactor: 픽 제목 최대 길이 제약조건 추가

* feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가

* refactor: bean validation 예외 상세하게 반환하도록 수정

* refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결

* fix: title이 null일 때 터지는 오류 해결

* fix: && 문법 오류 수정

* [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)

* refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결

* refactor: pick unique index title 제거

* refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리

* refactor: 불필요한 메서드 제거 및 메서드명 변경

* refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가

* refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음.

* refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경

* refactor: 메서드명 수정

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* [BUG] 픽 태그 리스트 수정 시 데드락 문제 수정 (#514)

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* hotfix: Pick 엔티티의 Link Lazy -> Eager

* [FEAT] 픽 휴지통 이동 및 휴지통에서 픽 삭제 구현, 픽 포커스 변경 (#515)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* feat: deletePicks api 함수 구현

* design: TagPicker 화면 짤림 수정

* feat: 우클릭 휴지통 이동 및 삭제 구현

* feat: PickRecord로 렌더링 변경

* feat: 페이지 이동시, pick item 외부 클릭시 선택된 요소 초기화

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* [REFACTOR] PickTag 테이블에 낙관적 락 설정 (#519)

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* refactor: 픽태그 삭제 부분 수정

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정 (#520)

* [FIX] 두번 useEffect 호출 되는 거 방지 (#518)

* refactor: pick 수정하는 부분에 비관적 락 추가 (#521)

* chore: 로그인 페이지 작업 (#508)

* [FEAT] 크롬 북마크 Import 기능 구현 (#522)

* fix: access token, JSESSIONID 로깅 안하도록 수정, multipart file 캐싱 안하도록 수정

* fix: 입력값이 공백 또는 null일 경우 update하지 않음, 기본값을 빈스트링("")으로 설정

* feat: ogTag 업데이트 구현 및 필요한 의존성 추가

* feat: chrome 북마크 import를 위한 메소드 추가

* feat: chrome 북마크 import export 구현

* refactor: 주석 수정

* refactor: swagger 설정 수정

* refactor: link의 title과 description 필드 text타입으로 수정

* chore: 주석 typo 수정

* refactor: typo 수정

* [DESIGN] 디자인 작업 (#524)

* chore: 로그인 페이지 작업

* feat: 디자인 작업 반영

* fix: 미사용 import 제거

* fix: 서치 버그 해결

* feat: og 태그 데이터 가져오는 api 구현 (#525)

* refactor: 운영 서버에서 스웨거 접근 못하도록 변경 (#527)

* [DESIGN] 배포전 PR (#529)

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정

* feat: Gap 컴포넌트 변경

* design: PickRecord 이미지 영역 사이즈 변경

* design: 헤더 Image table 명명

* design: flex-shrink 적용

* chore: 코드 스타일 변경

* fix: TagPicker 컴포넌트 floating element style 변경

* design: TagRecord Input 디자인 변경

* design: font 모든 부분에 동일하게 적용

* refactor: moveFolderToRecycleBin refactoring

* design: 디자인 변경

* design:2차변경

* design: 버튼 color 추가

* feat: PickSearchRecord 추가

* feat: 링크 추가

* fix: url 수정 및 구현안된 기능 숨기기

---------

Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>
Co-authored-by: Pak Su Hyung <[email protected]>
Co-authored-by: Sangwon Yang <[email protected]>
dmdgpdi added a commit that referenced this pull request Nov 22, 2024
* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* 🚀 프론트 서버 배포 설정

* 🚀 프론트 브랜치와 연결

* 🚀 docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* ♻️ refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* 🚨 fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [FEAT] 에러 요청에 대한 로깅 구현 (#481)

* feat: error request logging 구현

* feat: 기존 예외처리 로직에 요청 로깅 추가

* chore: 주석 추가

* fix: 로깅 방식 변경 - application.log에 sql 로깅 제외

* fix: 누락된 로깅 로직 추가

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* �[FEAT] 폴더 export 기능 구현 (#504)

* feat: 폴더 export 기능 구현

* feat: url 수정

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)

* refactor: 픽 제목 최대 길이 제약조건 추가

* feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가

* refactor: bean validation 예외 상세하게 반환하도록 수정

* refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결

* fix: title이 null일 때 터지는 오류 해결

* fix: && 문법 오류 수정

* [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)

* refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결

* refactor: pick unique index title 제거

* refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리

* refactor: 불필요한 메서드 제거 및 메서드명 변경

* refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가

* refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음.

* refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경

* refactor: 메서드명 수정

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* [BUG] 픽 태그 리스트 수정 시 데드락 문제 수정 (#514)

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* hotfix: Pick 엔티티의 Link Lazy -> Eager

* [FEAT] 픽 휴지통 이동 및 휴지통에서 픽 삭제 구현, 픽 포커스 변경 (#515)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* feat: deletePicks api 함수 구현

* design: TagPicker 화면 짤림 수정

* feat: 우클릭 휴지통 이동 및 삭제 구현

* feat: PickRecord로 렌더링 변경

* feat: 페이지 이동시, pick item 외부 클릭시 선택된 요소 초기화

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* [REFACTOR] PickTag 테이블에 낙관적 락 설정 (#519)

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* refactor: 픽태그 삭제 부분 수정

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정 (#520)

* [FIX] 두번 useEffect 호출 되는 거 방지 (#518)

* refactor: pick 수정하는 부분에 비관적 락 추가 (#521)

* chore: 로그인 페이지 작업 (#508)

* [FEAT] 크롬 북마크 Import 기능 구현 (#522)

* fix: access token, JSESSIONID 로깅 안하도록 수정, multipart file 캐싱 안하도록 수정

* fix: 입력값이 공백 또는 null일 경우 update하지 않음, 기본값을 빈스트링("")으로 설정

* feat: ogTag 업데이트 구현 및 필요한 의존성 추가

* feat: chrome 북마크 import를 위한 메소드 추가

* feat: chrome 북마크 import export 구현

* refactor: 주석 수정

* refactor: swagger 설정 수정

* refactor: link의 title과 description 필드 text타입으로 수정

* chore: 주석 typo 수정

* refactor: typo 수정

* [DESIGN] 디자인 작업 (#524)

* chore: 로그인 페이지 작업

* feat: 디자인 작업 반영

* fix: 미사용 import 제거

* fix: 서치 버그 해결

* feat: og 태그 데이터 가져오는 api 구현 (#525)

* refactor: 운영 서버에서 스웨거 접근 못하도록 변경 (#527)

* [DESIGN] 배포전 PR (#529)

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정

* feat: Gap 컴포넌트 변경

* design: PickRecord 이미지 영역 사이즈 변경

* design: 헤더 Image table 명명

* design: flex-shrink 적용

* chore: 코드 스타일 변경

* fix: TagPicker 컴포넌트 floating element style 변경

* design: TagRecord Input 디자인 변경

* design: font 모든 부분에 동일하게 적용

* refactor: moveFolderToRecycleBin refactoring

* design: 디자인 변경

* design:2차변경

* design: 버튼 color 추가

* feat: PickSearchRecord 추가

* feat: 링크 추가

* fix: url 수정 및 구현안된 기능 숨기기

* fix: unused import 제거

---------

Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>
Co-authored-by: Pak Su Hyung <[email protected]>
Co-authored-by: Sangwon Yang <[email protected]>
dmdgpdi added a commit that referenced this pull request Nov 22, 2024
* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* 🚀 프론트 서버 배포 설정

* 🚀 프론트 브랜치와 연결

* 🚀 docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* ♻️ refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* 🚨 fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [FEAT] 에러 요청에 대한 로깅 구현 (#481)

* feat: error request logging 구현

* feat: 기존 예외처리 로직에 요청 로깅 추가

* chore: 주석 추가

* fix: 로깅 방식 변경 - application.log에 sql 로깅 제외

* fix: 누락된 로깅 로직 추가

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* �[FEAT] 폴더 export 기능 구현 (#504)

* feat: 폴더 export 기능 구현

* feat: url 수정

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)

* refactor: 픽 제목 최대 길이 제약조건 추가

* feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가

* refactor: bean validation 예외 상세하게 반환하도록 수정

* refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결

* fix: title이 null일 때 터지는 오류 해결

* fix: && 문법 오류 수정

* [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)

* refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결

* refactor: pick unique index title 제거

* refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리

* refactor: 불필요한 메서드 제거 및 메서드명 변경

* refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가

* refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음.

* refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경

* refactor: 메서드명 수정

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* [BUG] 픽 태그 리스트 수정 시 데드락 문제 수정 (#514)

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* hotfix: Pick 엔티티의 Link Lazy -> Eager

* [FEAT] 픽 휴지통 이동 및 휴지통에서 픽 삭제 구현, 픽 포커스 변경 (#515)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* feat: deletePicks api 함수 구현

* design: TagPicker 화면 짤림 수정

* feat: 우클릭 휴지통 이동 및 삭제 구현

* feat: PickRecord로 렌더링 변경

* feat: 페이지 이동시, pick item 외부 클릭시 선택된 요소 초기화

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* [REFACTOR] PickTag 테이블에 낙관적 락 설정 (#519)

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* refactor: 픽태그 삭제 부분 수정

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정 (#520)

* [FIX] 두번 useEffect 호출 되는 거 방지 (#518)

* refactor: pick 수정하는 부분에 비관적 락 추가 (#521)

* chore: 로그인 페이지 작업 (#508)

* [FEAT] 크롬 북마크 Import 기능 구현 (#522)

* fix: access token, JSESSIONID 로깅 안하도록 수정, multipart file 캐싱 안하도록 수정

* fix: 입력값이 공백 또는 null일 경우 update하지 않음, 기본값을 빈스트링("")으로 설정

* feat: ogTag 업데이트 구현 및 필요한 의존성 추가

* feat: chrome 북마크 import를 위한 메소드 추가

* feat: chrome 북마크 import export 구현

* refactor: 주석 수정

* refactor: swagger 설정 수정

* refactor: link의 title과 description 필드 text타입으로 수정

* chore: 주석 typo 수정

* refactor: typo 수정

* [DESIGN] 디자인 작업 (#524)

* chore: 로그인 페이지 작업

* feat: 디자인 작업 반영

* fix: 미사용 import 제거

* fix: 서치 버그 해결

* feat: og 태그 데이터 가져오는 api 구현 (#525)

* refactor: 운영 서버에서 스웨거 접근 못하도록 변경 (#527)

* [DESIGN] 배포전 PR (#529)

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정

* feat: Gap 컴포넌트 변경

* design: PickRecord 이미지 영역 사이즈 변경

* design: 헤더 Image table 명명

* design: flex-shrink 적용

* chore: 코드 스타일 변경

* fix: TagPicker 컴포넌트 floating element style 변경

* design: TagRecord Input 디자인 변경

* design: font 모든 부분에 동일하게 적용

* refactor: moveFolderToRecycleBin refactoring

* design: 디자인 변경

* design:2차변경

* design: 버튼 color 추가

* feat: PickSearchRecord 추가

* feat: 링크 추가

* fix: url 수정 및 구현안된 기능 숨기기

* fix: unused import 제거

* fix: 폴더 삭제 전체 삭제 변경

---------

Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>
Co-authored-by: Pak Su Hyung <[email protected]>
Co-authored-by: Sangwon Yang <[email protected]>
dmdgpdi added a commit that referenced this pull request Nov 22, 2024
* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* 🚀 프론트 서버 배포 설정

* 🚀 프론트 브랜치와 연결

* 🚀 docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* ♻️ refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* 🚨 fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [FEAT] 에러 요청에 대한 로깅 구현 (#481)

* feat: error request logging 구현

* feat: 기존 예외처리 로직에 요청 로깅 추가

* chore: 주석 추가

* fix: 로깅 방식 변경 - application.log에 sql 로깅 제외

* fix: 누락된 로깅 로직 추가

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* �[FEAT] 폴더 export 기능 구현 (#504)

* feat: 폴더 export 기능 구현

* feat: url 수정

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)

* refactor: 픽 제목 최대 길이 제약조건 추가

* feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가

* refactor: bean validation 예외 상세하게 반환하도록 수정

* refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결

* fix: title이 null일 때 터지는 오류 해결

* fix: && 문법 오류 수정

* [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)

* refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결

* refactor: pick unique index title 제거

* refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리

* refactor: 불필요한 메서드 제거 및 메서드명 변경

* refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가

* refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음.

* refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경

* refactor: 메서드명 수정

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* [BUG] 픽 태그 리스트 수정 시 데드락 문제 수정 (#514)

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* hotfix: Pick 엔티티의 Link Lazy -> Eager

* [FEAT] 픽 휴지통 이동 및 휴지통에서 픽 삭제 구현, 픽 포커스 변경 (#515)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* feat: deletePicks api 함수 구현

* design: TagPicker 화면 짤림 수정

* feat: 우클릭 휴지통 이동 및 삭제 구현

* feat: PickRecord로 렌더링 변경

* feat: 페이지 이동시, pick item 외부 클릭시 선택된 요소 초기화

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* [REFACTOR] PickTag 테이블에 낙관적 락 설정 (#519)

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* refactor: 픽태그 삭제 부분 수정

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정 (#520)

* [FIX] 두번 useEffect 호출 되는 거 방지 (#518)

* refactor: pick 수정하는 부분에 비관적 락 추가 (#521)

* chore: 로그인 페이지 작업 (#508)

* [FEAT] 크롬 북마크 Import 기능 구현 (#522)

* fix: access token, JSESSIONID 로깅 안하도록 수정, multipart file 캐싱 안하도록 수정

* fix: 입력값이 공백 또는 null일 경우 update하지 않음, 기본값을 빈스트링("")으로 설정

* feat: ogTag 업데이트 구현 및 필요한 의존성 추가

* feat: chrome 북마크 import를 위한 메소드 추가

* feat: chrome 북마크 import export 구현

* refactor: 주석 수정

* refactor: swagger 설정 수정

* refactor: link의 title과 description 필드 text타입으로 수정

* chore: 주석 typo 수정

* refactor: typo 수정

* [DESIGN] 디자인 작업 (#524)

* chore: 로그인 페이지 작업

* feat: 디자인 작업 반영

* fix: 미사용 import 제거

* fix: 서치 버그 해결

* feat: og 태그 데이터 가져오는 api 구현 (#525)

* refactor: 운영 서버에서 스웨거 접근 못하도록 변경 (#527)

* [DESIGN] 배포전 PR (#529)

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정

* feat: Gap 컴포넌트 변경

* design: PickRecord 이미지 영역 사이즈 변경

* design: 헤더 Image table 명명

* design: flex-shrink 적용

* chore: 코드 스타일 변경

* fix: TagPicker 컴포넌트 floating element style 변경

* design: TagRecord Input 디자인 변경

* design: font 모든 부분에 동일하게 적용

* refactor: moveFolderToRecycleBin refactoring

* design: 디자인 변경

* design:2차변경

* design: 버튼 color 추가

* feat: PickSearchRecord 추가

* feat: 링크 추가

* fix: url 수정 및 구현안된 기능 숨기기

* fix: unused import 제거

* fix: 폴더 삭제 전체 삭제 변경

* [FIX] tag CRUD 버그 수정 (#538)

* chore: git pull origin backend

---------

Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>
Co-authored-by: Pak Su Hyung <[email protected]>
Co-authored-by: Sangwon Yang <[email protected]>
sangwonsheep added a commit that referenced this pull request Nov 22, 2024
* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* 🚀 프론트 서버 배포 설정

* 🚀 프론트 브랜치와 연결

* 🚀 docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* ♻️ refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* 🚨 fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [FEAT] 에러 요청에 대한 로깅 구현 (#481)

* feat: error request logging 구현

* feat: 기존 예외처리 로직에 요청 로깅 추가

* chore: 주석 추가

* fix: 로깅 방식 변경 - application.log에 sql 로깅 제외

* fix: 누락된 로깅 로직 추가

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* �[FEAT] 폴더 export 기능 구현 (#504)

* feat: 폴더 export 기능 구현

* feat: url 수정

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)

* refactor: 픽 제목 최대 길이 제약조건 추가

* feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가

* refactor: bean validation 예외 상세하게 반환하도록 수정

* refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결

* fix: title이 null일 때 터지는 오류 해결

* fix: && 문법 오류 수정

* [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)

* refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결

* refactor: pick unique index title 제거

* refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리

* refactor: 불필요한 메서드 제거 및 메서드명 변경

* refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가

* refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음.

* refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경

* refactor: 메서드명 수정

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* [BUG] 픽 태그 리스트 수정 시 데드락 문제 수정 (#514)

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* hotfix: Pick 엔티티의 Link Lazy -> Eager

* [FEAT] 픽 휴지통 이동 및 휴지통에서 픽 삭제 구현, 픽 포커스 변경 (#515)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* feat: deletePicks api 함수 구현

* design: TagPicker 화면 짤림 수정

* feat: 우클릭 휴지통 이동 및 삭제 구현

* feat: PickRecord로 렌더링 변경

* feat: 페이지 이동시, pick item 외부 클릭시 선택된 요소 초기화

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* [REFACTOR] PickTag 테이블에 낙관적 락 설정 (#519)

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* refactor: 픽태그 삭제 부분 수정

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정 (#520)

* [FIX] 두번 useEffect 호출 되는 거 방지 (#518)

* refactor: pick 수정하는 부분에 비관적 락 추가 (#521)

* chore: 로그인 페이지 작업 (#508)

* [FEAT] 크롬 북마크 Import 기능 구현 (#522)

* fix: access token, JSESSIONID 로깅 안하도록 수정, multipart file 캐싱 안하도록 수정

* fix: 입력값이 공백 또는 null일 경우 update하지 않음, 기본값을 빈스트링("")으로 설정

* feat: ogTag 업데이트 구현 및 필요한 의존성 추가

* feat: chrome 북마크 import를 위한 메소드 추가

* feat: chrome 북마크 import export 구현

* refactor: 주석 수정

* refactor: swagger 설정 수정

* refactor: link의 title과 description 필드 text타입으로 수정

* chore: 주석 typo 수정

* refactor: typo 수정

* [DESIGN] 디자인 작업 (#524)

* chore: 로그인 페이지 작업

* feat: 디자인 작업 반영

* fix: 미사용 import 제거

* fix: 서치 버그 해결

* feat: og 태그 데이터 가져오는 api 구현 (#525)

* refactor: 운영 서버에서 스웨거 접근 못하도록 변경 (#527)

* [DESIGN] 배포전 PR (#529)

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정

* feat: Gap 컴포넌트 변경

* design: PickRecord 이미지 영역 사이즈 변경

* design: 헤더 Image table 명명

* design: flex-shrink 적용

* chore: 코드 스타일 변경

* fix: TagPicker 컴포넌트 floating element style 변경

* design: TagRecord Input 디자인 변경

* design: font 모든 부분에 동일하게 적용

* refactor: moveFolderToRecycleBin refactoring

* design: 디자인 변경

* design:2차변경

* design: 버튼 color 추가

* feat: PickSearchRecord 추가

* feat: 링크 추가

* fix: url 수정 및 구현안된 기능 숨기기

* fix: unused import 제거

* fix: 폴더 삭제 전체 삭제 변경

* [FIX] tag CRUD 버그 수정 (#538)

* refactor: 프론트엔드 관련 코드 삭제

* refactor: 충돌 해결

---------

Co-authored-by: dmdgpdi <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>
Co-authored-by: Pak Su Hyung <[email protected]>
dmdgpdi added a commit that referenced this pull request Nov 22, 2024
* Backend Api Release (#528)

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* [FEAT] 에러 요청에 대한 로깅 구현 (#481)

* feat: error request logging 구현

* feat: 기존 예외처리 로직에 요청 로깅 추가

* chore: 주석 추가

* fix: 로깅 방식 변경 - application.log에 sql 로깅 제외

* fix: 누락된 로깅 로직 추가

* �[FEAT] 폴더 export 기능 구현 (#504)

* feat: 폴더 export 기능 구현

* feat: url 수정

* [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)

* refactor: 픽 제목 최대 길이 제약조건 추가

* feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가

* refactor: bean validation 예외 상세하게 반환하도록 수정

* refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결

* fix: title이 null일 때 터지는 오류 해결

* fix: && 문법 오류 수정

* [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)

* refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결

* refactor: pick unique index title 제거

* refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리

* refactor: 불필요한 메서드 제거 및 메서드명 변경

* refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가

* refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음.

* refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경

* refactor: 메서드명 수정

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* [BUG] 픽 태그 리스트 수정 시 데드락 문제 수정 (#514)

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* hotfix: Pick 엔티티의 Link Lazy -> Eager

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* [REFACTOR] PickTag 테이블에 낙관적 락 설정 (#519)

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* refactor: 픽태그 삭제 부분 수정

* refactor: pick 수정하는 부분에 비관적 락 추가 (#521)

* [FEAT] 크롬 북마크 Import 기능 구현 (#522)

* fix: access token, JSESSIONID 로깅 안하도록 수정, multipart file 캐싱 안하도록 수정

* fix: 입력값이 공백 또는 null일 경우 update하지 않음, 기본값을 빈스트링("")으로 설정

* feat: ogTag 업데이트 구현 및 필요한 의존성 추가

* feat: chrome 북마크 import를 위한 메소드 추가

* feat: chrome 북마크 import export 구현

* refactor: 주석 수정

* refactor: swagger 설정 수정

* refactor: link의 title과 description 필드 text타입으로 수정

* chore: 주석 typo 수정

* refactor: typo 수정

* feat: og 태그 데이터 가져오는 api 구현 (#525)

* refactor: 운영 서버에서 스웨거 접근 못하도록 변경 (#527)

---------

Co-authored-by: Pak Su Hyung <[email protected]>
Co-authored-by: Sangwon Yang <[email protected]>

* [CI/CD] 배포 release (#530)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* :rocket: 프론트 서버 배포 설정

* :rocket: 프론트 브랜치와 연결

* :rocket: docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* :recycle: refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* :rotating_light: fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* [FEAT] 픽 휴지통 이동 및 휴지통에서 픽 삭제 구현, 픽 포커스 변경 (#515)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* feat: deletePicks api 함수 구현

* design: TagPicker 화면 짤림 수정

* feat: 우클릭 휴지통 이동 및 삭제 구현

* feat: PickRecord로 렌더링 변경

* feat: 페이지 이동시, pick item 외부 클릭시 선택된 요소 초기화

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정 (#520)

* [FIX] 두번 useEffect 호출 되는 거 방지 (#518)

* chore: 로그인 페이지 작업 (#508)

* [DESIGN] 디자인 작업 (#524)

* chore: 로그인 페이지 작업

* feat: 디자인 작업 반영

* fix: 미사용 import 제거

* fix: 서치 버그 해결

* [DESIGN] 배포전 PR (#529)

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정

* feat: Gap 컴포넌트 변경

* design: PickRecord 이미지 영역 사이즈 변경

* design: 헤더 Image table 명명

* design: flex-shrink 적용

* chore: 코드 스타일 변경

* fix: TagPicker 컴포넌트 floating element style 변경

* design: TagRecord Input 디자인 변경

* design: font 모든 부분에 동일하게 적용

* refactor: moveFolderToRecycleBin refactoring

* design: 디자인 변경

* design:2차변경

* design: 버튼 color 추가

* feat: PickSearchRecord 추가

* feat: 링크 추가

---------

Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>

* [FIX] 구현되지 않는 기능 �주석 처리 (#531)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* :rocket: 프론트 서버 배포 설정

* :rocket: 프론트 브랜치와 연결

* :rocket: docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* :recycle: refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* :rotating_light: fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [FEAT] 에러 요청에 대한 로깅 구현 (#481)

* feat: error request logging 구현

* feat: 기존 예외처리 로직에 요청 로깅 추가

* chore: 주석 추가

* fix: 로깅 방식 변경 - application.log에 sql 로깅 제외

* fix: 누락된 로깅 로직 추가

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* �[FEAT] 폴더 export 기능 구현 (#504)

* feat: 폴더 export 기능 구현

* feat: url 수정

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)

* refactor: 픽 제목 최대 길이 제약조건 추가

* feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가

* refactor: bean validation 예외 상세하게 반환하도록 수정

* refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결

* fix: title이 null일 때 터지는 오류 해결

* fix: && 문법 오류 수정

* [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)

* refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결

* refactor: pick unique index title 제거

* refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리

* refactor: 불필요한 메서드 제거 및 메서드명 변경

* refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가

* refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음.

* refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경

* refactor: 메서드명 수정

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* [BUG] 픽 태그 리스트 수정 시 데드락 문제 수정 (#514)

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* hotfix: Pick 엔티티의 Link Lazy -> Eager

* [FEAT] 픽 휴지통 이동 및 휴지통에서 픽 삭제 구현, 픽 포커스 변경 (#515)

* feat: PickRecord에서 PickListItem 분리

* refactor: TagPicker 크롬 익스텐션 코드 가져오기

* design: list item 줄어들 때, textoverflow 적용

* fix: li 내부에 li가 들어갈 수 없음

* refactor: pick 수정 api 변경

* feat: updatePickInfo 로직 구현

* feat: updatePickInfoStore 구현

* feat: 픽 제목 수정 기능 구현

* chore: 나중에 할 todo 등록

@todo: 현재 SearchWidget이 사용되는 페이지에 전체적으로 적용되고 있음.

* chore: @radix-ui/react-separator 설치

* refactor: PickRecord PickSearchRecord로 변경

* feat: PickRecord로 대체

* feat: tagStore 안쓰는 함수 삭제

* refactor: tag 관련 api 함수 호출 경로 수정

* design: 안보이는 색 변경

* feat: TagPicker CRUD 적용

* design: 디자인 변경

* feat: deletePicks api 함수 구현

* design: TagPicker 화면 짤림 수정

* feat: 우클릭 휴지통 이동 및 삭제 구현

* feat: PickRecord로 렌더링 변경

* feat: 페이지 이동시, pick item 외부 클릭시 선택된 요소 초기화

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* [REFACTOR] PickTag 테이블에 낙관적 락 설정 (#519)

* refactor: PickTag에 낙관적 락 설정

* refactor: Spring retry 추가

* refactor: 픽태그 삭제 부분 수정

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정 (#520)

* [FIX] 두번 useEffect 호출 되는 거 방지 (#518)

* refactor: pick 수정하는 부분에 비관적 락 추가 (#521)

* chore: 로그인 페이지 작업 (#508)

* [FEAT] 크롬 북마크 Import 기능 구현 (#522)

* fix: access token, JSESSIONID 로깅 안하도록 수정, multipart file 캐싱 안하도록 수정

* fix: 입력값이 공백 또는 null일 경우 update하지 않음, 기본값을 빈스트링("")으로 설정

* feat: ogTag 업데이트 구현 및 필요한 의존성 추가

* feat: chrome 북마크 import를 위한 메소드 추가

* feat: chrome 북마크 import export 구현

* refactor: 주석 수정

* refactor: swagger 설정 수정

* refactor: link의 title과 description 필드 text타입으로 수정

* chore: 주석 typo 수정

* refactor: typo 수정

* [DESIGN] 디자인 작업 (#524)

* chore: 로그인 페이지 작업

* feat: 디자인 작업 반영

* fix: 미사용 import 제거

* fix: 서치 버그 해결

* feat: og 태그 데이터 가져오는 api 구현 (#525)

* refactor: 운영 서버에서 스웨거 접근 못하도록 변경 (#527)

* [DESIGN] 배포전 PR (#529)

* design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정

* feat: Gap 컴포넌트 변경

* design: PickRecord 이미지 영역 사이즈 변경

* design: 헤더 Image table 명명

* design: flex-shrink 적용

* chore: 코드 스타일 변경

* fix: TagPicker 컴포넌트 floating element style 변경

* design: TagRecord Input 디자인 변경

* design: font 모든 부분에 동일하게 적용

* refactor: moveFolderToRecycleBin refactoring

* design: 디자인 변경

* design:2차변경

* design: 버튼 color 추가

* feat: PickSearchRecord 추가

* feat: 링크 추가

* fix: url 수정 및 구현안된 기능 숨기기

---------

Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>
Co-authored-by: Pak Su Hyung <[email protected]>
Co-authored-by: Sangwon Yang <[email protected]>

* [FIX] 빌드 수정을 위한 PR (#532)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo …
dmdgpdi added a commit that referenced this pull request Nov 22, 2024
* [FEAT] 백엔드 프로젝트 설정 (#3)

* feat: backend initial setup

* refactor: .gitignore 수정

* refactor: .env 적용 방법 이미지 수정

* Update README.md

* Update .env.sample

* feat : backend pr 빌드봇 추가 (#6)

* feat: swagger 설정 추가 (#13)

* feat : springdoc swagger 의존성 추가

* feat : swagger config 추가

* feat: ERD 기반 Entity 정의 (#15)

* feat: RSS 기능 구현 (#22)

* feat: Entity 재정의 (#26)

* feat: 기획 변경에 따른 Entity 재정의

* refactor: 서비스 이름 변경에 따라 linkpick으로 수정

* refactor: 리뷰 반영, 불필요한 클래스, 오타 수정, url BLOB 타입으로 지정

* refactor: linkpick -> techpick 변경

* feat: 엔티티 최종 수정  (#34)

* :recycle: refactor: 멀티 모듈을 고려한 디레토리 구조 정리

* :recycle: refactor: 불필요한 디렉토리 제거

* :recycle: refactor: Admin 제거 (User로 통합)

* :recycle: refactor: dummy readme 이동

* :recycle: refactor: 최종 Entity 수정

* :recycle: refactor: 최종 Entity 수정

* :recycle: refactor: url을 Blob에서 varchar로 변경

* feat: 디렉토리 구조 및 공통 예외처리 설정 (#43)

* :recycle: refactor: 디렉토리 구조 변경

* :recycle: refactor: 디렉토리 구조 추가 및 예시용 코드 작성

* :sparkles: ApiException

* :recycle: refactor: Class 이름 변경

* :recycle: 예외 코드를 같이 표시 합니다

* :recycle: 예외 코드를 같이 표시 합니다

* :recycle: 스웨거 interface 분리

* feat: 소셜로그인 구현 (#44)

* feat : security 관련 의존성 추가

* feat : Jwt token provider 구현

* feat : jwt 설정 추가 및 oauth 설정 분리

* feat : jwt 관련 의존성 추가

* feat : cookie 관련 유틸 추가

* feat : jwt 관련 유틸 추가

* feat : thymeleaf 의존성 추가

* feat : oauth2 인증을 위한 메소드 추가

* feat : providerId 필드 추가

* feat : Jwt에 role도 포함되도록 수정

* feat : oauth2 config 설정 yaml

* feat : oauth2 구현

* feat : oauth 로그인 유저 생성을 위한 user 엔티티 수정

* fix : 토큰 유효성 검증 메소드명 수정 : validateToken->isValidToken

* fix : 쿠키 검색 메소드 분리

* fix : 불필요한 주석 삭제

* fix : var -> Object 로 명시적으로 보이게 수정

* fix : 개행 추가

* fix : var -> Object 로 명시적으로 보이게 수정

* fix : User 엔티티 패키지 수정

* fix : 패키지 구조 변경 적용

* fix : User static factory method 파라미터 수정

* feat : OAuth2 exception 및 errorcode 추가

* refactor: 에러 코드 기능별 분리 (#49)

* :art: ApiErrorCode 각 기능 별로 분리

* :art: ApiOAuth2ErrorCode 추가

* :recycle: chore: 단순 주석 통일 및 개행 제거

* :recycle: chore: 접근 지정자 제한

* :recycle: feat: 핸들러 함수 위임

* :recycle: chore: env 샘플 업데이트

* :recycle: chore: exception abstract 제거, 주석 추가

* :recycle: chore: exception abstract 제거, 주석 추가

* :bug: fix: servletRequest / Response 받지 않는 것으로 변경 (수형님 리뷰)

* feat: 테스트 api 서버 배포 (#64)

* Back/feat/#54 (#55)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* deploy: api 서버 배포 테스트 (#56)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* deploy: api 서버 배포 테스트 (#57)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* deploy: api 서버 배포 테스트 (#58)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정 (#60)

* deploy test (#61)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: docker compose 내용 변경

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* feat: RSS 기능 구현 (#46)

* feature: RSS 기능 구현, csv 파일로 초기 데이터 설정, RssRawData column 제약 조건 제거

* refactor: package 구조 변경으로 인해 import 수정

* refactor: 리뷰에 따라 코드 리팩토링

* Update test-server-deploy.yml

* �[feat] Link CRUD 구현 (#63)

* feat : (임시) favicon 추가

* feat : swagger 경로 설정 추가

* feat : Link exception, error code 추가

* fix : logging 항목 변경

* fix : swagger url 추가

* feat: Link를 가지고있는 pick 확인 메소드 구현

* feat: Link 엔티티 수정 및 정적 메소드 추가

* feat: Link dto 구현

* feat: Link CRUD 구현

* feat: Link swagger 인터페이스 추가

* fix: LinkService 메소드명 명확하게 수정

* fix: LinkService 메소드명 명확하게 수정

* fix: LinkController 리팩토링

* feat: LinkMapper 추가

* refactor: Transactional 어노테이션 추가

* fix: Path 수정

* refactor: LinkProvider 추가

* refactor: PickTag 엔티티 필드 변경 user->pick (#73)

* [feat] 태그 API 구현 (#71)

* refactor: 불필요한 클래스 삭제

* refactor: 불필요한 클래스 삭제

* feat: Tag 예외처리 및 에러코드 구현

* refactor: order필드 및 생성 및 삭제를 위한 정적 메소드 추가

* feat: 태그 crud 구현

* feat: 태그 컨트롤러 및 swagger 명세 구현

* feat: (임시) 태그 삭제시 검증을 위한 PickTagRepository 구현

* fix: createTag 메소드에 ApiUserException 추가

* refactor: tag 삭제방식 변경

* refactor: validate 로직 분리 - TagValidator 추가

* refactor: TagRepository 사용하지 않는 메소드 삭제

* refactor: mapper, provider 패키지 구조 변경

* feat: order 중복 에러 추가 및 pick 존재 에러 삭제

* feat: 사용자가 등록한 태그를 map 타입으로 제공하는 메소드 추가

* feat: 중복 order 검증 로직 추가

* refactor: Tag update 로직 수정 - 중복 order 검증, 사용자 태그 검증 로직 변경

* refactor: delete 로직에서 메소드명 typo 수정 및 주석 추가

* refactor: typo 수정

* refactor: tag order 가 음수일때 검증 로직 추가

* refactor: tag order 가 0부터 시작하도록 수정

* refactor: orElse -> orElseGet 으로 리팩토링

* refactor: format refactoring

* refactor: tag update시 검증 로직 변경

* refactor: snake case -> camel case로 리팩토링

* refactor: Tag 엔티티 order 필드명 수정 -> order -> tagOrder

* refactor: userTagList 제공 메소드 정렬기준에 따라 분리 - OrderByTagOrder, OrderByTagId

* refactor: userTagList 제공 메소드 정렬기준에 따라 분리 - OrderByTagOrder, OrderByTagId

* refactor: updateTag 로직 수정 validator에서 update할 tag의 index를 가져옴

* refactor: 불필요한 메소드 삭제

* refactor: TagUpdater 클래스 추가

* refactor: TagUpdater 클래스를 사용해 updateTag 로직 구현

* refactor: format 수정

* refactor: 미사용 메소드 삭제

* refactor: validator 삭제 및 관련 로직 service로 이관

* refactor: 다음 tagOrder 가져오는 메소드 명 명확하게 수정

* [test] 테스트용 mysql 분리 (#79)

* test: test용 mysql 분리

* refactor: 테스트용 db가 분리됨에 따라 패키지 구조 변경

* refactor: 테스트용 db가 분리됨에 따라 패키지 구조 변경

* refactor: 개발 db와 테스트 db의 mysql관련 파일 패키지 분리

* Refactor: Security, Exception, Package 리팩토링 (#82)

* [refactor] 태그 수정 검증로직 추가 및 태그 순서 필드명 수정 (#89)

* refactor: 중복 이름 검증 로직 추가 및 순서,이름 로직를 하나로 묶음

* refactor: 태그 순서 필드명 수정 order -> tagOrder

* refactor: 태그 순서 필드명 수정 order -> tagOrder

* refactor: 태그 수정시 결과 리스트 tagOrder로 오름차순 정렬하여 반환

* [test] 테스트 Fixture 구현 (#86)

* refactor: 테스트를 위한 lombok 의존성 추가

* refactor: env 파일 적용

* test: 테스트를 위한 fixture 객체 구현

* refactor: lombok 의존성 변경

* Feat: 테스트 서버 API 설정 (#91)

* :recycle: refactor: Exception core 패키지를 각 기능별 패키지로 이동

* :recycle: refactor: 시큐리티 - ACCESS_TOKEN_KEY 직접 비교로 수정

* :recycle: refactor: Exception - OAuth 예외도 auth 패키지 안으로 이동

* :sparkles: feat: API 에러 레벨 구현

* :sparkles: feat: 에러 코드에 에러 레벨 적용

* :sparkles: feat: 에러 레벨 별 다른 작동 구현

* :recycle: refactor: dto를 service 패지키로 이동

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: 배포 스크립트에 환경 변수 추가

* Refactor: RSS Exception 처리 (#81)

* feat: Rss 에러 코드, Exception 구현

* refactor: dto 경로 변경에 따라 import 수정, 주석 제거

* feat: rss exception 처리 및 provider로 분리

* refactor: retry 로직 추가, 예외 처리 수정

* refactor: 충돌 해결 및 에러 레벨 추가

* refactor: RssRawData에 RssBlogId 추가, 도커 경로 변경으로 인해 csv 파일 추가

* refactor: oauth uri 변경 (#94)

* fix: /api/login uri 접근 허용 (#97)

* fix: /api/login uri 접근 허용 (#99)

* refactor: cors 설정 추가 (#102)

* feat: mysql에서 rss blog url sql 파일 import (#100)

* feat: rss blog url setting 방법 추가, blog url unique 추가, csv 파일에 중복 제거

* feat: sql 파일 도커 경로로 추가

* refactor: 미사용 설정 / 파일 제거 (#105)

* refactor: 스케줄러 설정 추가 (#110)

* [feat] Folder 기본 설계 (#111)

* feat: folder entity 구현

* feat: folder 예외, 에러코드 구현

* feat: User 추가

* feat: FolderType 필드 접근제어자 추가

* [feat] FolderStructure 설계 (#113)

* feat: FolderStructure Entity 구현

* feat: FolderStructure Repository, Provider 구현

* Feat: Parser Dto 및 구조 작성 (#118)

* :construction: Parser Dto 및 구조 작성

* :recycle: refactor: FolderAction 제거

* :recycle: refactor: 함수 이름 수정

* :recycle: refactor: 공백 제거

* :recycle: refactor: 미사용 파일 제거

* [feat] Folder Service 구현 (#121)

* fix: 생성자와 정적메소드에 User 파라미터 추가

* feat: Folder update 메소드 추가

* feat: Folder dto 구현

* feat: Folder Mapper 구현

* feat: Folder Provider Repository 구현

* feat: Folder Service 구현

* feat: 부모 폴더 업데이트 메소드 구현

* feat: 사용자의 미분류폴더, 휴지통 조회하는 메소드 구현

* feat: 특정폴더를 본인의 미분류폴더, 휴지통으로 이동시키는 메소드 구현

* refactor: 검증로직에 assertion 추가

* refactor: 검증로직 기존코드로 롤백

* feat: Pick DTO 설계 (#124)

* feat: pick error code, exception 구현

* refactor: link entity에 imageUrl 추가

* refactor: link mapper에 imageUrl 추가

* refactor: link dto에 imageUrl 추가

* refactor: 패키지 구조 변경에 따라 import 수정, linkFixture imageUrl 추가

* refactor: pick에 folder 연관 관계 추가

* feat: pick, pickTag dto 구현

* refactor: pick dto 필드명 수정

* refactor: pick entity folder 변수명 변경

* [FEAT] 프론트 로그인 로컬 테스트를 위한 redirect url 설정 (#129)

* feat: 인증 성공 후 redirect url 추가

* feat: 인증 성공 후 redirect url 추가

* [�REFACTOR] 기본 폴더 CRUD 관련 리팩토링 (#127)

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 기본폴더 조회 메소드 수정

* feat: 회원가입시 기본폴더 생성 로직 구현

* feat: 기본폴더 수정 및 삭제 방지 로직 구현

* feat: 기본폴더 변경 불가 에러코드 설명 구체적으로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: EnumSet을 이용해 BasicFolderType을 검증하도록 수정

* refactor: 프론트 로컬 테스트를 위한 설정 (#135)

* [REFACTOR] 프론트 로컬 테스트를 위한 설정 (#137)

* refactor: 프론트 로컬 테스트를 위한 설정

* refactor: 프론트 로컬 테스트를 위한 설정

* fix: @NotNull 어노테이션 제거 (#132)

* [FEAT] 기본 폴더로 root 폴더 추가 (#140)

* feat: 기본 폴더로 root 폴더 추가

* feat: 회원가입시 root 폴더 생성

* [feat] 클라이언트 폴더 구조 JSON 파싱 (#147)

* :construction: Parser Dto 및 구조 작성

* :recycle: refactor: FolderAction 제거

* :recycle: refactor: 함수 이름 수정

* :recycle: refactor: 공백 제거

* :recycle: refactor: 미사용 파일 제거

* :sparkles: 파서 에러 코드 추가

* :sparkles: 파서 인터페이스 변경

* :sparkles: 파서 테스트 코드

* :sparkles: feat: 파서 구현

* :recycle: refactor: 구현체 코드 정리

* :recycle: refactor: 구현체 코드 정리

* :recycle: refactor: enum 변환에 custom exception 추가

* :recycle: refactor: 코드 리뷰 반영

* :recycle: refactor: 미사용 파일 제

* :recycle: refactor: 리팩토링 주석 추가

* :recycle: refactor: 테스트 케이스 최종 수정

* :recycle: refactor: Jackson으로 구조 리팩토링.

* :recycle: refactor: 디렉토리 이동

* :recycle: refactor: 테스트 케이스 작성 모두 완료

* :recycle: refactor: 함수명 수정

* :recycle: refactor: 함수명 수정

* :recycle: refactor: 주석 추가

* :recycle: refactor: 리팩토링 제안 주석 제거 (이슈로 등록)

* :recycle: refactor: 코드 리뷰 반영

* :recycle: refactor: 코드 리뷰 반영

* [FEAT] FolderService 추가 비즈니스 로직 구현 및 리팩토링 (#143)

* feat: root 폴더 조회 로직 구현

* refactor: 업데이트 메소드 분리 (이름/부모폴더)

* refactor: 업데이트 메소드 분리 (이름/부모폴더)

* refactor: 업데이트 메소드 분리 (이름/부모폴더) & 삭제시 휴지통으로 이동되도록 수정

* refactor: 부모 폴더가 삭제되면 자식 폴더/픽도 삭제되도록 @OnDelete 추가

* feat: 휴지통에 있지 않은 폴더를 삭제하려 할 때, 발생하는 오류 추가

* feat: 현재 폴더가 어떤 기본폴더에 속해있는지 반환하는 메소드 추가

* feat: 휴지통에 있는 폴더 영구 삭제하는 기능 추가

* refactor: 폴더 이름 변경시에도 구조json 검증

* refactor: 재귀 로직 수정

---------

Co-authored-by: Minky <[email protected]>

* feat: 로그인 확인용 쿠키(techPickLogin) 구현 (#155)

* [HOTFIX] 로그인 쿠키 버그 수정 (#156)

* feat: 로그인 확인용 쿠키(techPickLogin) 구현

* fix: 로그인 확인용 쿠키(techPickLogin)가 access_token을 덮어씌우는 버그 수정

* [FEAT] 직렬화 비직렬화 및 데이터 세팅 과정 구현 (#151)

* :recycle: refactor: 테스트 케이스 업데이트

* :recycle: refactor: 미사용 파일 삭제

* :recycle: refactor: 테스트 케이스 업데이트

* :recycle: refactor: 디렉토리를 스트럭쳐로 이름 변경

* :sparkles: feat: 클라이언트용 구조 노드 DTO

* :sparkles: feat: 서버용 구조 노드 DTO

* :sparkles: feat: 파일 위치 이동

* :sparkles: feat: 파일 위치 이동

* :sparkles: feat: 클라이언트 전송을 위한 name 데이터 설정 - provider

* :sparkles: feat: 최종 Structure 완료

* :sparkles: feat: 최종 Structure 완료

* :sparkles: feat: 코드 리뷰 바탕으로 한번에 로드하는 메소드 추가

* [FEAT] Folder Api 구현 및 FolderService 리팩토링 (#161)

* refactor: 접근권한이 없는 폴더 에러코드 HttpStatus 403으로 변경

* feat: dto 세분화

* refactor: validator 분리

* feat: Structure api에서 사용할 FolderStructureService 분리

* feat: Folder Api 구현

* refactor: FolderStructureService 반환형식 수정

* refactor: updateFolderName 메소드 응답 누락 해결

* refactor: @PathVariable 어노테이션 추가

* refactor: 잘못된 검증 로직 수정

* [FEAT] Structure와 연관된 Pick Service 구현 (#163)

* feat: pick dto 세분화

* refactor: pick update, delete 추가

* feat: Structure 관련된 pick 구현

* feat: pick service 틀 잡기

* refactor: 변수명 수정, 잘못 사용한 메서드 변경

* [FEAT] Structure API 구현 및 Folder Create 로직 수정 (#164)

* refactor: 누락된 검증 로직 추가

* refactor: 폴더 생성 로직 변경 parentId는 별도 주입

* refactor: Folder Dto 수정

* refactor: Folder Create 로직 변경 (create->move 한세트로)

* refactor: 불필요한 필드 삭제

* refactor: Structure Json 엔티티 이름 명확하게 변경

* refactor: StructureJson Repository Structure 패키지로 이동

* refactor: Structure API 구현

* refactor: StructureJson 이름 변경

* refactor: FolderCreate 로직 분리

* refactor: PickDeleteDto 분리

* feat: Structure Dto 및 Mapper 구현

* feat: Structure Service 구현

* refactor: Mapper 에 UserRepository 의존성이 추가되면서 임시로 수정

* refactor: ApiDirectory->ApiStructure로 이름 변경

* feat: 회원가입시 자동으로 root,recycle_bin이 빈 폴더구조json 생성

* refactor: model 패키지 이동

* refactor: model 패키지 이동

* refactor: create folder시 무조건 parentId가 null이므로 그에대한 로직 추가

* refactor: model 패키지 이동

* refactor: @RequestBody 추가

* refactor: Structure를 필드로 직접 가지도록 수정

* refactor: 포맷수정

* feat: StructureJsonProvider 구현

* refactor: 불필요한 클래스 삭제

* refactor: StructureJson 업데이트 로직 Provider로 이관

* refactor: Folder 생성자 수정

* refactor: Structure ErrorCode 코드명/주석 수정

* refactor: var 제거

* refactor: 부모폴더가 없을 시 parentFolderId = -1로 응답하도록 수정

* hotfix: getParentFolderId -> findParentFolderId JPA 오류 수정

* refactor: access_token 사용하도록 설정 (#175)

* [FEAT] Structure Validator 구현 (#178)

* refactor: 불필요한 메소드 삭제 및 Folder 조회 조건 변경(ParentFolder Not Null)

* refactor: 불필요한 메소드 삭제

* refactor: 메소드명 구체화

* refactor: 유저 픽 리스트 조회 메소드 추가

* feat: StructureValidator 구현 및 적용

* refactor: 메소드 이름 명확하게 변경

* feat: 로그 추가

* refactor: 메소드명 통일 IsNotEmpty -> IsNotNull

* refactor: root, recycleBin 정보 요청으로 받지 않고 db에서 받도록 수정

* [HOTFIX] swagger 쿠키 설정 수정 (#179)

* refactor: access_token 사용하도록 설정

* fix: swagger 쿠키 설정 수정

* hotfix: swagger 쿠키 설정 수정

* hotfix: samesite 설정 제거

* [REFACTOR] UserService 구현 포함, 전체 코드 리팩토링 (#180)

* :recycle: docker compose 테스트 DB 설정 제거

* :sparkles: feat: UserService 기능 구현

* :recycle: refactor: Tag Feature 리팩토링 (의존성 제거)

* :recycle: refactor: Pick 도메인 리팩토링

* :recycle: refactor: Structure 도메인 리팩토링

* :recycle: refactor: Link 도메인 리팩토링

* :recycle: refactor: Folder 도메인 리팩토링

* :recycle: refactor: FolderStructure 도메인 리펙토링

* :recycle: refactor: FolderStructure 도메인 리펙토링 (기존 코드 삭제)

* :recycle: refactor: OAuth 도메인 리펙토링

* :recycle: refactor: User 이름 랜덤 생성기 추가

* :recycle: refactor: Folder 예외 추가

* :recycle: refactor: Parser 테스트 주석 처리 (provider 의존성 필요)

* :recycle: refactor: 주석 오류 수정

* :recycle: refactor: 테스트 코드 준비

* :recycle: refactor: 코드 리뷰 피드백 반영

* :recycle: refactor: 코드 리뷰 피드백 반영

* :sparkles: feat: 태그 color 추가 (#185)

* :bug: fix: 익스텐션 CORS 추가

* [FEAT] Pick �API + Service 구현 (#186)

* feat: Link Service 기능 추가

* feat: UserProvider 구현

* refactor: TagService 수정

* feat: Pick Service 구현

* feat: Pick Tag 구현

* feat: Pick Api 구현

* refactor: FolderMapper 모두 general 타입으로 들어가는 문제 해결

* feat: folder type 메서드 추가

* refactor: Authentication 제거

* refactor: dto 삭제

* refactor: UserId -> User로 변경 및 메서드명 통일

* refactor: Request Param 변경

* refactor: 리뷰 반영

* [HOTFIX] Valid 관련 에러 설정 (#189)

* feat: Link Service 기능 추가

* feat: UserProvider 구현

* refactor: TagService 수정

* feat: Pick Service 구현

* feat: Pick Tag 구현

* feat: Pick Api 구현

* refactor: FolderMapper 모두 general 타입으로 들어가는 문제 해결

* feat: folder type 메서드 추가

* refactor: Authentication 제거

* refactor: dto 삭제

* refactor: UserId -> User로 변경 및 메서드명 통일

* refactor: Request Param 변경

* refactor: 리뷰 반영

* refactor: valid 수정

* :bug: fix: link 생성 순서 오류 수정 및 swagger에 baseURL 수정

* [CI] API V2 브랜치 - 서버 설정 (#195)

* ci:  API V2 브랜치 - 서버 설정

* [REFACTOR] V2를 위한 패키지 리셋 (#237)

* refactor: v2에 불필요한 패키지 삭제

* refactor: auth폴더 중 새로구현하게되는 부분 삭제

* refactor: 테스트 폴더 삭제

* [FEAT] V2 엔티티 설계 (#240)

* refactor: TimeTracking -> BaseEntity로 클래스명 변경

* refactor: 불필요한 클래스 삭제

* refactor: 정적 메소드 삭제

* feat: id List <-> String Converter 구현

* feat: 자식 픽/폴더/태그의 순서를 저장하는 필드 추가

* feat: FK 제약조건 제거

* refactor: OnDelete옵션을 위해 FK 제약조건 원복

* refactor: Converter 어노테이션 추가

* refactor: Link 비활성화 구현 및 Pick 관련 필드 추가

* refactor: 필드명 수정 deletedAt -> invalidatedAt

* refactor: FK 제약조건 원복

* [FEAT] V2 패키지 구조 재설계 (#258)

* feat: mapstruct 의존성 추가

* feat: 초기 프로젝트 구조 설정

* feat: 서비스 / 컨트롤러 어노테이션 추가

* feat: SQL 로그 파일 설정 추가

* feat: 도커 컴포즈 주석 제거

* feat: 잘못 들어간 코드 삭제

* feat: 코드 리뷰 반영

* [CHORE] API 명세 (#264)

* feat: api 명세

* feat: api 명세

* feat: api 명세 반영

* feat: api 명세 반영

* [FEAT] pick v2 도메인 개발 (#278)

* feat: Link, Pick, Folder 엔티티

* feat: PickTag 엔티티 작업

* chore: 미사용 파일 제거

* chore: 스펙의 변수명 변경

* chore: sql 파일 위치 이동

* chore: 필요 예외 코드 추가

* feat: 유저 infra

* feat: JPA Repository 구현

* :sparkles: feat: Pick 도메인 구현

* :sparkles: feat: Pick 인프라 구현

* :sparkles: feat: Link 인프라 구현

* :sparkles: feat: Folder 인프라 구현

* :sparkles: feat: MapStruct 매퍼 구현

* chore: 리팩토링 및 null 처리 추가

* chore: 리팩토링 및 MapStruct 빌드 오류 수정

* chore: 테스트코드 패키지 사라진거 복원

* chore: 테스트코드 준비

* refactor: 현재 사용자 조회 메소드 구현

* chore:  코드 리뷰 결과 반영

* chore:  코드 리뷰 결과 반영

---------

Co-authored-by: PSH <[email protected]>

* [REFACTOR] pick service 코드에서 chaining 제거 (#280)

* chore:  코드 리뷰 결과 반영

* chore:  코드 리뷰 결과 반영

* [FEAT] Tag v2 Service 구현 (#281)

* feat: tag infra 구현

* feat: tag entity, repository 구현

* feat: tag dto, mapper 구현

* feat: tag service 구현

* refactor: user tagOrderList에 ArrayList 주입

* feat: tag api request/response 구현

* feat: tag api mapper 구현

* refactor: pickTag 삭제 메서드 구현

* refactor: tag dto 공통화 및 태그 이동 dto 추가

* refactor: 검증 로직 writer로 이동 및 reader 수정

* refactor: 태그 service 리뷰 반영 및 유저의 태그 이동 기능 구현, 태그 삭제 시 픽 태그도 삭제되도록 구현

* [FIX] Pick API 예외 미흡 수정  (#283)

* fix: Tag 미사용 Exception 제거

* fix: 미사용 Fixture 제거

* fix: Pick Write 예외 처리 추가 (권한)

* fix: Pick Write 예외 처리 추가 (권한) (#290)

* [REFACTOR] 테스트 코드 구현을 위한 Pick 도메인 수정 (#297)

* refactor: Writer, Reader를 PickAdaptor로 인터페이스 통합

* refactor: Writer, Reader 삭제

* refactor: userId 파라미터로 분리

* refactor: 서비스 구현체 수정

* chore: 레포지토리 수정 및 주석 변경

* chore: 누락된 변경 사항 적용

* [FEAT] Folder Domain/Infrastructure 구현 (#284)

* feat: 폴더 update remove 메소드 구현

* feat: 폴더 reader/writer 구현

* feat: 폴더 dto 구현

* feat: 폴더 service 구현

* feat: 폴더 repository 자식폴더 조회 메소드 구현

* refactor: FolderReader FolderWriter를 FolderAdapter로 병합

* feat: Folder equals, hashcode 구현

* fix: TODO로 작성했던 태그 리스트 비교 로직 업데이트 (#300)

* [FEAT] Tag Service 테스트 코드 작성 및 리팩토링 (#302)

* refactor: 테스트 설정 파일 수정

* refactor: reader, writer -> adaptor로 통합

* refactor: user entity builder 추가 및 reader에 private final 추가

* refactor: parameter에 userId 추가

* feat: tag service test code 작성

* refactor: 비관락 설정, 에러 코드 메세지 검증 추가

* refactor: 동시성 테스트 트랜잭션 추가

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* [REFACTOR] Tag Service Infrastructure 리팩토링 (#309)

* refactor: TagAdaptor로 db로직 이관

* refactor: TagService에는 비즈니스 검증 로직 구현

* refactor: 테스트에 리팩토링 사항 반영

* refactor: TagRepository 비관락 타임아웃 설정

* refactor: findBy -> findAllBy로 명확하게 메소드명 수정

* fix: 오타 수정

* refactor: TagCommand dto안에 userId 포함

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [REFACTOR] Folder 도메인 리팩토링 (#316)

* refactor: FolderCommand가 userId를 가지도록 변경

* refactor: FolderAdapter 리팩토링

* refactor: FolderService 리팩토링

* refactor: FolderFacade 제거

* fix: typo 수정(FolderAdapter->FolderAdaptor)

* refactor: FolderAdaptor 메소드명 변경에 따른 관련 메소드 리팩토링

* refactor: Command에 userId 포함하도록 변경됨에 따라 mapper 수정

* refactor: TagFacade 삭제

* feat: 기본폴더 조회 메소드 구현

* feat: Order를 보장하는 조회 메소드 분리

* refactor: 정렬 로직 adaptor로 이관

* refactor: 다른 부모폴더에있는 폴더들을 동시에 이동시키려고 할때 발생시킬 예외 추가

* refactor: 필드명 명확하게 변경 parentFolderId -> destinationFolderId

* refactor: 순서보장이 필요한 경우와 아닌경우에 따라 adaptor메소드 분리

* [REFACTOR] tag, folder 검증로직 메소드 분리 (#323)

* refactor: 태그 검증로직 메소드 분리

* refactor: 폴더 검증로직 메소드 분리

* [FEAT] Tag API 구현 및 Swagger 명세 (#328)

* feat: swagger 가 패키지를 포함하여 관리하도록 설정 추가

* style : 파라미터 순서 변경

* refactor: colorNumber 타입 수정

* feat: Tag Api 구현 및 Swagger 명세, 예시 추가

* refactor: 오타 수정

* [FEAT] LoginUserId 커스텀 어노테이션 구현 (#326)

* feat: 커스텀 어노테이션 구현

* feat: ArgumentResolver 구현

* feat: ArgumentResolver 등록

* [REFACTOR] Rss 서비스 리팩토링 (#321)

* refactor: 불필요한 클래스 삭제

* refactor: batch 패키지로 이동

* refactor: RssBlog 엔티티에 blogName 필드 추가 및 관련 dto 구현

* refactor: RssFeed 엔티티 필드명 수정 및 파싱용 dto 구현

* feat: Rss infra 구현

* feat: Rss domain 구현

* feat: (임시) rss 수집 블로그 구현 - 이후 관리자기능으로 이관할 예정

* chore : 코드 포맷 수정

* refactor: 매일 3시에 수집하도록 스케줄 설정

* chore: 주석 typo 수정

* feat: 메소드 실행시간측정 커스텀 어노테이션 구현

* feat: rssCrawling 실행시간 측정

* [FEAT] Folder Api 구현 및 Swagger 명세 (#331)

* refactor: 불필요한 인터페이스 삭제

* refactor: 기본폴더 변경불가 검증로직 추가

* feat: FolderApi dto, mapper 구현

* feat: FolderApi Controller 구현

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] Pick 리팩토링 진행 및 API 구현 (#342)

* fix: 미사용 파일 제거

* chore: 트래잭션 로깅 옵션 추가

* fix: 폴더, 태그에 unique 제약 조건 추가

* fix: 미사용 파일 제거

* fix: 미사용 파일 제거

* feat: User Adaptor로 로직 통일

* feat: Link Adaptor로 로직 통일

* feat:  request dto에서 userId 제거

* feat:  userAdaptor 로 변경

* fix:  Pick 도메인 오류 수정

* fix:  Tag 도메인 수정

* fix: User 내용 추가

* fix: OrderConverter 수정

* feat: 테스트 코드 1차 작성

* feat: 엔티티내 조건 체크 제거

* fix: 폴더 어뎁터 오타 수정

* fix: 테스트 코드 추가 작성

* fix: 테스트 코드 추가 작성

* refactor: Pick Service 리팩토링 진행 및 임시 커밋

* refactor: Folder에 있는 Order List에 ArrayList, null 체크 추가

* refactor: Link에 synchronized 제거

* refactor: 휴지통 외에 다른 폴더에서 삭제하지 못한다는 에러 코드 및 메시지 추가

* refactor: 태그 오더 리스트 조건으로 태그 리스트 가져오는 로직 추가

* refactor: tagOrder -> tagOrderList로 변수명 변경

* refactor: PickTagRepository, PickMapper 수정

* refactor: Pick Dto 수정

* refactor: Pick Adaptor, Service 리팩토링

* refactor: Pick Service Test 코드 작성

* refactor: error code 상태 변경

* refactor: 테스트 코드에 트랜잭션 추가

* refactor: 픽한 링크인지 확인하기 위한 로직 추가

* refactor: 픽한 링크인지 확인하기 위한 로직 추가

* feat: 픽 API 구현 및 스웨거 설정 추가

---------

Co-authored-by: kimminkyeu <[email protected]>

* [REFACTOR] 멀티모듈 적용 (#344)

* refactor: 멀티모듈로의 패키지 이동

* refactor: 멀티모듈로 분리되며 패키지 경로 수정

* refactor: 멀티모듈로 분리되며 각 모듈에 종속된 config 이동

* refactor: 멀티모듈 적용을 위한 gradle 설정

* refactor: 멀티모듈 적용을 위한 application.yaml 분리

* refactor: 멀티모듈 적용을 위한 docker 설정 변경

* refactor: 멀티모듈 적용을 위한 패키지 이동

* refactor: application-core import 방식 수정

* ci/cd: 멀티모듈 ci/cd 파이프 라인 구현 (#346)

* [CI/CD] 멀티모듈 ci/cd 적용 (#347)

* ci/cd: 멀티모듈 ci/cd 파이프 라인 구현

* ci/cd: 불필요한 스크립트 삭제

* ci/cd: api, batch 모듈 cicd 스크립트 작성

* refactor: 정보 수정

* refactor: 대상 브랜치 수정

* refactor: 액션 버전 업

* [FEAT] 시큐리티 모듈 분리 및 소셜로그인 기능 복구 (#350)

* refactor: core 모듈 패키지 구조 리팩토링

* refactor: api 모듈 패키지 구조 리팩토링

* refactor: batch 모듈 패키지 구조 리팩토링

* refactor: core 모듈 패키지 구조 리팩토링

* feat: 시큐리티 모듈 구현

* refactor: core에 있는 시큐리티 관련 설정 security로 이관

* refactor: 빌드 설정 변경 - 테스트 제외 및 시큐리티 모듈 추가

* refactor: 토큰 추가 메소드명 수정

* refactor: 회원가입시 기본폴더 생성 로직 추가

* refactor: 잘못된 인증정보를 가질 시 예외처리 및 쿠키삭제

* hotfix: 배포 테스트

* hotfix: 잘못된 배포 스크립트 제거

* hotfix: 잘못된 배포 스크립트 제거

* hotfix: 쿠키 설정 변경

* hotfix: dockerhub 업로드시 모듈명 추가

* hotfix: deploy test - core 모듈 수정

* hotfix: 배포 스크립트 수정

* hotfix: 배포 테스트 - core 모듈 수정

* hotfix: 배포 테스트 - batch 모듈 수정

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* :recycle: refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [REFACTOR] 인터페이스 제거, Adaptor 이름 변경, Pick 리팩토링 (#357)

* refactor: 인터페이스 제거 및 어댑터 변경으로 인한 불필요한 클래스 제거

* refactor: 유저 인터페이스 제거, 어댑터 변수명 변경

* refactor: 태그 리팩토링, unique 재설정, 태그 삭제 시 픽의 태그 리스트 삭제되는 부분에 pickId -> tagId로 수정

* refactor: open-in-view 설정 추가

* refactor: root에 픽 추가하는 경우, 예외 추가

* refactor: 링크 인터페이스 제거, 어댑터 이름 변경

* refactor: 폴더 인터페이스 제거, 어댑터 이름 변경, unique 수정

* refactor: Pick unique 설정

* refactor: 픽 리팩토링 진행, 픽 리스트로 조회 시 순서 보장,
Result Dto 분리

* refactor: 픽 api 폴더 리스트 안에 있는 픽 리스트 조회 구현, response dto 분리

* refactor: 픽, 태그 실패하는 테스트 수정

* refactor: 불필요한 파일 제거

* refactor: 멀티 모듈로 변환하는 과정에서 import문 변경

* refactor: 태그 수정 시 null인 경우 수정되지 않도록 변경

* refactor: 폴더 리스트 내 픽 리스트 조회하는 경우, get으로 하면 json 데이터를 받지 못해 post로 변경

* refactor: 테스트 코드 위치 변경

* refactor: 태그 테스트코드 userId 값 하드 코딩 리팩토링

* refactor: 테스트 끝나고 drop 하도록 변경

* refactor: 폴더 api 생성시 folderId 제거

* refactor: Fetch -> Search로 Dto명 변경

* refactor: Fetch -> Search로 Dto명 변경

* refactor: 픽 리스트 조회 메소드 분리

* refactor: 픽 리스트 조회 post -> get으로 변경

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [FIX] 태그 api 수정 및 Swagger 파라미터 수정 (#372)

* fix: @LoginUserId 누락 해결

* fix: swagger에서 long userId 파라미터로 안받게 수정

* fix: swagger에서 long userId 파라미터로 안받게 수정

* [FIX] 스웨거 응답값 수정 및 픽 update 버그 수정 (#376)

* refactor: tag-change

* fix: api 스웨거 타입 배열로 수정

* fix: 태그 서버 에러 디버깅용 메시지 추가

* chore: 코드 리뷰 바탕으로 반환 타입 제거 (스웨거가 자동으로 설정)

---------

Co-authored-by: sangwonsheep <[email protected]>

* [FEAT] 소셜 로그인 리다이렉션 구현 (#377)

* refactor: CookieUtil 리팩토링

* feat: authorizationRequestRepository 구현

* refactor: redirectUrl 로직 리팩토링 - 쿼리스트링으로 redirectUrl 받음

* refactor: redirectUrl 쿼리 파라미터명 변경

* [REFACTOR] Folder API 수정, Folder 리팩토링 (#379)

* refactor: tag-change

* refactor: folder 유니크 제약조건 제거

* refactor: pick void 반환 타입 응답 코드 204로 변경

* refactor: 폴더 응답 값, 프론트와 통일

* refactor: 폴더 생성 시 생성 메서드 사용 및 부모 폴더의 하위 폴더 리스트에 id 추가하도록 변경

* refactor: 루트 폴더와 루트 하위 폴더 리스트 조회 추가, 기본 폴더 리스트 조회 추가, 기본 폴더 각각 조회하는 Api 제거

* refactor: 주석 제거

* refactor: Dto에 @Valid로 검증하여 터진 에러 핸들링, 응답 코드 400으로 설정

* refactor: 코드 리뷰 반영

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* hotfix: argument resolver 수정

* [REFACTOR] local-dev-prod 설정 분리 (#381)

* refactor: local-dev-prod 설정 분리

* refactor: 설정 분리에 따른 변수명 수정

* refactor: docker-compose 기본 프로파일 local로 설정

* refactor: jpa 설정 local dev prod 분리

* [REFACTOR] Folder, Tag 리팩토링 (#384)

* refactor: api에 있던 swaager dependency 최상단으로 이동

* refactor: 태그 리스트 조회 시 순서 보장, Request Body 누락한 것 추가

* refactor: 커스텀 어노테이션에 스웨거 파라미터 hidden 설정 추가하는 것으로 변경

* refactor: Folder, Tag API에 Valid, Request Body 추가

* hotfix: cors 수정

* hotfix: cors 수정

* hotfix: dev profile base-url 수정

* refactor: local mysql 설정 변경 (#389)

* [REFACTOR] api request, response 양식 통일 (#396)

* refactor: env sample 수정

* refactor: folderId -> id로 통일

* refactor: tagId -> id로 통일

* refactor: pickId -> id로 통일

* refactor: dto로 List를 감싸서 반환하던 방법에서 List를 반환하도록 변경, dto명 변경

* hotfix: cors 설정에 https://local.minlife.me:3000 추가

* [REFACTOR] 폴더 멀티 이동 관련 버그 수정, Pick, Folder 변수명 통일 (#397)

* refactor: pick 변수명 통일

* refactor: Pick 관련 tagOrderList -> tagIdOrderedList 변경

* refactor: 픽 생성, 수정 시 태그 리스트가 존재하는지 검증하는 로직 추가

* refactor: Folder childFolderOrderList -> childFolderIdOrderedList로 변경

* refactor: 여러 폴더를 선택하여 이동되지 않는 문제 해결

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* fix: 테스트 application.yaml 수정 (#402)

* [FIX] 다른 폴더로 이동되지 않는 문제, 스웨거 응답 예시 추가 (#403)

* refactor: 스웨거 응답 예시 데이터 추가

* refactor: 폴더를 다른 폴더로 이동시키지 못하는 문제 해결

* refactor: 미분류 폴더로 이동 금지, Service로 검증 로직 이동

* refactor: 추후 변경될 사항 주석 추가

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] SecurityProperties 분리 (#415)

* feat: Security 관련 설정값을들 모아두는 SecurityProperties 구현

* refactor: SecurityProperites를 의존하도록 리팩토링

* refactor: 필드 순서 변경 및 줄바꿈 추가

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FEAT] pick bulk insert 구현 및 테스트 작성 (#409)

* feat: pick bulk insert 구현 및 테스트 작성

* refactor: pick bulk insert 클래스 분리 및 클래스명 변경

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* :rotating_light: fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [REFACTOR] 시큐리티 및 예외처리 리팩토링 (#427)

* refactor: 쿠키 삭제 메소드 리팩토링

* refactor: base-url 리팩토링 (환경변수->property로 이관)

* feat: add exceptionhandler for Json Parse error

* [FIX] FolderService 로직 변경 (#434)

* feat: 부모폴더 검증을 위한 예외 추가

* fix: MoveFolder, changeFolderOrder 분리, 요청에 parentFolderId 추가

* fix: MoveFolder, changeFolderOrder 분리 및 delete 로직 변경

* fix: 픽 리스트를 휴지통으로 이동하는 로직 수정

* fix: 폴더 이동 로직 롤백.. 기존 로직에 검증 로직만 추가함

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [FEAT] 검색 기능 구현 (#454)

* feat: querydsl 설정 추가

* feat: querydsl 설정 추가

* refactor: pick memo 제거 및 픽 리스트 조회 dto명 변경

* refactor: pick 제목만 수정 가능하도록 변경, pick 수정 시 pickTag 테이블 갱신 로직 추가

* refactor: 검색 관련 dto 추가, 기존에 pickApiResponse에 잘못 작성된 부분 수정 후 mapper도 수정

* refactor: 검색 관련 querydsl로 구현

* refactor: 검색 관련 API 구현, 픽 조회 API 분리, 페이지네이션 dto 구현

* refactor: 테스트 코드 작성 및 수정

* refactor: 주석 변경

* refactor: SliceReponse -> PickSliceResponse로 변경

* refactor: Pick entity memo 제거, sliceResponse에 hasNext 추가

* [TEST] FolderService 단위 테스트 구현 (#440)

* feat: test를 위한 mockito 의존성 추가

* feat: 단위테스트를 위한 Fixture 구현

* feat: FolderService 단위 테스트 구현

* refactor: security 모듈 api 모듈로 통합 (#451)

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* Update README.md

* [CHORE] 운영환경 배포를 위한 frontend 브랜치 merge (#471)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* :rocket: 프론트 서버 배포 설정

* :rocket: 프론트 브랜치와 연결

* :rocket: docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* :recycle: refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* :rotating_light: fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

---------

Co-authored-by: dmdgpdi <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [CICD] AWS 배포 CICD 구축 (#494)

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* cicd: aws 배포 action 추가

---------

Co-authored-by: Sangwon Yang <[email protected]>

* [FEAT] 에러 요청에 대한 로깅 구현 (#481)

* feat: error request logging 구현

* feat: 기존 예외처리 로직에 요청 로깅 추가

* chore: 주석 추가

* fix: 로깅 방식 변경 - application.log에 sql 로깅 제외

* fix: 누락된 로깅 로직 추가

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* �[FEAT] 폴더 export 기능 구현 (#504)

* feat: 폴더 export 기능 구현

* feat: url 수정

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)

* refactor: 픽 제목 최대 길이 제약조건 추가

* feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가

* refactor: bean validation 예외 상세하게 반환하도록 수정

* refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결

* fix: title이 null일 때 터지는 오류 해결

* fix: && 문법 오류 수정

* [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)

* refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결

* refactor: pick unique index title 제거

* refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리

* refactor: 불필요한 메서드 제거 및 메서드명 변경

* refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가

* refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음.

* refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경

* refactor: 메서드명 수정

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* refactor: T…
dmdgpdi added a commit that referenced this pull request Nov 22, 2024
* [FEAT] 백엔드 프로젝트 설정 (#3)

* feat: backend initial setup

* refactor: .gitignore 수정

* refactor: .env 적용 방법 이미지 수정

* Update README.md

* Update .env.sample

* feat : backend pr 빌드봇 추가 (#6)

* feat: swagger 설정 추가 (#13)

* feat : springdoc swagger 의존성 추가

* feat : swagger config 추가

* feat: ERD 기반 Entity 정의 (#15)

* feat: RSS 기능 구현 (#22)

* feat: Entity 재정의 (#26)

* feat: 기획 변경에 따른 Entity 재정의

* refactor: 서비스 이름 변경에 따라 linkpick으로 수정

* refactor: 리뷰 반영, 불필요한 클래스, 오타 수정, url BLOB 타입으로 지정

* refactor: linkpick -> techpick 변경

* feat: 엔티티 최종 수정  (#34)

* :recycle: refactor: 멀티 모듈을 고려한 디레토리 구조 정리

* :recycle: refactor: 불필요한 디렉토리 제거

* :recycle: refactor: Admin 제거 (User로 통합)

* :recycle: refactor: dummy readme 이동

* :recycle: refactor: 최종 Entity 수정

* :recycle: refactor: 최종 Entity 수정

* :recycle: refactor: url을 Blob에서 varchar로 변경

* feat: 디렉토리 구조 및 공통 예외처리 설정 (#43)

* :recycle: refactor: 디렉토리 구조 변경

* :recycle: refactor: 디렉토리 구조 추가 및 예시용 코드 작성

* :sparkles: ApiException

* :recycle: refactor: Class 이름 변경

* :recycle: 예외 코드를 같이 표시 합니다

* :recycle: 예외 코드를 같이 표시 합니다

* :recycle: 스웨거 interface 분리

* feat: 소셜로그인 구현 (#44)

* feat : security 관련 의존성 추가

* feat : Jwt token provider 구현

* feat : jwt 설정 추가 및 oauth 설정 분리

* feat : jwt 관련 의존성 추가

* feat : cookie 관련 유틸 추가

* feat : jwt 관련 유틸 추가

* feat : thymeleaf 의존성 추가

* feat : oauth2 인증을 위한 메소드 추가

* feat : providerId 필드 추가

* feat : Jwt에 role도 포함되도록 수정

* feat : oauth2 config 설정 yaml

* feat : oauth2 구현

* feat : oauth 로그인 유저 생성을 위한 user 엔티티 수정

* fix : 토큰 유효성 검증 메소드명 수정 : validateToken->isValidToken

* fix : 쿠키 검색 메소드 분리

* fix : 불필요한 주석 삭제

* fix : var -> Object 로 명시적으로 보이게 수정

* fix : 개행 추가

* fix : var -> Object 로 명시적으로 보이게 수정

* fix : User 엔티티 패키지 수정

* fix : 패키지 구조 변경 적용

* fix : User static factory method 파라미터 수정

* feat : OAuth2 exception 및 errorcode 추가

* refactor: 에러 코드 기능별 분리 (#49)

* :art: ApiErrorCode 각 기능 별로 분리

* :art: ApiOAuth2ErrorCode 추가

* :recycle: chore: 단순 주석 통일 및 개행 제거

* :recycle: chore: 접근 지정자 제한

* :recycle: feat: 핸들러 함수 위임

* :recycle: chore: env 샘플 업데이트

* :recycle: chore: exception abstract 제거, 주석 추가

* :recycle: chore: exception abstract 제거, 주석 추가

* :bug: fix: servletRequest / Response 받지 않는 것으로 변경 (수형님 리뷰)

* feat: 테스트 api 서버 배포 (#64)

* Back/feat/#54 (#55)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* deploy: api 서버 배포 테스트 (#56)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* deploy: api 서버 배포 테스트 (#57)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* deploy: api 서버 배포 테스트 (#58)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정 (#60)

* deploy test (#61)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: docker compose 내용 변경

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* feat: RSS 기능 구현 (#46)

* feature: RSS 기능 구현, csv 파일로 초기 데이터 설정, RssRawData column 제약 조건 제거

* refactor: package 구조 변경으로 인해 import 수정

* refactor: 리뷰에 따라 코드 리팩토링

* Update test-server-deploy.yml

* �[feat] Link CRUD 구현 (#63)

* feat : (임시) favicon 추가

* feat : swagger 경로 설정 추가

* feat : Link exception, error code 추가

* fix : logging 항목 변경

* fix : swagger url 추가

* feat: Link를 가지고있는 pick 확인 메소드 구현

* feat: Link 엔티티 수정 및 정적 메소드 추가

* feat: Link dto 구현

* feat: Link CRUD 구현

* feat: Link swagger 인터페이스 추가

* fix: LinkService 메소드명 명확하게 수정

* fix: LinkService 메소드명 명확하게 수정

* fix: LinkController 리팩토링

* feat: LinkMapper 추가

* refactor: Transactional 어노테이션 추가

* fix: Path 수정

* refactor: LinkProvider 추가

* refactor: PickTag 엔티티 필드 변경 user->pick (#73)

* [feat] 태그 API 구현 (#71)

* refactor: 불필요한 클래스 삭제

* refactor: 불필요한 클래스 삭제

* feat: Tag 예외처리 및 에러코드 구현

* refactor: order필드 및 생성 및 삭제를 위한 정적 메소드 추가

* feat: 태그 crud 구현

* feat: 태그 컨트롤러 및 swagger 명세 구현

* feat: (임시) 태그 삭제시 검증을 위한 PickTagRepository 구현

* fix: createTag 메소드에 ApiUserException 추가

* refactor: tag 삭제방식 변경

* refactor: validate 로직 분리 - TagValidator 추가

* refactor: TagRepository 사용하지 않는 메소드 삭제

* refactor: mapper, provider 패키지 구조 변경

* feat: order 중복 에러 추가 및 pick 존재 에러 삭제

* feat: 사용자가 등록한 태그를 map 타입으로 제공하는 메소드 추가

* feat: 중복 order 검증 로직 추가

* refactor: Tag update 로직 수정 - 중복 order 검증, 사용자 태그 검증 로직 변경

* refactor: delete 로직에서 메소드명 typo 수정 및 주석 추가

* refactor: typo 수정

* refactor: tag order 가 음수일때 검증 로직 추가

* refactor: tag order 가 0부터 시작하도록 수정

* refactor: orElse -> orElseGet 으로 리팩토링

* refactor: format refactoring

* refactor: tag update시 검증 로직 변경

* refactor: snake case -> camel case로 리팩토링

* refactor: Tag 엔티티 order 필드명 수정 -> order -> tagOrder

* refactor: userTagList 제공 메소드 정렬기준에 따라 분리 - OrderByTagOrder, OrderByTagId

* refactor: userTagList 제공 메소드 정렬기준에 따라 분리 - OrderByTagOrder, OrderByTagId

* refactor: updateTag 로직 수정 validator에서 update할 tag의 index를 가져옴

* refactor: 불필요한 메소드 삭제

* refactor: TagUpdater 클래스 추가

* refactor: TagUpdater 클래스를 사용해 updateTag 로직 구현

* refactor: format 수정

* refactor: 미사용 메소드 삭제

* refactor: validator 삭제 및 관련 로직 service로 이관

* refactor: 다음 tagOrder 가져오는 메소드 명 명확하게 수정

* [test] 테스트용 mysql 분리 (#79)

* test: test용 mysql 분리

* refactor: 테스트용 db가 분리됨에 따라 패키지 구조 변경

* refactor: 테스트용 db가 분리됨에 따라 패키지 구조 변경

* refactor: 개발 db와 테스트 db의 mysql관련 파일 패키지 분리

* Refactor: Security, Exception, Package 리팩토링 (#82)

* [refactor] 태그 수정 검증로직 추가 및 태그 순서 필드명 수정 (#89)

* refactor: 중복 이름 검증 로직 추가 및 순서,이름 로직를 하나로 묶음

* refactor: 태그 순서 필드명 수정 order -> tagOrder

* refactor: 태그 순서 필드명 수정 order -> tagOrder

* refactor: 태그 수정시 결과 리스트 tagOrder로 오름차순 정렬하여 반환

* [test] 테스트 Fixture 구현 (#86)

* refactor: 테스트를 위한 lombok 의존성 추가

* refactor: env 파일 적용

* test: 테스트를 위한 fixture 객체 구현

* refactor: lombok 의존성 변경

* Feat: 테스트 서버 API 설정 (#91)

* :recycle: refactor: Exception core 패키지를 각 기능별 패키지로 이동

* :recycle: refactor: 시큐리티 - ACCESS_TOKEN_KEY 직접 비교로 수정

* :recycle: refactor: Exception - OAuth 예외도 auth 패키지 안으로 이동

* :sparkles: feat: API 에러 레벨 구현

* :sparkles: feat: 에러 코드에 에러 레벨 적용

* :sparkles: feat: 에러 레벨 별 다른 작동 구현

* :recycle: refactor: dto를 service 패지키로 이동

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: 배포 스크립트에 환경 변수 추가

* Refactor: RSS Exception 처리 (#81)

* feat: Rss 에러 코드, Exception 구현

* refactor: dto 경로 변경에 따라 import 수정, 주석 제거

* feat: rss exception 처리 및 provider로 분리

* refactor: retry 로직 추가, 예외 처리 수정

* refactor: 충돌 해결 및 에러 레벨 추가

* refactor: RssRawData에 RssBlogId 추가, 도커 경로 변경으로 인해 csv 파일 추가

* refactor: oauth uri 변경 (#94)

* fix: /api/login uri 접근 허용 (#97)

* fix: /api/login uri 접근 허용 (#99)

* refactor: cors 설정 추가 (#102)

* feat: mysql에서 rss blog url sql 파일 import (#100)

* feat: rss blog url setting 방법 추가, blog url unique 추가, csv 파일에 중복 제거

* feat: sql 파일 도커 경로로 추가

* refactor: 미사용 설정 / 파일 제거 (#105)

* refactor: 스케줄러 설정 추가 (#110)

* [feat] Folder 기본 설계 (#111)

* feat: folder entity 구현

* feat: folder 예외, 에러코드 구현

* feat: User 추가

* feat: FolderType 필드 접근제어자 추가

* [feat] FolderStructure 설계 (#113)

* feat: FolderStructure Entity 구현

* feat: FolderStructure Repository, Provider 구현

* Feat: Parser Dto 및 구조 작성 (#118)

* :construction: Parser Dto 및 구조 작성

* :recycle: refactor: FolderAction 제거

* :recycle: refactor: 함수 이름 수정

* :recycle: refactor: 공백 제거

* :recycle: refactor: 미사용 파일 제거

* [feat] Folder Service 구현 (#121)

* fix: 생성자와 정적메소드에 User 파라미터 추가

* feat: Folder update 메소드 추가

* feat: Folder dto 구현

* feat: Folder Mapper 구현

* feat: Folder Provider Repository 구현

* feat: Folder Service 구현

* feat: 부모 폴더 업데이트 메소드 구현

* feat: 사용자의 미분류폴더, 휴지통 조회하는 메소드 구현

* feat: 특정폴더를 본인의 미분류폴더, 휴지통으로 이동시키는 메소드 구현

* refactor: 검증로직에 assertion 추가

* refactor: 검증로직 기존코드로 롤백

* feat: Pick DTO 설계 (#124)

* feat: pick error code, exception 구현

* refactor: link entity에 imageUrl 추가

* refactor: link mapper에 imageUrl 추가

* refactor: link dto에 imageUrl 추가

* refactor: 패키지 구조 변경에 따라 import 수정, linkFixture imageUrl 추가

* refactor: pick에 folder 연관 관계 추가

* feat: pick, pickTag dto 구현

* refactor: pick dto 필드명 수정

* refactor: pick entity folder 변수명 변경

* [FEAT] 프론트 로그인 로컬 테스트를 위한 redirect url 설정 (#129)

* feat: 인증 성공 후 redirect url 추가

* feat: 인증 성공 후 redirect url 추가

* [�REFACTOR] 기본 폴더 CRUD 관련 리팩토링 (#127)

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 기본폴더 조회 메소드 수정

* feat: 회원가입시 기본폴더 생성 로직 구현

* feat: 기본폴더 수정 및 삭제 방지 로직 구현

* feat: 기본폴더 변경 불가 에러코드 설명 구체적으로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: EnumSet을 이용해 BasicFolderType을 검증하도록 수정

* refactor: 프론트 로컬 테스트를 위한 설정 (#135)

* [REFACTOR] 프론트 로컬 테스트를 위한 설정 (#137)

* refactor: 프론트 로컬 테스트를 위한 설정

* refactor: 프론트 로컬 테스트를 위한 설정

* fix: @NotNull 어노테이션 제거 (#132)

* [FEAT] 기본 폴더로 root 폴더 추가 (#140)

* feat: 기본 폴더로 root 폴더 추가

* feat: 회원가입시 root 폴더 생성

* [feat] 클라이언트 폴더 구조 JSON 파싱 (#147)

* :construction: Parser Dto 및 구조 작성

* :recycle: refactor: FolderAction 제거

* :recycle: refactor: 함수 이름 수정

* :recycle: refactor: 공백 제거

* :recycle: refactor: 미사용 파일 제거

* :sparkles: 파서 에러 코드 추가

* :sparkles: 파서 인터페이스 변경

* :sparkles: 파서 테스트 코드

* :sparkles: feat: 파서 구현

* :recycle: refactor: 구현체 코드 정리

* :recycle: refactor: 구현체 코드 정리

* :recycle: refactor: enum 변환에 custom exception 추가

* :recycle: refactor: 코드 리뷰 반영

* :recycle: refactor: 미사용 파일 제

* :recycle: refactor: 리팩토링 주석 추가

* :recycle: refactor: 테스트 케이스 최종 수정

* :recycle: refactor: Jackson으로 구조 리팩토링.

* :recycle: refactor: 디렉토리 이동

* :recycle: refactor: 테스트 케이스 작성 모두 완료

* :recycle: refactor: 함수명 수정

* :recycle: refactor: 함수명 수정

* :recycle: refactor: 주석 추가

* :recycle: refactor: 리팩토링 제안 주석 제거 (이슈로 등록)

* :recycle: refactor: 코드 리뷰 반영

* :recycle: refactor: 코드 리뷰 반영

* [FEAT] FolderService 추가 비즈니스 로직 구현 및 리팩토링 (#143)

* feat: root 폴더 조회 로직 구현

* refactor: 업데이트 메소드 분리 (이름/부모폴더)

* refactor: 업데이트 메소드 분리 (이름/부모폴더)

* refactor: 업데이트 메소드 분리 (이름/부모폴더) & 삭제시 휴지통으로 이동되도록 수정

* refactor: 부모 폴더가 삭제되면 자식 폴더/픽도 삭제되도록 @OnDelete 추가

* feat: 휴지통에 있지 않은 폴더를 삭제하려 할 때, 발생하는 오류 추가

* feat: 현재 폴더가 어떤 기본폴더에 속해있는지 반환하는 메소드 추가

* feat: 휴지통에 있는 폴더 영구 삭제하는 기능 추가

* refactor: 폴더 이름 변경시에도 구조json 검증

* refactor: 재귀 로직 수정

---------

Co-authored-by: Minky <[email protected]>

* feat: 로그인 확인용 쿠키(techPickLogin) 구현 (#155)

* [HOTFIX] 로그인 쿠키 버그 수정 (#156)

* feat: 로그인 확인용 쿠키(techPickLogin) 구현

* fix: 로그인 확인용 쿠키(techPickLogin)가 access_token을 덮어씌우는 버그 수정

* [FEAT] 직렬화 비직렬화 및 데이터 세팅 과정 구현 (#151)

* :recycle: refactor: 테스트 케이스 업데이트

* :recycle: refactor: 미사용 파일 삭제

* :recycle: refactor: 테스트 케이스 업데이트

* :recycle: refactor: 디렉토리를 스트럭쳐로 이름 변경

* :sparkles: feat: 클라이언트용 구조 노드 DTO

* :sparkles: feat: 서버용 구조 노드 DTO

* :sparkles: feat: 파일 위치 이동

* :sparkles: feat: 파일 위치 이동

* :sparkles: feat: 클라이언트 전송을 위한 name 데이터 설정 - provider

* :sparkles: feat: 최종 Structure 완료

* :sparkles: feat: 최종 Structure 완료

* :sparkles: feat: 코드 리뷰 바탕으로 한번에 로드하는 메소드 추가

* [FEAT] Folder Api 구현 및 FolderService 리팩토링 (#161)

* refactor: 접근권한이 없는 폴더 에러코드 HttpStatus 403으로 변경

* feat: dto 세분화

* refactor: validator 분리

* feat: Structure api에서 사용할 FolderStructureService 분리

* feat: Folder Api 구현

* refactor: FolderStructureService 반환형식 수정

* refactor: updateFolderName 메소드 응답 누락 해결

* refactor: @PathVariable 어노테이션 추가

* refactor: 잘못된 검증 로직 수정

* [FEAT] Structure와 연관된 Pick Service 구현 (#163)

* feat: pick dto 세분화

* refactor: pick update, delete 추가

* feat: Structure 관련된 pick 구현

* feat: pick service 틀 잡기

* refactor: 변수명 수정, 잘못 사용한 메서드 변경

* [FEAT] Structure API 구현 및 Folder Create 로직 수정 (#164)

* refactor: 누락된 검증 로직 추가

* refactor: 폴더 생성 로직 변경 parentId는 별도 주입

* refactor: Folder Dto 수정

* refactor: Folder Create 로직 변경 (create->move 한세트로)

* refactor: 불필요한 필드 삭제

* refactor: Structure Json 엔티티 이름 명확하게 변경

* refactor: StructureJson Repository Structure 패키지로 이동

* refactor: Structure API 구현

* refactor: StructureJson 이름 변경

* refactor: FolderCreate 로직 분리

* refactor: PickDeleteDto 분리

* feat: Structure Dto 및 Mapper 구현

* feat: Structure Service 구현

* refactor: Mapper 에 UserRepository 의존성이 추가되면서 임시로 수정

* refactor: ApiDirectory->ApiStructure로 이름 변경

* feat: 회원가입시 자동으로 root,recycle_bin이 빈 폴더구조json 생성

* refactor: model 패키지 이동

* refactor: model 패키지 이동

* refactor: create folder시 무조건 parentId가 null이므로 그에대한 로직 추가

* refactor: model 패키지 이동

* refactor: @RequestBody 추가

* refactor: Structure를 필드로 직접 가지도록 수정

* refactor: 포맷수정

* feat: StructureJsonProvider 구현

* refactor: 불필요한 클래스 삭제

* refactor: StructureJson 업데이트 로직 Provider로 이관

* refactor: Folder 생성자 수정

* refactor: Structure ErrorCode 코드명/주석 수정

* refactor: var 제거

* refactor: 부모폴더가 없을 시 parentFolderId = -1로 응답하도록 수정

* hotfix: getParentFolderId -> findParentFolderId JPA 오류 수정

* refactor: access_token 사용하도록 설정 (#175)

* [FEAT] Structure Validator 구현 (#178)

* refactor: 불필요한 메소드 삭제 및 Folder 조회 조건 변경(ParentFolder Not Null)

* refactor: 불필요한 메소드 삭제

* refactor: 메소드명 구체화

* refactor: 유저 픽 리스트 조회 메소드 추가

* feat: StructureValidator 구현 및 적용

* refactor: 메소드 이름 명확하게 변경

* feat: 로그 추가

* refactor: 메소드명 통일 IsNotEmpty -> IsNotNull

* refactor: root, recycleBin 정보 요청으로 받지 않고 db에서 받도록 수정

* [HOTFIX] swagger 쿠키 설정 수정 (#179)

* refactor: access_token 사용하도록 설정

* fix: swagger 쿠키 설정 수정

* hotfix: swagger 쿠키 설정 수정

* hotfix: samesite 설정 제거

* [REFACTOR] UserService 구현 포함, 전체 코드 리팩토링 (#180)

* :recycle: docker compose 테스트 DB 설정 제거

* :sparkles: feat: UserService 기능 구현

* :recycle: refactor: Tag Feature 리팩토링 (의존성 제거)

* :recycle: refactor: Pick 도메인 리팩토링

* :recycle: refactor: Structure 도메인 리팩토링

* :recycle: refactor: Link 도메인 리팩토링

* :recycle: refactor: Folder 도메인 리팩토링

* :recycle: refactor: FolderStructure 도메인 리펙토링

* :recycle: refactor: FolderStructure 도메인 리펙토링 (기존 코드 삭제)

* :recycle: refactor: OAuth 도메인 리펙토링

* :recycle: refactor: User 이름 랜덤 생성기 추가

* :recycle: refactor: Folder 예외 추가

* :recycle: refactor: Parser 테스트 주석 처리 (provider 의존성 필요)

* :recycle: refactor: 주석 오류 수정

* :recycle: refactor: 테스트 코드 준비

* :recycle: refactor: 코드 리뷰 피드백 반영

* :recycle: refactor: 코드 리뷰 피드백 반영

* :sparkles: feat: 태그 color 추가 (#185)

* :bug: fix: 익스텐션 CORS 추가

* [FEAT] Pick �API + Service 구현 (#186)

* feat: Link Service 기능 추가

* feat: UserProvider 구현

* refactor: TagService 수정

* feat: Pick Service 구현

* feat: Pick Tag 구현

* feat: Pick Api 구현

* refactor: FolderMapper 모두 general 타입으로 들어가는 문제 해결

* feat: folder type 메서드 추가

* refactor: Authentication 제거

* refactor: dto 삭제

* refactor: UserId -> User로 변경 및 메서드명 통일

* refactor: Request Param 변경

* refactor: 리뷰 반영

* [HOTFIX] Valid 관련 에러 설정 (#189)

* feat: Link Service 기능 추가

* feat: UserProvider 구현

* refactor: TagService 수정

* feat: Pick Service 구현

* feat: Pick Tag 구현

* feat: Pick Api 구현

* refactor: FolderMapper 모두 general 타입으로 들어가는 문제 해결

* feat: folder type 메서드 추가

* refactor: Authentication 제거

* refactor: dto 삭제

* refactor: UserId -> User로 변경 및 메서드명 통일

* refactor: Request Param 변경

* refactor: 리뷰 반영

* refactor: valid 수정

* :bug: fix: link 생성 순서 오류 수정 및 swagger에 baseURL 수정

* [CI] API V2 브랜치 - 서버 설정 (#195)

* ci:  API V2 브랜치 - 서버 설정

* [REFACTOR] V2를 위한 패키지 리셋 (#237)

* refactor: v2에 불필요한 패키지 삭제

* refactor: auth폴더 중 새로구현하게되는 부분 삭제

* refactor: 테스트 폴더 삭제

* [FEAT] V2 엔티티 설계 (#240)

* refactor: TimeTracking -> BaseEntity로 클래스명 변경

* refactor: 불필요한 클래스 삭제

* refactor: 정적 메소드 삭제

* feat: id List <-> String Converter 구현

* feat: 자식 픽/폴더/태그의 순서를 저장하는 필드 추가

* feat: FK 제약조건 제거

* refactor: OnDelete옵션을 위해 FK 제약조건 원복

* refactor: Converter 어노테이션 추가

* refactor: Link 비활성화 구현 및 Pick 관련 필드 추가

* refactor: 필드명 수정 deletedAt -> invalidatedAt

* refactor: FK 제약조건 원복

* [FEAT] V2 패키지 구조 재설계 (#258)

* feat: mapstruct 의존성 추가

* feat: 초기 프로젝트 구조 설정

* feat: 서비스 / 컨트롤러 어노테이션 추가

* feat: SQL 로그 파일 설정 추가

* feat: 도커 컴포즈 주석 제거

* feat: 잘못 들어간 코드 삭제

* feat: 코드 리뷰 반영

* [CHORE] API 명세 (#264)

* feat: api 명세

* feat: api 명세

* feat: api 명세 반영

* feat: api 명세 반영

* [FEAT] pick v2 도메인 개발 (#278)

* feat: Link, Pick, Folder 엔티티

* feat: PickTag 엔티티 작업

* chore: 미사용 파일 제거

* chore: 스펙의 변수명 변경

* chore: sql 파일 위치 이동

* chore: 필요 예외 코드 추가

* feat: 유저 infra

* feat: JPA Repository 구현

* :sparkles: feat: Pick 도메인 구현

* :sparkles: feat: Pick 인프라 구현

* :sparkles: feat: Link 인프라 구현

* :sparkles: feat: Folder 인프라 구현

* :sparkles: feat: MapStruct 매퍼 구현

* chore: 리팩토링 및 null 처리 추가

* chore: 리팩토링 및 MapStruct 빌드 오류 수정

* chore: 테스트코드 패키지 사라진거 복원

* chore: 테스트코드 준비

* refactor: 현재 사용자 조회 메소드 구현

* chore:  코드 리뷰 결과 반영

* chore:  코드 리뷰 결과 반영

---------

Co-authored-by: PSH <[email protected]>

* [REFACTOR] pick service 코드에서 chaining 제거 (#280)

* chore:  코드 리뷰 결과 반영

* chore:  코드 리뷰 결과 반영

* [FEAT] Tag v2 Service 구현 (#281)

* feat: tag infra 구현

* feat: tag entity, repository 구현

* feat: tag dto, mapper 구현

* feat: tag service 구현

* refactor: user tagOrderList에 ArrayList 주입

* feat: tag api request/response 구현

* feat: tag api mapper 구현

* refactor: pickTag 삭제 메서드 구현

* refactor: tag dto 공통화 및 태그 이동 dto 추가

* refactor: 검증 로직 writer로 이동 및 reader 수정

* refactor: 태그 service 리뷰 반영 및 유저의 태그 이동 기능 구현, 태그 삭제 시 픽 태그도 삭제되도록 구현

* [FIX] Pick API 예외 미흡 수정  (#283)

* fix: Tag 미사용 Exception 제거

* fix: 미사용 Fixture 제거

* fix: Pick Write 예외 처리 추가 (권한)

* fix: Pick Write 예외 처리 추가 (권한) (#290)

* [REFACTOR] 테스트 코드 구현을 위한 Pick 도메인 수정 (#297)

* refactor: Writer, Reader를 PickAdaptor로 인터페이스 통합

* refactor: Writer, Reader 삭제

* refactor: userId 파라미터로 분리

* refactor: 서비스 구현체 수정

* chore: 레포지토리 수정 및 주석 변경

* chore: 누락된 변경 사항 적용

* [FEAT] Folder Domain/Infrastructure 구현 (#284)

* feat: 폴더 update remove 메소드 구현

* feat: 폴더 reader/writer 구현

* feat: 폴더 dto 구현

* feat: 폴더 service 구현

* feat: 폴더 repository 자식폴더 조회 메소드 구현

* refactor: FolderReader FolderWriter를 FolderAdapter로 병합

* feat: Folder equals, hashcode 구현

* fix: TODO로 작성했던 태그 리스트 비교 로직 업데이트 (#300)

* [FEAT] Tag Service 테스트 코드 작성 및 리팩토링 (#302)

* refactor: 테스트 설정 파일 수정

* refactor: reader, writer -> adaptor로 통합

* refactor: user entity builder 추가 및 reader에 private final 추가

* refactor: parameter에 userId 추가

* feat: tag service test code 작성

* refactor: 비관락 설정, 에러 코드 메세지 검증 추가

* refactor: 동시성 테스트 트랜잭션 추가

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* [REFACTOR] Tag Service Infrastructure 리팩토링 (#309)

* refactor: TagAdaptor로 db로직 이관

* refactor: TagService에는 비즈니스 검증 로직 구현

* refactor: 테스트에 리팩토링 사항 반영

* refactor: TagRepository 비관락 타임아웃 설정

* refactor: findBy -> findAllBy로 명확하게 메소드명 수정

* fix: 오타 수정

* refactor: TagCommand dto안에 userId 포함

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [REFACTOR] Folder 도메인 리팩토링 (#316)

* refactor: FolderCommand가 userId를 가지도록 변경

* refactor: FolderAdapter 리팩토링

* refactor: FolderService 리팩토링

* refactor: FolderFacade 제거

* fix: typo 수정(FolderAdapter->FolderAdaptor)

* refactor: FolderAdaptor 메소드명 변경에 따른 관련 메소드 리팩토링

* refactor: Command에 userId 포함하도록 변경됨에 따라 mapper 수정

* refactor: TagFacade 삭제

* feat: 기본폴더 조회 메소드 구현

* feat: Order를 보장하는 조회 메소드 분리

* refactor: 정렬 로직 adaptor로 이관

* refactor: 다른 부모폴더에있는 폴더들을 동시에 이동시키려고 할때 발생시킬 예외 추가

* refactor: 필드명 명확하게 변경 parentFolderId -> destinationFolderId

* refactor: 순서보장이 필요한 경우와 아닌경우에 따라 adaptor메소드 분리

* [REFACTOR] tag, folder 검증로직 메소드 분리 (#323)

* refactor: 태그 검증로직 메소드 분리

* refactor: 폴더 검증로직 메소드 분리

* [FEAT] Tag API 구현 및 Swagger 명세 (#328)

* feat: swagger 가 패키지를 포함하여 관리하도록 설정 추가

* style : 파라미터 순서 변경

* refactor: colorNumber 타입 수정

* feat: Tag Api 구현 및 Swagger 명세, 예시 추가

* refactor: 오타 수정

* [FEAT] LoginUserId 커스텀 어노테이션 구현 (#326)

* feat: 커스텀 어노테이션 구현

* feat: ArgumentResolver 구현

* feat: ArgumentResolver 등록

* [REFACTOR] Rss 서비스 리팩토링 (#321)

* refactor: 불필요한 클래스 삭제

* refactor: batch 패키지로 이동

* refactor: RssBlog 엔티티에 blogName 필드 추가 및 관련 dto 구현

* refactor: RssFeed 엔티티 필드명 수정 및 파싱용 dto 구현

* feat: Rss infra 구현

* feat: Rss domain 구현

* feat: (임시) rss 수집 블로그 구현 - 이후 관리자기능으로 이관할 예정

* chore : 코드 포맷 수정

* refactor: 매일 3시에 수집하도록 스케줄 설정

* chore: 주석 typo 수정

* feat: 메소드 실행시간측정 커스텀 어노테이션 구현

* feat: rssCrawling 실행시간 측정

* [FEAT] Folder Api 구현 및 Swagger 명세 (#331)

* refactor: 불필요한 인터페이스 삭제

* refactor: 기본폴더 변경불가 검증로직 추가

* feat: FolderApi dto, mapper 구현

* feat: FolderApi Controller 구현

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] Pick 리팩토링 진행 및 API 구현 (#342)

* fix: 미사용 파일 제거

* chore: 트래잭션 로깅 옵션 추가

* fix: 폴더, 태그에 unique 제약 조건 추가

* fix: 미사용 파일 제거

* fix: 미사용 파일 제거

* feat: User Adaptor로 로직 통일

* feat: Link Adaptor로 로직 통일

* feat:  request dto에서 userId 제거

* feat:  userAdaptor 로 변경

* fix:  Pick 도메인 오류 수정

* fix:  Tag 도메인 수정

* fix: User 내용 추가

* fix: OrderConverter 수정

* feat: 테스트 코드 1차 작성

* feat: 엔티티내 조건 체크 제거

* fix: 폴더 어뎁터 오타 수정

* fix: 테스트 코드 추가 작성

* fix: 테스트 코드 추가 작성

* refactor: Pick Service 리팩토링 진행 및 임시 커밋

* refactor: Folder에 있는 Order List에 ArrayList, null 체크 추가

* refactor: Link에 synchronized 제거

* refactor: 휴지통 외에 다른 폴더에서 삭제하지 못한다는 에러 코드 및 메시지 추가

* refactor: 태그 오더 리스트 조건으로 태그 리스트 가져오는 로직 추가

* refactor: tagOrder -> tagOrderList로 변수명 변경

* refactor: PickTagRepository, PickMapper 수정

* refactor: Pick Dto 수정

* refactor: Pick Adaptor, Service 리팩토링

* refactor: Pick Service Test 코드 작성

* refactor: error code 상태 변경

* refactor: 테스트 코드에 트랜잭션 추가

* refactor: 픽한 링크인지 확인하기 위한 로직 추가

* refactor: 픽한 링크인지 확인하기 위한 로직 추가

* feat: 픽 API 구현 및 스웨거 설정 추가

---------

Co-authored-by: kimminkyeu <[email protected]>

* [REFACTOR] 멀티모듈 적용 (#344)

* refactor: 멀티모듈로의 패키지 이동

* refactor: 멀티모듈로 분리되며 패키지 경로 수정

* refactor: 멀티모듈로 분리되며 각 모듈에 종속된 config 이동

* refactor: 멀티모듈 적용을 위한 gradle 설정

* refactor: 멀티모듈 적용을 위한 application.yaml 분리

* refactor: 멀티모듈 적용을 위한 docker 설정 변경

* refactor: 멀티모듈 적용을 위한 패키지 이동

* refactor: application-core import 방식 수정

* ci/cd: 멀티모듈 ci/cd 파이프 라인 구현 (#346)

* [CI/CD] 멀티모듈 ci/cd 적용 (#347)

* ci/cd: 멀티모듈 ci/cd 파이프 라인 구현

* ci/cd: 불필요한 스크립트 삭제

* ci/cd: api, batch 모듈 cicd 스크립트 작성

* refactor: 정보 수정

* refactor: 대상 브랜치 수정

* refactor: 액션 버전 업

* [FEAT] 시큐리티 모듈 분리 및 소셜로그인 기능 복구 (#350)

* refactor: core 모듈 패키지 구조 리팩토링

* refactor: api 모듈 패키지 구조 리팩토링

* refactor: batch 모듈 패키지 구조 리팩토링

* refactor: core 모듈 패키지 구조 리팩토링

* feat: 시큐리티 모듈 구현

* refactor: core에 있는 시큐리티 관련 설정 security로 이관

* refactor: 빌드 설정 변경 - 테스트 제외 및 시큐리티 모듈 추가

* refactor: 토큰 추가 메소드명 수정

* refactor: 회원가입시 기본폴더 생성 로직 추가

* refactor: 잘못된 인증정보를 가질 시 예외처리 및 쿠키삭제

* hotfix: 배포 테스트

* hotfix: 잘못된 배포 스크립트 제거

* hotfix: 잘못된 배포 스크립트 제거

* hotfix: 쿠키 설정 변경

* hotfix: dockerhub 업로드시 모듈명 추가

* hotfix: deploy test - core 모듈 수정

* hotfix: 배포 스크립트 수정

* hotfix: 배포 테스트 - core 모듈 수정

* hotfix: 배포 테스트 - batch 모듈 수정

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* :recycle: refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [REFACTOR] 인터페이스 제거, Adaptor 이름 변경, Pick 리팩토링 (#357)

* refactor: 인터페이스 제거 및 어댑터 변경으로 인한 불필요한 클래스 제거

* refactor: 유저 인터페이스 제거, 어댑터 변수명 변경

* refactor: 태그 리팩토링, unique 재설정, 태그 삭제 시 픽의 태그 리스트 삭제되는 부분에 pickId -> tagId로 수정

* refactor: open-in-view 설정 추가

* refactor: root에 픽 추가하는 경우, 예외 추가

* refactor: 링크 인터페이스 제거, 어댑터 이름 변경

* refactor: 폴더 인터페이스 제거, 어댑터 이름 변경, unique 수정

* refactor: Pick unique 설정

* refactor: 픽 리팩토링 진행, 픽 리스트로 조회 시 순서 보장,
Result Dto 분리

* refactor: 픽 api 폴더 리스트 안에 있는 픽 리스트 조회 구현, response dto 분리

* refactor: 픽, 태그 실패하는 테스트 수정

* refactor: 불필요한 파일 제거

* refactor: 멀티 모듈로 변환하는 과정에서 import문 변경

* refactor: 태그 수정 시 null인 경우 수정되지 않도록 변경

* refactor: 폴더 리스트 내 픽 리스트 조회하는 경우, get으로 하면 json 데이터를 받지 못해 post로 변경

* refactor: 테스트 코드 위치 변경

* refactor: 태그 테스트코드 userId 값 하드 코딩 리팩토링

* refactor: 테스트 끝나고 drop 하도록 변경

* refactor: 폴더 api 생성시 folderId 제거

* refactor: Fetch -> Search로 Dto명 변경

* refactor: Fetch -> Search로 Dto명 변경

* refactor: 픽 리스트 조회 메소드 분리

* refactor: 픽 리스트 조회 post -> get으로 변경

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [FIX] 태그 api 수정 및 Swagger 파라미터 수정 (#372)

* fix: @LoginUserId 누락 해결

* fix: swagger에서 long userId 파라미터로 안받게 수정

* fix: swagger에서 long userId 파라미터로 안받게 수정

* [FIX] 스웨거 응답값 수정 및 픽 update 버그 수정 (#376)

* refactor: tag-change

* fix: api 스웨거 타입 배열로 수정

* fix: 태그 서버 에러 디버깅용 메시지 추가

* chore: 코드 리뷰 바탕으로 반환 타입 제거 (스웨거가 자동으로 설정)

---------

Co-authored-by: sangwonsheep <[email protected]>

* [FEAT] 소셜 로그인 리다이렉션 구현 (#377)

* refactor: CookieUtil 리팩토링

* feat: authorizationRequestRepository 구현

* refactor: redirectUrl 로직 리팩토링 - 쿼리스트링으로 redirectUrl 받음

* refactor: redirectUrl 쿼리 파라미터명 변경

* [REFACTOR] Folder API 수정, Folder 리팩토링 (#379)

* refactor: tag-change

* refactor: folder 유니크 제약조건 제거

* refactor: pick void 반환 타입 응답 코드 204로 변경

* refactor: 폴더 응답 값, 프론트와 통일

* refactor: 폴더 생성 시 생성 메서드 사용 및 부모 폴더의 하위 폴더 리스트에 id 추가하도록 변경

* refactor: 루트 폴더와 루트 하위 폴더 리스트 조회 추가, 기본 폴더 리스트 조회 추가, 기본 폴더 각각 조회하는 Api 제거

* refactor: 주석 제거

* refactor: Dto에 @Valid로 검증하여 터진 에러 핸들링, 응답 코드 400으로 설정

* refactor: 코드 리뷰 반영

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* hotfix: argument resolver 수정

* [REFACTOR] local-dev-prod 설정 분리 (#381)

* refactor: local-dev-prod 설정 분리

* refactor: 설정 분리에 따른 변수명 수정

* refactor: docker-compose 기본 프로파일 local로 설정

* refactor: jpa 설정 local dev prod 분리

* [REFACTOR] Folder, Tag 리팩토링 (#384)

* refactor: api에 있던 swaager dependency 최상단으로 이동

* refactor: 태그 리스트 조회 시 순서 보장, Request Body 누락한 것 추가

* refactor: 커스텀 어노테이션에 스웨거 파라미터 hidden 설정 추가하는 것으로 변경

* refactor: Folder, Tag API에 Valid, Request Body 추가

* hotfix: cors 수정

* hotfix: cors 수정

* hotfix: dev profile base-url 수정

* refactor: local mysql 설정 변경 (#389)

* [REFACTOR] api request, response 양식 통일 (#396)

* refactor: env sample 수정

* refactor: folderId -> id로 통일

* refactor: tagId -> id로 통일

* refactor: pickId -> id로 통일

* refactor: dto로 List를 감싸서 반환하던 방법에서 List를 반환하도록 변경, dto명 변경

* hotfix: cors 설정에 https://local.minlife.me:3000 추가

* [REFACTOR] 폴더 멀티 이동 관련 버그 수정, Pick, Folder 변수명 통일 (#397)

* refactor: pick 변수명 통일

* refactor: Pick 관련 tagOrderList -> tagIdOrderedList 변경

* refactor: 픽 생성, 수정 시 태그 리스트가 존재하는지 검증하는 로직 추가

* refactor: Folder childFolderOrderList -> childFolderIdOrderedList로 변경

* refactor: 여러 폴더를 선택하여 이동되지 않는 문제 해결

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* fix: 테스트 application.yaml 수정 (#402)

* [FIX] 다른 폴더로 이동되지 않는 문제, 스웨거 응답 예시 추가 (#403)

* refactor: 스웨거 응답 예시 데이터 추가

* refactor: 폴더를 다른 폴더로 이동시키지 못하는 문제 해결

* refactor: 미분류 폴더로 이동 금지, Service로 검증 로직 이동

* refactor: 추후 변경될 사항 주석 추가

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] SecurityProperties 분리 (#415)

* feat: Security 관련 설정값을들 모아두는 SecurityProperties 구현

* refactor: SecurityProperites를 의존하도록 리팩토링

* refactor: 필드 순서 변경 및 줄바꿈 추가

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FEAT] pick bulk insert 구현 및 테스트 작성 (#409)

* feat: pick bulk insert 구현 및 테스트 작성

* refactor: pick bulk insert 클래스 분리 및 클래스명 변경

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* :rotating_light: fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [REFACTOR] 시큐리티 및 예외처리 리팩토링 (#427)

* refactor: 쿠키 삭제 메소드 리팩토링

* refactor: base-url 리팩토링 (환경변수->property로 이관)

* feat: add exceptionhandler for Json Parse error

* [FIX] FolderService 로직 변경 (#434)

* feat: 부모폴더 검증을 위한 예외 추가

* fix: MoveFolder, changeFolderOrder 분리, 요청에 parentFolderId 추가

* fix: MoveFolder, changeFolderOrder 분리 및 delete 로직 변경

* fix: 픽 리스트를 휴지통으로 이동하는 로직 수정

* fix: 폴더 이동 로직 롤백.. 기존 로직에 검증 로직만 추가함

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [FEAT] 검색 기능 구현 (#454)

* feat: querydsl 설정 추가

* feat: querydsl 설정 추가

* refactor: pick memo 제거 및 픽 리스트 조회 dto명 변경

* refactor: pick 제목만 수정 가능하도록 변경, pick 수정 시 pickTag 테이블 갱신 로직 추가

* refactor: 검색 관련 dto 추가, 기존에 pickApiResponse에 잘못 작성된 부분 수정 후 mapper도 수정

* refactor: 검색 관련 querydsl로 구현

* refactor: 검색 관련 API 구현, 픽 조회 API 분리, 페이지네이션 dto 구현

* refactor: 테스트 코드 작성 및 수정

* refactor: 주석 변경

* refactor: SliceReponse -> PickSliceResponse로 변경

* refactor: Pick entity memo 제거, sliceResponse에 hasNext 추가

* [TEST] FolderService 단위 테스트 구현 (#440)

* feat: test를 위한 mockito 의존성 추가

* feat: 단위테스트를 위한 Fixture 구현

* feat: FolderService 단위 테스트 구현

* refactor: security 모듈 api 모듈로 통합 (#451)

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* Update README.md

* [CHORE] 운영환경 배포를 위한 frontend 브랜치 merge (#471)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* :rocket: 프론트 서버 배포 설정

* :rocket: 프론트 브랜치와 연결

* :rocket: docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* :recycle: refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* :rotating_light: fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

---------

Co-authored-by: dmdgpdi <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [CICD] AWS 배포 CICD 구축 (#494)

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* cicd: aws 배포 action 추가

---------

Co-authored-by: Sangwon Yang <[email protected]>

* [FEAT] 에러 요청에 대한 로깅 구현 (#481)

* feat: error request logging 구현

* feat: 기존 예외처리 로직에 요청 로깅 추가

* chore: 주석 추가

* fix: 로깅 방식 변경 - application.log에 sql 로깅 제외

* fix: 누락된 로깅 로직 추가

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* �[FEAT] 폴더 export 기능 구현 (#504)

* feat: 폴더 export 기능 구현

* feat: url 수정

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)

* refactor: 픽 제목 최대 길이 제약조건 추가

* feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가

* refactor: bean validation 예외 상세하게 반환하도록 수정

* refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결

* fix: title이 null일 때 터지는 오류 해결

* fix: && 문법 오류 수정

* [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)

* refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결

* refactor: pick unique index title 제거

* refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리

* refactor: 불필요한 메서드 제거 및 메서드명 변경

* refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가

* refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음.

* refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경

* refactor: 메서드명 수정

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* refactor: Tag…
dmdgpdi added a commit that referenced this pull request Nov 22, 2024
* [FEAT] 백엔드 프로젝트 설정 (#3)

* feat: backend initial setup

* refactor: .gitignore 수정

* refactor: .env 적용 방법 이미지 수정

* Update README.md

* Update .env.sample

* feat : backend pr 빌드봇 추가 (#6)

* feat: swagger 설정 추가 (#13)

* feat : springdoc swagger 의존성 추가

* feat : swagger config 추가

* feat: ERD 기반 Entity 정의 (#15)

* feat: RSS 기능 구현 (#22)

* feat: Entity 재정의 (#26)

* feat: 기획 변경에 따른 Entity 재정의

* refactor: 서비스 이름 변경에 따라 linkpick으로 수정

* refactor: 리뷰 반영, 불필요한 클래스, 오타 수정, url BLOB 타입으로 지정

* refactor: linkpick -> techpick 변경

* feat: 엔티티 최종 수정  (#34)

* :recycle: refactor: 멀티 모듈을 고려한 디레토리 구조 정리

* :recycle: refactor: 불필요한 디렉토리 제거

* :recycle: refactor: Admin 제거 (User로 통합)

* :recycle: refactor: dummy readme 이동

* :recycle: refactor: 최종 Entity 수정

* :recycle: refactor: 최종 Entity 수정

* :recycle: refactor: url을 Blob에서 varchar로 변경

* feat: 디렉토리 구조 및 공통 예외처리 설정 (#43)

* :recycle: refactor: 디렉토리 구조 변경

* :recycle: refactor: 디렉토리 구조 추가 및 예시용 코드 작성

* :sparkles: ApiException

* :recycle: refactor: Class 이름 변경

* :recycle: 예외 코드를 같이 표시 합니다

* :recycle: 예외 코드를 같이 표시 합니다

* :recycle: 스웨거 interface 분리

* feat: 소셜로그인 구현 (#44)

* feat : security 관련 의존성 추가

* feat : Jwt token provider 구현

* feat : jwt 설정 추가 및 oauth 설정 분리

* feat : jwt 관련 의존성 추가

* feat : cookie 관련 유틸 추가

* feat : jwt 관련 유틸 추가

* feat : thymeleaf 의존성 추가

* feat : oauth2 인증을 위한 메소드 추가

* feat : providerId 필드 추가

* feat : Jwt에 role도 포함되도록 수정

* feat : oauth2 config 설정 yaml

* feat : oauth2 구현

* feat : oauth 로그인 유저 생성을 위한 user 엔티티 수정

* fix : 토큰 유효성 검증 메소드명 수정 : validateToken->isValidToken

* fix : 쿠키 검색 메소드 분리

* fix : 불필요한 주석 삭제

* fix : var -> Object 로 명시적으로 보이게 수정

* fix : 개행 추가

* fix : var -> Object 로 명시적으로 보이게 수정

* fix : User 엔티티 패키지 수정

* fix : 패키지 구조 변경 적용

* fix : User static factory method 파라미터 수정

* feat : OAuth2 exception 및 errorcode 추가

* refactor: 에러 코드 기능별 분리 (#49)

* :art: ApiErrorCode 각 기능 별로 분리

* :art: ApiOAuth2ErrorCode 추가

* :recycle: chore: 단순 주석 통일 및 개행 제거

* :recycle: chore: 접근 지정자 제한

* :recycle: feat: 핸들러 함수 위임

* :recycle: chore: env 샘플 업데이트

* :recycle: chore: exception abstract 제거, 주석 추가

* :recycle: chore: exception abstract 제거, 주석 추가

* :bug: fix: servletRequest / Response 받지 않는 것으로 변경 (수형님 리뷰)

* feat: 테스트 api 서버 배포 (#64)

* Back/feat/#54 (#55)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* deploy: api 서버 배포 테스트 (#56)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* deploy: api 서버 배포 테스트 (#57)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* deploy: api 서버 배포 테스트 (#58)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 compose 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정 (#60)

* deploy test (#61)

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* Update test-server-deploy.yml

* :rocket: feat: 배포용 action 설정

* :rocket: feat: 배포용 action 설정

* :rocket: feat: docker compose 내용 변경

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* :rocket: feat: github action 환경 변수 분리

* feat: RSS 기능 구현 (#46)

* feature: RSS 기능 구현, csv 파일로 초기 데이터 설정, RssRawData column 제약 조건 제거

* refactor: package 구조 변경으로 인해 import 수정

* refactor: 리뷰에 따라 코드 리팩토링

* Update test-server-deploy.yml

* �[feat] Link CRUD 구현 (#63)

* feat : (임시) favicon 추가

* feat : swagger 경로 설정 추가

* feat : Link exception, error code 추가

* fix : logging 항목 변경

* fix : swagger url 추가

* feat: Link를 가지고있는 pick 확인 메소드 구현

* feat: Link 엔티티 수정 및 정적 메소드 추가

* feat: Link dto 구현

* feat: Link CRUD 구현

* feat: Link swagger 인터페이스 추가

* fix: LinkService 메소드명 명확하게 수정

* fix: LinkService 메소드명 명확하게 수정

* fix: LinkController 리팩토링

* feat: LinkMapper 추가

* refactor: Transactional 어노테이션 추가

* fix: Path 수정

* refactor: LinkProvider 추가

* refactor: PickTag 엔티티 필드 변경 user->pick (#73)

* [feat] 태그 API 구현 (#71)

* refactor: 불필요한 클래스 삭제

* refactor: 불필요한 클래스 삭제

* feat: Tag 예외처리 및 에러코드 구현

* refactor: order필드 및 생성 및 삭제를 위한 정적 메소드 추가

* feat: 태그 crud 구현

* feat: 태그 컨트롤러 및 swagger 명세 구현

* feat: (임시) 태그 삭제시 검증을 위한 PickTagRepository 구현

* fix: createTag 메소드에 ApiUserException 추가

* refactor: tag 삭제방식 변경

* refactor: validate 로직 분리 - TagValidator 추가

* refactor: TagRepository 사용하지 않는 메소드 삭제

* refactor: mapper, provider 패키지 구조 변경

* feat: order 중복 에러 추가 및 pick 존재 에러 삭제

* feat: 사용자가 등록한 태그를 map 타입으로 제공하는 메소드 추가

* feat: 중복 order 검증 로직 추가

* refactor: Tag update 로직 수정 - 중복 order 검증, 사용자 태그 검증 로직 변경

* refactor: delete 로직에서 메소드명 typo 수정 및 주석 추가

* refactor: typo 수정

* refactor: tag order 가 음수일때 검증 로직 추가

* refactor: tag order 가 0부터 시작하도록 수정

* refactor: orElse -> orElseGet 으로 리팩토링

* refactor: format refactoring

* refactor: tag update시 검증 로직 변경

* refactor: snake case -> camel case로 리팩토링

* refactor: Tag 엔티티 order 필드명 수정 -> order -> tagOrder

* refactor: userTagList 제공 메소드 정렬기준에 따라 분리 - OrderByTagOrder, OrderByTagId

* refactor: userTagList 제공 메소드 정렬기준에 따라 분리 - OrderByTagOrder, OrderByTagId

* refactor: updateTag 로직 수정 validator에서 update할 tag의 index를 가져옴

* refactor: 불필요한 메소드 삭제

* refactor: TagUpdater 클래스 추가

* refactor: TagUpdater 클래스를 사용해 updateTag 로직 구현

* refactor: format 수정

* refactor: 미사용 메소드 삭제

* refactor: validator 삭제 및 관련 로직 service로 이관

* refactor: 다음 tagOrder 가져오는 메소드 명 명확하게 수정

* [test] 테스트용 mysql 분리 (#79)

* test: test용 mysql 분리

* refactor: 테스트용 db가 분리됨에 따라 패키지 구조 변경

* refactor: 테스트용 db가 분리됨에 따라 패키지 구조 변경

* refactor: 개발 db와 테스트 db의 mysql관련 파일 패키지 분리

* Refactor: Security, Exception, Package 리팩토링 (#82)

* [refactor] 태그 수정 검증로직 추가 및 태그 순서 필드명 수정 (#89)

* refactor: 중복 이름 검증 로직 추가 및 순서,이름 로직를 하나로 묶음

* refactor: 태그 순서 필드명 수정 order -> tagOrder

* refactor: 태그 순서 필드명 수정 order -> tagOrder

* refactor: 태그 수정시 결과 리스트 tagOrder로 오름차순 정렬하여 반환

* [test] 테스트 Fixture 구현 (#86)

* refactor: 테스트를 위한 lombok 의존성 추가

* refactor: env 파일 적용

* test: 테스트를 위한 fixture 객체 구현

* refactor: lombok 의존성 변경

* Feat: 테스트 서버 API 설정 (#91)

* :recycle: refactor: Exception core 패키지를 각 기능별 패키지로 이동

* :recycle: refactor: 시큐리티 - ACCESS_TOKEN_KEY 직접 비교로 수정

* :recycle: refactor: Exception - OAuth 예외도 auth 패키지 안으로 이동

* :sparkles: feat: API 에러 레벨 구현

* :sparkles: feat: 에러 코드에 에러 레벨 적용

* :sparkles: feat: 에러 레벨 별 다른 작동 구현

* :recycle: refactor: dto를 service 패지키로 이동

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: api 테스트 서버 설정

* :recycle: refactor: 배포 스크립트에 환경 변수 추가

* Refactor: RSS Exception 처리 (#81)

* feat: Rss 에러 코드, Exception 구현

* refactor: dto 경로 변경에 따라 import 수정, 주석 제거

* feat: rss exception 처리 및 provider로 분리

* refactor: retry 로직 추가, 예외 처리 수정

* refactor: 충돌 해결 및 에러 레벨 추가

* refactor: RssRawData에 RssBlogId 추가, 도커 경로 변경으로 인해 csv 파일 추가

* refactor: oauth uri 변경 (#94)

* fix: /api/login uri 접근 허용 (#97)

* fix: /api/login uri 접근 허용 (#99)

* refactor: cors 설정 추가 (#102)

* feat: mysql에서 rss blog url sql 파일 import (#100)

* feat: rss blog url setting 방법 추가, blog url unique 추가, csv 파일에 중복 제거

* feat: sql 파일 도커 경로로 추가

* refactor: 미사용 설정 / 파일 제거 (#105)

* refactor: 스케줄러 설정 추가 (#110)

* [feat] Folder 기본 설계 (#111)

* feat: folder entity 구현

* feat: folder 예외, 에러코드 구현

* feat: User 추가

* feat: FolderType 필드 접근제어자 추가

* [feat] FolderStructure 설계 (#113)

* feat: FolderStructure Entity 구현

* feat: FolderStructure Repository, Provider 구현

* Feat: Parser Dto 및 구조 작성 (#118)

* :construction: Parser Dto 및 구조 작성

* :recycle: refactor: FolderAction 제거

* :recycle: refactor: 함수 이름 수정

* :recycle: refactor: 공백 제거

* :recycle: refactor: 미사용 파일 제거

* [feat] Folder Service 구현 (#121)

* fix: 생성자와 정적메소드에 User 파라미터 추가

* feat: Folder update 메소드 추가

* feat: Folder dto 구현

* feat: Folder Mapper 구현

* feat: Folder Provider Repository 구현

* feat: Folder Service 구현

* feat: 부모 폴더 업데이트 메소드 구현

* feat: 사용자의 미분류폴더, 휴지통 조회하는 메소드 구현

* feat: 특정폴더를 본인의 미분류폴더, 휴지통으로 이동시키는 메소드 구현

* refactor: 검증로직에 assertion 추가

* refactor: 검증로직 기존코드로 롤백

* feat: Pick DTO 설계 (#124)

* feat: pick error code, exception 구현

* refactor: link entity에 imageUrl 추가

* refactor: link mapper에 imageUrl 추가

* refactor: link dto에 imageUrl 추가

* refactor: 패키지 구조 변경에 따라 import 수정, linkFixture imageUrl 추가

* refactor: pick에 folder 연관 관계 추가

* feat: pick, pickTag dto 구현

* refactor: pick dto 필드명 수정

* refactor: pick entity folder 변수명 변경

* [FEAT] 프론트 로그인 로컬 테스트를 위한 redirect url 설정 (#129)

* feat: 인증 성공 후 redirect url 추가

* feat: 인증 성공 후 redirect url 추가

* [�REFACTOR] 기본 폴더 CRUD 관련 리팩토링 (#127)

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 기본폴더 조회 메소드 수정

* feat: 회원가입시 기본폴더 생성 로직 구현

* feat: 기본폴더 수정 및 삭제 방지 로직 구현

* feat: 기본폴더 변경 불가 에러코드 설명 구체적으로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: 필드명 수정 parent -> parentFolder로 수정

* refactor: EnumSet을 이용해 BasicFolderType을 검증하도록 수정

* refactor: 프론트 로컬 테스트를 위한 설정 (#135)

* [REFACTOR] 프론트 로컬 테스트를 위한 설정 (#137)

* refactor: 프론트 로컬 테스트를 위한 설정

* refactor: 프론트 로컬 테스트를 위한 설정

* fix: @NotNull 어노테이션 제거 (#132)

* [FEAT] 기본 폴더로 root 폴더 추가 (#140)

* feat: 기본 폴더로 root 폴더 추가

* feat: 회원가입시 root 폴더 생성

* [feat] 클라이언트 폴더 구조 JSON 파싱 (#147)

* :construction: Parser Dto 및 구조 작성

* :recycle: refactor: FolderAction 제거

* :recycle: refactor: 함수 이름 수정

* :recycle: refactor: 공백 제거

* :recycle: refactor: 미사용 파일 제거

* :sparkles: 파서 에러 코드 추가

* :sparkles: 파서 인터페이스 변경

* :sparkles: 파서 테스트 코드

* :sparkles: feat: 파서 구현

* :recycle: refactor: 구현체 코드 정리

* :recycle: refactor: 구현체 코드 정리

* :recycle: refactor: enum 변환에 custom exception 추가

* :recycle: refactor: 코드 리뷰 반영

* :recycle: refactor: 미사용 파일 제

* :recycle: refactor: 리팩토링 주석 추가

* :recycle: refactor: 테스트 케이스 최종 수정

* :recycle: refactor: Jackson으로 구조 리팩토링.

* :recycle: refactor: 디렉토리 이동

* :recycle: refactor: 테스트 케이스 작성 모두 완료

* :recycle: refactor: 함수명 수정

* :recycle: refactor: 함수명 수정

* :recycle: refactor: 주석 추가

* :recycle: refactor: 리팩토링 제안 주석 제거 (이슈로 등록)

* :recycle: refactor: 코드 리뷰 반영

* :recycle: refactor: 코드 리뷰 반영

* [FEAT] FolderService 추가 비즈니스 로직 구현 및 리팩토링 (#143)

* feat: root 폴더 조회 로직 구현

* refactor: 업데이트 메소드 분리 (이름/부모폴더)

* refactor: 업데이트 메소드 분리 (이름/부모폴더)

* refactor: 업데이트 메소드 분리 (이름/부모폴더) & 삭제시 휴지통으로 이동되도록 수정

* refactor: 부모 폴더가 삭제되면 자식 폴더/픽도 삭제되도록 @OnDelete 추가

* feat: 휴지통에 있지 않은 폴더를 삭제하려 할 때, 발생하는 오류 추가

* feat: 현재 폴더가 어떤 기본폴더에 속해있는지 반환하는 메소드 추가

* feat: 휴지통에 있는 폴더 영구 삭제하는 기능 추가

* refactor: 폴더 이름 변경시에도 구조json 검증

* refactor: 재귀 로직 수정

---------

Co-authored-by: Minky <[email protected]>

* feat: 로그인 확인용 쿠키(techPickLogin) 구현 (#155)

* [HOTFIX] 로그인 쿠키 버그 수정 (#156)

* feat: 로그인 확인용 쿠키(techPickLogin) 구현

* fix: 로그인 확인용 쿠키(techPickLogin)가 access_token을 덮어씌우는 버그 수정

* [FEAT] 직렬화 비직렬화 및 데이터 세팅 과정 구현 (#151)

* :recycle: refactor: 테스트 케이스 업데이트

* :recycle: refactor: 미사용 파일 삭제

* :recycle: refactor: 테스트 케이스 업데이트

* :recycle: refactor: 디렉토리를 스트럭쳐로 이름 변경

* :sparkles: feat: 클라이언트용 구조 노드 DTO

* :sparkles: feat: 서버용 구조 노드 DTO

* :sparkles: feat: 파일 위치 이동

* :sparkles: feat: 파일 위치 이동

* :sparkles: feat: 클라이언트 전송을 위한 name 데이터 설정 - provider

* :sparkles: feat: 최종 Structure 완료

* :sparkles: feat: 최종 Structure 완료

* :sparkles: feat: 코드 리뷰 바탕으로 한번에 로드하는 메소드 추가

* [FEAT] Folder Api 구현 및 FolderService 리팩토링 (#161)

* refactor: 접근권한이 없는 폴더 에러코드 HttpStatus 403으로 변경

* feat: dto 세분화

* refactor: validator 분리

* feat: Structure api에서 사용할 FolderStructureService 분리

* feat: Folder Api 구현

* refactor: FolderStructureService 반환형식 수정

* refactor: updateFolderName 메소드 응답 누락 해결

* refactor: @PathVariable 어노테이션 추가

* refactor: 잘못된 검증 로직 수정

* [FEAT] Structure와 연관된 Pick Service 구현 (#163)

* feat: pick dto 세분화

* refactor: pick update, delete 추가

* feat: Structure 관련된 pick 구현

* feat: pick service 틀 잡기

* refactor: 변수명 수정, 잘못 사용한 메서드 변경

* [FEAT] Structure API 구현 및 Folder Create 로직 수정 (#164)

* refactor: 누락된 검증 로직 추가

* refactor: 폴더 생성 로직 변경 parentId는 별도 주입

* refactor: Folder Dto 수정

* refactor: Folder Create 로직 변경 (create->move 한세트로)

* refactor: 불필요한 필드 삭제

* refactor: Structure Json 엔티티 이름 명확하게 변경

* refactor: StructureJson Repository Structure 패키지로 이동

* refactor: Structure API 구현

* refactor: StructureJson 이름 변경

* refactor: FolderCreate 로직 분리

* refactor: PickDeleteDto 분리

* feat: Structure Dto 및 Mapper 구현

* feat: Structure Service 구현

* refactor: Mapper 에 UserRepository 의존성이 추가되면서 임시로 수정

* refactor: ApiDirectory->ApiStructure로 이름 변경

* feat: 회원가입시 자동으로 root,recycle_bin이 빈 폴더구조json 생성

* refactor: model 패키지 이동

* refactor: model 패키지 이동

* refactor: create folder시 무조건 parentId가 null이므로 그에대한 로직 추가

* refactor: model 패키지 이동

* refactor: @RequestBody 추가

* refactor: Structure를 필드로 직접 가지도록 수정

* refactor: 포맷수정

* feat: StructureJsonProvider 구현

* refactor: 불필요한 클래스 삭제

* refactor: StructureJson 업데이트 로직 Provider로 이관

* refactor: Folder 생성자 수정

* refactor: Structure ErrorCode 코드명/주석 수정

* refactor: var 제거

* refactor: 부모폴더가 없을 시 parentFolderId = -1로 응답하도록 수정

* hotfix: getParentFolderId -> findParentFolderId JPA 오류 수정

* refactor: access_token 사용하도록 설정 (#175)

* [FEAT] Structure Validator 구현 (#178)

* refactor: 불필요한 메소드 삭제 및 Folder 조회 조건 변경(ParentFolder Not Null)

* refactor: 불필요한 메소드 삭제

* refactor: 메소드명 구체화

* refactor: 유저 픽 리스트 조회 메소드 추가

* feat: StructureValidator 구현 및 적용

* refactor: 메소드 이름 명확하게 변경

* feat: 로그 추가

* refactor: 메소드명 통일 IsNotEmpty -> IsNotNull

* refactor: root, recycleBin 정보 요청으로 받지 않고 db에서 받도록 수정

* [HOTFIX] swagger 쿠키 설정 수정 (#179)

* refactor: access_token 사용하도록 설정

* fix: swagger 쿠키 설정 수정

* hotfix: swagger 쿠키 설정 수정

* hotfix: samesite 설정 제거

* [REFACTOR] UserService 구현 포함, 전체 코드 리팩토링 (#180)

* :recycle: docker compose 테스트 DB 설정 제거

* :sparkles: feat: UserService 기능 구현

* :recycle: refactor: Tag Feature 리팩토링 (의존성 제거)

* :recycle: refactor: Pick 도메인 리팩토링

* :recycle: refactor: Structure 도메인 리팩토링

* :recycle: refactor: Link 도메인 리팩토링

* :recycle: refactor: Folder 도메인 리팩토링

* :recycle: refactor: FolderStructure 도메인 리펙토링

* :recycle: refactor: FolderStructure 도메인 리펙토링 (기존 코드 삭제)

* :recycle: refactor: OAuth 도메인 리펙토링

* :recycle: refactor: User 이름 랜덤 생성기 추가

* :recycle: refactor: Folder 예외 추가

* :recycle: refactor: Parser 테스트 주석 처리 (provider 의존성 필요)

* :recycle: refactor: 주석 오류 수정

* :recycle: refactor: 테스트 코드 준비

* :recycle: refactor: 코드 리뷰 피드백 반영

* :recycle: refactor: 코드 리뷰 피드백 반영

* :sparkles: feat: 태그 color 추가 (#185)

* :bug: fix: 익스텐션 CORS 추가

* [FEAT] Pick �API + Service 구현 (#186)

* feat: Link Service 기능 추가

* feat: UserProvider 구현

* refactor: TagService 수정

* feat: Pick Service 구현

* feat: Pick Tag 구현

* feat: Pick Api 구현

* refactor: FolderMapper 모두 general 타입으로 들어가는 문제 해결

* feat: folder type 메서드 추가

* refactor: Authentication 제거

* refactor: dto 삭제

* refactor: UserId -> User로 변경 및 메서드명 통일

* refactor: Request Param 변경

* refactor: 리뷰 반영

* [HOTFIX] Valid 관련 에러 설정 (#189)

* feat: Link Service 기능 추가

* feat: UserProvider 구현

* refactor: TagService 수정

* feat: Pick Service 구현

* feat: Pick Tag 구현

* feat: Pick Api 구현

* refactor: FolderMapper 모두 general 타입으로 들어가는 문제 해결

* feat: folder type 메서드 추가

* refactor: Authentication 제거

* refactor: dto 삭제

* refactor: UserId -> User로 변경 및 메서드명 통일

* refactor: Request Param 변경

* refactor: 리뷰 반영

* refactor: valid 수정

* :bug: fix: link 생성 순서 오류 수정 및 swagger에 baseURL 수정

* [CI] API V2 브랜치 - 서버 설정 (#195)

* ci:  API V2 브랜치 - 서버 설정

* [REFACTOR] V2를 위한 패키지 리셋 (#237)

* refactor: v2에 불필요한 패키지 삭제

* refactor: auth폴더 중 새로구현하게되는 부분 삭제

* refactor: 테스트 폴더 삭제

* [FEAT] V2 엔티티 설계 (#240)

* refactor: TimeTracking -> BaseEntity로 클래스명 변경

* refactor: 불필요한 클래스 삭제

* refactor: 정적 메소드 삭제

* feat: id List <-> String Converter 구현

* feat: 자식 픽/폴더/태그의 순서를 저장하는 필드 추가

* feat: FK 제약조건 제거

* refactor: OnDelete옵션을 위해 FK 제약조건 원복

* refactor: Converter 어노테이션 추가

* refactor: Link 비활성화 구현 및 Pick 관련 필드 추가

* refactor: 필드명 수정 deletedAt -> invalidatedAt

* refactor: FK 제약조건 원복

* [FEAT] V2 패키지 구조 재설계 (#258)

* feat: mapstruct 의존성 추가

* feat: 초기 프로젝트 구조 설정

* feat: 서비스 / 컨트롤러 어노테이션 추가

* feat: SQL 로그 파일 설정 추가

* feat: 도커 컴포즈 주석 제거

* feat: 잘못 들어간 코드 삭제

* feat: 코드 리뷰 반영

* [CHORE] API 명세 (#264)

* feat: api 명세

* feat: api 명세

* feat: api 명세 반영

* feat: api 명세 반영

* [FEAT] pick v2 도메인 개발 (#278)

* feat: Link, Pick, Folder 엔티티

* feat: PickTag 엔티티 작업

* chore: 미사용 파일 제거

* chore: 스펙의 변수명 변경

* chore: sql 파일 위치 이동

* chore: 필요 예외 코드 추가

* feat: 유저 infra

* feat: JPA Repository 구현

* :sparkles: feat: Pick 도메인 구현

* :sparkles: feat: Pick 인프라 구현

* :sparkles: feat: Link 인프라 구현

* :sparkles: feat: Folder 인프라 구현

* :sparkles: feat: MapStruct 매퍼 구현

* chore: 리팩토링 및 null 처리 추가

* chore: 리팩토링 및 MapStruct 빌드 오류 수정

* chore: 테스트코드 패키지 사라진거 복원

* chore: 테스트코드 준비

* refactor: 현재 사용자 조회 메소드 구현

* chore:  코드 리뷰 결과 반영

* chore:  코드 리뷰 결과 반영

---------

Co-authored-by: PSH <[email protected]>

* [REFACTOR] pick service 코드에서 chaining 제거 (#280)

* chore:  코드 리뷰 결과 반영

* chore:  코드 리뷰 결과 반영

* [FEAT] Tag v2 Service 구현 (#281)

* feat: tag infra 구현

* feat: tag entity, repository 구현

* feat: tag dto, mapper 구현

* feat: tag service 구현

* refactor: user tagOrderList에 ArrayList 주입

* feat: tag api request/response 구현

* feat: tag api mapper 구현

* refactor: pickTag 삭제 메서드 구현

* refactor: tag dto 공통화 및 태그 이동 dto 추가

* refactor: 검증 로직 writer로 이동 및 reader 수정

* refactor: 태그 service 리뷰 반영 및 유저의 태그 이동 기능 구현, 태그 삭제 시 픽 태그도 삭제되도록 구현

* [FIX] Pick API 예외 미흡 수정  (#283)

* fix: Tag 미사용 Exception 제거

* fix: 미사용 Fixture 제거

* fix: Pick Write 예외 처리 추가 (권한)

* fix: Pick Write 예외 처리 추가 (권한) (#290)

* [REFACTOR] 테스트 코드 구현을 위한 Pick 도메인 수정 (#297)

* refactor: Writer, Reader를 PickAdaptor로 인터페이스 통합

* refactor: Writer, Reader 삭제

* refactor: userId 파라미터로 분리

* refactor: 서비스 구현체 수정

* chore: 레포지토리 수정 및 주석 변경

* chore: 누락된 변경 사항 적용

* [FEAT] Folder Domain/Infrastructure 구현 (#284)

* feat: 폴더 update remove 메소드 구현

* feat: 폴더 reader/writer 구현

* feat: 폴더 dto 구현

* feat: 폴더 service 구현

* feat: 폴더 repository 자식폴더 조회 메소드 구현

* refactor: FolderReader FolderWriter를 FolderAdapter로 병합

* feat: Folder equals, hashcode 구현

* fix: TODO로 작성했던 태그 리스트 비교 로직 업데이트 (#300)

* [FEAT] Tag Service 테스트 코드 작성 및 리팩토링 (#302)

* refactor: 테스트 설정 파일 수정

* refactor: reader, writer -> adaptor로 통합

* refactor: user entity builder 추가 및 reader에 private final 추가

* refactor: parameter에 userId 추가

* feat: tag service test code 작성

* refactor: 비관락 설정, 에러 코드 메세지 검증 추가

* refactor: 동시성 테스트 트랜잭션 추가

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* [REFACTOR] Tag Service Infrastructure 리팩토링 (#309)

* refactor: TagAdaptor로 db로직 이관

* refactor: TagService에는 비즈니스 검증 로직 구현

* refactor: 테스트에 리팩토링 사항 반영

* refactor: TagRepository 비관락 타임아웃 설정

* refactor: findBy -> findAllBy로 명확하게 메소드명 수정

* fix: 오타 수정

* refactor: TagCommand dto안에 userId 포함

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [REFACTOR] Folder 도메인 리팩토링 (#316)

* refactor: FolderCommand가 userId를 가지도록 변경

* refactor: FolderAdapter 리팩토링

* refactor: FolderService 리팩토링

* refactor: FolderFacade 제거

* fix: typo 수정(FolderAdapter->FolderAdaptor)

* refactor: FolderAdaptor 메소드명 변경에 따른 관련 메소드 리팩토링

* refactor: Command에 userId 포함하도록 변경됨에 따라 mapper 수정

* refactor: TagFacade 삭제

* feat: 기본폴더 조회 메소드 구현

* feat: Order를 보장하는 조회 메소드 분리

* refactor: 정렬 로직 adaptor로 이관

* refactor: 다른 부모폴더에있는 폴더들을 동시에 이동시키려고 할때 발생시킬 예외 추가

* refactor: 필드명 명확하게 변경 parentFolderId -> destinationFolderId

* refactor: 순서보장이 필요한 경우와 아닌경우에 따라 adaptor메소드 분리

* [REFACTOR] tag, folder 검증로직 메소드 분리 (#323)

* refactor: 태그 검증로직 메소드 분리

* refactor: 폴더 검증로직 메소드 분리

* [FEAT] Tag API 구현 및 Swagger 명세 (#328)

* feat: swagger 가 패키지를 포함하여 관리하도록 설정 추가

* style : 파라미터 순서 변경

* refactor: colorNumber 타입 수정

* feat: Tag Api 구현 및 Swagger 명세, 예시 추가

* refactor: 오타 수정

* [FEAT] LoginUserId 커스텀 어노테이션 구현 (#326)

* feat: 커스텀 어노테이션 구현

* feat: ArgumentResolver 구현

* feat: ArgumentResolver 등록

* [REFACTOR] Rss 서비스 리팩토링 (#321)

* refactor: 불필요한 클래스 삭제

* refactor: batch 패키지로 이동

* refactor: RssBlog 엔티티에 blogName 필드 추가 및 관련 dto 구현

* refactor: RssFeed 엔티티 필드명 수정 및 파싱용 dto 구현

* feat: Rss infra 구현

* feat: Rss domain 구현

* feat: (임시) rss 수집 블로그 구현 - 이후 관리자기능으로 이관할 예정

* chore : 코드 포맷 수정

* refactor: 매일 3시에 수집하도록 스케줄 설정

* chore: 주석 typo 수정

* feat: 메소드 실행시간측정 커스텀 어노테이션 구현

* feat: rssCrawling 실행시간 측정

* [FEAT] Folder Api 구현 및 Swagger 명세 (#331)

* refactor: 불필요한 인터페이스 삭제

* refactor: 기본폴더 변경불가 검증로직 추가

* feat: FolderApi dto, mapper 구현

* feat: FolderApi Controller 구현

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] Pick 리팩토링 진행 및 API 구현 (#342)

* fix: 미사용 파일 제거

* chore: 트래잭션 로깅 옵션 추가

* fix: 폴더, 태그에 unique 제약 조건 추가

* fix: 미사용 파일 제거

* fix: 미사용 파일 제거

* feat: User Adaptor로 로직 통일

* feat: Link Adaptor로 로직 통일

* feat:  request dto에서 userId 제거

* feat:  userAdaptor 로 변경

* fix:  Pick 도메인 오류 수정

* fix:  Tag 도메인 수정

* fix: User 내용 추가

* fix: OrderConverter 수정

* feat: 테스트 코드 1차 작성

* feat: 엔티티내 조건 체크 제거

* fix: 폴더 어뎁터 오타 수정

* fix: 테스트 코드 추가 작성

* fix: 테스트 코드 추가 작성

* refactor: Pick Service 리팩토링 진행 및 임시 커밋

* refactor: Folder에 있는 Order List에 ArrayList, null 체크 추가

* refactor: Link에 synchronized 제거

* refactor: 휴지통 외에 다른 폴더에서 삭제하지 못한다는 에러 코드 및 메시지 추가

* refactor: 태그 오더 리스트 조건으로 태그 리스트 가져오는 로직 추가

* refactor: tagOrder -> tagOrderList로 변수명 변경

* refactor: PickTagRepository, PickMapper 수정

* refactor: Pick Dto 수정

* refactor: Pick Adaptor, Service 리팩토링

* refactor: Pick Service Test 코드 작성

* refactor: error code 상태 변경

* refactor: 테스트 코드에 트랜잭션 추가

* refactor: 픽한 링크인지 확인하기 위한 로직 추가

* refactor: 픽한 링크인지 확인하기 위한 로직 추가

* feat: 픽 API 구현 및 스웨거 설정 추가

---------

Co-authored-by: kimminkyeu <[email protected]>

* [REFACTOR] 멀티모듈 적용 (#344)

* refactor: 멀티모듈로의 패키지 이동

* refactor: 멀티모듈로 분리되며 패키지 경로 수정

* refactor: 멀티모듈로 분리되며 각 모듈에 종속된 config 이동

* refactor: 멀티모듈 적용을 위한 gradle 설정

* refactor: 멀티모듈 적용을 위한 application.yaml 분리

* refactor: 멀티모듈 적용을 위한 docker 설정 변경

* refactor: 멀티모듈 적용을 위한 패키지 이동

* refactor: application-core import 방식 수정

* ci/cd: 멀티모듈 ci/cd 파이프 라인 구현 (#346)

* [CI/CD] 멀티모듈 ci/cd 적용 (#347)

* ci/cd: 멀티모듈 ci/cd 파이프 라인 구현

* ci/cd: 불필요한 스크립트 삭제

* ci/cd: api, batch 모듈 cicd 스크립트 작성

* refactor: 정보 수정

* refactor: 대상 브랜치 수정

* refactor: 액션 버전 업

* [FEAT] 시큐리티 모듈 분리 및 소셜로그인 기능 복구 (#350)

* refactor: core 모듈 패키지 구조 리팩토링

* refactor: api 모듈 패키지 구조 리팩토링

* refactor: batch 모듈 패키지 구조 리팩토링

* refactor: core 모듈 패키지 구조 리팩토링

* feat: 시큐리티 모듈 구현

* refactor: core에 있는 시큐리티 관련 설정 security로 이관

* refactor: 빌드 설정 변경 - 테스트 제외 및 시큐리티 모듈 추가

* refactor: 토큰 추가 메소드명 수정

* refactor: 회원가입시 기본폴더 생성 로직 추가

* refactor: 잘못된 인증정보를 가질 시 예외처리 및 쿠키삭제

* hotfix: 배포 테스트

* hotfix: 잘못된 배포 스크립트 제거

* hotfix: 잘못된 배포 스크립트 제거

* hotfix: 쿠키 설정 변경

* hotfix: dockerhub 업로드시 모듈명 추가

* hotfix: deploy test - core 모듈 수정

* hotfix: 배포 스크립트 수정

* hotfix: 배포 테스트 - core 모듈 수정

* hotfix: 배포 테스트 - batch 모듈 수정

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* :recycle: refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [REFACTOR] 인터페이스 제거, Adaptor 이름 변경, Pick 리팩토링 (#357)

* refactor: 인터페이스 제거 및 어댑터 변경으로 인한 불필요한 클래스 제거

* refactor: 유저 인터페이스 제거, 어댑터 변수명 변경

* refactor: 태그 리팩토링, unique 재설정, 태그 삭제 시 픽의 태그 리스트 삭제되는 부분에 pickId -> tagId로 수정

* refactor: open-in-view 설정 추가

* refactor: root에 픽 추가하는 경우, 예외 추가

* refactor: 링크 인터페이스 제거, 어댑터 이름 변경

* refactor: 폴더 인터페이스 제거, 어댑터 이름 변경, unique 수정

* refactor: Pick unique 설정

* refactor: 픽 리팩토링 진행, 픽 리스트로 조회 시 순서 보장,
Result Dto 분리

* refactor: 픽 api 폴더 리스트 안에 있는 픽 리스트 조회 구현, response dto 분리

* refactor: 픽, 태그 실패하는 테스트 수정

* refactor: 불필요한 파일 제거

* refactor: 멀티 모듈로 변환하는 과정에서 import문 변경

* refactor: 태그 수정 시 null인 경우 수정되지 않도록 변경

* refactor: 폴더 리스트 내 픽 리스트 조회하는 경우, get으로 하면 json 데이터를 받지 못해 post로 변경

* refactor: 테스트 코드 위치 변경

* refactor: 태그 테스트코드 userId 값 하드 코딩 리팩토링

* refactor: 테스트 끝나고 drop 하도록 변경

* refactor: 폴더 api 생성시 folderId 제거

* refactor: Fetch -> Search로 Dto명 변경

* refactor: Fetch -> Search로 Dto명 변경

* refactor: 픽 리스트 조회 메소드 분리

* refactor: 픽 리스트 조회 post -> get으로 변경

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [FIX] 태그 api 수정 및 Swagger 파라미터 수정 (#372)

* fix: @LoginUserId 누락 해결

* fix: swagger에서 long userId 파라미터로 안받게 수정

* fix: swagger에서 long userId 파라미터로 안받게 수정

* [FIX] 스웨거 응답값 수정 및 픽 update 버그 수정 (#376)

* refactor: tag-change

* fix: api 스웨거 타입 배열로 수정

* fix: 태그 서버 에러 디버깅용 메시지 추가

* chore: 코드 리뷰 바탕으로 반환 타입 제거 (스웨거가 자동으로 설정)

---------

Co-authored-by: sangwonsheep <[email protected]>

* [FEAT] 소셜 로그인 리다이렉션 구현 (#377)

* refactor: CookieUtil 리팩토링

* feat: authorizationRequestRepository 구현

* refactor: redirectUrl 로직 리팩토링 - 쿼리스트링으로 redirectUrl 받음

* refactor: redirectUrl 쿼리 파라미터명 변경

* [REFACTOR] Folder API 수정, Folder 리팩토링 (#379)

* refactor: tag-change

* refactor: folder 유니크 제약조건 제거

* refactor: pick void 반환 타입 응답 코드 204로 변경

* refactor: 폴더 응답 값, 프론트와 통일

* refactor: 폴더 생성 시 생성 메서드 사용 및 부모 폴더의 하위 폴더 리스트에 id 추가하도록 변경

* refactor: 루트 폴더와 루트 하위 폴더 리스트 조회 추가, 기본 폴더 리스트 조회 추가, 기본 폴더 각각 조회하는 Api 제거

* refactor: 주석 제거

* refactor: Dto에 @Valid로 검증하여 터진 에러 핸들링, 응답 코드 400으로 설정

* refactor: 코드 리뷰 반영

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* hotfix: argument resolver 수정

* [REFACTOR] local-dev-prod 설정 분리 (#381)

* refactor: local-dev-prod 설정 분리

* refactor: 설정 분리에 따른 변수명 수정

* refactor: docker-compose 기본 프로파일 local로 설정

* refactor: jpa 설정 local dev prod 분리

* [REFACTOR] Folder, Tag 리팩토링 (#384)

* refactor: api에 있던 swaager dependency 최상단으로 이동

* refactor: 태그 리스트 조회 시 순서 보장, Request Body 누락한 것 추가

* refactor: 커스텀 어노테이션에 스웨거 파라미터 hidden 설정 추가하는 것으로 변경

* refactor: Folder, Tag API에 Valid, Request Body 추가

* hotfix: cors 수정

* hotfix: cors 수정

* hotfix: dev profile base-url 수정

* refactor: local mysql 설정 변경 (#389)

* [REFACTOR] api request, response 양식 통일 (#396)

* refactor: env sample 수정

* refactor: folderId -> id로 통일

* refactor: tagId -> id로 통일

* refactor: pickId -> id로 통일

* refactor: dto로 List를 감싸서 반환하던 방법에서 List를 반환하도록 변경, dto명 변경

* hotfix: cors 설정에 https://local.minlife.me:3000 추가

* [REFACTOR] 폴더 멀티 이동 관련 버그 수정, Pick, Folder 변수명 통일 (#397)

* refactor: pick 변수명 통일

* refactor: Pick 관련 tagOrderList -> tagIdOrderedList 변경

* refactor: 픽 생성, 수정 시 태그 리스트가 존재하는지 검증하는 로직 추가

* refactor: Folder childFolderOrderList -> childFolderIdOrderedList로 변경

* refactor: 여러 폴더를 선택하여 이동되지 않는 문제 해결

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* fix: 테스트 application.yaml 수정 (#402)

* [FIX] 다른 폴더로 이동되지 않는 문제, 스웨거 응답 예시 추가 (#403)

* refactor: 스웨거 응답 예시 데이터 추가

* refactor: 폴더를 다른 폴더로 이동시키지 못하는 문제 해결

* refactor: 미분류 폴더로 이동 금지, Service로 검증 로직 이동

* refactor: 추후 변경될 사항 주석 추가

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] SecurityProperties 분리 (#415)

* feat: Security 관련 설정값을들 모아두는 SecurityProperties 구현

* refactor: SecurityProperites를 의존하도록 리팩토링

* refactor: 필드 순서 변경 및 줄바꿈 추가

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FEAT] pick bulk insert 구현 및 테스트 작성 (#409)

* feat: pick bulk insert 구현 및 테스트 작성

* refactor: pick bulk insert 클래스 분리 및 클래스명 변경

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* :rotating_light: fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [REFACTOR] 시큐리티 및 예외처리 리팩토링 (#427)

* refactor: 쿠키 삭제 메소드 리팩토링

* refactor: base-url 리팩토링 (환경변수->property로 이관)

* feat: add exceptionhandler for Json Parse error

* [FIX] FolderService 로직 변경 (#434)

* feat: 부모폴더 검증을 위한 예외 추가

* fix: MoveFolder, changeFolderOrder 분리, 요청에 parentFolderId 추가

* fix: MoveFolder, changeFolderOrder 분리 및 delete 로직 변경

* fix: 픽 리스트를 휴지통으로 이동하는 로직 수정

* fix: 폴더 이동 로직 롤백.. 기존 로직에 검증 로직만 추가함

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [FEAT] 검색 기능 구현 (#454)

* feat: querydsl 설정 추가

* feat: querydsl 설정 추가

* refactor: pick memo 제거 및 픽 리스트 조회 dto명 변경

* refactor: pick 제목만 수정 가능하도록 변경, pick 수정 시 pickTag 테이블 갱신 로직 추가

* refactor: 검색 관련 dto 추가, 기존에 pickApiResponse에 잘못 작성된 부분 수정 후 mapper도 수정

* refactor: 검색 관련 querydsl로 구현

* refactor: 검색 관련 API 구현, 픽 조회 API 분리, 페이지네이션 dto 구현

* refactor: 테스트 코드 작성 및 수정

* refactor: 주석 변경

* refactor: SliceReponse -> PickSliceResponse로 변경

* refactor: Pick entity memo 제거, sliceResponse에 hasNext 추가

* [TEST] FolderService 단위 테스트 구현 (#440)

* feat: test를 위한 mockito 의존성 추가

* feat: 단위테스트를 위한 Fixture 구현

* feat: FolderService 단위 테스트 구현

* refactor: security 모듈 api 모듈로 통합 (#451)

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* Update README.md

* [CHORE] 운영환경 배포를 위한 frontend 브랜치 merge (#471)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: e2e test github action 추가

* fix: action 오타 수정

* fix: 깃허브 액션 오타 수정

* chore: add corepack

* chore: 실행 순서 변경

* chore: browser 설치

* chore: playwright-report path 변경

* chore: �액션 if문 제거

* fix: 액션 탭 간격 변경

* chore: github action 테스트를 위한 싶패 테스트

* chore: 항상 report를 뽑을 수 있게 변경

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

* feat: 깃허브 액션 테스트용 PR (#4)

* chore: 세팅중인 상태

* fix: vanilla-extract 설정 변경

* fix: storybook 실행 안되는 오류 해결

@chromatic-com/storybook이 문제였음.

* chore: storybook tset 확인

* chore: eslint 예외 추가

* chore: eslint, prettier 설정

* chore: DS_Store ignore

* chore: husky 테스트

* chore: husky 적용 중

* chore: husky 적용

* chore: 테스트용 컴포넌트 삭제

* chore: jest 적용

* chore: ts를 devDependencies로 이동

* chore: sample test 파일 삭제

* chore: add files to gitignore

* chore: vscode setting 추가

* chore: playwright example test code 삭제

* chore: github action 테스트를 위한 싶패 테스트

* chore: github action 테스트를 위한 성공 테스트

* chore: vanilla-extract storybook 적용

* chore: 프로젝트 세팅을 위한 필요없는 파일 없애기

* chore: playwright yarn script 추가

* chore: react-hot-toast 적용

---------

Co-authored-by: Jason <[email protected]>

* chore: 프로젝트 구조 세팅 (#11)

* chore: 필요없는 파일 제거

* fix: 파일명 오타 수정

* feat: 기본 디렉토리 추가

* chore: yarn set version berry (#12)

* chore: 깃허브 액션 변경

* feat: 모노레포 분리 (#28)

* chore: 서비스 디렉토리 이동

* chore: eslint 적용중

* fix: eslint 설정

* chore: extension 프로젝트 세팅 중 husky 충돌

* fix: pre-commit 동작 수정

* chore: backup

* chore: backup

* chore: backup2

* chore: setting

* chore: ignore 설정

* chore: husky 설치

* chore: monorepo로 변경된 뒤 액션 변경

* chore: husky 설치

---------

Co-authored-by: Jason <[email protected]>

* chore: 폴더명 변경에 따른 액션 변경

* chore: 폴더명 변경 (#37)

* Front/feat/#35 (#40)

* chore: 폴더명 변경
* build: 크롬 익스텐션 빌드 설정
* feat: css 파일 제거
* build: 파일 수정시마다 build되는 스크립트 추가
* chore: 의존성 설치
@tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand
* feat: 디렉토리 생성
* feat: router 추가
* feat: react-query provider 설정
* feat: vanilla-extract 세팅

* feat: 현재 탭에서 데이터 가져오기 (#50)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거

* feat: 페이지 기본 요소 렌더링 (#52)

* chore: init

* design: theme 설정

* design: dirView 구조 정의

* chore: downgrade version - yarn 4.3.1 / typescript 5.5.4

* feat: react-arborist 적용 및 테스트 완료

* feat: 디렉토리 구성 및 아이콘 추가

* chore: use-resize-observer 라이브러리 추가

* design: tree 높이 동적 조절되도록 수정

* feat: 우측 view에 folder 및 link 표시

* chore: 컴포넌트 분리

* chore: 불필요한 주석 제거

* chore: 4.3.1 cjs 추가

* refactor: pr 수정요청사항 적용

* chore: import 수정

* chore: index.ts 추가

* chore: index.ts 추가

* chore: conflict 해결

* refactor: barrel exports pattern 적용

* refactor: icon export 처리

* refactor: directoryNode export 처리

* refactor: icon 이동

* refactor: icon을 public으로 이동

* chore: 불필요한 index 제거

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* chore: 이름 변경

* [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126)

* feat: 북마크 페이지 생성
* chore: 절대경로 수정
* build: build시에는 빌드를 한번하게 변경
* feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가
* feat: tab 열 때 마다 og image 가져오기
* refactor: 쓰지 않는 코드 제거
* chore: 주석 제거
* feat: 파비콘 가져오기
* feat: 서비스워커를 이용해서 동작하는 것으로 변경
* refactor: useGetTabInfo hook으로 분리
* refactor: background.ts 제거
* feat: og:description 가져오기
* chore: 쓰지 않는 상수 제거
* feat: cmdk 적용
* feat: 현재 선택한 태그가 보이도록 변경
* feat: 비동기 호출 흉내내서 라벨 데이터 가져오기
* chore: immer 설치
* feat: tagStore CRUD 구현
* chore: lucide icon 설치
* feat: deselect button ui 추가
* feat: deselect 기능 추가
* feat: SelectedTag ui 개선
* chore: todo 주석 제거
* feat: 동일한 태그가 없을 때 생성 아이템 추가
* feat: 태그 생성 로직 구현
* chore: 폴더 변경
* feat: TagInfoPopover 간단한 UI 구현
* feat: tag update 기능 추가
* chore: tagStore 폴더 변경
* chore: @radix-ui/react-dialog 설치
* chore: showDeleteTagDialogButton 파일 변경
* feat: DeleteTagDialog 상태 관리 구현
* chore: 다음 작업에 할 Todo 내용 추가
* feat: DeleteTag 관련 컴포넌트 구현
* chore: Command.Dialog css 변경
* refactor: useEffect내 함수 기명함수로 변경
* refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동
* chore: components 에서 ui로 폴더명 변경
* refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리
* refactor: TagInput에서 TagPicker로 컴포넌트명 변경
* refactor: TagAutocompleteDialog로 컴포넌트명 변경
* refactor: TagPicker css명 변경
* refactor: css classname 변경
* refactor: 분리되어있던 css 합치기
* refactor: onSelectTag함수로 반복되는 함수 호출 합침
* refactor: 문자열 상수로 변경
* chore: 주석 추가
* feat: enter키 입력시 popover 켜지게 변경
* refactor: PopoverTriggerButton으로 분리
* chore: 사용하지 않는 index.ts 제거
* chore: 폴더명 components에서 ui로 변경
* chore: 폴더명 변경
* chore: tsbuildinfo update
* chore: 폴더 위치 이동
* chore: 폴더 이동
* chore: git pull frontend
* chore: todo 주석 추가

* [FEAT] Drag&Drop 구현: Directory (#117)

* test: mockdata 동적 생성

* chore: react-dnd, react-dnd-html5-backend 추가

* feat: dragDropManager 적용

* feat: dragDropManager 적용

* feat: Drag&Drop 시 mockData도 변경되도록 수정

* feat: treeData를 전역 상태로 관리

* design: LinkEditorSection 렌더링 요소 변경

* design: hover 시 음영 추가

* refactor: type 변경

* feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경

* fix: 아래로 이동 시 한칸씩 밀리는 버그 수정

* feat: FolderSection에 dnd 적용

* feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능

* fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결

* feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가

* feat: LinkEditorSection에서 Pick Dnd 가능

* refactor: 중복 코드 hook으로 분리

* refactor: 이름 변경

* refactor: 이름 변경

* design: Lucid Icon 적용

* refactor: 중복 코드 제거

* chore: marged branch frontend

* chore: yarn cache clean and re-installed

* [FEAT] 우측으로 dnd 작업 가능 (#145)

* design: theme 변경시 icon 색상도 변경되도록 수정

* feat: LinkEditorSection 상단에 Directory Name 동적 변화

* design: 선택된 항목 강조 표시

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용

* fix: 순서 변경 시 인덱스 오차 수정

* feat: 폴더 클릭 시 해당 폴더로 이동

* fix: 내부에 요소가 없으면 빈 화면 표시

* feat: 좌측->우측 dnd 가능

* fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결

* �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158)

* feat: 환경변수로 도메인 저장
* feat: 간단한 login 페이지 생성 및 .env파일 세팅

* �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167)

* build: dev 모드, production 모드에 따라 환경변수 주입
* build: build시에 manifest.json에 환경변수 주입
* fix: mode에 따른 환경변수 주입
* fix: script 오타 수정
* chore: ky 종속성 설치
* feat: ky를 이용한 baseApi 생성
* feat: 로그인 여부 파악 후 페이지 렌더링
* chore: tsbuildinfo 삭제
* chore: 주석 제거
* feat: Text 컴포넌트 구현
* feat: Button 컴포넌트 구현
* feat: 로그인 링크 페이지 구현
* feat: 상수로 적용
* fix: 상수대신 .env 직접 적용
- 해당 코드에서 에러가 생겨서 추후 수정할 예정
* chore: 주석 추가

* [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177)

* feat: type 생성
* chore: root의 ts version 원상 복구

* [CI] 프론트엔드 서버 배포 스크립트 (#202)

* :rocket: 프론트 서버 배포 설정

* :rocket: 프론트 브랜치와 연결

* :rocket: docker image 빌드 전 환경변수 생성(for next build)

* build: 필요하지 않은 github action script 제거

* fix: cd script 원상 복구

---------

Co-authored-by: dmdgpdi <[email protected]>

* [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210)

* chore: 북마크 페이지 폴더 내로 이동

* feat: 북마크 페이지 기초적인 레이아웃 설정

* refactor: BookmarkHeader 컴포넌트 분리

* feat: Gap 컴포넌트 구현

* feat: Gap 컴포넌트 default값 변경

* feat: 북마크 페이지 style 분리

* feat: ogImage 가져오기

* feat: ThumbnailImage 컴포넌트 구현

* feat: 이미지 로딩 시 애니메이션 적용

* chore: 주석 제거

* refactor: ThumbnailImage 컴포넌트 수정

* feat: input tag css 적용

* feat: TagPicker tab 및 focus 애니메이션 적용

* refactor: onKeyDown 함수 뺴기

* chore: 인풋 값 확인

* feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성

* feat: 화살표따라 탭 포커스 이동 적용

* feat: props에 따라 고정된 속성 제공

* chore: SelectedTagListLayout 폴더 이동

* feat: 공통 스타일 적용

* feat: SelectedTagList의 스타일 추가

* chore: 간단한 색 변경

* chore: 필요없는 data-desc 제거

* feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거

* chore: style 변경

* feat: 태그픽커 및 다이얼로그에 style 적용

* feat: radix-ui popover 를 floating-ui로 대체

* feat: 팝오버 버튼 디자인 구현

* feat: 태그 삭제 모달 디자인 추가

* feat: tag 목록이 길 때 스타일 변경

* �chore: 스크롤바 제거 globalStyle에 적용

* feat: 선택한 라벨 높이에 따라 commandListHeight 변경

* chore: css 제거

* feat: CommandList 로딩 화면 추가

* chore: randomcolor 라이브러리 설치

* chore: pre-commit command 수정

* fix: pre-commit command 수정

* feat: numberColor 함수 구현 및 태그 생성시 적용

* feat: randomColor style 적용

* chore: type 생성

* fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경

* chore: schema를 위한 절대 경로 추가

* feat: 실제 서버의 타입으로 변경

* fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경

* fix: �적용되지 않는 함수 제거

* feat: 태그 생성 api 연결

* refactor: 태그 선택 취소 시에 id값만 이용

* feat: delete tag api 연결

* feat: updateTag api 연결

* chore: schema 타입 최신화

* fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정

* feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제

* refactor: useGetTabInfo 폴더 이동

* refactor: api 적용을 위해 default value 변경

* fear: create pick api 연결

* chore: react hot toast 라이브러리 설치

* chore: 사용하지 않는 SAMPLE_DATA 제거

* feat: toast 라이브러리 적용

* feat: ApiErrorBody type 선언

* chore: todo 제거

* feat: post api 통신 에러 핸들링 추가

* feat: deleteTag optimistic update 추가

* feat: update tag optimistic update 추가

* refactor: useCalculateCommandListHeight hook으로 분리

* refactor: onSelectCreatableTag 함수 분리

* chore: 쓰지 않는 return 제거

* feat: enter key로 태그 삭제 및 취소 가능

* feat: 간단한 에러 페이지 생성

* feat: 에러 핸들링 추가

* [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213)

* fix: 런타임 에러 해결(잘못된 변수 접근) (#215)

* [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229)

* chore: schema 최신화
* feat: getLinkByUrl api 추가
* feat: useHasLink hook 구현
* chore: API 변경에 따른 type 최신화
* feat: CreatePickForm, UpdatePickForm 분리
* feat: chore: Pick API 변경에 따른 type 최신화
* feat: link api 삭제
* feat: getPickByUrl api 추가
* feat: useHasPick 변경
* chore: ThumbnailImage backgroundColor 변경
* feat: updateForm 구현
* feat: 로딩 상태 시의 Skeleton 구현
* feat: DeferredComponent 구현
* feat: 로딩화면 구현
* chore: 주석 제거

* [FEAT] Backend api 연결 및 ux 미세조정 (#227)

* design: flex wrap 설정

* design: flex wrap 이중 줄바꿈 문제 수정

* feat: 우클릭 시 context menu 표시

* chore: 주석 제거

* chore: alt 이름 변경

* feat: treeRef 추가

* feat: mockData create 가능

* feat: api 연동: create&move

* feat: api 연동: dnd move 동작 확인

* refactor: 핸들러 함수 hook으로 분리

* feat: edit ux 추가 및 arborist node outline 제거

* feat: folder rename 연결 완료

* feat: folder delete(move to recyclebin) 연결 완료

* feat: create 로직 수정

* feat: 초기 로드 시 recycleBin 생성(향후 수정 예정)

* feat: Tree 컴포넌트 추가 전 커밋

* chore: popover Demo 추가

* design: 버튼 및 팝오버 디자인 수정

* feat: 휴지통 붙임:수정예정

* feat: 휴지통 숨김 설정

* design: 전체적인 디자인 미세 조정

* feat: 로그아웃 버튼 추가 및 디렉토리 조정

* feat: client 로그인 검증로직 추가

* design: 로그인 페이지 디자인 추가

* refactor: 폴더 create 로직 수정

* refactor: 폴더 create 로직 수정2

* refactor: 필요없어진 popover제거

* fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결

* design: 에러 토스트 메시지 추가

* refactor: 삭제 로직 수정(id 부여 방식)

* feat: 휴지통에서 폴더 완전삭제 가능

* [FEAT] 익스텐션 테마 적용 (#241)

* feat: theme을 techpick-shared 모노레포로 분리
* feat: theme 적용
* design: 익스텐션 테마 적용
* fix: peerDependencies제거
* design: techpick의 theme을 techpick-shared에 의존하게 변경
* feat: techpick reset.css 수정
* feat: git pull 이후 필요없는 파일 삭제
* feat: theme 동기화

* [FEAT] 카드 컴포넌트 디자인 구현 (#246)

* fix: ky middleware credentials속성 올바르게 적용

* feat: teckpick-service와 동일하게 id 변경

* feat: techpick-shared의 export 추가

* feat: images모든 url을 허용 및 next.config.mjs제거

* chore: 의존성 설치

* chore: @/schema 절대 경로 추가

* chore: portalContainer id 변경

* feat: pickCard 컴포넌트 디자인 및 레이아웃 구현

* feat: TagPicker 컴포넌트 복사

* [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247)

* fix: 한글 입력시 폴더 두번 생성되는 문제 해결

* fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가

* refactor: 폴더 위치 변경 및 Input 테마 적용

* fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정

* refactor: 프로젝트 디렉토리 및 파일 구조 수정2

* feat: recycleBin에서 contextmenu 사용 가능

* feat: recycleBin에서 restore 가능

* refactor: 이전 코드리뷰 comment 반영

* fix: 폴더 생성시 input이 사라지는 문제 수정

* fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정

* fix: DirectorySection ui 틀어짐 수정

* feat: 휴지통 내부 dnd 가능

* fix: 좌측 디렉토리 절반만 표시되는 문제 수정

* fix: 간격 수정

* fix: 휴지통 dnd 비활성화

* fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정

* feat: 우측 folder contextMenu 이용가능
*버그 수정 필요(recycleBin menu 출력되는 문제)*

* fix: 우측 contextMenu 버그 수정

* fix: 우측 context 수정중

* chore:충돌 방지용 git pull

* [CI] 도커 이미지 build 관련 버그 수정 (#252)

* build: Dockerfile yarn berry 적용 및 필요한 파일 추가
* chore: 주석 변경

* fix: tag 생성 연속 입력 문제 해결 (#257)

* [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260)

* [FEAT] unclassified 표시 가능 (#261)

* feat: unclassifiedPicks api 호출 코드 추가

* feat: unclassified 표시됨

* [FEAT] PickCard API 연결 (#266)

* chore: 주석 추가

* feat: PickCard 이미지 스타일 수정

* chore: 쓰지 않는 apis 폴더 삭제

* refactor: 중복된 api middleware 제거

* fix: ky middleware content-type 추가

* feat: getPick api 연결

* design: 디자인 변경

* chore: import 순서 변경

* feat: updatePick api 연결

* feat: selected Tag 태그 삭제시 상태 변경

* chore: 주석제거

---------

Co-authored-by: Jason <[email protected]>

* feat: skelton 적용 (#268)

* feat: skelton 적용

* feat: link 추가 및 tagPicker 동작 수정

* [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270)

* [FEAT] pick dnd (#272)

* feat: nodeApi로 변환 로직 추가

* fix: 임시 디바운싱 적용

* fix: api 교체

* fix: 간헐적으로 unclassified 안보이는 문제 수정

* feat: pick 휴지통, 복원, 삭제 api 연결완료

* fix: 이름 길어지면 ...으로 표시

* fix: 가상 미분류 폴더 렌더링 방지 처리

* fix: 버그유발 기능 비활성화

* fix: fix

* fix: fix2

* [REFACTOR] 폴더구조 변경 (#308)

* refactor: shared 폴더 제거

* refactor: entities/pick 폴더 제거

* refactor: entities/tag 제거

* refactor: features/tag 제거

* refactor: features/userManagement 제거

* refactor: features/themeManagement 제거

* refactor: features/nodeManagement 제거

* refactor: widgets 제거

* [REFACTOR] import 순서 변경 (#311)

* chore: eslint import 순서 정리
* reafactor: import 순서 변경

* feat: 디자인 토큰 추가

* feat: 디자인 토큰 적용

* feat: �commontThemeContract 삭제

* fix: ThemeProvider 변경사항 적용

* fix: 위치 조정

* [FEAT] 디자인 토큰 추가

* [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332)

* chore: dnd-kit 설치 및 tree 페이지 생성

* feat: jest 설정추가

* fix: jest monorepo별 적용

* chore: root jest config 삭제

* feat: 같은 부모 밑에서 1개씩 폴더 이동

* design: tree page margin 변경

* test: 복수의 폴더 이동 테스트코트 작성

* feat: 현재 드래그 여부 상태 zustand에 추가

* feat: 폴더 다중 선택 기능 추가

* feat: DragOverlay추가

* design: primary color로 변경

* fix: test문 it.only 제거

* refactor: dndTreeStore에 hasIndex 적용

* [FEAT] 검색창 및 리스트 로직 설계 (#333)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348)

* feat: 검색 위젯 로직 구현

* feat: 유틸리티 클래스 구현 (파싱, 필터링)

* doc: 유틸리티 참고 이미지 및 설명

* feat: zustand, react query 추가

* feat: 뷰포트 리액트 컴포넌트

* refactor: esToolkit import

* refactor: useViewScope 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: useQuery 함수명 파일명 변경

* refactor: Util 함수 리팩토링

* chore: 파일 제거 및 위치 이동

* chore: use-Immer 패키지 추가

* feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선

* chore: 공통 타입 추가 및 일부 변경

* feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴)

* feat: 최상단 컴포넌트 (뷰어) 및 상태 구현

* test: 쿼리 더미 데이터 추가

* feat: 옵션 리스트 위젯 및 상태 구현

* feat: 검색창 위젯 구현

* feat: 필터 옵션 기능 구현

* feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현

* chore: 디렉토리 이름 변경, 기존 폴더 제거

* chore: dummy data 업데이트

* :recycle: refactor: 코드 리뷰 기반으로 리팩토링 진행

* [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리  (#351)

* test: moveFolder test code 삭제

* feat: mockdata 변경에 따른 로직 변경

* refactor: 중앙 스토어에서 로직 분리

* design: treePageWrapper css 변경

* feat: shift + click시에 active가 부모 폴더가 다르면 초기화

* feat: 다른 폴더간 이동 구현

* chore: 테스트코드 예제 삭제

* refactor: reorderFolderInSameParent 함수명 수정

* refactor: SelectedFolderListType으로 대체

* refactor: handleClick 함수 분리

* chore: tree 컴포넌트를 components 폴더로 이동

* [FEAT] 공통 테마에 jsdoc 추가 (#354)

* [FIX] drag & drop 후 정렬 변경 (#360)

* fix: drag & drop 후 정렬 변경

* refactor: isSameParentFolder parameter 변경(동일한 값)

* [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365)

* design: 작업 전 디자인 변경

* design: CreateFolderInput 디자인 추가

* feat: 폴더 생성 UI 구현

* design: FolderTree 전체적인 레이아웃 변경

* design: 폴더 트리 디자인 개선

* feat: CreateFolderInput 생성시 focus 이동

* design: createFolderInputLayout 디자인 변경

* [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367)

* feat: CreateFolderInput, FolderInput 컴포넌트로 추출

* design: 공통 테마 사이즈 추가

* chore: PORTAL_CONTAINER_ID 상수로 변경

* feat: 폴더 이름 변경 UI 및 로직 연결

* feat: 우클릭시에 포커스되는 폴더 변경

* [FEAT]: 삭제 UI 및 로직 추가 (#369)

* [CI/CD] nextjs docker image 사이즈 감소 (#380)

* [FEAT] Folder API 연결 (#399)

* chore: api 변경에 따른 스키마 업데이트

* feat: 폴더 관련 api 타입 지정

* refactor: api 변경에 따른 타입 변환

* feat: top level error 추가

* feat: folder crud api 추가

* chore: api 변경에 따른 타입 변경

* feat: 폴더 드래그 앤 드랍 api 연결

* feat: 폴더 이름 변경 api 연결

* feat: 휴지통 이동 api 연결

* refactor: -1 매직넘버 상수로 변경

* chore: mockdata 삭제

* chore: re-resizable 의존성 설치

* faet: FolderTree 크기 조정 가능하게 변경

* chore: api 변경에 따른 타입 최신화

* feat: createFolder api 연결

* refactor: getFolders, getBasicFolders 로 함수명 변경

* reafactor: getRootFolderList로 변경

* [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)

* feat: 라우팅 설정 변경

* chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단

* chore: legacy 삭제

* feat: 폴더 클릭시마다 라우팅 이동

* feat: useTreeStore subscribeWithSelector 적용

* refactor: FolderInfoItem 컴포넌트 분리

* feat: url을 이용해 folder 선택하게 변경

* feat: route 경로 추가

* feat: middleware redirect url 변경

* feat: 휴지통 및 미분류 폴더 추가

* design: 최초 로딩시에 사이드바 사이즈 지정

* design: 사이드바 디자인 조정

* chore: 쓰지 않는 props 제거

* refactor: useEffect 함수명 추가

* [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)

* chore: 중간 작업 공유

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링

* feat: 기존 로직에서 미사용하는 필터 제거

* feat: dndTreeStore 병합 작업

* [FEAT] 검색창 자동 완성 (#418)

* refactor: PrefixTokenizer 구현 수정

* refactor: PrefixTokenizer 구현 수정

* feat: 검색 위젯 토큰화 구현

* chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋)

* feat: 토큰 검색창 CSS 설정

* chore: 일부 주석 추가 및 코드 위치 변경

* chore: yarn.lock 파일 커밋

* [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)

* chore: 백엔드 api 타입 최신화

* chore: util 스펠링 정확하게 변경

* feat: pickType 추가

* feat: getPicksByFolderId 추가

* refactor: viewTemplate 코드 변경

* refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출

* chore: git pull을 위한 커밋

* refactor: pickCardListViewer로 PickCard 컴포넌트 이동

* design: card link style 변경

* feat: 더블 클릭시 링크 이동

* feat: dnd가 가능한 list와 그렇지 않은 list분리

* refactor: dnd여부에 따라 PickListViewer분리

* refactor: DnDCurrentType을 dnd.type으로 이동

* refactor: 공통 utils함수로 추출

* feat: 픽에서 픽으로 이동(api 미연결)

* feat: pick multi-select 구현

* feat: multi-select drag&drop 구현(api 미연결)

* feat: 같은 폴더 내 픽 drag&drop api 연결

* [FIX] 깃허브 액션 API 테스트

* [FIX] 검색창 버그 수정 및 URL 업데이트 (#424)

* :rotating_light: fix: useSearchParams 사용처에 <Suspence> 추가

* [DESIGN] 폴더 영역 디자인 개선 (#430)

* [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)

* refactor: draggable type에 따라 검증 함수 분리

* chore: store barrel export 추가

* feat: pick to folder를 위한 dnd context 생성

* fix: dnd context 변경에 따른 로직 변경

* refactor: 컴포넌트명 변경

* refactor: useGetDndContextSensor로 로직 분리

* fix: 로직에 따라 pickId 문자열 대신 정수로 수정

* feat: PickDraggableObjectType에 부모 폴더 id 추가

* feat: 드래깅하는 카드 정보 store에 추가

* feat: pick to pick 시 overlay 카드 생성

* feat: folder drag시 folder overlay 보이도록 변경

* design: 카드 드래그 시 크기 줄이기

* feat: pick to folder drag over시 폴더 색상 변경

* refactor: movePicksToEqualFolder로 함수명 변경

* feat: 휴지통 및 미분류로 픽 이동 감지

* feat: 다른 폴더로 픽 이동 로직 추가

* feat: 폴더 디테일 페이지 뷰 연결

* feat: �휴지통 페이지 카드 렌더링

* [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)

* fix: DragOver 개선

* refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경

* [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)

* fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트

* design: 드래그시 outline 제거

* [FEAT] 로그인 리다이렉트 URL 추가 (#450)

* chore: sample 대신 관용적으로 사용되는 example로 변경

* feat: 로그인 redirect url 추가

* ci/cd: github Actions secrets 추가 및 적용

* [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)

* feat: 익스텐션 로그인 페이지 디자인 변경

* chore: 백엔드 타입 최신화

* chore: 백엔드 타입 최신화

* refactor: type은 types폴더로 이동

* chore: 백엔드 타입 최신화

* refactor: api 호출 함수 변경

* refactor: api url 상수로 관리

* feat: barrel export에서 값과 함수 제거

* refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동

* refactor: toast 관련 함수 lib 폴더로 이동

* refactor: store는 store폴더로 이동

* chore: 사용하지 않는 타입 제거

* refactor: util함수 util 폴더로 이동

* refactor: 페이지 폴더 제거

* refactor: 컴포넌트는 컴포넌트 폴더로 이동

* fix: returnErrorFromHTTPError에 await 문구 추가

* chore: 백엔드 api 변경에 따른 타입 변경

* [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)

* [fix] 픽 검색 API 페이지네이션 적용 (#460)

* chore: 무한스크롤 라이브러리 추가

* chore: 무한스크롤 라이브러리 추가

* feat: 무한 스크롤 구현

* chore: pick 조회 스토어 함수 수정

* chore: 불필요한 코드 수정

* [FEAT] radix-color 추가 (#462)

* feat: radix-color 추가

* chore: radix-color 추가 변경사항 적용

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* [DESIGN] 검색 바 디자인 개선 (#463)

* chore: route 변수 수정

* feat:  breadcrumb 적용

* chore: 기타 스타일링

* chore: 입력창 스타일링

* feat: 무한 스크롤 다듬기 작업

* feat: 검색창 변수 수정

* fix: useSearchParams는 suspense로 반드시 감싸야 한다.

---------

Co-authored-by: dmdgpdi <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Minky <[email protected]>

* [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)

* feat: 익스텐션 아이콘 추가

* feat: 로그인 로고 변경

* feat: 북마크 페이지 아이콘 변경 및 링크로 이동

* chore: 오타 수정

* feat: theme 추가

* feat: 메모 제거

* feat: 로그인 페이지 삭제

* chore: radix select 설치

* feat: 폴더 선택 select 간단한 컴포넌트 구현

* feat: createPick시에 폴더 선택 기능 구현

* feat: update시에도 폴더 선택 기능 추가(api 미연결)

* feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동

* feat: 로딩 화면 추가

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [DESIGN] 익스텐션 디자인 변경 (#479)

* chore: title 설정

* chore: 아이콘 변경 및 안쓰는 아이콘 제거

* feat: radix-ui 의존성 설치

* design: 테마 추가

* design: globalStyle a tag 제거

* design: TagPicker 디자인 변경

* refactor: numberToRandomColor 변경

* design: folder select 디자인 변경

* design: TagPicker placeholder 추가

* design: ThumbnailImage css 변경

* design: CreatePickForm 변경

* feat: BookmarkHeader 제거

* feat: useCalculateCommandListHeight 삭제

* design: 업데이트 및 로딩 화면 디자인 변경 적용

* design: 로딩 화면 변경 적용

* refactor: loginGuard 로직 변경

* feat: FolderSelect 화살표 이동 추가

* chore: 사용하지 않는 헤더 삭제

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)

* feat: 에러 메세지 명세

* feat: error 메세지 명세

* feat: 폰트 적용 방식 변경

* chore: react-router-dom 버전 변경

v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* [�FEAT] 익스텐션 배포 전, 수정 (#489)

* fix: 디자인 변경

* chore: 익스텐션에서 사용하지 않는 의존성 제거

* fix: 휴지통 보이지 않게 하기

* feat: 서버 에러시 toast 알림

* feat: 정상 동작 시 창닫기

* feat: error message 추가

* feat: 폴더 최신순 정렬

* design: 색 추가 및 적용

* design: 인풋 디자인 변경

* feat: font 재적용

* fix: http로 시작하지않으면 저장 안되게 수정

* fix: update시에 폴더 추가

* design: footer 디자인 추가

* docs: manifest.json description 추가

* hotfix: 익스텐션 design 변경

* fix: zip파일 제거

* [CICD] AWS 배포 CICD 구축 (#494)

* refactor: ApiFolderErrorCode 오타 수정 (#468)

* [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)

* refactor: FolderType label 수정

* refactor: 파라미터 idList -> pickIdList 명시적으로 변경

* refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결

* refactor: root folder 검색 못하도록 예외 처리

* refactor: pick controller 메서드명 수정

* refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현

* refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가

* refactor: 테스트 코드 작성

* refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)

* [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)

* refactor: 불필요한 초기값 제거

* fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생

* fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가

* fix: 기능 변경에 의한 테스트 코드 수정

* fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생

* refactor: 파라미터명 명확하게 수정 idList -> folderIdList

* feat: 폴더 응답에 생성 수정 일자 추가 (#485)

* cicd: aws 배포 action 추가

---------

Co-authored-by: Sangwon Yang <[email protected]>

* [FEAT] 에러 요청에 대한 로깅 구현 (#481)

* feat: error request logging 구현

* feat: 기존 예외처리 로직에 요청 로깅 추가

* chore: 주석 추가

* fix: 로깅 방식 변경 - application.log에 sql 로깅 제외

* fix: 누락된 로깅 로직 추가

* [fix] refetch 검색 안되는 문제 해결 (#496)

* [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)

* feat: PickRenderModeState 구현

* feat: PickRecordListLayout 컴포넌트 구현

* feat: PickCard대신 PickRecord 렌더링으로 변경

* feat: usePickRenderModeStore 의존성 제거

* �[FEAT] 폴더 export 기능 구현 (#504)

* feat: 폴더 export 기능 구현

* feat: url 수정

* [DESIGN] 디자인 변경 (#500)

* [FEAT] 파비콘 추가 및 title 변경 (#503)

* [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)

* refactor: 픽 제목 최대 길이 제약조건 추가

* feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가

* refactor: bean validation 예외 상세하게 반환하도록 수정

* refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결

* fix: title이 null일 때 터지는 오류 해결

* fix: && 문법 오류 수정

* [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)

* refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결

* refactor: pick unique index title 제거

* refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리

* refactor: 불필요한 메서드 제거 및 메서드명 변경

* refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가

* refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음.

* refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경

* refactor: 메서드명 수정

* refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결

* refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화

* [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)

* feat: PickRecord에서 PickListItem 분리

* r…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat 기능 frontend 프론트 관련
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants