Files
Genarrative/src/components/image-editor/EditorAgentConversation/common.ts
T
k88936 386534a415
Project CI / Frontend tests (push) Failing after 22s
Project CI / Repository checks (push) Successful in 1m10s
Project CI / Backend tests (push) Successful in 3m40s
Project CI / Native shell tests (push) Successful in 10m56s
Feat/artagent 点击/右键功能 聚焦到画布上的素材 (#123)
- 为避免prop drilling把原有的刷新画布集中到一个useContext中,
   在此基础上实现画布聚焦, 并在画布agent中使用

![shotmd-1785482938-compressed.webp](/attachments/59d71873-79fc-40e8-a9dc-7830a5ad7f3c)

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/123
Co-authored-by: 王德宇 <kvtodev@outlook.com>
Co-committed-by: 王德宇 <kvtodev@outlook.com>
2026-07-31 17:25:35 +08:00

44 lines
1.2 KiB
TypeScript

import type { MouseEvent as ReactMouseEvent } from 'react';
import type { EditorAgentAttachmentRef } from '@/packages/shared/src/contracts';
export enum EditorAgentRightClickAction {
CopyText = 'copy_text',
CopyImage = 'copy_image',
ReferenceImage = 'reference_image',
FocusCanvas = 'focus_canvas',
DownloadAsset = 'download_asset',
}
export type EditorAgentContextAsset =
| (EditorAgentAttachmentRef & {
kind: 'attachment';
mediaType: 'image';
suggestedFileName: string;
})
| {
kind: 'generated_media';
mediaType: 'image' | 'video' | 'audio';
mediaSrc: string;
objectKey?: string | null;
resourceId?: string | null;
suggestedFileName: string;
};
export type RightClickMenuTarget =
| { kind: 'text'; text: string }
| { kind: 'asset'; asset: EditorAgentContextAsset };
export type RightClickMenuHandler = (
event: ReactMouseEvent<HTMLElement>,
asset: EditorAgentContextAsset,
) => void;
export function attachmentKey(attachment: EditorAgentAttachmentRef) {
return `${attachment.source}:${attachment.referenceId}`;
}
export function contextAssetMediaSrc(asset: EditorAgentContextAsset) {
return asset.kind === 'attachment' ? asset.imageSrc : asset.mediaSrc;
}