feat(h5): add pull-to-refresh on user partner and shop pages
CI / verify (pull_request) Has been cancelled

Share PullToRefresh for partner/shop H5; enable Taro pull-down on mini-user lists.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-22 11:19:42 +08:00
parent 270cebc79a
commit ae7c63c08d
29 changed files with 443 additions and 121 deletions
+12 -7
View File
@@ -1,5 +1,6 @@
import { useEffect, useState } from 'react';
import { useCallback, useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import PullToRefresh from '@dukang/shared-ui/PullToRefresh';
import { useStoreSession } from '../contexts/StoreSessionContext';
import {
needsStoreSelection,
@@ -19,15 +20,19 @@ export default function SelectStorePage() {
const currentStoreId = store?.storeId || '';
const canGoBack = Boolean(currentStoreId);
const loadStores = useCallback(() => {
return request<ShopStoreOption[]>('SHOP_H5', '/shop/auth/stores')
.then((list) => setStores(list))
.catch((e) => setMsg(e instanceof Error ? e.message : '加载门店失败'));
}, []);
useEffect(() => {
if (!authenticated) {
navigate('/login', { replace: true });
return;
}
void request<ShopStoreOption[]>('SHOP_H5', '/shop/auth/stores')
.then((list) => setStores(list))
.catch((e) => setMsg(e instanceof Error ? e.message : '加载门店失败'));
}, [authenticated, navigate]);
void loadStores();
}, [authenticated, navigate, loadStores]);
async function onSelect(storeId: string) {
if (loadingId) return;
@@ -63,7 +68,7 @@ export default function SelectStorePage() {
}
return (
<div className="shop-select-store-page">
<PullToRefresh onRefresh={loadStores} className="shop-select-store-page">
<header className="shop-subpage-header">
{canGoBack ? (
<button
@@ -151,7 +156,7 @@ export default function SelectStorePage() {
) : null}
</section>
</div>
</div>
</PullToRefresh>
);
}