Skip to content

Commit

Permalink
v1.1.1 QA 진행 (#73)
Browse files Browse the repository at this point in the history
* v1.1.0 업데이트 (#70)

* feat: add develop cd workflow trigger event

* v1.0.0 업데이트 (#60)

* FU-58 chore: set project and basic tools (#1)

* FU-58 chore: set ESlint and prettier

* FU-58 chore: set husky

* FU-58 docs: add pull request template

* [FU-53] feat: connect kakao OAuth (#2)

* FU-53 feat: set app router basis architecture

* FU-53 feat: add kakao provider by next-auth

* FU-53 chore: clear git cache

* FU-53 feat: connect to kakao login at main page

* FU-53 chore: edit eslint rules

* FU-53 feat: modify oauth method

* FU-53 feat: remove next-auth

* FU-53 feat: set svg usage with @svgr

* FU-53 feat: apply kakao login design system

* [FU-76] feat: construct header layout at photographer page (#5)

* FU-76 feat: add root layout with photographer header

* FU-76 feat: add header components

* [FU-84] feat: set api request core (#3)

* FU-84 feat: add middleware for handle redirect

* FU-84 chore: edit lint rule to accept console.error

* FU-84 feat: add basic error handling page

* FU-84 feat: set return-fetch

* FU-84 feat: redirect to backend at OAuth

* FU-84 style: remove unnecessary comment

* FU-84 style: add TODO comment

* FU-84 refactor: set api base url at env

* [FU-74] feat: add product create form (#4)

* FU-74 feat: add product create page

* FU-74 feat: declare custom product types

* FU-74 feat: add basic information inputs in create product

* FU-74 feat: add product items form field array

* FU-74 feat: add common button components

* FU-74 feat: add product options form field array

* FU-74 feat: use conditional input at product item description

* FU-74 feat: add product images input

* FU-74 feat: add product discounts form field array

* FU-74 feat: change default value of product form

* [FU-81] feat: add product list at mypage (#6)

* FU-81 refactor: group product form components

* FU-81 feat: set mantine UI

* FU-81 feat: add product banner

* FU-81 feat: add product list

* FU-81 refactor: put product lists at containers

* FU-81 style: add TODO comment

* FU-81 feat: change product status titles

* [FU-103] feat: add customer products page (#7)

* FU-103 refactor: modify app router structures

* FU-103 feat: add layouts for each parts

* FU-103 feat: add customer side main page

* FU-103 feat: add profile area at customer main

* FU-103 feat: add customed links at customer main

* FU-103 feat: add customer product page

* FU-103 feat: add products page header

* FU-103 feat: check current product id at product page

* FU-103 feat: set layout at customer product page

* FU-103 feat: add products information components

* FU-103 feat: connect customer main page to product info page

* FU-103 style: add TODO comments

* [FU-80] feat: set photographer mypage layout (#8)

* FU-80 feat: add navbar at photographer layout

* FU-80 feat: add preparing notice page

* FU-80 feat: connect side navbar to pages

* FU-80 feat: use current path at navbar

* FU-80 fix: fix src of header link

* FU-80 feat: set navbar position at mypage

* FU-80 chore: edit tsconfig.json

* [FU-128] feat: add token based authentication (#10)

* FU-128 feat: set cookies when login requested

* FU-128 feat: set redirection page to identify user type

* FU-128 feat: set middleware to check authentication status

* FU-128 feat: set customed user types

* FU-128 refactor: define cookie key value pairs as constants

* FU-128 feat: add cookie actions

* FU-128 fix: change base url to service domain

* FU-128 fix: use localstorage to save tokens

* FU-128 feat: add post user role type after login

* FU-128 chore: test commit

* FU-128 chore: test commit

* FU-128 feat: seperate user manage logic from server

* FU-128 chore: add zustand for global state management

* FU-128 feat: set photographer url at userInfo

* FU-128 feat: typing Promise

* FU-128 feat: add retry interceptor

* FU-128 refactor: remove unused codes

* FU-128 feat: add error handling at token reissue

* FU-128 fix: fix wrong redirect URL

* FU-128 fix: add catch to error handling

* [FU-75] feat: post new product (#9)

* FU-75 feat: connect to product/post

* FU-75 feat: modify product discount interface

* FU-75 fix: add product option description input

* FU-75 refactor: change Image type from file to url

* FU-75 feat: move to main after add new product

* FU-75 fix: change api request path and body

* [FU-106] feat: create reservation (#11)

* FU-106 feat: add reservation form

* FU-106 feat: add global fontface Pretendard

* FU-106 feat: add masonry layout

* FU-106 feat: add selected images viewer

* FU-106 feat: add bottom button

* FU-106 feat: register selected images to form

* FU-106 feat: connect to reservation submit page

* FU-106 feat: connect to reservation submit page

* FU-106 feat: use generic type at text input

* FU-106 feat: add disabled input

* FU-106 feat: add schedule input component

* FU-106 feat: styling add button

* FU-106 feat: extend close buttons for schedule input

* FU-106 feat: set submit page layout

* FU-106 feat: add option form part

* FU-106 feat: add request form part

* FU-106 feat: add multiline text input

* FU-106 feat: add modals using parallel routes

* FU-106 refactor: group form parts

* FU-106 feat: add DatePicker from mantine

* FU-106 feat: separate schedule modal

* FU-106 feat: add customed time input

* FU-106 refactor: separate schedule controller

* FU-106 feat: style submit button

* FU-106 feat: handle add new schedule

* FU-106 feat: connect ScheduleInput to formField

* FU-106 feat: add edit schedule modal

* FU-106 fix: fix type error

* FU-106 feat: add common dropdown component

* FU-106 feat: share referenceImage form value between pages

* FU-106 feat: connect dropdown to option form field

* FU-106 feat: add count controller

* FU-106 feat: add option controller

* FU-106 feat: add total price area

* FU-106 feat: common checkbox component

* FU-106 feat: control agreement form values

* FU-106 feat: get reservation form

* FU-106 feat: add disabled state of dropdown

* FU-106 feat: get product reference images

* FU-106 feat: add parsers

* FU-106 feat: post reservation

* FU-106 fix: fix FormType field name typo

* [FU-129] feat: add product list and details page (#12)

* FU-129 fix: solve npm dependency conflict from @mantine

* FU-129 feat: add customer side product part header

* FU-129 chore: add type checking script

* FU-129 refactor: group server side service logics

* FU-129 feat: get product list

* FU-129 feat: add product list at customer page

* FU-129 refactor: move customer side info containers

* FU-129 feat: publish customer product information page

* FU-129 feat: get product details

* FU-129 feat: custom @mantine/carousel

* FU-129 fix: solve type error

* FU-129 style: fix lint warning

* FU-129 feat: add header layout at product reservation pages

* FU-129 fix: solve type error of reservation form type

* [FU-152] feat: publish prototype version (#13)

* FU-152 feat: connect photographer url to UserData

* FU-152 feat: get product list at photographer side

* FU-152 feat: add client side http instance

* FU-152 feat: post new product

* FU-152 feat: put product status

* FU-152 feat: publish customer main page

* FU-152 feat: publish photographer header

* FU-152 feat: publish photographer mypage navbar

* FU-152 feat: publish photographer mypage product list

* FU-152 feat: publish new product form container

* FU-152 feat: publish product form fields

* FU-152 feat: add switch item component

* FU-152 feat: add common toast notification

* FU-152 feat: add loading UI

* FU-152 refactor: remove unnecessary styles

* FU-152 feat: remove temporary variant

* FU-152 fix: solve build error at mypage product page

* FU-152 fix: error handling at product list data fetching

* [FU-155] feat: client side token management (#15)

* FU-155 feat: request kakao oauth authorization

* FU-155 feat: add route handler for issuing tokens

* FU-155 feat: add bearer header by beforeRequest interceptor

* FU-155 feat: complete login flow

* FU-155 feat: add client side http instance interceptor hooks

* FU-155 refactor: separate server side http instance interceptors

* FU-155 refactor: remove unnecessary export

* FU-155 feat: add auth route handler

* [FU-180] �create ci workflow (#18)

* FU-180 feat: Create ci_workflow_dev.yml

* FU-180 fix: fix issue

* [�FU-158] feat: previous feature complement (#19)

* FU-158 fix: solve return type error at auth route handler

* FU-158 feat: reorganize post reservation request body

* FU-158 refactor: group photographer containers

* FU-158 feat: add common request header

* FU-158 fix: parse result message from response body

* FU-158 feat: publish photographer login page

* FU-158 feat: publish login page background and button

* FU-158 feat: add representative image at new product

* FU-158 feat: set common handler

* FU-158 refactor: seperate common logic at interceptors

* [FU-120] feat: add photographer reservation list (#20)

* FU-120 feat: add view slider

* FU-120 feat: add search component

* FU-120 feat: filter reservation list by product

* FU-120 feat: add mypage navbar at header

* FU-120 feat: add responsible text style sprinkles

* FU-120 refactor: apply responsive text styles

* FU-120 feat: add reservation list card

* FU-120 feat: add status list

* FU-120 feat: controll main page view

* FU-120 feat: add reservation list view

* FU-120 feat: get reservation list

* FU-120 feat: add responsive layout at main page

* FU-120 feat: add responsive reservation list

* FU-120 feat: remove dummy data

* FU-120 feat: change ReservationList from async function

* FU-120 resolve merge conflict with develop

* FU-120 refactor: adjust to new design system

* FU-120 fix: solve type error

* [FU-157] feat: validate form about product and reservation (#16)

* FU-157 feat: include zod for form validation

* FU-157 feat: add product form schema

* FU-157 feat: add error message

* FU-157 feat: validate product items

* FU-157 feat: validate product options

* FU-157 feat: validate product discounts

* FU-157 refactor: delete deprecated files

* FU-157 feat: add disable state of bottom button

* FU-157 refactor: remove unused submit handler

* FU-157 feat: validate reference image list

* FU-157 feat: add resolver at customer reservation form

* FU-157 feat: validate by maxlength of text field

* FU-157 feat: validate description by maxlength

* FU-157 fix: fix wrong validation at product option price

* [FU-114] feat: add reservation details page (#21)

* FU-114 feat: get reservation details

* FU-114 feat: add responsible layout at common handler

* FU-114 feat: add type-safe field component

* FU-114 feat: add status viewer component

* FU-114 feat: arrange reservation type module

* FU-114 feat: add customer info part

* FU-114 feat: add reservation title part

* FU-114 refactor: set common section layout

* FU-114 feat: add photo details part

* FU-114 feat: add schedule details part

* FU-114 refactor: group detail fields

* FU-114 feat: add image details part

* FU-114 feat: add images full view component

* FU-114 feat: add request details part

* FU-114 refactor: group detail section

* FU-114 feat: set reservation detail page layout

* FU-114 feat: add customed button based on design system

* FU-114 feat: modify login request roleType format

* FU-114 feat: add reservation confirm section

* FU-114 feat: extend reservation status type

* FU-114 feat: add common chip component

* FU-114 feat: add photographer memo part

* FU-114 feat: add details page layout

* FU-114 feat: add login request error handler

* FU-114 feat: put new reservation status

* FU-114 feat: add disabled button style

* FU-114 feat: add responsive layout

* FU-114 feat: delete dummy data

* FU-114 feat: connect image list to form data

* FU-114 feat: use route params at reservation status update

* FU-114 feat: edit status information

* FU-114 refactor: extract Object.entries method

* [FU-200] feat: add logout (#24)

* FU-200 fix: fix header dropdown list link

* FU-200 feat: add logout handler

* FU-200 fix: fix login request interceptor

* FU-200 feat: add logout response handler

* FU-200 feat: add responsive header

* FU-200 fix: delete tokens only on logout success

* FU-200 fix: fix handling invalid tokens

* [FU-184] feat: view photographer profile at customer side (#22)

* FU-184 feat: add responsive root layout at customer side

* FU-184 feat: publish profile bottom sheet

* FU-184 feat: get photographer profile

* FU-184 feat: add bottom sheet ui

* FU-184 feat: add logo at photographer profile page

* [FU-185] feat: edit photographer profile (#25)

* FU-185 feat: publish mypage base layout

* FU-185 feat: get current profile of photographer

* FU-185 feat: use common ui component

* FU-185 feat: add profile edit page layout

* FU-185 feat: add basic profile edit

* FU-185 feat: add link info edit

* FU-185 feat: add profile preview

* FU-185 feat: handle image change by file

* FU-185 feat: put changed profile

* FU-185 feat: block interaction of profile preview

* FU-185 feat: adjust photographer side layout

* FU-185 feat: add responsive mypage layout

* FU-185 feat: add responsive profile edit page

* FU-185 feat: validate photographer profile

* FU-185 refactor: delete unused pages

* FU-185 chore: set environment variables at ci workflow

* FU-185 feat: switch placeholder at profile edit page

* FU-185 feat: notify link append disablity

* [FU-117] feat: view reservation details at customer side (#23)

* FU-117 feat: extend reservation type module

* FU-117 feat: get reservation detail at customer side

* FU-117 refactor: common reservation status component

* FU-117 feat: add current status part

* FU-117 feat: add reservation informatios part

* FU-117 feat: parce price string

* FU-117 feat: add message toast

* FU-117 feat: redirect to reservation detail page after submit reservation

* FU-117 fix: solve type error

* FU-117 feat: add day string at customer reservation details page

* [FU-178] feat: add photographer join page (#26)

* FU-178 feat: add profile edit at join page

* FU-178 feat: add agreements at join page

* FU-178 feat: post new photographer profile

* FU-178 feat: add header for unauthorized user

* FU-178 feat: add responsive join page

* FU-178 fix: initialize input element's value after register

* FU-178 feat: handling post request failed

* [FU-204] feat: cancel reservation at customer side (#27)

* FU-204 feat: cancel reservation at customer side

* FU-204 feat: modify reservation status type

* FU-204 feat: remove dummy data

* [FU-222] fix: use formdata at request registering new images (#29)

* FU-222 fix: remove content type header at multipart request

* FU-222 refactor: remove unused import

* FU-222 fix: switch content type of post product request

* FU-222 fix: switch content type of put profile request

* FU-222 fix: fix file data managing

* FU-222 chore: remove solved comment

* [FU-220] feat: add service footer (#31)

* FU-220 feat: add service footer component

* FU-220 feat: set photographer side layout with service footer

* FU-220 feat: set customer side layout with service footer

* FU-220 feat: set login page layout with service footer

* FU-220 feat: connect login page for each roleType

* [FU-234] fix: keep userdata after login (#32)

* FU-234 fix: switch storage for user data

* FU-234 fix: fix photographer header UI

* FU-234 feat: remove scope parameter at kakao login request

* FU-234 feat: remove deprecated hook

* FU-234 chore: fix package vulnerability

* [FU-235] 서버 배포 자동화 (#30)

* FU-61 feat: cd_workflow_dev.yml 추가

* FU-61 feat: appspec.yml 추가

* FU-61 feat: start.sh 추가

* �FU-61 feat: stop.sh 추가

* FU-61 feat: 로깅 스크립트 추가

* FU-61 fix: 오타 수정

* FU-235 feat: 환경변수 설정 추가

* FU-235 feat: 빌드 파일 실행 스크립트 변경

* FU-235 feat: 서버 종료 권한 강화

* FU-235 feat: 프로세스 삭제 조건 변경

* FU-235 현재 브랜치에서 체크아웃하여 빌드 파일을 포함시키는 step 추가

* FU-235 feat: stop.sh 수정

* FU-235 appspec.yml 수정

* �FU-235 workflow 수정

* FU-235 현재 브랜치에서 체크아웃하여 빌드 파일을 포함시키는 step 추가

* FU-253 feat: appspec.yml 수정

* FU-235 feat: start.sh 수정

* FU-235 feat: workflow 수정

* FU-235 feat: appspec.yml 수정

* FU-235 feat: workflow 수정

* FU-235 feat: workflow 수정

* FU-235 fix: 오타수정

* �FU-235 workflow 수정

* FU-235 feat: workflow 수정

* Update cd_workflow_dev.yml

* FU-235 feat: workflow 수정

* FU-235 feat: stop.sh 수정

* FU-235 feat: appspec.yml 수정

* FU-235 feat: start.sh 수정

* FU-235 feat: download_from_s3.sh 추가

* FU-235 feat: download_from_s3.sh 수정

* FU-235 feat: unzip.sh 추가

* FU-235 feat: appspec.yml 수정

* FU-235 feat: workflow 수정

* �FU-235 feat: appspec.yml 수정

* FU-235 feat: update appspec.yml

* FU-235: feat: pull_request 이벤트 트리거 삭제

* FU-235 feat: download_from_s3.sh 삭제

* �FU-235 feat: unzip.sh 삭제

---------

Co-authored-by: 이유리 <[email protected]>

* [FU-255] feat: replace photographerId with profileName (#33)

* FU-255 feat: declare page parameters

* FU-255 feat: declare common route parameters

* FU-255 feat: adjust variables using dynamic route parameters

* FU-255 feat: set photographer url using profile name

* FU-255 feat: post profile name at join

* FU-255 feat: modify photographer profile interface

* FU-255 feat: adjust path variable names used at api request

* FU-255 feat: change encoding type of join form

* FU-255 chore: add env at cd workflow

* FU-255 feat: remove solved TODO comment

* FU-255 fix: include missing fields at reservation form schema

* FU-255 fix: solve type error

* FU-235 feat: start.sh 수정

* chore: add ecosystem

* [FU-258] 배포 자동화 스크립트 버그 픽스 (#34)

* FU-258 feat: start.sh 수정

* FU-258 feat: pr 이벤트 트리거 임시 추가

* Update start.sh

* FU-258 fix: 오탈자 수정

* FU-258 fix: 스크립트 파일 수정

* FU-258 feat: appspec.yml 수정

* FU-258 feat: stop.sh 수정

* FU-258 feat: stop.sh 수정

* �FU-258 feat: stop.sh 수정

* FU-258 feat: appspec.yml 수정

* FU-258 feat: appspec.yml 수정

* FU-258 feat: cd_workflow_dev.yml 수정

* FU-258 feat: cd_workflow_dev.yml 수정

* FU-258 feat: stop.sh 수정

* FU-258 feat: stop.sh 수정

* FU-258 feat: stop.sh 수정

* FU-258 feat: stop.sh 수정

* FU-258 feat: stop.sh edit

* FU-258 chore: stop.sh 로그 추가

* FU-258 fix: cd 경로 수정

* FU-258 chore: log 파일 절대경로로 변경

* FU-258 feat: appspec.yml 수정

* FU-258 fix: stop.sh 실행중인 프로세스에 대한 분기처리 수정

* FU-258 chore: stop.sh 로그 추가

* FU-258 chore: 로그 출력문 수정

* FU-258 feat: appspec.yml 수정

* FU-258 feat: appspec.yml 수정

* Update appspec.yml

* �FU-258 workflow 수정

* FU-258 chore: start.sh 로그 구체화

---------

Co-authored-by: eujin-shin <[email protected]>
Co-authored-by: 이유리 <[email protected]>

* [FU-259] fix: set request content type (#35)

* FU-259 fix: add default content type as application/json

* FU-259 fix: use json option instead of body

* FU-259 fix: fix photographer url format

* FU-259 fix: fix customer side main page UI

* FU-259 feat: add onboarding header

* [FU-263] feat: add agreements (#38)

* [FU-221] feat: connect google analytics (#39)

* [FU-225] feat: set metadata (#36)

* FU-225 feat: set metadata

* FU-225 refactor: change favicon route

* [FU-247] feat: common error handling (#40)

* FU-247 feat: add customed error

* FU-247 feat: add common error handler

* FU-247 feat: use common error handler at async request

* FU-247 fix: authentication error handling

* FU-247 refactor: separate onboarding pages at router

* FU-247 refactor: change favicon route

* FU-247 feat: add image domains

* FU-247 fix: fix image common style

* FU-247 fix: fix image common style

* [FU-218] feat: product manage (#37)

* FU-218 feat: add product delete

* FU-218 feat: adjust product list page UI

* FU-218 refactor: group product form to reuse in product details page

* FU-218 feat: adjust new product page

* FU-218 fix: send product id at formbase request

* FU-218 feat: manage image as customed form image

* FU-218 feat: expand product form as product detail viewer

* FU-218 feat: get current product details

* FU-218 feat: put updated product details

* FU-218 feat: add responsive product details page

* FU-218 feat: seperate post form submit logic

* FU-218 fix: solve type declare error at product type module

* FU-218 feat: edit data type about image list

* FU-218 fix: switch max image count at product register

* FU-218 feat: adjust response body about put product details

* [FU-205] feat: view previous reservation list (#28)

* FU-205 feat: get previous reservation list with search params

* FU-205 feat: use keyword search parameter

* FU-205 feat: add filter controlling search parameters

* FU-205 feat: add previous reservation cards

* FU-205 chore: add service s3 domain as image source

* FU-205 feat: add previous reservation viewer

* FU-205 feat: add suspense at previous reservation data fetching

* FU-205 feat: trigger data fetching on search params change

* FU-205 feat: add responsive layout at previous reservation list

* FU-205 feat: adjust response body

* FU-205 feat: add initial data

* FU-205 fix: adjust status query parameters format

* FU-205 fix: fix image cover styling

* FU-205 feat: allow single date select at previous reservation filtering

* [FU-266] fix: bug fix (#41)

* FU-266 fix: fix path variable

* FU-266 fix: instagram id field disability

* FU-266 fix: set object-fit at image style

* FU-266 fix: reference image select UI

* FU-266 fix: fix logout handler

* FU-266 fix: refresh after update current profile

* FU-266 feat: open new tab for external link

* FU-266 fix: edit id validation about user id

* FU-266 feat: set minimum length at reservation reference image

* FU-266 fix: style disabled bottom button

* FU-266 chore: solve confilct

* [FU-261] feat: adjust fields of product and reservation (#42)

* FU-261 fix: move product detail page to router group with header layout

* FU-261 feat: delete product at any status

* FU-261 feat: use response handler at product request

* FU-261 feat: use schedule modal from @mantine

* FU-261 refactor: delete deprecated modal

* FU-261 feat: adjust reservation form structure

* FU-261 refactor: remove filename at form image interface

* FU-261 feat: upload new image as reference image

* FU-261 feat: disable wheel event handler at price inputs

* FU-261 feat: add basic price field at product register

* FU-261 feat: connect basic price field at product detail page

* FU-261 feat: connect basic price field at customer side

* FU-261 feat: get representative image at photographer side product list

* FU-261 feat: add basic price and shooting date field at reservation details

* FU-261 feat: add handler at reservation status change

* FU-261 feat: change shooting date of reservation

* FU-261 feat: edit text for status change button

* FU-261 feat: view basic price and shooting date at customer reservation detail page

* FU-261 feat: add warning message for product image register

* FU-261 fix: fix UI

* FU-261 fix: get total price including basic price

* FU-261 fix: remove deprecated modal

* FU-261 feat: add boundary to shooting date select

* FU-261 feat: modify reference image and price UI

* [FU-273] fix: clean old files before install (#44)

* FU-273 fix: clean old files before install

* FU-273 feat: not trigger cd workflow at pull request

* [FU-262] feat: redirect by middleware (#43)

* FU-262 feat: set user role at login

* FU-262 feat: login pages responsive UI

* FU-262 fix: seperate redirect destination of header

* FU-262 feat: redirect by access token and roletype at middleware

* FU-262 feat: set redirect url after customer login

* FU-262 feat: login error page UI

* FU-262 refactor: login button prop interface

* FU-262 fix: redirect at photographer join page

* FU-262 refactor: refactor middleware

* [FU-271] feat: user modify (#45)

* FU-271 feat: request with existing image urls at put profile

* FU-271 feat: agree to user age

* FU-271 feat: replace checkbox component

* FU-271 feat: connect agreements page

* FU-271 feat: use constant agreement links at footer

* FU-271 feat: age agreement from customer

* FU-271 refactor: remove deprecated agreement components

* FU-271 feat: remove dummy data

* FU-271 fix: reset input element value after file select

* FU-271 feat: remove age agreement of user

* FU-271 fix: delete invalid token

* FU-271 feat: add guide about photographer profile name

* [FU-288] fix: user role setting (#46)

* FU-288 feat: edit handler for join failure

* FU-288 fix: set user role as photographer after join success

* FU-288 chore: edit cd workflow for testing

* FU-288 chore: edit cd workflow after test

* FU-288 feat: modify product details ui

* [FU-238] feat: connect sentry (#47)

* FU-238 feat: connect sentry

* FU-238 chore: set sentry token

* FU-238 feat: add customed error boundary

* FU-238 feat: capture error to sentry at global error boundary

* FU-238 feat: delete unused default files from sentry

* FU-238 refactor: cookie remove logic

* [FU-286] feat: filter reservation with product (#48)

* FU-286 feat: get product titles for filtering

* FU-286 feat: filter reservations by product

* FU-286 feat: seperate query boundary

* [FU-292] feat: write memo at reservation detail page (#51)

* FU-292 feat: put new reservation memo

* FU-292 feat: add submit memo handler

* FU-292 feat: add cancel button at memo

* FU-292 feat: adjust request body

* FU-292 feat: use form id as path variable

* [FU-250] feat: leave service (#50)

* FU-250 feat: add leave service at profile page

* FU-250 feat: request unlink

* FU-250 feat: add modal for leave reason

* FU-250 feat: delete tokens and user role after unlink

* FU-250 feat: select reason from examples

* [FU-290] feat: add photographer contact (#49)

* FU-290 feat: extend profile types with photographer contact

* FU-290 feat: add photographer contact at join

* FU-290 feat: edit contact at profile

* FU-290 feat: edit information text at profile page

* FU-290 feat: edit placeholder of contact

* FU-290 feat: check response and request body fields

* [FU-297] feat: add page at root url (#53)

* FU-297 feat: add root page

* FU-297 feat: replace default login page with root page

* FU-297 feat: add meta tag for search advisor

* FU-297 feat: remove deprecated login page

* [FU-298] fix: request for reservations (#54)

* FU-298 fix: add update status at cancel request

* FU-298 fix: add current status at put shooting date request

* FU-298 fix: maintain submit form instagram id if user modified

* FU-298 fix: accept time string format with second

* FU-298 refactor: remove unnecessary log

* FU-298 feat: change request url for shooting date

* FU-298 refactor: use constant for parse integer

* [FU-280] feat: add notice for product (#52)

* FU-280 feat: expand type for photographer notice

* FU-280 feat: add guide of photographer notice

* FU-280 feat: add component for edit notice

* FU-280 feat: add submit handler with zod resolver

* FU-280 feat: add temporal api requests

* FU-280 feat: add notice page at photographer side

* FU-280 feat: add notice page at customer side

* FU-280 feat: connect photographer notice page at reservation pages

* FU-280 fix: carousel responsive UI at product detail page

* FU-280 refactor: use default link as constants

* FU-280 feat: use notice instead of agreements

* FU-280 chore: reset packages at ci workflow

* FU-280 feat: request photographer notice

* FU-280 feat: connect profile name of photographer at customer reservation details

* FU-280 feat: add required notices

* FU-280 fix: fix default value of current notices

* FU-280 feat: modify accordion UI at notice edit page

* FU-280 feat: extend product type for notices

* FU-280 feat: get current notices at new product page

* FU-280 refactor: set notice constants

* FU-280 feat: write notices of product

* FU-280 feat: adjust request body of product details

* FU-280 fix: add option field array at product form

* FU-280 feat: add tabs at product details

* FU-280 refactor: seperate product basic info tab

* FU-280 feat: view notices at product details page

* FU-280 feat: remove service agreement

* FU-280 feat: agree to product notices at reservation submit

* FU-280 refactor: use notices list as common container

* FU-280 feat: adjust reservation detail response data

* FU-280 feat: view reservation notices

* FU-280 feat: remove dummy data

* FU-280 fix: solve build failure at conflict solving

* [FU-291] feat: add shooting place (#55)

* FU-291 feat: add place field at product

* FU-291 refactor: use information caption as common component

* FU-291 refactor: change field name of place input availability

* FU-291 feat: view and edit basic place

* FU-291 feat: input preferred place at reservation form

* FU-291 feat: add place fields at reservation

* FU-291 feat: view preferred place and shooting place at photographer side

* FU-291 feat: submit changes of reservation details

* FU-291 feat: modify confirm module UI

* FU-291 feat: view place fields at customer reservation details

* FU-291 fix: view basic place at reservation detail page

* FU-291 fix: change max bound for time

* FU-291 feat: change url for edit shooting info

* FU-291 fix: change field name for reservation notice

* �[FU-244] chore: set front server infra (#58)

* FU-244 feat: cd_workflow_prod.yml 추가

* FU-244 feat: cd_workflow_dev.yml 추가

* FU-244 feat: start.sh에서 빌드 스크립트 제거

* FU-244 feat: 프로젝트 빌드 스크립트 추가

* feat: 테스트 브랜치의 CI 트리거 추가

* FU-244: code deploy 배포 스크립트 수정

* FU-244 feat: 프로젝트 빌드 스크립트 삭제

* FU-244 feat: 프로젝트 빌드 스크립트 추가

* FU-244 feat: sentry 환경변수 추가

* FU-244 feat: release 브랜치에서 cd 워크플로우 진행

* �FU-244 feat: master 브랜치에서 CD플로우 진행 및 GA 환경변수 추가

* FU-244 fix: 중복 환경변수 제거

* FU-244 feat: dev-infra-test 브랜치 트래킹에 추가

* FU-244 feat: CI 트래킹 브랜치 업데이트

* FU-244 feat: CD 트래킹 브랜치 업데이트

* [FU-296] feat: enhance launching version UI (#56)

* FU-296 feat: remove service footer at customer main page

* FU-296 feat: product grid layout

* FU-296 feat: remove product discount

* FU-296 feat: adjust service UI for launch version

* FU-296 feat: set images for login page

* FU-296 feat: modify reservation detail page UI

* FU-296 feat: set accepted image file format

* FU-296 feat: add guide for image upload

* FU-296 feat: can add multiple images at new product page

* FU-296 feat: add guide for product notices

* FU-296 feat: change IN_PROGRESS status name

* FU-296 feat: scrollbar styling

* FU-296 fix: switch basic position of product

* FU-296 feat: modify styling of notice edit page

* FU-296 feat: modify edit profile page layout

* FU-296 feat: set redirect destination at photographer login

* FU-296 feat: connect service links

* FU-296 fix: style textarea at product notice

* FU-296 feat: delete back button at reservation detail page

* FU-296 feat: change link copy button text at reservation details

* FU-296 feat: change contact mail

* [FU-308] feat: send login event to google analytics (#59)

* feat: add develop cd workflow trigger event

---------

Co-authored-by: 정유석 <[email protected]>
Co-authored-by: 이유리 <[email protected]>

* Revert "v1.0.0 업데이트 (#60)" (#62)

This reverts commit 1abebf1a05b6d53971679d950dccfdd812b500ae.

* Revert "feat: add develop cd workflow trigger event"

This reverts commit 27b64704dafef3e008e3512864cd975b39ae5c62.

* v1.0.0 업데이트 (#63)

* FU-58 chore: set project and basic tools (#1)

* FU-58 chore: set ESlint and prettier

* FU-58 chore: set husky

* FU-58 docs: add pull request template

* [FU-53] feat: connect kakao OAuth (#2)

* FU-53 feat: set app router basis architecture

* FU-53 feat: add kakao provider by next-auth

* FU-53 chore: clear git cache

* FU-53 feat: connect to kakao login at main page

* FU-53 chore: edit eslint rules

* FU-53 feat: modify oauth method

* FU-53 feat: remove next-auth

* FU-53 feat: set svg usage with @svgr

* FU-53 feat: apply kakao login design system

* [FU-76] feat: construct header layout at photographer page (#5)

* FU-76 feat: add root layout with photographer header

* FU-76 feat: add header components

* [FU-84] feat: set api request core (#3)

* FU-84 feat: add middleware for handle redirect

* FU-84 chore: edit lint rule to accept console.error

* FU-84 feat: add basic error handling page

* FU-84 feat: set return-fetch

* FU-84 feat: redirect to backend at OAuth

* FU-84 style: remove unnecessary comment

* FU-84 style: add TODO comment

* FU-84 refactor: set api base url at env

* [FU-74] feat: add product create form (#4)

* FU-74 feat: add product create page

* FU-74 feat: declare custom product types

* FU-74 feat: add basic information inputs in create product

* FU-74 feat: add product items form field array

* FU-74 feat: add common button components

* FU-74 feat: add product options form field array

* FU-74 feat: use conditional input at product item description

* FU-74 feat: add product images input

* FU-74 feat: add product discounts form field array

* FU-74 feat: change default value of product form

* [FU-81] feat: add product list at mypage (#6)

* FU-81 refactor: group product form components

* FU-81 feat: set mantine UI

* FU-81 feat: add product banner

* FU-81 feat: add product list

* FU-81 refactor: put product lists at containers

* FU-81 style: add TODO comment

* FU-81 feat: change product status titles

* [FU-103] feat: add customer products page (#7)

* FU-103 refactor: modify app router structures

* FU-103 feat: add layouts for each parts

* FU-103 feat: add customer side main page

* FU-103 feat: add profile area at customer main

* FU-103 feat: add customed links at customer main

* FU-103 feat: add customer product page

* FU-103 feat: add products page header

* FU-103 feat: check current product id at product page

* FU-103 feat: set layout at customer product page

* FU-103 feat: add products information components

* FU-103 feat: connect customer main page to product info page

* FU-103 style: add TODO comments

* [FU-80] feat: set photographer mypage layout (#8)

* FU-80 feat: add navbar at photographer layout

* FU-80 feat: add preparing notice page

* FU-80 feat: connect side navbar to pages

* FU-80 feat: use current path at navbar

* FU-80 fix: fix src of header link

* FU-80 feat: set navbar position at mypage

* FU-80 chore: edit tsconfig.json

* [FU-128] feat: add token based authentication (#10)

* FU-128 feat: set cookies when login requested

* FU-128 feat: set redirection page to identify user type

* FU-128 feat: set middleware to check authentication status

* FU-128 feat: set customed user types

* FU-128 refactor: define cookie key value pairs as constants

* FU-128 feat: add cookie actions

* FU-128 fix: change base url to service domain

* FU-128 fix: use localstorage to save tokens

* FU-128 feat: add post user role type after login

* FU-128 chore: test commit

* FU-128 chore: test commit

* FU-128 feat: seperate user manage logic from server

* FU-128 chore: add zustand for global state management

* FU-128 feat: set photographer url at userInfo

* FU-128 feat: typing Promise

* FU-128 feat: add retry interceptor

* FU-128 refactor: remove unused codes

* FU-128 feat: add error handling at token reissue

* FU-128 fix: fix wrong redirect URL

* FU-128 fix: add catch to error handling

* [FU-75] feat: post new product (#9)

* FU-75 feat: connect to product/post

* FU-75 feat: modify product discount interface

* FU-75 fix: add product option description input

* FU-75 refactor: change Image type from file to url

* FU-75 feat: move to main after add new product

* FU-75 fix: change api request path and body

* [FU-106] feat: create reservation (#11)

* FU-106 feat: add reservation form

* FU-106 feat: add global fontface Pretendard

* FU-106 feat: add masonry layout

* FU-106 feat: add selected images viewer

* FU-106 feat: add bottom button

* FU-106 feat: register selected images to form

* FU-106 feat: connect to reservation submit page

* FU-106 feat: connect to reservation submit page

* FU-106 feat: use generic type at text input

* FU-106 feat: add disabled input

* FU-106 feat: add schedule input component

* FU-106 feat: styling add button

* FU-106 feat: extend close buttons for schedule input

* FU-106 feat: set submit page layout

* FU-106 feat: add option form part

* FU-106 feat: add request form part

* FU-106 feat: add multiline text input

* FU-106 feat: add modals using parallel routes

* FU-106 refactor: group form parts

* FU-106 feat: add DatePicker from mantine

* FU-106 feat: separate schedule modal

* FU-106 feat: add customed time input

* FU-106 refactor: separate schedule controller

* FU-106 feat: style submit button

* FU-106 feat: handle add new schedule

* FU-106 feat: connect ScheduleInput to formField

* FU-106 feat: add edit schedule modal

* FU-106 fix: fix type error

* FU-106 feat: add common dropdown component

* FU-106 feat: share referenceImage form value between pages

* FU-106 feat: connect dropdown to option form field

* FU-106 feat: add count controller

* FU-106 feat: add option controller

* FU-106 feat: add total price area

* FU-106 feat: common checkbox component

* FU-106 feat: control agreement form values

* FU-106 feat: get reservation form

* FU-106 feat: add disabled state of dropdown

* FU-106 feat: get product reference images

* FU-106 feat: add parsers

* FU-106 feat: post reservation

* FU-106 fix: fix FormType field name typo

* [FU-129] feat: add product list and details page (#12)

* FU-129 fix: solve npm dependency conflict from @mantine

* FU-129 feat: add customer side product part header

* FU-129 chore: add type checking script

* FU-129 refactor: group server side service logics

* FU-129 feat: get product list

* FU-129 feat: add product list at customer page

* FU-129 refactor: move customer side info containers

* FU-129 feat: publish customer product information page

* FU-129 feat: get product details

* FU-129 feat: custom @mantine/carousel

* FU-129 fix: solve type error

* FU-129 style: fix lint warning

* FU-129 feat: add header layout at product reservation pages

* FU-129 fix: solve type error of reservation form type

* [FU-152] feat: publish prototype version (#13)

* FU-152 feat: connect photographer url to UserData

* FU-152 feat: get product list at photographer side

* FU-152 feat: add client side http instance

* FU-152 feat: post new product

* FU-152 feat: put product status

* FU-152 feat: publish customer main page

* FU-152 feat: publish photographer header

* FU-152 feat: publish photographer mypage navbar

* FU-152 feat: publish photographer mypage product list

* FU-152 feat: publish new product form container

* FU-152 feat: publish product form fields

* FU-152 feat: add switch item component

* FU-152 feat: add common toast notification

* FU-152 feat: add loading UI

* FU-152 refactor: remove unnecessary styles

* FU-152 feat: remove temporary variant

* FU-152 fix: solve build error at mypage product page

* FU-152 fix: error handling at product list data fetching

* [FU-155] feat: client side token management (#15)

* FU-155 feat: request kakao oauth authorization

* FU-155 feat: add route handler for issuing tokens

* FU-155 feat: add bearer header by beforeRequest interceptor

* FU-155 feat: complete login flow

* FU-155 feat: add client side http instance interceptor hooks

* FU-155 refactor: separate server side http instance interceptors

* FU-155 refactor: remove unnecessary export

* FU-155 feat: add auth route handler

* [FU-180] �create ci workflow (#18)

* FU-180 feat: Create ci_workflow_dev.yml

* FU-180 fix: fix issue

* [�FU-158] feat: previous feature complement (#19)

* FU-158 fix: solve return type error at auth route handler

* FU-158 feat: reorganize post reservation request body

* FU-158 refactor: group photographer containers

* FU-158 feat: add common request header

* FU-158 fix: parse result message from response body

* FU-158 feat: publish photographer login page

* FU-158 feat: publish login page background and button

* FU-158 feat: add representative image at new product

* FU-158 feat: set common handler

* FU-158 refactor: seperate common logic at interceptors

* [FU-120] feat: add photographer reservation list (#20)

* FU-120 feat: add view slider

* FU-120 feat: add search component

* FU-120 feat: filter reservation list by product

* FU-120 feat: add mypage navbar at header

* FU-120 feat: add responsible text style sprinkles

* FU-120 refactor: apply responsive text styles

* FU-120 feat: add reservation list card

* FU-120 feat: add status list

* FU-120 feat: controll main page view

* FU-120 feat: add reservation list view

* FU-120 feat: get reservation list

* FU-120 feat: add responsive layout at main page

* FU-120 feat: add responsive reservation list

* FU-120 feat: remove dummy data

* FU-120 feat: change ReservationList from async function

* FU-120 resolve merge conflict with develop

* FU-120 refactor: adjust to new design system

* FU-120 fix: solve type error

* [FU-157] feat: validate form about product and reservation (#16)

* FU-157 feat: include zod for form validation

* FU-157 feat: add product form schema

* FU-157 feat: add error message

* FU-157 feat: validate product items

* FU-157 feat: validate product options

* FU-157 feat: validate product discounts

* FU-157 refactor: delete deprecated files

* FU-157 feat: add disable state of bottom button

* FU-157 refactor: remove unused submit handler

* FU-157 feat: validate reference image list

* FU-157 feat: add resolver at customer reservation form

* FU-157 feat: validate by maxlength of text field

* FU-157 feat: validate description by maxlength

* FU-157 fix: fix wrong validation at product option price

* [FU-114] feat: add reservation details page (#21)

* FU-114 feat: get reservation details

* FU-114 feat: add responsible layout at common handler

* FU-114 feat: add type-safe field component

* FU-114 feat: add status viewer component

* FU-114 feat: arrange reservation type module

* FU-114 feat: add customer info part

* FU-114 feat: add reservation title part

* FU-114 refactor: set common section layout

* FU-114 feat: add photo details part

* FU-114 feat: add schedule details part

* FU-114 refactor: group detail fields

* FU-114 feat: add image details part

* FU-114 feat: add images full view component

* FU-114 feat: add request details part

* FU-114 refactor: group detail section

* FU-114 feat: set reservation detail page layout

* FU-114 feat: add customed button based on design system

* FU-114 feat: modify login request roleType format

* FU-114 feat: add reservation confirm section

* FU-114 feat: extend reservation status type

* FU-114 feat: add common chip component

* FU-114 feat: add photographer memo part

* FU-114 feat: add details page layout

* FU-114 feat: add login request error handler

* FU-114 feat: put new reservation status

* FU-114 feat: add disabled button style

* FU-114 feat: add responsive layout

* FU-114 feat: delete dummy data

* FU-114 feat: connect image list to form data

* FU-114 feat: use route params at reservation status update

* FU-114 feat: edit status information

* FU-114 refactor: extract Object.entries method

* [FU-200] feat: add logout (#24)

* FU-200 fix: fix header dropdown list link

* FU-200 feat: add logout handler

* FU-200 fix: fix login request interceptor

* FU-200 feat: add logout response handler

* FU-200 feat: add responsive header

* FU-200 fix: delete tokens only on logout success

* FU-200 fix: fix handling invalid tokens

* [FU-184] feat: view photographer profile at customer side (#22)

* FU-184 feat: add responsive root layout at customer side

* FU-184 feat: publish profile bottom sheet

* FU-184 feat: get photographer profile

* FU-184 feat: add bottom sheet ui

* FU-184 feat: add logo at photographer profile page

* [FU-185] feat: edit photographer profile (#25)

* FU-185 feat: publish mypage base layout

* FU-185 feat: get current profile of photographer

* FU-185 feat: use common ui component

* FU-185 feat: add profile edit page layout

* FU-185 feat: add basic profile edit

* FU-185 feat: add link info edit

* FU-185 feat: add profile preview

* FU-185 feat: handle image change by file

* FU-185 feat: put changed profile

* FU-185 feat: block interaction of profile preview

* FU-185 feat: adjust photographer side layout

* FU-185 feat: add responsive mypage layout

* FU-185 feat: add responsive profile edit page

* FU-185 feat: validate photographer profile

* FU-185 refactor: delete unused pages

* FU-185 chore: set environment variables at ci workflow

* FU-185 feat: switch placeholder at profile edit page

* FU-185 feat: notify link append disablity

* [FU-117] feat: view reservation details at customer side (#23)

* FU-117 feat: extend reservation type module

* FU-117 feat: get reservation detail at customer side

* FU-117 refactor: common reservation status component

* FU-117 feat: add current status part

* FU-117 feat: add reservation informatios part

* FU-117 feat: parce price string

* FU-117 feat: add message toast

* FU-117 feat: redirect to reservation detail page after submit reservation

* FU-117 fix: solve type error

* FU-117 feat: add day string at customer reservation details page

* [FU-178] feat: add photographer join page (#26)

* FU-178 feat: add profile edit at join page

* FU-178 feat: add agreements at join page

* FU-178 feat: post new photographer profile

* FU-178 feat: add header for unauthorized user

* FU-178 feat: add responsive join page

* FU-178 fix: initialize input element's value after register

* FU-178 feat: handling post request failed

* [FU-204] feat: cancel reservation at customer side (#27)

* FU-204 feat: cancel reservation at customer side

* FU-204 feat: modify reservation status type

* FU-204 feat: remove dummy data

* [FU-222] fix: use formdata at request registering new images (#29)

* FU-222 fix: remove content type header at multipart request

* FU-222 refactor: remove unused import

* FU-222 fix: switch content type of post product request

* FU-222 fix: switch content type of put profile request

* FU-222 fix: fix file data managing

* FU-222 chore: remove solved comment

* [FU-220] feat: add service footer (#31)

* FU-220 feat: add service footer component

* FU-220 feat: set photographer side layout with service footer

* FU-220 feat: set customer side layout with service footer

* FU-220 feat: set login page layout with service footer

* FU-220 feat: connect login page for each roleType

* [FU-234] fix: keep userdata after login (#32)

* FU-234 fix: switch storage for user data

* FU-234 fix: fix photographer header UI

* FU-234 feat: remove scope parameter at kakao login request

* FU-234 feat: remove deprecated hook

* FU-234 chore: fix package vulnerability

* [FU-235] 서버 배포 자동화 (#30)

* FU-61 feat: cd_workflow_dev.yml 추가

* FU-61 feat: appspec.yml 추가

* FU-61 feat: start.sh 추가

* �FU-61 feat: stop.sh 추가

* FU-61 feat: 로깅 스크립트 추가

* FU-61 fix: 오타 수정

* FU-235 feat: 환경변수 설정 추가

* FU-235 feat: 빌드 파일 실행 스크립트 변경

* FU-235 feat: 서버 종료 권한 강화

* FU-235 feat: 프로세스 삭제 조건 변경

* FU-235 현재 브랜치에서 체크아웃하여 빌드 파일을 포함시키는 step 추가

* FU-235 feat: stop.sh 수정

* FU-235 appspec.yml 수정

* �FU-235 workflow 수정

* FU-235 현재 브랜치에서 체크아웃하여 빌드 파일을 포함시키는 step 추가

* FU-253 feat: appspec.yml 수정

* FU-235 feat: start.sh 수정

* FU-235 feat: workflow 수정

* FU-235 feat: appspec.yml 수정

* FU-235 feat: workflow 수정

* FU-235 feat: workflow 수정

* FU-235 fix: 오타수정

* �FU-235 workflow 수정

* FU-235 feat: workflow 수정

* Update cd_workflow_dev.yml

* FU-235 feat: workflow 수정

* FU-235 feat: stop.sh 수정

* FU-235 feat: appspec.yml 수정

* FU-235 feat: start.sh 수정

* FU-235 feat: download_from_s3.sh 추가

* FU-235 feat: download_from_s3.sh 수정

* FU-235 feat: unzip.sh 추가

* FU-235 feat: appspec.yml 수정

* FU-235 feat: workflow 수정

* �FU-235 feat: appspec.yml 수정

* FU-235 feat: update appspec.yml

* FU-235: feat: pull_request 이벤트 트리거 삭제

* FU-235 feat: download_from_s3.sh 삭제

* �FU-235 feat: unzip.sh 삭제

---------

Co-authored-by: 이유리 <[email protected]>

* [FU-255] feat: replace photographerId with profileName (#33)

* FU-255 feat: declare page parameters

* FU-255 feat: declare common route parameters

* FU-255 feat: adjust variables using dynamic route parameters

* FU-255 feat: set photographer url using profile name

* FU-255 feat: post profile name at join

* FU-255 feat: modify photographer profile interface

* FU-255 feat: adjust path variable names used at api request

* FU-255 feat: change encoding type of join form

* FU-255 chore: add env at cd workflow

* FU-255 feat: remove solved TODO comment

* FU-255 fix: include missing fields at reservation form schema

* FU-255 fix: solve type error

* FU-235 feat: start.sh 수정

* chore: add ecosystem

* [FU-258] 배포 자동화 스크립트 버그 픽스 (#34)

* FU-258 feat: start.sh 수정

* FU-258 feat: pr 이벤트 트리거 임시 추가

* Update start.sh

* FU-258 fix: 오탈자 수정

* FU-258 fix: 스크립트 파일 수정

* FU-258 feat: appspec.yml 수정

* FU-258 feat: stop.sh 수정

* FU-258 feat: stop.sh 수정

* �FU-258 feat: stop.sh 수정

* FU-258 feat: appspec.yml 수정

* FU-258 feat: appspec.yml 수정

* FU-258 feat: cd_workflow_dev.yml 수정

* FU-258 feat: cd_workflow_dev.yml 수정

* FU-258 feat: stop.sh 수정

* FU-258 feat: stop.sh 수정

* FU-258 feat: stop.sh 수정

* FU-258 feat: stop.sh 수정

* FU-258 feat: stop.sh edit

* FU-258 chore: stop.sh 로그 추가

* FU-258 fix: cd 경로 수정

* FU-258 chore: log 파일 절대경로로 변경

* FU-258 feat: appspec.yml 수정

* FU-258 fix: stop.sh 실행중인 프로세스에 대한 분기처리 수정

* FU-258 chore: stop.sh 로그 추가

* FU-258 chore: 로그 출력문 수정

* FU-258 feat: appspec.yml 수정

* FU-258 feat: appspec.yml 수정

* Update appspec.yml

* �FU-258 workflow 수정

* FU-258 chore: start.sh 로그 구체화

---------

Co-authored-by: eujin-shin <[email protected]>
Co-authored-by: 이유리 <[email protected]>

* [FU-259] fix: set request content type (#35)

* FU-259 fix: add default content type as application/json

* FU-259 fix: use json option instead of body

* FU-259 fix: fix photographer url format

* FU-259 fix: fix customer side main page UI

* FU-259 feat: add onboarding header

* [FU-263] feat: add agreements (#38)

* [FU-221] feat: connect google analytics (#39)

* [FU-225] feat: set metadata (#36)

* FU-225 feat: set metadata

* FU-225 refactor: change favicon route

* [FU-247] feat: common error handling (#40)

* FU-247 feat: add customed error

* FU-247 feat: add common error handler

* FU-247 feat: use common error handler at async request

* FU-247 fix: authentication error handling

* FU-247 refactor: separate onboarding pages at router

* FU-247 refactor: change favicon route

* FU-247 feat: add image domains

* FU-247 fix: fix image common style

* FU-247 fix: fix image common style

* [FU-218] feat: product manage (#37)

* FU-218 feat: add product delete

* FU-218 feat: adjust product list page UI

* FU-218 refactor: group product form to reuse in product details page

* FU-218 feat: adjust new product page

* FU-218 fix: send product id at formbase request

* FU-218 feat: manage image as customed form image

* FU-218 feat: expand product form as product detail viewer

* FU-218 feat: get current product details

* FU-218 feat: put updated product details

* FU-218 feat: add responsive product details page

* FU-218 feat: seperate post form submit logic

* FU-218 fix: solve type declare error at product type module

* FU-218 feat: edit data type about image list

* FU-218 fix: switch max image count at product register

* FU-218 feat: adjust response body about put product details

* [FU-205] feat: view previous reservation list (#28)

* FU-205 feat: get previous reservation list with search params

* FU-205 feat: use keyword search parameter

* FU-205 feat: add filter controlling search parameters

* FU-205 feat: add previous reservation cards

* FU-205 chore: add service s3 domain as image source

* FU-205 feat: add previous reservation viewer

* FU-205 feat: add suspense at previous reservation data fetching

* FU-205 feat: trigger data fetching on search params change

* FU-205 feat: add responsive layout at previous reservation list

* FU-205 feat: adjust response body

* FU-205 feat: add initial data

* FU-205 fix: adjust status query parameters format

* FU-205 fix: fix image cover styling

* FU-205 feat: allow single date select at previous reservation filtering

* [FU-266] fix: bug fix (#41)

* FU-266 fix: fix path variable

* FU-266 fix: instagram id field disability

* FU-266 fix: set object-fit at image style

* FU-266 fix: reference image select UI

* FU-266 fix: fix logout handler

* FU-266 fix: refresh after update current profile

* FU-266 feat: open new tab for external link

* FU-266 fix: edit id validation about user id

* FU-266 feat: set minimum length at reservation reference image

* FU-266 fix: style disabled bottom button

* FU-266 chore: solve confilct

* [FU-261] feat: adjust fields of product and reservation (#42)

* FU-261 fix: move product detail page to router group with header layout

* FU-261 feat: delete product at any status

* FU-261 feat: use response handler at product request

* FU-261 feat: use schedule modal from @mantine

* FU-261 refactor: delete deprecated modal

* FU-261 feat: adjust reservation form structure

* FU-261 refactor: remove filename at form image interface

* FU-261 feat: upload new image as reference image

* FU-261 feat: disable wheel event handler at price inputs

* FU-261 feat: add basic price field at product register

* FU-261 feat: connect basic price field at product detail page

* FU-261 feat: connect basic price field at customer side

* FU-261 feat: get representative image at photographer side product list

* FU-261 feat: add basic price and shooting date field at reservation details

* FU-261 feat: add handler at reservation status change

* FU-261 feat: change shooting date of reservation

* FU-261 feat: edit text for status change button

* FU-261 feat: view basic price and shooting date at customer reservation detail page

* FU-261 feat: add warning message for product image register

* FU-261 fix: fix UI

* FU-261 fix: get total price including basic price

* FU-261 fix: remove deprecated modal

* FU-261 feat: add boundary to shooting date select

* FU-261 feat: modify reference image and price UI

* [FU-273] fix: clean old files before install (#44)

* FU-273 fix: clean old files before install

* FU-273 feat: not trigger cd workflow at pull request

* [FU-262] feat: redirect by middleware (#43)

* FU-262 feat: set user role at login

* FU-262 feat: login pages responsive UI

* FU-262 fix: seperate redirect destination of header

* FU-262 feat: redirect by access token and roletype at middleware

* FU-262 feat: set redirect url after customer login

* FU-262 feat: login error page UI

* FU-262 refactor: login button prop interface

* FU-262 fix: redirect at photographer join page

* FU-262 refactor: refactor middleware

* [FU-271] feat: user modify (#45)

* FU-271 feat: request with existing image urls at put profile

* FU-271 feat: agree to user age

* FU-271 feat: replace checkbox component

* FU-271 feat: connect agreements page

* FU-271 feat: use constant agreement links at footer

* FU-271 feat: age agreement from customer

* FU-271 refactor: remove deprecated agreement components

* FU-271 feat: remove dummy data

* FU-271 fix: reset input element value after file select

* FU-271 feat: remove age agreement of user

* FU-271 fix: delete invalid token

* FU-271 feat: add guide about photographer profile name

* [FU-288] fix: user role setting (#46)

* FU-288 feat: edit handler for join failure

* FU-288 fix: set user role as photographer after join success

* FU-288 chore: edit cd workflow for testing

* FU-288 chore: edit cd workflow after test

* FU-288 feat: modify product details ui

* [FU-238] feat: connect sentry (#47)

* FU-238 feat: connect sentry

* FU-238 chore: set sentry token

* FU-238 feat: add customed error boundary

* FU-238 feat: capture error to sentry at global error boundary

* FU-238 feat: delete unused default files from sentry

* FU-238 refactor: cookie remove logic

* [FU-286] feat: filter reservation with product (#48)

* FU-286 feat: get product titles for filtering

* FU-286 feat: filter reservations by product

* FU-286 feat: seperate query boundary

* [FU-292] feat: write memo at reservation detail page (#51)

* FU-292 feat: put new reservation memo

* FU-292 feat: add submit memo handler

* FU-292 feat: add cancel button at memo

* FU-292 feat: adjust request body

* FU-292 feat: use form id as path variable

* [FU-250] feat: leave service (#50)

* FU-250 feat: add leave service at profile page

* FU-250 feat: request unlink

* FU-250 feat: add modal for leave reason

* FU-250 feat: delete tokens and user role after unlink

* FU-250 feat: select reason from examples

* [FU-290] feat: add photographer contact (#49)

* FU-290 feat: extend profile types with photographer contact

* FU-290 feat: add photographer contact at join

* FU-290 feat: edit contact at profile

* FU-290 feat: edit information text at profile page

* FU-290 feat: edit placeholder of contact

* FU-290 feat: check response and request body fields

* [FU-297] feat: add page at root url (#53)

* FU-297 feat: add root page

* FU-297 feat: replace default login page with root page

* FU-297 feat: add meta tag for search advisor

* FU-297 feat: remove deprecated login page

* [FU-298] fix: request for reservations (#54)

* FU-298 fix: add update status at cancel request

* FU-298 fix: add current status at put shooting date request

* FU-298 fix: maintain submit form instagram id if user modified

* FU-298 fix: accept time string format with second

* FU-298 refactor: remove unnecessary log

* FU-298 feat: change request url for shooting date

* FU-298 refactor: use constant for parse integer

* [FU-280] feat: add notice for product (#52)

* FU-280 feat: expand type for photographer notice

* FU-280 feat: add guide of photographer notice

* FU-280 feat: add component for edit notice

* FU-280 feat: add submit handler with zod resolver

* FU-280 feat: add temporal api requests

* FU-280 feat: add notice page at photographer side

* FU-280 feat: add notice page at customer side

* FU-280 feat: connect photographer notice page at reservation pages

* FU-280 fix: carousel responsive UI at product detail page

* FU-280 refactor: use default link as constants

* FU-280 feat: use notice instead of agreements

* FU-280 chore: reset packages at ci workflow

* FU-280 feat: request photographer notice

* FU-280 feat: connect profile name of photographer at customer reservation details

* FU-280 feat: add required notices

* FU-280 fix: fix default value of current notices

* FU-280 feat: modify accordion UI at notice edit page

* FU-280 feat: extend product type for notices

* FU-280 feat: get current notices at new product page

* FU-280 refactor: set notice constants

* FU-280 feat: write notices of product

* FU-280 feat: adjust request body of product details

* FU-280 fix: add option field array at product form

* FU-280 feat: add tabs at product details

* FU-280 refactor: seperate product basic info tab

* FU-280 feat: view notices at product details page

* FU-280 feat: remove service agreement

* FU-280 feat: agree to product notices at reservation submit

* FU-280 refactor: use notices list as common container

* FU-280 feat: adjust reservation detail response data

* FU-280 feat: view reservation notices

* FU-280 feat: remove dummy data

* FU-280 fix: solve build failure at conflict solving

* [FU-291] feat: add shooting place (#55)

* FU-291 feat: add place field at product

* FU-291 refactor: use information caption as common component

* FU-291 refactor: change field name of place input availability

* FU-291 feat: view and edit basic place

* FU-291 feat: input preferred place at reservation form

* FU-291 feat: add place fields at reservation

* FU-291 feat: view preferred place and shooting place at photographer side

* FU-291 feat: submit changes of reservation details

* FU-291 feat: modify confirm module UI

* FU-291 feat: view place fields at customer reservation details

* FU-291 fix: view basic place at reservation detail page

* FU-291 fix: change max bound for time

* FU-291 feat: change url for edit shooting info

* FU-291 fix: change field name for reservation notice

* �[FU-244] chore: set front server infra (#58)

* FU-244 feat: cd_workflow_prod.yml 추가

* FU-244 feat: cd_workflow_dev.yml 추가

* FU-244 feat: start.sh에서 빌드 스크립트 제거

* FU-244 feat: 프로젝트 빌드 스크립트 추가

* feat: 테스트 브랜치의 CI 트리거 추가

* FU-244: code deploy 배포 스크립트 수정

* FU-244 feat: 프로젝트 빌드 스크립트 삭제

* FU-244 feat: 프로젝트 빌드 스크립트 추가

* FU-244 feat: sentry 환경변수 추가

* FU-244 feat: release 브랜치에서 cd 워크플로우 진행

* �FU-244 feat: master 브랜치에서 CD플로우 진행 및 GA 환경변수 추가

* FU-244 fix: 중복 환경변수 제거

* FU-244 feat: dev-infra-test 브랜치 트래킹에 추가

* FU-244 feat: CI 트래킹 브랜치 업데이트

* FU-244 feat: CD 트래킹 브랜치 업데이트

* [FU-296] feat: enhance launching version UI (#56)

* FU-296 feat: remove service footer at customer main page

* FU-296 feat: product grid layout

* FU-296 feat: remove product discount

* FU-296 feat: adjust service UI for launch version

* FU-296 feat: set images for login page

* FU-296 feat: modify reservation detail page UI

* FU-296 feat: set accepted image file format

* FU-296 feat: add guide for image upload

* FU-296 feat: can add multiple images at new product page

* FU-296 feat: add guide for product notices

* FU-296 feat: change IN_PROGRESS status name

* FU-296 feat: scrollbar styling

* FU-296 fix: switch basic position of product

* FU-296 feat: modify styling of notice edit page

* FU-296 feat: modify edit profile page layout

* FU-296 feat: set redirect destination at photographer login

* FU-296 feat: connect service links

* FU-296 fix: style textarea at product notice

* FU-296 feat: delete back button at reservation detail page

* FU-296 feat: change link copy button text at reservation details

* FU-296 feat: change contact mail

* [FU-308] feat: send login event to google analytics (#59)

* feat: add develop cd workflow trigger event

* Revert "feat: add develop cd workflow trigger event"

This reverts commit 27b64704dafef3e008e3512864cd975b39ae5c62.

---------

Co-authored-by: 정유석 <[email protected]>
Co-authored-by: 이유리 <[email protected]>

* [FU-219] feat: add service tutorial and sidebar (#64)

* FU-219 feat: add assets for sidebar

* FU-219 feat: add menu list

* FU-219 feat: add sidebar

* FU-219 feat: add sidebar at photographer common layout

* FU-219 feat: adjust page layouts with sidebar

* FU-21…
  • Loading branch information
3 people authored Nov 2, 2024
1 parent 24eac19 commit 5f6e265
Show file tree
Hide file tree
Showing 32 changed files with 644 additions and 69 deletions.
3 changes: 3 additions & 0 deletions public/icons/sidebar/link-blue.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions public/icons/sidebar/link.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/app/login/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ const LoginLayout = ({
links={[
{ name: "서비스 안내", src: SERVICE_LINKS.landingPage },
{ name: "고객센터", src: SERVICE_LINKS.help },
{ name: "공지사항", src: SERVICE_LINKS.notice },
]}
/>
{children}
Expand Down
1 change: 1 addition & 0 deletions src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ const Page = () => {
links={[
{ name: "서비스 안내", src: SERVICE_LINKS.landingPage },
{ name: "고객센터", src: SERVICE_LINKS.help },
{ name: "공지사항", src: SERVICE_LINKS.notice },
]}
/>
<div className={loginPageStyles.background}>
Expand Down
1 change: 1 addition & 0 deletions src/app/photographer/(auth)/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const PhotographerLayout = ({
links={[
{ name: "서비스 안내", src: SERVICE_LINKS.landingPage },
{ name: "고객센터", src: SERVICE_LINKS.help },
{ name: "공지사항", src: SERVICE_LINKS.notice },
]}
/>
{children}
Expand Down
6 changes: 6 additions & 0 deletions src/components/inputs/input.css.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,11 +159,17 @@ const InputStyles = styleVariants({
marginBottom: 20,
position: "relative",
},
header: {
display: "flex",
alignItems: "center",
gap: 8,
},
title: [
texts["headline-03"],
sprinkles({
color: "text-02",
}),
{ lineHeight: "16px", padding: "4px 0px" },
],
inputWrapper: [
sprinkles({ backgroundColor: "white" }),
Expand Down
8 changes: 7 additions & 1 deletion src/components/inputs/text-input.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { CSSProperties, DetailedHTMLProps, InputHTMLAttributes } from "react";
import { FieldValues, Path, useFormContext } from "react-hook-form";
import AdditionInfo from "../common/addition-info";
import InputStyles from "./input.css";

interface TextInputProps<T extends FieldValues>
Expand All @@ -12,6 +13,7 @@ interface TextInputProps<T extends FieldValues>
placeholder?: string;
disabled?: boolean;
multiline?: boolean;
description?: string;
formField?: Path<T>;
container?: CSSProperties;
}
Expand All @@ -21,6 +23,7 @@ const TextInput = <T extends FieldValues>({
placeholder = "내용을 입력해주세요.",
disabled,
multiline,
description,
formField,
container,
inputSize = "sm",
Expand All @@ -30,7 +33,10 @@ const TextInput = <T extends FieldValues>({

return (
<div className={InputStyles.container} style={container}>
{title && <span className={InputStyles.title}>{title}</span>}
<div className={InputStyles.header}>
{title && <span className={InputStyles.title}>{title}</span>}
{description && <AdditionInfo content={description} size={16} />}
</div>
<div
className={`${
disabled ? InputStyles.disabledInputWrapper : InputStyles.inputWrapper
Expand Down
2 changes: 1 addition & 1 deletion src/constants/common/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export const ACCEPTED_IMAGE = {
};

export const SERVICE_LINKS = {
help: "https://slashpage.com/freebe",
help: "https://pf.kakao.com/_LxfHRn",
serviceAgreement: "https://slashpage.com/freebe/service-agreement?full=true",
privacyAgreement: "https://slashpage.com/freebe/privacy-agreement?full=true",
notice: "https://slashpage.com/freebe/notice",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ const ReservationFormProvider = ({
title: z.string(),
quantity: z.number().nonnegative(),
price: z.number().nonnegative(),
description: z.string().optional(),
});

const reservationFormSchema = z.object({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { reservation } from "product-types";
import CountInput from "@/components/inputs/count-input";
import CloseButton from "@/components/buttons/close-button";
import AdditionInfo from "@/components/common/addition-info";
import { formatPrice } from "@/utils/parse";
import { optionControllerStyles } from "./parts.css";

Expand All @@ -25,7 +26,12 @@ const OptionController = ({
: optionControllerStyles.container
}
>
<span className={optionControllerStyles.title}>{option.title}</span>
<div className={optionControllerStyles.titleWrapper}>
<span className={optionControllerStyles.title}>{option.title}</span>
{option.description !== "" && (
<AdditionInfo content={option.description} size={16} />
)}
</div>
<div className={optionControllerStyles.wrapper}>
<CountInput
value={option.quantity}
Expand Down
5 changes: 5 additions & 0 deletions src/containers/customer/reservation/submit/parts/parts.css.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@ export const optionControllerStyles = styleVariants({
},
],
lastContainer: { marginTop: 24 },
titleWrapper: {
display: "flex",
gap: 6,
alignItems: "center",
},
title: [
texts["body-01"],
sprinkles({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,17 +60,18 @@ const ProductInfoForm = ({
<PartLayout title="촬영 정보">
<ScheduleModal close={close} opened={opened} targetIndex={editIndex} />
<TextInput title="기본 가격" disabled value={basicPrice} />
<TextInput title="촬영 장소" disabled value={basicPlace} />
{items.map((item, index) => {
return (
<TextInput
key={index}
title={item.title}
disabled
value={item.content}
description={item.description}
/>
);
})}
<TextInput title="촬영 장소" disabled value={basicPlace} />
{allowPreferredPlace && (
<div style={{ marginBottom: 20 }}>
<TextInput<reservation.FormType>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ const SelectOptionForm = ({ options }: { options: Option[] }) => {
quantity: 1,
title: options[index].title,
price: basePrice,
description: options[index].description,
});
}
}
Expand Down
38 changes: 34 additions & 4 deletions src/containers/photographer/main/header.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
"use client";

import { useEffect } from "react";
import { useRouter, useSearchParams } from "next/navigation";
import Link from "next/link";
import Image from "next/image";
import { LinkType } from "profile-types";
Expand All @@ -10,6 +12,8 @@ import CloseButton from "@/components/buttons/close-button";
import * as styles from "./header/header.css";
import MenuList from "./sidebar/menu-list";
import { menuStyles } from "./header/header.css";
import { customDrawerStyles } from "./main.css";
import MobileTutorial from "./tutorial/mobile";

const Header = ({
isOnboarding,
Expand All @@ -18,7 +22,22 @@ const Header = ({
isOnboarding?: boolean;
links?: LinkType[];
}) => {
const router = useRouter();
const searchParams = useSearchParams();
const [opened, { close, open }] = useDisclosure(false);
const [isOnTutorial, { close: closeTutorial, open: openTutorial }] =
useDisclosure(false, {
onClose: () => {
router.replace("/photographer");
},
});

useEffect(() => {
const tutorialParam = searchParams.get("tutorial");
if (tutorialParam) {
openTutorial();
}
}, [searchParams]);

return (
<header className={styles.headerContainer}>
Expand Down Expand Up @@ -70,6 +89,15 @@ const Header = ({
/>
</Menu.Target>
<Menu.Dropdown>
<Link
href={SERVICE_LINKS.landingPage}
className={menuStyles.item}
target="_blank"
>
<Menu.Item>
<span>서비스 안내</span>
</Menu.Item>
</Link>
<Link
href={SERVICE_LINKS.help}
className={menuStyles.item}
Expand All @@ -80,12 +108,12 @@ const Header = ({
</Menu.Item>
</Link>
<Link
href={SERVICE_LINKS.landingPage}
href={SERVICE_LINKS.notice}
className={menuStyles.item}
target="_blank"
>
<Menu.Item>
<span>서비스 소개</span>
<span>공지사항</span>
</Menu.Item>
</Link>
</Menu.Dropdown>
Expand All @@ -104,13 +132,15 @@ const Header = ({
size="xs"
withCloseButton={false}
onClose={close}
opened={opened}
opened={opened || isOnTutorial}
position="right"
classNames={{ ...customDrawerStyles }}
>
<MobileTutorial close={closeTutorial} opened={isOnTutorial} />
<CloseButton
onClick={close}
size={16}
container={{ position: "absolute", right: 40, top: 50 }}
container={{ position: "absolute", right: 40, top: 34 }}
/>
<MenuList hasServiceLinks />
</Drawer>
Expand Down
14 changes: 14 additions & 0 deletions src/containers/photographer/main/main.css.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,17 @@ export const mainviewStyles = styleVariants({
},
],
});

export const customDrawerStyles = styleVariants({
root: {
display: "none",
"@media": {
[breakpoints.mobile]: {
display: "block",
},
},
},
body: {
padding: "0px 0px 0px 10px",
},
});
26 changes: 15 additions & 11 deletions src/containers/photographer/main/sidebar/link-copy.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
"use client";

import { useState, useEffect } from "react";
import Link from "next/link";
import popToast from "@/components/common/toast";
import { CustomButton } from "@/components/buttons/common-buttons";
import InfoCaption from "@/components/common/info-caption";
import CloseButton from "@/components/buttons/close-button";
import { linkStyles } from "./sidebar.css";

const LinkCopy = ({ onClose }: { onClose: () => void }) => {
const LinkCopy = () => {
const [url, setUrl] = useState<string>("");

useEffect(() => {
Expand All @@ -20,25 +20,29 @@ const LinkCopy = ({ onClose }: { onClose: () => void }) => {
async function handleCopy() {
try {
await navigator.clipboard.writeText(url);
popToast("클립보드에 복사되었습니다.");
popToast(
"원하는 곳에 공유해 프리비로 예약을 받아 보세요!",
"링크가 복사되었습니다.",
);
} catch (error) {
popToast("다시 시도해 주세요.", "오류가 발생했습니다.");
}
}

return (
<div className={linkStyles.dropdown}>
<CloseButton
onClick={onClose}
size={16}
container={{ position: "absolute", top: 20, right: 20 }}
/>
<InfoCaption information="링크를 복사해 고객에게 전달해보세요." />
<div>
<span className={linkStyles.title}>내 예약 페이지</span>
<InfoCaption information="링크를 복사해 인스타그램 프로필에 게시해보세요. 내가 등록한 상품을 고객이 확인하고 예약을 시작할 수 있어요." />
<div className={linkStyles.container}>
<span className={linkStyles.content}>{url}</span>
</div>
<div className={linkStyles.buttonWrapper}>
<Link href={url} target="_blank">
<CustomButton styleType="line" size="xs" title="바로가기" />
</Link>
<CustomButton
styleType="primary"
size="sm"
size="xs"
title="복사하기"
onClick={handleCopy}
/>
Expand Down
Loading

0 comments on commit 5f6e265

Please sign in to comment.