({show, onClick})
| 308 | } |
| 309 | |
| 310 | function ScrollHint({show, onClick}) { |
| 311 | return ( |
| 312 | <Box |
| 313 | component="button" |
| 314 | type="button" |
| 315 | aria-label="滚动到下一屏" |
| 316 | onClick={onClick} |
| 317 | sx={{ |
| 318 | position: 'fixed', |
| 319 | left: '50%', |
| 320 | bottom: 24, |
| 321 | transform: 'translateX(-50%)', |
| 322 | p: 0, |
| 323 | border: 'none', |
| 324 | background: 'none', |
| 325 | font: 'inherit', |
| 326 | display: 'flex', |
| 327 | flexDirection: 'column', |
| 328 | alignItems: 'center', |
| 329 | gap: 0.25, |
| 330 | color: 'text.secondary', |
| 331 | cursor: 'pointer', |
| 332 | zIndex: 10, |
| 333 | opacity: show ? 0.85 : 0, |
| 334 | pointerEvents: show ? 'auto' : 'none', |
| 335 | transition: 'opacity 0.4s ease, color 0.2s ease', |
| 336 | '&:hover': {color: 'primary.main'}, |
| 337 | '&:focus-visible': {outline: '2px solid', outlineColor: 'primary.main', outlineOffset: 4, borderRadius: 1}, |
| 338 | }} |
| 339 | > |
| 340 | <Typography variant='caption' sx={{letterSpacing: '0.12em'}}>向下滑动</Typography> |
| 341 | <KeyboardArrowDown className='ScrollHint'/> |
| 342 | </Box> |
| 343 | ); |
| 344 | } |
| 345 | |
| 346 | function readCachedStars() { |
| 347 | try { |
nothing calls this directly
no outgoing calls
no test coverage detected