收口智能创作首页空态
将智能创作首页抽屉空态迁移到 PlatformEmptyState 将智能创作首页错误提示迁移到 PlatformStatusMessage 删除智能创作首页本地空态和错误提示 chrome 新增 CreativeAgentHome 公共组件断言 更新 PlatformUiKit 文档和 Hermes 决策记录
This commit is contained in:
47
src/components/creative-agent/CreativeAgentHome.test.tsx
Normal file
47
src/components/creative-agent/CreativeAgentHome.test.tsx
Normal file
@@ -0,0 +1,47 @@
|
||||
/* @vitest-environment jsdom */
|
||||
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import { expect, test, vi } from 'vitest';
|
||||
|
||||
import { CreativeAgentHome } from './CreativeAgentHome';
|
||||
|
||||
function renderHome({
|
||||
error = null,
|
||||
}: {
|
||||
error?: string | null;
|
||||
} = {}) {
|
||||
render(
|
||||
<CreativeAgentHome
|
||||
recentItems={[]}
|
||||
isBusy={false}
|
||||
error={error}
|
||||
onStartNewChat={vi.fn()}
|
||||
onOpenHistoryItem={vi.fn()}
|
||||
onOpenDrafts={vi.fn()}
|
||||
onOpenAccount={vi.fn()}
|
||||
onOpenSettings={vi.fn()}
|
||||
onSubmitMessage={vi.fn()}
|
||||
/>,
|
||||
);
|
||||
}
|
||||
|
||||
test('CreativeAgentHome uses shared empty state for empty drawer history', () => {
|
||||
renderHome();
|
||||
|
||||
const emptyState = screen.getByText('暂无创作记录');
|
||||
|
||||
expect(emptyState.className).toContain('platform-empty-state');
|
||||
expect(emptyState.className).toContain('bg-white/74');
|
||||
});
|
||||
|
||||
test('CreativeAgentHome uses shared status message for home error', () => {
|
||||
renderHome({ error: '创作助手暂时不可用' });
|
||||
|
||||
const statusMessage = screen.getByText('创作助手暂时不可用');
|
||||
|
||||
expect(statusMessage.className).toContain('platform-status-message');
|
||||
expect(statusMessage.className).toContain('creative-agent-home__error');
|
||||
expect(statusMessage.className).toContain(
|
||||
'border-[var(--platform-button-danger-border)]',
|
||||
);
|
||||
});
|
||||
@@ -14,7 +14,9 @@ import {
|
||||
import { useMemo, useState } from 'react';
|
||||
|
||||
import type { CreativeAgentInputPart } from '../../../packages/shared/src/contracts/creativeAgent';
|
||||
import { PlatformEmptyState } from '../common/PlatformEmptyState';
|
||||
import { PlatformIconButton } from '../common/PlatformIconButton';
|
||||
import { PlatformStatusMessage } from '../common/PlatformStatusMessage';
|
||||
import type { CreationWorkShelfItem } from '../custom-world-home/creationWorkShelf';
|
||||
import { RpgEntryBrandLogo } from '../rpg-entry/RpgEntryBrandLogo';
|
||||
import { CreativeAgentInputComposer } from './CreativeAgentInputComposer';
|
||||
@@ -252,7 +254,9 @@ function CreativeAgentDrawer({
|
||||
</section>
|
||||
))
|
||||
) : (
|
||||
<div className="creative-agent-drawer__empty">暂无创作记录</div>
|
||||
<PlatformEmptyState surface="subpanel" size="inline">
|
||||
暂无创作记录
|
||||
</PlatformEmptyState>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -366,7 +370,14 @@ export function CreativeAgentHome({
|
||||
</div>
|
||||
|
||||
{error ? (
|
||||
<div className="creative-agent-home__error">{error}</div>
|
||||
<PlatformStatusMessage
|
||||
tone="error"
|
||||
surface="platform"
|
||||
size="md"
|
||||
className="creative-agent-home__error font-semibold"
|
||||
>
|
||||
{error}
|
||||
</PlatformStatusMessage>
|
||||
) : null}
|
||||
</main>
|
||||
|
||||
|
||||
@@ -8963,14 +8963,6 @@ button {
|
||||
|
||||
.creative-agent-home__error {
|
||||
max-width: 38rem;
|
||||
border: 1px solid var(--platform-button-danger-border);
|
||||
border-radius: 1rem;
|
||||
background: var(--platform-button-danger-fill);
|
||||
color: var(--platform-button-danger-text);
|
||||
padding: 0.85rem 1rem;
|
||||
font-size: 0.875rem;
|
||||
font-weight: 800;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.creative-agent-home__composer {
|
||||
@@ -9139,17 +9131,6 @@ button {
|
||||
color 180ms ease;
|
||||
}
|
||||
|
||||
.creative-agent-drawer__empty {
|
||||
border: 1px solid var(--platform-subpanel-border);
|
||||
border-radius: 1rem;
|
||||
background: var(--platform-subpanel-fill);
|
||||
color: var(--platform-text-soft);
|
||||
padding: 0.9rem 1rem;
|
||||
text-align: center;
|
||||
font-size: 0.9rem;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.creative-agent-drawer__avatar {
|
||||
display: inline-flex;
|
||||
width: 3rem;
|
||||
|
||||
Reference in New Issue
Block a user