- POST/DELETE /api/categories(需登录,级联,local 保护) - profile 设置(头像/名称/角色/简介/位置)应用到资料卡 - 详情操作条:浏览 +1、点赞切换、分享复制、跳转外链 - 编辑按钮垂直居中且留 12px;设置页按钮上间距、保存 Toast、Tabs 去滚动条 - 登录密码可见切换 - 测试 48 passed
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import { Avatar, Card, Icon, Text, Title } from '@stash/ui'
|
|
import type { ProfileSettings } from '../../settings'
|
|
|
|
/**
|
|
* 用户资料卡:头像、认证徽标、昵称、角色、简介、IP 属地。
|
|
* 内容来自站点设置(/admin → 资料),未设置时用默认文案。
|
|
*/
|
|
type ProfileCardProps = {
|
|
profile: ProfileSettings
|
|
}
|
|
|
|
export function ProfileCard({ profile }: ProfileCardProps) {
|
|
return (
|
|
<Card padding="none" className="profile-card">
|
|
{profile.avatar !== '' ? (
|
|
<Avatar size="xl" src={profile.avatar} alt={profile.name} verified />
|
|
) : (
|
|
<Avatar size="xl" tone="primary" icon={<Icon name="user_3_line" />} verified />
|
|
)}
|
|
|
|
<Title level={4} weight="semibold" className="profile-name">
|
|
{profile.name}
|
|
</Title>
|
|
|
|
<span className="profile-role">{profile.role}</span>
|
|
|
|
<Text size="xs" tone="sub" className="profile-bio">
|
|
{profile.description}
|
|
</Text>
|
|
|
|
<span className="profile-location">{profile.location}</span>
|
|
</Card>
|
|
)
|
|
}
|