-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathCopyActionControlModule.ts
More file actions
37 lines (33 loc) · 1.34 KB
/
CopyActionControlModule.ts
File metadata and controls
37 lines (33 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// src/controls/modules/canvas/CopyActionControlModule.ts
// FULL FILE
import React from "react";
import { type ControlModule } from "@/types/litechat/control";
import type { LiteChatModApi } from "@/types/litechat/modding";
import type { CanvasControlRenderContext } from "@/types/litechat/canvas/control";
import { CopyActionControl } from "@/controls/components/canvas/CopyActionControl";
export class CopyActionControlModule implements ControlModule {
readonly id = "core-canvas-copy-action";
async initialize(_modApi: LiteChatModApi): Promise<void> {}
register(modApi: LiteChatModApi): void {
modApi.registerCanvasControl({
id: this.id,
type: "interaction",
targetSlot: "header-actions",
renderer: (context: CanvasControlRenderContext) => {
// console.log("copy action render call")
if (!context.interactionId) {
console.warn(
"CopyActionControlModule: interactionId is missing in context for an interaction control."
);
return null;
}
return React.createElement(CopyActionControl, {
interactionId: context.interactionId,
contentToCopy: context.responseContent ?? "",
disabled: !context.responseContent || context.responseContent.trim() === "",
});
},
});
}
destroy(_modApi: LiteChatModApi): void {}
}