- {isPreviewableAsset(asset) && (
-
- )}
- {isWorkAsset(asset) && (
-
- )}
- {asset.sourcePageId && (
-
- )}
- {asset.publicUrl && (
-
- 公网图
-
- )}
- {asset.status === 'ready' && asset.scanStatus !== 'blocked' ? (
-
- ) : (
-
暂不可用
- )}
- {pendingDeleteId === asset.id ? (
- <>
+ const renderAssetActions = (asset: MindSpaceAsset) => {
+ const shareReady = asset.status === 'ready' && asset.scanStatus !== 'blocked';
+ const menuOpen = openAssetMenuId === asset.id;
+
+ return (
+
+ {isWorkAsset(asset) ? (
-
- );
+ ) : (
+
暂不可预览
+ )}
+
+ {shareReady ? (
+
setSharePayload(buildAssetSharePayload(asset, selectedCategory?.code))}
+ >
+ 分享
+
+ ) : (
+
暂不可分享
+ )}
+
+
+
setOpenAssetMenuId((current) => (current === asset.id ? null : asset.id))}
+ >
+ ···
+
+ {menuOpen && (
+
+ {isPreviewableAsset(asset) && !isWorkAsset(asset) && (
+
{
+ setPreviewAssetId(asset.id);
+ setOpenAssetMenuId(null);
+ }}
+ >
+ 预览
+
+ )}
+ {asset.sourcePageId && (
+
{
+ showPage(asset.sourcePageId!, true);
+ setOpenAssetMenuId(null);
+ }}
+ >
+ 发布到广场
+
+ )}
+ {asset.publicUrl && (
+
setOpenAssetMenuId(null)}
+ >
+ 打开公网图
+
+ )}
+ {pendingDeleteId === asset.id ? (
+ <>
+
{
+ void removeAsset(asset.id);
+ setOpenAssetMenuId(null);
+ }}
+ >
+ 确认删除
+
+
{
+ setPendingDeleteId(null);
+ setOpenAssetMenuId(null);
+ }}
+ >
+ 取消删除
+
+ >
+ ) : (
+
{
+ setPendingDeleteId(asset.id);
+ setOpenAssetMenuId(null);
+ }}
+ >
+ 删除
+
+ )}
+
+ )}
+
+
+ );
+ };
const createPage = async () => {
if (!newPageTitle.trim() || !newPageContent.trim()) return;
@@ -2280,45 +2365,49 @@ export function MindSpaceView({
/>