fix: 优化嵌入登录等待态并修复大厅与订单筛选交互
This commit is contained in:
@@ -69,7 +69,10 @@ export function TicketOrdersListScreen() {
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [loadingMore, setLoadingMore] = useState(false);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
const [queryDrawNo, setQueryDrawNo] = useState(drawNoFilter);
|
||||
const [queryDrawNoState, setQueryDrawNoState] = useState(() => ({
|
||||
base: drawNoFilter,
|
||||
draft: drawNoFilter,
|
||||
}));
|
||||
const [queryNumber, setQueryNumber] = useState("");
|
||||
const [queryStatuses, setQueryStatuses] = useState<string[]>(statusFilter);
|
||||
const [fromDate, setFromDate] = useState("");
|
||||
@@ -82,9 +85,9 @@ export function TicketOrdersListScreen() {
|
||||
const isMobile = useIsMobile();
|
||||
const initialLoadDone = useRef(false);
|
||||
|
||||
useEffect(() => {
|
||||
setQueryDrawNo(drawNoFilter);
|
||||
}, [drawNoFilter]);
|
||||
const queryDrawNoInput =
|
||||
queryDrawNoState.base === drawNoFilter ? queryDrawNoState.draft : drawNoFilter;
|
||||
const queryDrawNo = queryDrawNoInput || drawNoFilter;
|
||||
|
||||
const selectedRange = useMemo(() => {
|
||||
const from = parseSchedulePickerYmd(fromDate);
|
||||
@@ -118,7 +121,7 @@ export function TicketOrdersListScreen() {
|
||||
const res = await getTicketItems({
|
||||
page: nextPage,
|
||||
per_page: ORDERS_PAGE_SIZE,
|
||||
draw_no: queryDrawNo || drawNoFilter || undefined,
|
||||
draw_no: queryDrawNo || undefined,
|
||||
number: queryNumber || undefined,
|
||||
status: queryStatuses.length ? queryStatuses : undefined,
|
||||
start_date: fromDate || undefined,
|
||||
@@ -136,7 +139,7 @@ export function TicketOrdersListScreen() {
|
||||
setLoadingMore(false);
|
||||
}
|
||||
},
|
||||
[drawNoFilter, fromDate, queryDrawNo, queryNumber, queryStatuses, t, toDate],
|
||||
[fromDate, queryDrawNo, queryNumber, queryStatuses, t, toDate],
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -219,13 +222,13 @@ export function TicketOrdersListScreen() {
|
||||
>
|
||||
{t("orders.betNow")}
|
||||
</Link>
|
||||
{(queryDrawNo || queryNumber || fromDate || toDate || queryStatuses.length > 0) ? (
|
||||
{(queryDrawNoInput || queryNumber || fromDate || toDate || queryStatuses.length > 0) ? (
|
||||
<Button
|
||||
type="button"
|
||||
variant="outline"
|
||||
className="h-9 rounded-full border-[#dce7f7] bg-white px-3 text-xs font-bold text-[#32518d] hover:bg-[#f8fbff]"
|
||||
onClick={() => {
|
||||
setQueryDrawNo(drawNoFilter);
|
||||
setQueryDrawNoState({ base: drawNoFilter, draft: drawNoFilter });
|
||||
setQueryNumber("");
|
||||
setFromDate("");
|
||||
setToDate("");
|
||||
@@ -243,8 +246,10 @@ export function TicketOrdersListScreen() {
|
||||
<div className="mt-3 grid grid-cols-2 gap-2 lg:grid-cols-4">
|
||||
<div className="flex h-9 min-w-0 items-center rounded-full border border-[#dce7f7] bg-[#fbfdff] px-3">
|
||||
<Input
|
||||
value={queryDrawNo}
|
||||
onChange={(e) => setQueryDrawNo(e.target.value)}
|
||||
value={queryDrawNoInput}
|
||||
onChange={(e) =>
|
||||
setQueryDrawNoState({ base: drawNoFilter, draft: e.target.value })
|
||||
}
|
||||
placeholder={t("orders.drawNo")}
|
||||
aria-label={t("orders.drawNo")}
|
||||
className="h-7 border-0 bg-transparent px-0 text-sm shadow-none focus-visible:ring-0"
|
||||
|
||||
Reference in New Issue
Block a user