发布版本文案去诱导:卡面角标只写最新,面板写明发布固定取最新内部版本
- resourceProjectionModel.ts:publicationTag 注释改为「值是内部版本序数(versions.length),也就是发布时会提交的那个标签」,并注明卡面只渲染中性的「最新」角标,不再写「发布标签 v{N}」
- GameDistributionPublishPanel.tsx:「项目版本」说明注释写明发布提交的标签是 versions.length(最新内部版本序数),不读任何「选中版本」;画布上的选中/「当前版本」只影响当前版本素材与运行播放哪一版
- index.tsx / styles.css:版本卡角标由「最新 · 发布标签 v{N}」改为中性的「最新」,并换用卡面既有的中性 pill 样式
- gameDistributionPublishPanel.test.tsx:同步旧的角标/文案断言
This commit is contained in:
+6
-3
@@ -283,14 +283,17 @@ export function GameDistributionPublishPanel({
|
||||
[manifest],
|
||||
);
|
||||
/**
|
||||
* 「项目版本」这一格的说明。标签只有一个来源(`versions[]` 条数),平台线上版本号是
|
||||
* 另一套事实:两句都要说清,且不在这里做第二份口径派生。
|
||||
* 「项目版本」这一格的说明。
|
||||
*
|
||||
* 口径必须与取数一致:发布提交的标签是 `versions.length`(最新内部版本序数),
|
||||
* **不读**任何"选中版本";资源画布上的选中/「当前版本」只影响「当前版本素材」与运行用哪版播放。
|
||||
* 所以这里直说"发布用最新",并写明暂不能指定版本,不用「发布标签」去暗示用户可以挑卡。
|
||||
*/
|
||||
const projectVersionHint = useMemo(() => {
|
||||
const internalCount = manifest.versions?.length ?? 0;
|
||||
const label =
|
||||
internalCount > 0
|
||||
? `本次发布标签 = 最新内部版本 v${projectVersion};agent 再改进一次后,下一次发布将是 v${projectVersion + 1}。`
|
||||
? `发布将使用最新内部版本 v${projectVersion}(标签 = 内部版本条数,暂不能指定其它版本);agent 再改进一次后,下一次是 v${projectVersion + 1}。`
|
||||
: `这个项目还没有内部版本,本次发布按首版 v${projectVersion}。`;
|
||||
const platform =
|
||||
latestVersionNumber > 0
|
||||
|
||||
@@ -8169,15 +8169,16 @@ iframe.preview-frame {
|
||||
}
|
||||
|
||||
/*
|
||||
* 最新内部版本卡的发布标签角标。只出现在 `versions[]` 最后一条上:它就是发布面板
|
||||
* 「项目版本」取的那一张(标签 = 内部版本序数 = 版本条数),卡面直接写出 `v{N}`。
|
||||
* 最新内部版本卡的中性角标。只出现在 `versions[]` 最后一条上:不写「发布标签」,
|
||||
* 因为发布固定取最新内部版本、不需要用户在卡上挑;选中态另有一套「当前版本素材」口径。
|
||||
* 形制沿用卡面既有的中性 pill(与 `.game-resource-card-engine-label` 同族)。
|
||||
*/
|
||||
.game-resource-card-version-publication-tag {
|
||||
.game-resource-card-version-latest-tag {
|
||||
padding: 1px 7px;
|
||||
border: 1px solid rgb(201 111 68 / 38%);
|
||||
border: 1px solid rgb(139 91 69 / 28%);
|
||||
border-radius: 999px;
|
||||
background: rgb(201 111 68 / 14%);
|
||||
color: #a8492a;
|
||||
background: rgb(255 255 255 / 72%);
|
||||
color: #8b5b45;
|
||||
font-size: 9px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.02em;
|
||||
|
||||
@@ -1291,16 +1291,14 @@ const ResourceCard = memo(function ResourceCard({
|
||||
);
|
||||
}
|
||||
if (kind === 'version') {
|
||||
// 最新内部版本卡带上发布标签角标:它就是发布面板「项目版本」取的那一张,
|
||||
// 卡面直接写出 `v{N}`,用户不必再靠位置或 `版本 N` 反推。
|
||||
const publicationTag = resource.version?.publicationTag;
|
||||
// 角标只写「最新」:发布固定取最新内部版本,卡面不写「发布标签」;
|
||||
// 否则用户会以为"挑中哪张卡就发哪张",而选中态只影响「当前版本素材」与运行用哪版播放。
|
||||
const isLatestVersion = resource.version?.publicationTag !== undefined;
|
||||
return (
|
||||
<span className="game-resource-card-version-visual">
|
||||
<Gamepad2 size={34} aria-hidden="true" />
|
||||
{publicationTag ? (
|
||||
<span className="game-resource-card-version-publication-tag">
|
||||
{`最新 · 发布标签 v${publicationTag}`}
|
||||
</span>
|
||||
{isLatestVersion ? (
|
||||
<span className="game-resource-card-version-latest-tag">最新</span>
|
||||
) : null}
|
||||
<span className="game-resource-card-version-relations">
|
||||
{resource.version?.childVersionIds.length
|
||||
|
||||
@@ -33,9 +33,12 @@ export type ProjectVersionResourceSummary = GameIterationVersion & {
|
||||
label: string;
|
||||
childVersionIds: string[];
|
||||
/**
|
||||
* 只有**最新内部版本**(`manifest.versions` 最后一条)带它,值就是这次发布的标签
|
||||
* (= 内部版本序数 = `versions.length`,与发布面板的 `resolveGameCreationAppProjectVersion`
|
||||
* 取的是同一个数)。卡面据此渲染「最新 · 发布标签 v{N}」角标;其余版本不渲染。
|
||||
* 只有**最新内部版本**(`manifest.versions` 最后一条)带它,值是内部版本序数
|
||||
* (= `versions.length`,也就是发布时会提交的那个标签,与发布面板的
|
||||
* `resolveGameCreationAppProjectVersion` 同源)。
|
||||
*
|
||||
* 卡面据此只渲染**中性**的「最新」角标:发布固定取最新内部版本,卡面不把它写成
|
||||
* 「发布标签」,免得诱导用户以为要挑一张卡才能发。
|
||||
*/
|
||||
publicationTag?: number;
|
||||
};
|
||||
@@ -528,8 +531,8 @@ export function projectResourcesFromReadModels(
|
||||
label: `版本 ${index + 1}`,
|
||||
childVersionIds:
|
||||
childVersionIdsByParent.get(manifestVersion.versionId) ?? [],
|
||||
// 最新内部版本 = 数组最后一条 = 发布面板取的标签(`versions.length`)。
|
||||
// 只有它带 `publicationTag`:卡面据此渲染「最新 · 发布标签 v{N}」角标。
|
||||
// 最新内部版本 = 数组最后一条 = 发布时会提交的标签(`versions.length`)。
|
||||
// 只有它带 `publicationTag`:卡面据此只渲染中性的「最新」角标。
|
||||
...(index === manifestVersions.length - 1
|
||||
? { publicationTag: index + 1 }
|
||||
: {}),
|
||||
|
||||
@@ -841,7 +841,7 @@ describe('GameDistributionPublishPanel', () => {
|
||||
expect(screen.getByText('v4')).not.toBeNull();
|
||||
expect(
|
||||
screen.getByText(
|
||||
/本次发布标签 = 最新内部版本 v4;agent 再改进一次后,下一次发布将是 v5。/u,
|
||||
/发布将使用最新内部版本 v4(标签 = 内部版本条数,暂不能指定其它版本);agent 再改进一次后,下一次是 v5。/u,
|
||||
),
|
||||
).not.toBeNull();
|
||||
expect(screen.getByText(/线上最近提交 v5 · 已公开/u)).not.toBeNull();
|
||||
|
||||
Reference in New Issue
Block a user