diff --git a/apps/ai-game-creator-shell/src/styles.css b/apps/ai-game-creator-shell/src/styles.css index 68dd0c241..e0e6d2bea 100644 --- a/apps/ai-game-creator-shell/src/styles.css +++ b/apps/ai-game-creator-shell/src/styles.css @@ -6215,10 +6215,6 @@ iframe.preview-frame { font-size: 12px; } -.game-resource-category-filter { - margin: 8px 12px 0; -} - .game-resource-classification-dialog { width: min(480px, 100%); } diff --git a/apps/ai-game-creator-shell/src/view/project-development/index.tsx b/apps/ai-game-creator-shell/src/view/project-development/index.tsx index b6fde1e08..8967dd75c 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/index.tsx +++ b/apps/ai-game-creator-shell/src/view/project-development/index.tsx @@ -61,7 +61,6 @@ import { type WheelEvent as ReactWheelEvent, } from 'react'; -import { PlatformResourceFilterBar } from '../../../../../packages/shared/src/components/PlatformResourceFilterBar'; import type { GameCreationAppAgentGroup, GameCreationAppAssetManifestEntry, @@ -70,10 +69,6 @@ import type { GameIterationVersion, ProjectResourceCanvasLayoutMode, } from '../../../../../packages/shared/src/contracts/gameCreationApp'; -import { - assetTagsMatchSelection, - buildGameCreationAppAssetTagLibrary, -} from '../../../../../packages/shared/src/contracts/gameCreationAppAssetTagLibrary'; import type { CanvasLayer, QuickEditPanelState, @@ -88,9 +83,7 @@ import { } from '../../features/project-workspace/LocalGamePreviewFrame'; import { dispatchResourceReferenceInsert, - RESOURCE_REFERENCE_FILTERS, resourceReferenceCategoryLabel, - type ResourceReferenceFilter, } from '../../features/project-workspace/resourceReferences'; import { GameRunVersionPicker } from '../../features/resource-canvas/GameRunVersionPicker'; import { @@ -366,15 +359,6 @@ type ResourceCanvasViewportBySortMode = Record< ResourceSortMode, ResourceCanvasViewportByCategory >; -/** 功能分类筛选与画布视口一样按「按依赖 / 按类型」分别保存,不新造第二套状态。 */ -type ResourceCanvasCategoryFilterBySortMode = Record< - ResourceSortMode, - ResourceReferenceFilter ->; - -function defaultResourceCanvasCategoryFilters(): ResourceCanvasCategoryFilterBySortMode { - return { dependency: 'all', type: 'all' }; -} function defaultResourceCanvasViewports(): ResourceCanvasViewportBySortMode { const byCategory = (): ResourceCanvasViewportByCategory => ({ @@ -1267,17 +1251,6 @@ export default function ProjectDevelopmentView({ ); const [sortMode, setSortMode] = useState('dependency'); const [searchText, setSearchText] = useState(''); - const [resourceCanvasCategoryFilters, setResourceCanvasCategoryFilters] = - useState( - defaultResourceCanvasCategoryFilters, - ); - /** - * 画布标签筛选:与「按依赖 / 按类型」无关,是画布级的收窄条件; - * 与 `@` 面板、参考图弹窗的筛选状态互相独立。 - */ - const [resourceCanvasActiveTags, setResourceCanvasActiveTags] = useState< - string[] - >([]); const [resourceCanvasViewports, setResourceCanvasViewports] = useState(defaultResourceCanvasViewports); const resourceCanvasViewportTargetsRef = useRef( @@ -1963,45 +1936,23 @@ export default function ProjectDevelopmentView({ ); }, [resources, selectedResourceId]); const normalizedSearch = searchText.trim().toLowerCase(); - const resourceCategoryFilter = resourceCanvasCategoryFilters[sortMode]; - /** 标签库是从 manifest `assets[].tags` 派生的数据,manifest 一改就重算。 */ - const resourceTagLibrary = useMemo( - () => buildGameCreationAppAssetTagLibrary(manifest.assets), - [manifest.assets], - ); + /** + * 画布可见资源只由搜索框收窄:功能分类筛选条与画布标签筛选已按用户要求移除, + * 分区栏目本身(`categoryOrder` / 栏目大纲 / 栏目标题栏)不受影响。 + */ const visibleResources = useMemo( () => - canvasResources.filter((resource) => { - if ( - resourceCategoryFilter !== 'all' && - projectResourceAssetCategory(resource) !== resourceCategoryFilter - ) { - return false; - } - // 标签筛选与功能分类筛选共存且可叠加:分类过了还得命中全部已选标签。 - if ( - !assetTagsMatchSelection( - resource.assetTags ?? [], - resourceCanvasActiveTags, - ) - ) { - return false; - } - return normalizedSearch + canvasResources.filter((resource) => + normalizedSearch ? [ resource.label, resource.path, resource.mediaType, resource.taskTitle ?? '', ].some((value) => value.toLowerCase().includes(normalizedSearch)) - : true; - }), - [ - canvasResources, - normalizedSearch, - resourceCanvasActiveTags, - resourceCategoryFilter, - ], + : true, + ), + [canvasResources, normalizedSearch], ); const visibleResourceIds = useMemo( () => new Set(visibleResources.map((resource) => resource.id)), @@ -4329,18 +4280,6 @@ export default function ProjectDevelopmentView({ setSortMode(nextMode); } - function showResourceCategoryFilter(nextFilter: ResourceReferenceFilter) { - if (nextFilter === resourceCategoryFilter) { - return; - } - advanceFocusGeneration(); - setHiddenCommittedResourceId(null); - setResourceCanvasCategoryFilters((current) => ({ - ...current, - [sortMode]: nextFilter, - })); - } - const openUiDesignEditor = useCallback( async (resource: ProjectResource) => { const prototypeAssetId = resource.manifestAssetId; @@ -5823,22 +5762,6 @@ export default function ProjectDevelopmentView({ }} /> - { - setResourceCanvasActiveTags((current) => - current.includes(tag) - ? current.filter((item) => item !== tag) - : [...current, tag], - ); - }} - className="game-resource-category-filter" - /> {resourceWorkbenchNotice ? (
{resourceWorkbenchNotice}