From 7c8873714d56008791255334383f7c075450bde3 Mon Sep 17 00:00:00 2001 From: "focp212@naver.com" Date: Fri, 12 Sep 2025 17:35:57 +0900 Subject: [PATCH] =?UTF-8?q?=ED=95=84=ED=84=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transaction/ui/filter/billing-filter.tsx | 68 ++++++++----------- src/shared/ui/filter/select-input.tsx | 56 +++++++++++++++ src/shared/ui/filter/select.tsx | 43 ++++++++++++ 3 files changed, 128 insertions(+), 39 deletions(-) create mode 100644 src/shared/ui/filter/select-input.tsx create mode 100644 src/shared/ui/filter/select.tsx diff --git a/src/entities/transaction/ui/filter/billing-filter.tsx b/src/entities/transaction/ui/filter/billing-filter.tsx index d5d28e7..6722138 100644 --- a/src/entities/transaction/ui/filter/billing-filter.tsx +++ b/src/entities/transaction/ui/filter/billing-filter.tsx @@ -1,7 +1,13 @@ import moment from 'moment'; +import { useEffect } from 'react'; import { ChangeEvent, useState } from 'react'; import { motion } from 'framer-motion'; import { IMAGE_ROOT } from '@/shared/constants/common'; +import { FilterSelect } from '@/shared/ui/filter/select'; +import { FilterSelectInput } from '@/shared/ui/filter/select-input'; +import { FilterCalendar } from '@/shared/ui/filter/filter-calendar'; +import { FilterButtonGroups } from '@/shared/ui/filter/button-groups'; +import { FilterRangeAmount } from '@/shared/ui/filter/range-amount'; import { BillingFilterProps, BillingPaymentMethod, @@ -9,11 +15,6 @@ import { BillingRequestStatus, BillingSearchType } from '../../model/types'; -import { FilterDateOptions } from '@/entities/common/model/types'; -import { FilterCalendar } from '@/shared/ui/filter/filter-calendar'; -import { FilterButtonGroups } from '@/shared/ui/filter/button-groups'; -import { FilterRangeAmount } from '@/shared/ui/filter/range-amount'; -import { useEffect } from 'react'; export const BillingFilter = ({ filterOn, @@ -50,11 +51,7 @@ export const BillingFilter = ({ const [filterPaymentMethod, setFilterPaymentMethod] = useState(paymentMethod); const [filterMinAmount, setFilterMinAmount] = useState(minAmount || ''); const [filterMaxAmount, setFilterMaxAmount] = useState(maxAmount || ''); - const [dateReadOnly, setDateReadyOnly] = useState(true); - const [filterDateOptionsBtn, setFilterDateOptionsBtn] = useState(FilterDateOptions.Input); - - const [calendarOpen, setCalendarOpen] = useState(false); - + const variants = { hidden: { x: '100%' }, visible: { x: '0%' }, @@ -79,6 +76,13 @@ export const BillingFilter = ({ setPaymentMethod(filterPaymentMethod); onClickToClose(); }; + let MidOptions = [ + {name: 'nictest001m', value: 'nictest001m'} + ]; + let SearchTypeOptions = [ + {name: '주문번호', value: BillingSearchType.ORDER_NUMBER }, + {name: 'TID', value: BillingSearchType.TID } + ]; let requestStatusBtnGroup = [ {name: '전체', value: BillingRequestStatus.ALL}, @@ -134,36 +138,22 @@ export const BillingFilter = ({
-
-
가맹점
-
- -
-
- -
-
주문번호/ID
-
- - ) => setFilterSearchKeyword(e.target.value)} - /> -
-
+ + void; + selectOptions: Array>; + inputValue: string; + inputSetter: (value: any) => void; +}; +export const FilterSelectInput = ({ + title, + selectValue, + selectSetter, + selectOptions, + inputValue, + inputSetter +}: FilterSelectInputProps) => { + + const getSelectOptions = () => { + let rs = []; + for(let i=0;i{ selectOptions[i]?.name } + ); + } + return rs; + }; + + return ( + <> +
+
{ title }
+
+ + ) => inputSetter(e.target.value)} + /> +
+
+ + ); +}; \ No newline at end of file diff --git a/src/shared/ui/filter/select.tsx b/src/shared/ui/filter/select.tsx new file mode 100644 index 0000000..d75be3e --- /dev/null +++ b/src/shared/ui/filter/select.tsx @@ -0,0 +1,43 @@ +export interface FilterSelectProps { + title: string; + selectValue: string; + selectSetter: (value: any) => void; + selectOptions: Array>; +}; +export const FilterSelect = ({ + title, + selectValue, + selectSetter, + selectOptions, +}: FilterSelectProps) => { + + const getSelectOptions = () => { + let rs = []; + for(let i=0;i{ selectOptions[i]?.name } + ); + } + return rs; + }; + + return ( + <> +
+
{ title }
+
+ +
+
+ + ); +}; \ No newline at end of file