()
| 496 | } |
| 497 | |
| 498 | function LinksBlock() { |
| 499 | const dark = useTheme().palette.mode === 'dark'; |
| 500 | const cardTitleSx = {fontWeight: 800, display: 'inline-block', ...gradientTextSx(dark)}; |
| 501 | const thanks = [ |
| 502 | <>本项目受到 <MuiLink href='https://github.com/xichenpan' target='_blank' rel='noopener'>flash 老师</MuiLink> 的{' '} |
| 503 | <MuiLink href='https://opencs.app' target='_blank' rel='noopener'>OpenCS</MuiLink> 项目的启发。</>, |
| 504 | <>内测阶段得到了信息学院与生医工学院毕业生们的大力支持,他们的宝贵建议对 OpenSIST 的完善至关重要。</>, |
| 505 | <>信息学院的倪鹤南老师为本项目提供了诸多行政上的支持。</>, |
| 506 | ]; |
| 507 | return ( |
| 508 | <Box sx={{width: '100%', maxWidth: 980}}> |
| 509 | <SectionHeading title='友情链接 & 致谢' subtitle='站在前人的肩膀上,也感谢一路同行的人'/> |
| 510 | <Box sx={{display: 'grid', gridTemplateColumns: {xs: '1fr', sm: '1fr 1fr'}, gap: {xs: 2, md: 2.5}, alignItems: 'start'}}> |
| 511 | <Box className='GlassCard' sx={glassSx(dark, {p: {xs: '1.25rem', md: '1.5rem'}})}> |
| 512 | <Typography variant='h6' sx={cardTitleSx}>友情链接</Typography> |
| 513 | <Divider sx={{my: 1.25, borderColor: 'divider'}}/> |
| 514 | {FRIEND_LINKS.map((sec) => ( |
| 515 | <Box key={sec.group} sx={{mb: 1}}> |
| 516 | <Typography variant='overline' sx={{color: 'text.secondary', fontWeight: 700, letterSpacing: '0.08em'}}> |
| 517 | {sec.group} |
| 518 | </Typography> |
| 519 | <Box sx={{mt: 0.25}}> |
| 520 | {sec.items.map((item) => <LinkRow key={item.name} item={item} dark={dark}/>)} |
| 521 | </Box> |
| 522 | </Box> |
| 523 | ))} |
| 524 | </Box> |
| 525 | <Box className='GlassCard' sx={glassSx(dark, {p: {xs: '1.25rem', md: '1.5rem'}})}> |
| 526 | <Typography variant='h6' sx={cardTitleSx}>特别鸣谢</Typography> |
| 527 | <Divider sx={{my: 1.25, borderColor: 'divider'}}/> |
| 528 | <Stack spacing={1.25}> |
| 529 | {thanks.map((t, i) => ( |
| 530 | <Box key={i} sx={{display: 'flex', gap: 1.25, alignItems: 'flex-start'}}> |
| 531 | <Box sx={{mt: '0.5em', width: 7, height: 7, borderRadius: '50%', flexShrink: 0, background: brandGradient(dark)}}/> |
| 532 | <Typography variant='body2' sx={{color: 'text.secondary', lineHeight: 1.7}}>{t}</Typography> |
| 533 | </Box> |
| 534 | ))} |
| 535 | </Stack> |
| 536 | </Box> |
| 537 | </Box> |
| 538 | </Box> |
| 539 | ); |
| 540 | } |
| 541 | |
| 542 | function brandGradient(dark) { |
| 543 | return dark ? 'linear-gradient(140deg, #93C0F2, #6BA6E8)' : 'linear-gradient(140deg, #1C5BAA, #4F86CE)'; |
nothing calls this directly
no test coverage detected