@@ -26,6 +26,7 @@ import {
26
26
import queryString from 'query-string' ;
27
27
import { commaize } from 'utils/commaize' ;
28
28
import colors from 'styles/color' ;
29
+ import useAuth from 'common/hooks/useAuth' ;
29
30
30
31
const STATUS_OPTIONS = [
31
32
{
@@ -43,6 +44,9 @@ const STATUS_OPTIONS = [
43
44
] ;
44
45
45
46
const Order = ( { ...rest } ) => {
47
+ // 권한 설정
48
+ const { AuthGuard } = useAuth ( [ 'admin' , 'owner' ] ) ;
49
+
46
50
const navigate = useNavigate ( ) ;
47
51
const [ searchParams ] = useSearchParams ( ) ;
48
52
const { pathname } = useLocation ( ) ;
@@ -157,99 +161,101 @@ const Order = ({ ...rest }) => {
157
161
}
158
162
159
163
return (
160
- < div css = { _container } { ...rest } >
161
- < div css = { _header } >
162
- < div >
163
- < h1 > 주문</ h1 >
164
- < div > 주문 내역을 확인하실 수 있어요.</ div >
165
- </ div >
166
- < div css = { _filterWrapper } >
167
- < Filter
168
- leftSlot = { < Lightning /> }
169
- backgroundColor = "lightBlue"
170
- placeholder = "주문 상태"
171
- value = { orderStatus }
172
- onChange = { handleChangeOrderStatus }
173
- options = { STATUS_OPTIONS }
174
- />
175
- { /* TODO: datepicker는 추후에 개발 */ }
176
- { /* <Filter
164
+ < AuthGuard >
165
+ < div css = { _container } { ...rest } >
166
+ < div css = { _header } >
167
+ < div >
168
+ < h1 > 주문</ h1 >
169
+ < div > 주문 내역을 확인하실 수 있어요.</ div >
170
+ </ div >
171
+ < div css = { _filterWrapper } >
172
+ < Filter
173
+ leftSlot = { < Lightning /> }
174
+ backgroundColor = "lightBlue"
175
+ placeholder = "주문 상태"
176
+ value = { orderStatus }
177
+ onChange = { handleChangeOrderStatus }
178
+ options = { STATUS_OPTIONS }
179
+ />
180
+ { /* TODO: datepicker는 추후에 개발 */ }
181
+ { /* <Filter
177
182
leftSlot={<Calendar />}
178
183
backgroundColor="lightBlue"
179
184
placeholder="주문 기간"
180
185
/> */ }
186
+ </ div >
181
187
</ div >
182
- </ div >
183
188
184
- < div css = { _tableContainer } >
185
- < table >
186
- < thead >
187
- { table . getHeaderGroups ( ) . map ( ( headerGroup ) => (
188
- < tr key = { headerGroup . id } >
189
- { headerGroup . headers . map ( ( header ) => (
190
- < th
191
- css = { css `
189
+ < div css = { _tableContainer } >
190
+ < table >
191
+ < thead >
192
+ { table . getHeaderGroups ( ) . map ( ( headerGroup ) => (
193
+ < tr key = { headerGroup . id } >
194
+ { headerGroup . headers . map ( ( header ) => (
195
+ < th
196
+ css = { css `
192
197
padding : 20px ;
193
198
` }
194
- key = { header . id }
195
- colSpan = { header . colSpan }
196
- >
197
- < div >
198
- { flexRender (
199
- header . column . columnDef . header ,
200
- header . getContext ( ) ,
201
- ) }
202
- </ div >
203
- </ th >
204
- ) ) }
205
- </ tr >
206
- ) ) }
207
- </ thead >
208
- < tbody >
209
- { table . getRowModel ( ) . rows . map ( ( row ) => (
210
- < tr
211
- css = { css `
199
+ key = { header . id }
200
+ colSpan = { header . colSpan }
201
+ >
202
+ < div >
203
+ { flexRender (
204
+ header . column . columnDef . header ,
205
+ header . getContext ( ) ,
206
+ ) }
207
+ </ div >
208
+ </ th >
209
+ ) ) }
210
+ </ tr >
211
+ ) ) }
212
+ </ thead >
213
+ < tbody >
214
+ { table . getRowModel ( ) . rows . map ( ( row ) => (
215
+ < tr
216
+ css = { css `
212
217
cursor : pointer;
213
218
& : hover {
214
219
background-color : ${ colors . secondary } ;
215
220
}
216
221
` }
217
- key = { row . id }
218
- onClick = { ( ) => gotoOrderDetail ( row . original . orderId ) }
219
- >
220
- { row . getVisibleCells ( ) . map ( ( cell ) => (
221
- < td
222
- key = { cell . id }
223
- css = { css `
222
+ key = { row . id }
223
+ onClick = { ( ) => gotoOrderDetail ( row . original . orderId ) }
224
+ >
225
+ { row . getVisibleCells ( ) . map ( ( cell ) => (
226
+ < td
227
+ key = { cell . id }
228
+ css = { css `
224
229
padding : 20px ;
225
230
` }
226
- >
227
- { flexRender ( cell . column . columnDef . cell , cell . getContext ( ) ) }
228
- </ td >
229
- ) ) }
230
- </ tr >
231
- ) ) }
232
- </ tbody >
233
- </ table >
234
- </ div >
235
- < div css = { _paginationContainer } >
236
- < div
237
- css = { css `
231
+ >
232
+ { flexRender ( cell . column . columnDef . cell , cell . getContext ( ) ) }
233
+ </ td >
234
+ ) ) }
235
+ </ tr >
236
+ ) ) }
237
+ </ tbody >
238
+ </ table >
239
+ </ div >
240
+ < div css = { _paginationContainer } >
241
+ < div
242
+ css = { css `
238
243
color : # 3e4954 ;
239
244
` }
240
- >
241
- 총 주문 건수: { ( orders as any ) ?. response ?. totalCount } 건
245
+ >
246
+ 총 주문 건수: { ( orders as any ) ?. response ?. totalCount } 건
247
+ </ div >
248
+ < Pagination
249
+ currentPage = { Number ( page ) }
250
+ // @ts -expect-error 타입이 useQuery에서 안잡혀서 임시로 타입을 무시합니다.
251
+ totalCount = { orders ?. response ?. totalCount }
252
+ onClickPage = { handleClickPage }
253
+ onClickPrevPage = { handleClickPrevPage }
254
+ onClickNextPage = { handleClickNextPage }
255
+ />
242
256
</ div >
243
- < Pagination
244
- currentPage = { Number ( page ) }
245
- // @ts -expect-error 타입이 useQuery에서 안잡혀서 임시로 타입을 무시합니다.
246
- totalCount = { orders ?. response ?. totalCount }
247
- onClickPage = { handleClickPage }
248
- onClickPrevPage = { handleClickPrevPage }
249
- onClickNextPage = { handleClickNextPage }
250
- />
251
257
</ div >
252
- </ div >
258
+ </ AuthGuard >
253
259
) ;
254
260
} ;
255
261
0 commit comments