mirror of
https://github.com/hicccc77/WeFlow.git
synced 2026-03-24 23:06:51 +00:00
refactor(export): remove scroll back-to-top affordance
This commit is contained in:
@@ -1400,28 +1400,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.back-to-top-btn {
|
|
||||||
position: fixed;
|
|
||||||
top: 14px;
|
|
||||||
right: 18px;
|
|
||||||
z-index: 120;
|
|
||||||
border: 1px solid rgba(var(--primary-rgb), 0.4);
|
|
||||||
border-radius: 999px;
|
|
||||||
background: color-mix(in srgb, var(--bg-primary) 90%, var(--bg-secondary));
|
|
||||||
color: var(--primary);
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 600;
|
|
||||||
padding: 6px 12px;
|
|
||||||
cursor: pointer;
|
|
||||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
|
|
||||||
transition: transform 0.12s ease, box-shadow 0.12s ease;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
transform: translateY(-1px);
|
|
||||||
box-shadow: 0 12px 24px rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-virtuoso {
|
.table-virtuoso {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
@@ -2769,9 +2747,4 @@
|
|||||||
.export-session-detail-panel {
|
.export-session-detail-panel {
|
||||||
width: calc(100vw - 12px);
|
width: calc(100vw - 12px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.back-to-top-btn {
|
|
||||||
top: 10px;
|
|
||||||
right: 10px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1275,7 +1275,6 @@ function ExportPage() {
|
|||||||
const [hasSeededSnsStats, setHasSeededSnsStats] = useState(false)
|
const [hasSeededSnsStats, setHasSeededSnsStats] = useState(false)
|
||||||
const [nowTick, setNowTick] = useState(Date.now())
|
const [nowTick, setNowTick] = useState(Date.now())
|
||||||
const [isContactsListAtTop, setIsContactsListAtTop] = useState(true)
|
const [isContactsListAtTop, setIsContactsListAtTop] = useState(true)
|
||||||
const [isPageScrolled, setIsPageScrolled] = useState(false)
|
|
||||||
const tabCounts = useContactTypeCountsStore(state => state.tabCounts)
|
const tabCounts = useContactTypeCountsStore(state => state.tabCounts)
|
||||||
const isSharedTabCountsLoading = useContactTypeCountsStore(state => state.isLoading)
|
const isSharedTabCountsLoading = useContactTypeCountsStore(state => state.isLoading)
|
||||||
const isSharedTabCountsReady = useContactTypeCountsStore(state => state.isReady)
|
const isSharedTabCountsReady = useContactTypeCountsStore(state => state.isReady)
|
||||||
@@ -1596,19 +1595,6 @@ function ExportPage() {
|
|||||||
return () => clearInterval(timer)
|
return () => clearInterval(timer)
|
||||||
}, [isExportRoute])
|
}, [isExportRoute])
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (!isExportRoute) {
|
|
||||||
setIsPageScrolled(false)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const onWindowScroll = () => {
|
|
||||||
setIsPageScrolled(window.scrollY > 160)
|
|
||||||
}
|
|
||||||
onWindowScroll()
|
|
||||||
window.addEventListener('scroll', onWindowScroll, { passive: true })
|
|
||||||
return () => window.removeEventListener('scroll', onWindowScroll)
|
|
||||||
}, [isExportRoute])
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!isTaskCenterOpen || !expandedPerfTaskId) return
|
if (!isTaskCenterOpen || !expandedPerfTaskId) return
|
||||||
const target = tasks.find(task => task.id === expandedPerfTaskId)
|
const target = tasks.find(task => task.id === expandedPerfTaskId)
|
||||||
@@ -3810,7 +3796,6 @@ function ExportPage() {
|
|||||||
const taskRunningCount = tasks.filter(task => task.status === 'running').length
|
const taskRunningCount = tasks.filter(task => task.status === 'running').length
|
||||||
const taskQueuedCount = tasks.filter(task => task.status === 'queued').length
|
const taskQueuedCount = tasks.filter(task => task.status === 'queued').length
|
||||||
const hasFilteredContacts = filteredContacts.length > 0
|
const hasFilteredContacts = filteredContacts.length > 0
|
||||||
const showBackToTop = isPageScrolled || !isContactsListAtTop
|
|
||||||
const closeTaskCenter = useCallback(() => {
|
const closeTaskCenter = useCallback(() => {
|
||||||
setIsTaskCenterOpen(false)
|
setIsTaskCenterOpen(false)
|
||||||
setExpandedPerfTaskId(null)
|
setExpandedPerfTaskId(null)
|
||||||
@@ -3923,10 +3908,6 @@ function ExportPage() {
|
|||||||
showSessionDetailPanel,
|
showSessionDetailPanel,
|
||||||
toggleSelectSession
|
toggleSelectSession
|
||||||
])
|
])
|
||||||
const handleBackToTop = useCallback(() => {
|
|
||||||
contactsVirtuosoRef.current?.scrollToIndex({ index: 0, align: 'start', behavior: 'smooth' })
|
|
||||||
window.scrollTo({ top: 0, behavior: 'smooth' })
|
|
||||||
}, [])
|
|
||||||
const handleContactsListWheelCapture = useCallback((event: WheelEvent<HTMLDivElement>) => {
|
const handleContactsListWheelCapture = useCallback((event: WheelEvent<HTMLDivElement>) => {
|
||||||
const deltaY = event.deltaY
|
const deltaY = event.deltaY
|
||||||
if (!deltaY) return
|
if (!deltaY) return
|
||||||
@@ -4563,16 +4544,6 @@ function ExportPage() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{showBackToTop && (
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
className="back-to-top-btn"
|
|
||||||
onClick={handleBackToTop}
|
|
||||||
>
|
|
||||||
回到顶部
|
|
||||||
</button>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{exportDialog.open && createPortal(
|
{exportDialog.open && createPortal(
|
||||||
<div className="export-dialog-overlay" onClick={closeExportDialog}>
|
<div className="export-dialog-overlay" onClick={closeExportDialog}>
|
||||||
<div className="export-dialog" role="dialog" aria-modal="true" onClick={(event) => event.stopPropagation()}>
|
<div className="export-dialog" role="dialog" aria-modal="true" onClick={(event) => event.stopPropagation()}>
|
||||||
|
|||||||
Reference in New Issue
Block a user