Merge pull request 'refactor: remove inquiry page component and enhance navigation in Main and Header components with router integration' (#20) from feature/pub-yoo into dev

Reviewed-on: #20
This commit is contained in:
swyoo 2025-05-02 16:35:54 +09:00
commit 38055365a5
12 changed files with 336 additions and 16 deletions

View File

@ -0,0 +1,5 @@
import Detail from '@/components/inquiry/Detail'
export default function page() {
return <Detail />
}

View File

@ -0,0 +1,3 @@
export default function layout({ children }: { children: React.ReactNode }) {
return <div className="container">{children}</div>
}

View File

@ -0,0 +1,13 @@
import ListForm from '@/components/inquiry/ListForm'
import ListTable from '@/components/inquiry/ListTable'
export default function page() {
return (
<>
<div className="sale-contents">
<ListForm />
<ListTable />
</div>
</>
)
}

View File

@ -1,7 +0,0 @@
export default function page() {
return (
<>
<h1>1:1 </h1>
</>
)
}

View File

@ -0,0 +1,9 @@
import RegistForm from '@/components/inquiry/RegistForm'
export default function page() {
return (
<>
<RegistForm />
</>
)
}

View File

@ -0,0 +1,38 @@
'use client'
export default function Answer() {
return (
<>
<div className="inquiry-answer-wrap">
<div className="inquiry-answer-header">
<div className="inquiry-answer-tit">Hanwha Japan </div>
<div className="inquiry-answer-date">
<span></span>/ <span>2025.04.02 16:54:00</span>
</div>
</div>
<div className="inquiry-detail-data">
<div className="inquiry-detail-category"></div>
<div className="inquiry-detail-txt">
, . ,
</div>
</div>
<div className="file-list-wrap">
<div className="file-list-tit"></div>
<ul className="file-list">
<li className="file-item">
<button className="file-item-bx">
<div className="file-item-name">.jpg </div>
</button>
</li>
<li className="file-item">
<button className="file-item-bx">
<div className="file-item-name">.jpg </div>
</button>
</li>
</ul>
</div>
</div>
</>
)
}

View File

@ -0,0 +1,87 @@
'use client'
import { useState } from 'react'
import Answer from './Answer'
export default function Detail() {
//todo: 답변 완료 표시를 위해 임시로 추가 해 놓은 state
// 추후에 api 작업 완료후 삭제
// 답변 완료 클래스 & 하단 답변내용 출력도
const [inquiry, setInquiry] = useState<Boolean>(false)
return (
<>
<div className="inquiry-frame">
<div className="inquiry-detail-wrap">
<div className="inquiry-detail-badge">
<div className={`badge ${inquiry ? 'orange' : 'blue'} block`}></div>
</div>
<div className="inquiry-detail-data-table">
<table className="sale-data-table">
<colgroup>
<col style={{ width: '80px' }} />
<col />
</colgroup>
<tbody>
<tr>
<th></th>
<td>2025.04.10</td>
</tr>
<tr>
<th></th>
<td>Hong gi</td>
</tr>
<tr>
<th></th>
<td>interplug</td>
</tr>
<tr>
<th></th>
<td>interplugs</td>
</tr>
<tr>
<th>E-mail</th>
<td>Hong@interplug.co.kr</td>
</tr>
</tbody>
</table>
</div>
<div className="inquiry-detail-data">
<div className="inquiry-detail-category"></div>
<div className="inquiry-detail-tit"></div>
<div className="inquiry-detail-txt">
.
<br />
.
<br />
.
</div>
</div>
<div className="file-list-wrap">
<div className="file-list-tit"></div>
<ul className="file-list">
<li className="file-item">
<button className="file-item-bx">
<div className="file-item-name">.jpg </div>
</button>
</li>
<li className="file-item">
<button className="file-item-bx">
<div className="file-item-name">.jpg </div>
</button>
</li>
</ul>
</div>
</div>
{inquiry && <Answer />}
<div className="sale-edit-btn">
<button className="btn-frame n-blue icon">
<i className="btn-arr"></i>
</button>
</div>
</div>
</>
)
}

View File

@ -0,0 +1,20 @@
'use client'
export default function ListForm() {
return (
<>
<div className="sale-frame">
<div className="sale-form-bx">
<button className="btn-frame n-blue icon">
<i className="btn-arr"></i>
</button>
</div>
<div className="sale-form-bx">
<div className="search-input">
<input type="text" className="search-frame" placeholder="タイトルを入力してください. (2文字以上)" />
<button className="search-icon"></button>
</div>
</div>
</div>
</>
)
}

View File

@ -0,0 +1,70 @@
'use client'
export default function ListTable() {
return (
<>
<div className="sale-frame">
<div className="inquiry-table-filter">
<div className="filter-check">
<div className="check-form-box">
<input type="checkbox" id="ch01" />
<label htmlFor="ch01"></label>
</div>
</div>
<div className="filter-select">
<select className="select-form" name="" id="">
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>
</div>
</div>
<div className="inquiry-list-wrap">
<div className="inquiry-list-tit">
<span>98</span>
</div>
<ul className="inquiry-list">
<li className="inquiry-item">
<div className="inquiry-item-bx">
<div className="inquiry-item-category"></div>
<div className="inquiry-item-tit"></div>
<div className="inquiry-item-date">2025.04.02</div>
<div className="inquiry-badge badge blue"></div>
</div>
</li>
<li className="inquiry-item">
<div className="inquiry-item-bx">
<div className="inquiry-item-category"></div>
<div className="inquiry-item-tit"></div>
<div className="inquiry-item-date">2025.04.02</div>
<div className="inquiry-badge badge orange"></div>
</div>
</li>
<li className="inquiry-item">
<div className="inquiry-item-bx">
<div className="inquiry-item-category"></div>
<div className="inquiry-item-tit"></div>
<div className="inquiry-item-date">2025.04.02</div>
<div className="inquiry-badge badge blue"></div>
</div>
</li>
<li className="inquiry-item">
<div className="inquiry-item-bx">
<div className="inquiry-item-category"></div>
<div className="inquiry-item-tit"></div>
<div className="inquiry-item-date">2025.04.02</div>
<div className="inquiry-badge badge orange"></div>
</div>
</li>
</ul>
<div className="sale-edit-btn">
<button className="btn-frame n-blue icon">
<i className="btn-edit"></i>
</button>
</div>
</div>
</div>
</>
)
}

View File

@ -0,0 +1,79 @@
'use client'
export default function RegistForm() {
return (
<>
<div className="inquiry-frame">
<div className="data-form-wrap">
<div className="data-input-form-bx">
<div className="data-input-form-tit">
<i className="import">*</i>
</div>
<div className="data-input">
<select className="select-form" name="" id="">
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>
</div>
</div>
<div className="data-input-form-bx">
<div className="data-input-form-tit">
<i className="import">*</i>
</div>
<div className="data-input">
<select className="select-form" name="" id="">
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>
</div>
</div>
<div className="data-input-form-bx">
<div className="data-input-form-tit">
<i className="import">*</i>
</div>
<div className="data-input">
<textarea className="textarea-form" rows={6} name="" id="" placeholder="TextArea Filed"></textarea>
</div>
</div>
</div>
<div className="inquiry-file-wrap">
<div className="filebox">
<label className="btn-frame l-blue icon" htmlFor="file">
<i className="btn-clip"></i>Attach
</label>
<input type="file" id="file" />
</div>
<div className="file-list-wrap">
<div className="file-list-tit">
<span>2</span>
</div>
<ul className="file-list">
<li className="file-item">
<div className="file-item-bx">
<div className="file-item-name">.jpg </div>
<button className="file-del"></button>
</div>
</li>
<li className="file-item">
<div className="file-item-bx">
<div className="file-item-name">.jpg </div>
<button className="file-del"></button>
</div>
</li>
</ul>
</div>
<div className="sale-edit-btn">
<button className="btn-frame n-blue icon">
<i className="btn-arr"></i>
</button>
</div>
</div>
</div>
</>
)
}

View File

@ -1,10 +1,13 @@
'use client'
import { useHeaderStore } from '@/store/header'
import { useRouter } from 'next/navigation'
import { useEffect } from 'react'
export default function Main() {
const router = useRouter()
const { setBackBtn } = useHeaderStore()
useEffect(() => {
setBackBtn(false)
}, [])
@ -27,7 +30,7 @@ export default function Main() {
<div className="main-bx-icon">
<img src="/assets/images/main/main_icon01.svg" alt="" />
</div>
<button className="main-bx-arr"></button>
<button className="main-bx-arr" onClick={() => router.push('/survey-sale')}></button>
</div>
<div className="grid-bx-body">
<div className="grid-bx-body-tit">調</div>
@ -39,7 +42,7 @@ export default function Main() {
<div className="main-bx-icon">
<img src="/assets/images/main/main_icon02.svg" alt="" />
</div>
<button className="main-bx-arr"></button>
<button className="main-bx-arr" onClick={() => router.push('/survey-sale/basic-info')}></button>
</div>
<div className="grid-bx-body">
<div className="grid-bx-body-tit">調</div>
@ -51,7 +54,7 @@ export default function Main() {
<div className="main-bx-icon">
<img src="/assets/images/main/main_icon03.svg" alt="" />
</div>
<button className="main-bx-arr"></button>
<button className="main-bx-arr" onClick={() => router.push('/inquiry/list')}></button>
</div>
<div className="grid-bx-body">
<div className="grid-bx-body-tit">1:1お問い合わせ </div>
@ -63,7 +66,7 @@ export default function Main() {
<div className="main-bx-icon">
<img src="/assets/images/main/main_icon04.svg" alt="" />
</div>
<button className="main-bx-arr"></button>
<button className="main-bx-arr" onClick={() => router.push('/inquiry/regist')}></button>
</div>
<div className="grid-bx-body">
<div className="grid-bx-body-tit">1:1問い合わせ登録</div>

View File

@ -90,16 +90,16 @@ export default function Header({ name }: HeaderProps) {
<nav className="side-nav-wrap">
<ul className="side-nav-list">
<li className="side-nav-item">
<button>調</button>
<button onClick={() => router.push('/survey-sale')}>調</button>
</li>
<li className="side-nav-item">
<button>調</button>
<button onClick={() => router.push('/survey-sale/basic-info')}>調</button>
</li>
<li className="side-nav-item">
<button>1:1お問い合わせ</button>
<button onClick={() => router.push('/inquiry/list')}>1:1お問い合わせ</button>
</li>
<li className="side-nav-item">
<button>1:1お問い合わせ登録</button>
<button onClick={() => router.push('/inquiry/regist')}>1:1お問い合わせ登録</button>
</li>
<li className="side-nav-item">
<button></button>
@ -115,7 +115,7 @@ export default function Header({ name }: HeaderProps) {
<button>Jynoadmin</button>
</li>
<li className="side-footer-item">
<button>HOME</button>
<button onClick={() => router.push('/')}>HOME</button>
</li>
</ul>
</div>