fix(web): derive project rail labels from names

This commit is contained in:
2026-07-22 15:08:57 +08:00
parent 98573cf4ca
commit 1d35fcf4a1
3 changed files with 15 additions and 1 deletions

View File

@@ -42,6 +42,11 @@ for (const forbidden of ['森林Agent', 'SenlinAI Workbench']) {
}
}
const projectRailSource = readFileSync('src/pages/projects/project-rail.tsx', 'utf8')
if (!projectRailSource.includes('projectNameLabel(project.name)')) {
failures.push('project rail labels must derive from the project name')
}
if (existsSync('src/App.tsx')) {
failures.push('legacy src/App.tsx should be removed after page split')
}

View File

@@ -360,11 +360,14 @@
.project-button {
width: 48px;
height: 48px;
padding: 0 4px;
border: 1px solid var(--senlin-border);
border-radius: 8px;
background: color-mix(in srgb, var(--project-color) 9%, white);
color: var(--project-color);
font-size: 12px;
font-weight: 700;
overflow: hidden;
cursor: pointer;
}

View File

@@ -47,7 +47,7 @@ export function ProjectRail({
style={{ '--project-color': project.color } as CSSProperties}
title={project.name}
>
{project.short}
{projectNameLabel(project.name)}
</button>
</Badge>
))}
@@ -56,3 +56,9 @@ export function ProjectRail({
</Sider>
)
}
function projectNameLabel(name: string) {
const characters = Array.from(name.trim())
const limit = characters.some((character) => /\p{Script=Han}/u.test(character)) ? 2 : 4
return characters.slice(0, limit).join('')
}