@assistant-ui/react 0.7.11 → 0.7.14
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.d.ts +1 -1
- package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
- package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.js.map +1 -1
- package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.mjs.map +1 -1
- package/dist/primitives/actionBar/ActionBarCopy.d.ts +1 -3
- package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarEdit.d.ts +1 -3
- package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +1 -3
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +1 -3
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarReload.d.ts +1 -3
- package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarRoot.d.ts +1 -3
- package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarSpeak.d.ts +1 -3
- package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +1 -3
- package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
- package/dist/primitives/assistantModal/scope.d.ts +2 -6
- package/dist/primitives/assistantModal/scope.d.ts.map +1 -1
- package/dist/primitives/attachment/AttachmentRemove.d.ts +1 -3
- package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -1
- package/dist/primitives/attachment/AttachmentRoot.d.ts +1 -3
- package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -1
- package/dist/primitives/attachment/AttachmentThumb.d.ts +1 -3
- package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNext.d.ts +1 -3
- package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +1 -3
- package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +1 -3
- package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerAddAttachment.d.ts +1 -3
- package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerCancel.d.ts +1 -3
- package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerInput.js +2 -2
- package/dist/primitives/composer/ComposerInput.js.map +1 -1
- package/dist/primitives/composer/ComposerInput.mjs +2 -2
- package/dist/primitives/composer/ComposerInput.mjs.map +1 -1
- package/dist/primitives/composer/ComposerRoot.d.ts +1 -3
- package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerSend.d.ts +1 -3
- package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
- package/dist/primitives/contentPart/ContentPartImage.d.ts +1 -3
- package/dist/primitives/contentPart/ContentPartImage.d.ts.map +1 -1
- package/dist/primitives/contentPart/ContentPartText.d.ts +1 -3
- package/dist/primitives/contentPart/ContentPartText.d.ts.map +1 -1
- package/dist/primitives/message/MessageRoot.d.ts +1 -3
- package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadRoot.d.ts +1 -3
- package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadScrollToBottom.d.ts +1 -3
- package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadSuggestion.d.ts +1 -3
- package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadViewport.d.ts +1 -3
- package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
- package/dist/primitives/threadList/ThreadListNew.d.ts +1 -3
- package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +1 -3
- package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +1 -3
- package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +1 -3
- package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +1 -3
- package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +1 -3
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -1
- package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts +2 -0
- package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/core/BaseThreadRuntimeCore.js +8 -0
- package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/core/BaseThreadRuntimeCore.mjs +8 -0
- package/dist/runtimes/core/BaseThreadRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/edge/streams/assistantDecoderStream.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/assistantDecoderStream.js +16 -9
- package/dist/runtimes/edge/streams/assistantDecoderStream.js.map +1 -1
- package/dist/runtimes/edge/streams/assistantDecoderStream.mjs +16 -9
- package/dist/runtimes/edge/streams/assistantDecoderStream.mjs.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +3 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs +3 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +0 -2
- package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.js +2 -9
- package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +2 -9
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
- package/dist/styles/index.css.map +1 -1
- package/dist/ui/assistant-action-bar.d.ts +1 -3
- package/dist/ui/assistant-action-bar.d.ts.map +1 -1
- package/dist/ui/assistant-message.d.ts +1 -3
- package/dist/ui/assistant-message.d.ts.map +1 -1
- package/dist/ui/attachment-ui.d.ts +1 -3
- package/dist/ui/attachment-ui.d.ts.map +1 -1
- package/dist/ui/base/button.d.ts +1 -3
- package/dist/ui/base/button.d.ts.map +1 -1
- package/dist/ui/base/tooltip-icon-button.d.ts +1 -3
- package/dist/ui/base/tooltip-icon-button.d.ts.map +1 -1
- package/dist/ui/branch-picker.d.ts +1 -3
- package/dist/ui/branch-picker.d.ts.map +1 -1
- package/dist/ui/composer.d.ts +1 -3
- package/dist/ui/composer.d.ts.map +1 -1
- package/dist/ui/edit-composer.d.ts +1 -3
- package/dist/ui/edit-composer.d.ts.map +1 -1
- package/dist/ui/thread-list-item.d.ts +1 -3
- package/dist/ui/thread-list-item.d.ts.map +1 -1
- package/dist/ui/thread-list.d.ts +1 -3
- package/dist/ui/thread-list.d.ts.map +1 -1
- package/dist/ui/thread.d.ts +2 -6
- package/dist/ui/thread.d.ts.map +1 -1
- package/dist/ui/user-action-bar.d.ts +1 -3
- package/dist/ui/user-action-bar.d.ts.map +1 -1
- package/dist/ui/user-message.d.ts +1 -3
- package/dist/ui/user-message.d.ts.map +1 -1
- package/dist/utils/createActionButton.d.ts +1 -3
- package/dist/utils/createActionButton.d.ts.map +1 -1
- package/dist/utils/hooks/useManagedRef.js +1 -1
- package/dist/utils/hooks/useManagedRef.js.map +1 -1
- package/dist/utils/hooks/useManagedRef.mjs +1 -1
- package/dist/utils/hooks/useManagedRef.mjs.map +1 -1
- package/package.json +22 -22
- package/src/primitive-hooks/thread/useThreadViewportAutoScroll.tsx +1 -1
- package/src/primitives/composer/ComposerInput.tsx +2 -2
- package/src/runtimes/core/BaseThreadRuntimeCore.tsx +10 -0
- package/src/runtimes/edge/streams/assistantDecoderStream.ts +18 -9
- package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +4 -1
- package/src/runtimes/local/LocalThreadRuntimeCore.tsx +2 -11
- package/src/utils/hooks/useManagedRef.ts +1 -1
- package/edge/package-lock.json +0 -6
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/hooks/useManagedRef.ts"],"sourcesContent":["import { useCallback, useRef } from \"react\";\n\nexport const useManagedRef = <TNode>(\n callback: (node: TNode) => (() => void) | void,\n) => {\n const cleanupRef = useRef<(() => void) | void>();\n\n const ref = useCallback(\n (el: TNode | null) => {\n // Call the previous cleanup function\n if (cleanupRef.current) {\n cleanupRef.current();\n }\n\n // Call the new callback and store its cleanup function\n if (el) {\n cleanupRef.current = callback(el);\n }\n },\n [callback],\n );\n\n return ref;\n};\n"],"mappings":";AAAA,SAAS,aAAa,cAAc;AAE7B,IAAM,gBAAgB,CAC3B,aACG;AACH,QAAM,aAAa,OAA4B;
|
1
|
+
{"version":3,"sources":["../../../src/utils/hooks/useManagedRef.ts"],"sourcesContent":["import { useCallback, useRef } from \"react\";\n\nexport const useManagedRef = <TNode>(\n callback: (node: TNode) => (() => void) | void,\n) => {\n const cleanupRef = useRef<(() => void) | void>(undefined);\n\n const ref = useCallback(\n (el: TNode | null) => {\n // Call the previous cleanup function\n if (cleanupRef.current) {\n cleanupRef.current();\n }\n\n // Call the new callback and store its cleanup function\n if (el) {\n cleanupRef.current = callback(el);\n }\n },\n [callback],\n );\n\n return ref;\n};\n"],"mappings":";AAAA,SAAS,aAAa,cAAc;AAE7B,IAAM,gBAAgB,CAC3B,aACG;AACH,QAAM,aAAa,OAA4B,MAAS;AAExD,QAAM,MAAM;AAAA,IACV,CAAC,OAAqB;AAEpB,UAAI,WAAW,SAAS;AACtB,mBAAW,QAAQ;AAAA,MACrB;AAGA,UAAI,IAAI;AACN,mBAAW,UAAU,SAAS,EAAE;AAAA,MAClC;AAAA,IACF;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,SAAO;AACT;","names":[]}
|
package/package.json
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
"conversational-ui",
|
30
30
|
"conversational-ai"
|
31
31
|
],
|
32
|
-
"version": "0.7.
|
32
|
+
"version": "0.7.14",
|
33
33
|
"license": "MIT",
|
34
34
|
"exports": {
|
35
35
|
".": {
|
@@ -65,28 +65,28 @@
|
|
65
65
|
],
|
66
66
|
"sideEffects": false,
|
67
67
|
"dependencies": {
|
68
|
-
"@ai-sdk/provider": "^1.0.
|
69
|
-
"@radix-ui/primitive": "^1.1.
|
70
|
-
"@radix-ui/react-avatar": "^1.1.
|
71
|
-
"@radix-ui/react-compose-refs": "^1.1.
|
68
|
+
"@ai-sdk/provider": "^1.0.2",
|
69
|
+
"@radix-ui/primitive": "^1.1.1",
|
70
|
+
"@radix-ui/react-avatar": "^1.1.2",
|
71
|
+
"@radix-ui/react-compose-refs": "^1.1.1",
|
72
72
|
"@radix-ui/react-context": "^1.1.1",
|
73
|
-
"@radix-ui/react-dialog": "^1.1.
|
74
|
-
"@radix-ui/react-popover": "^1.1.
|
75
|
-
"@radix-ui/react-primitive": "^2.0.
|
76
|
-
"@radix-ui/react-slot": "^1.1.
|
77
|
-
"@radix-ui/react-tooltip": "^1.1.
|
73
|
+
"@radix-ui/react-dialog": "^1.1.3",
|
74
|
+
"@radix-ui/react-popover": "^1.1.3",
|
75
|
+
"@radix-ui/react-primitive": "^2.0.1",
|
76
|
+
"@radix-ui/react-slot": "^1.1.1",
|
77
|
+
"@radix-ui/react-tooltip": "^1.1.5",
|
78
78
|
"@radix-ui/react-use-callback-ref": "^1.1.0",
|
79
79
|
"@radix-ui/react-use-escape-keydown": "^1.1.0",
|
80
|
-
"class-variance-authority": "^0.7.
|
80
|
+
"class-variance-authority": "^0.7.1",
|
81
81
|
"classnames": "^2.5.1",
|
82
82
|
"json-schema": "^0.4.0",
|
83
|
-
"lucide-react": "^0.
|
84
|
-
"nanoid": "^5.0.
|
85
|
-
"react-textarea-autosize": "^8.5.
|
83
|
+
"lucide-react": "^0.468.0",
|
84
|
+
"nanoid": "^5.0.9",
|
85
|
+
"react-textarea-autosize": "^8.5.6",
|
86
86
|
"secure-json-parse": "^3.0.1",
|
87
|
-
"zod": "^3.
|
88
|
-
"zod-to-json-schema": "^3.
|
89
|
-
"zustand": "^5.0.
|
87
|
+
"zod": "^3.24.1",
|
88
|
+
"zod-to-json-schema": "^3.24.1",
|
89
|
+
"zustand": "^5.0.2"
|
90
90
|
},
|
91
91
|
"peerDependencies": {
|
92
92
|
"@types/react": "*",
|
@@ -108,20 +108,20 @@
|
|
108
108
|
},
|
109
109
|
"devDependencies": {
|
110
110
|
"@types/json-schema": "^7.0.15",
|
111
|
-
"@types/node": "^22.
|
111
|
+
"@types/node": "^22.10.2",
|
112
112
|
"autoprefixer": "^10.4.20",
|
113
|
-
"esbuild-plugin-file-path-extensions": "^2.1.
|
113
|
+
"esbuild-plugin-file-path-extensions": "^2.1.4",
|
114
114
|
"eslint": "^9",
|
115
|
-
"eslint-config-next": "15.0
|
115
|
+
"eslint-config-next": "15.1.0",
|
116
116
|
"postcss": "^8.4.49",
|
117
117
|
"postcss-js": "^4.0.1",
|
118
118
|
"postcss-nested": "^7.0.2",
|
119
|
-
"tailwindcss": "^3.4.
|
119
|
+
"tailwindcss": "^3.4.16",
|
120
120
|
"tailwindcss-animate": "^1.0.7",
|
121
121
|
"tsup": "8.3.5",
|
122
122
|
"tsx": "^4.19.2",
|
123
|
-
"@assistant-ui/tailwindcss-transformer": "0.1.0",
|
124
123
|
"@assistant-ui/tsbuildutils": "^0.0.0",
|
124
|
+
"@assistant-ui/tailwindcss-transformer": "0.1.0",
|
125
125
|
"@assistant-ui/tsconfig": "0.0.0"
|
126
126
|
},
|
127
127
|
"publishConfig": {
|
@@ -18,7 +18,7 @@ export type UseThreadViewportAutoScrollProps = {
|
|
18
18
|
export const useThreadViewportAutoScroll = <TElement extends HTMLElement>({
|
19
19
|
autoScroll = true,
|
20
20
|
unstable_scrollToBottomOnRunStart = true,
|
21
|
-
}: UseThreadViewportAutoScrollProps) => {
|
21
|
+
}: UseThreadViewportAutoScrollProps): React.RefCallback<TElement> => {
|
22
22
|
const divRef = useRef<TElement>(null);
|
23
23
|
|
24
24
|
const threadViewportStore = useThreadViewportStore();
|
@@ -102,8 +102,8 @@ export const ComposerPrimitiveInput = forwardRef<
|
|
102
102
|
|
103
103
|
textarea.focus({ preventScroll: true });
|
104
104
|
textarea.setSelectionRange(
|
105
|
-
|
106
|
-
|
105
|
+
textarea.value.length,
|
106
|
+
textarea.value.length,
|
107
107
|
);
|
108
108
|
}, [autoFocusEnabled]);
|
109
109
|
|
@@ -32,6 +32,7 @@ type BaseThreadAdapters = {
|
|
32
32
|
|
33
33
|
export abstract class BaseThreadRuntimeCore implements ThreadRuntimeCore {
|
34
34
|
private _subscriptions = new Set<() => void>();
|
35
|
+
private _isInitialized = false;
|
35
36
|
|
36
37
|
protected readonly repository = new MessageRepository();
|
37
38
|
public abstract get adapters(): BaseThreadAdapters | undefined;
|
@@ -161,11 +162,20 @@ export abstract class BaseThreadRuntimeCore implements ThreadRuntimeCore {
|
|
161
162
|
this._notifySubscribers();
|
162
163
|
}
|
163
164
|
|
165
|
+
protected ensureInitialized() {
|
166
|
+
if (!this._isInitialized) {
|
167
|
+
this._isInitialized = true;
|
168
|
+
this._notifyEventSubscribers("initialize");
|
169
|
+
}
|
170
|
+
}
|
171
|
+
|
164
172
|
public export() {
|
165
173
|
return this.repository.export();
|
166
174
|
}
|
167
175
|
|
168
176
|
public import(data: ExportedMessageRepository) {
|
177
|
+
this.ensureInitialized();
|
178
|
+
|
169
179
|
this.repository.import(data);
|
170
180
|
this._notifySubscribers();
|
171
181
|
}
|
@@ -11,24 +11,30 @@ export function assistantDecoderStream() {
|
|
11
11
|
| { id: string; name: string; argsText: string }
|
12
12
|
| undefined;
|
13
13
|
|
14
|
+
const endCurrentToolCall = (
|
15
|
+
controller: TransformStreamDefaultController<ToolResultStreamPart>,
|
16
|
+
) => {
|
17
|
+
if (!currentToolCall) return;
|
18
|
+
controller.enqueue({
|
19
|
+
type: "tool-call",
|
20
|
+
toolCallType: "function",
|
21
|
+
toolCallId: currentToolCall.id,
|
22
|
+
toolName: currentToolCall.name,
|
23
|
+
args: currentToolCall.argsText,
|
24
|
+
});
|
25
|
+
currentToolCall = undefined;
|
26
|
+
};
|
27
|
+
|
14
28
|
return new TransformStream<
|
15
29
|
StreamPart<AssistantStreamChunk>,
|
16
30
|
ToolResultStreamPart
|
17
31
|
>({
|
18
32
|
transform({ type, value }, controller) {
|
19
33
|
if (
|
20
|
-
currentToolCall &&
|
21
34
|
type !== AssistantStreamChunkType.ToolCallDelta &&
|
22
35
|
type !== AssistantStreamChunkType.Error
|
23
36
|
) {
|
24
|
-
controller
|
25
|
-
type: "tool-call",
|
26
|
-
toolCallType: "function",
|
27
|
-
toolCallId: currentToolCall.id,
|
28
|
-
toolName: currentToolCall.name,
|
29
|
-
args: currentToolCall.argsText,
|
30
|
-
});
|
31
|
-
currentToolCall = undefined;
|
37
|
+
endCurrentToolCall(controller);
|
32
38
|
}
|
33
39
|
|
34
40
|
switch (type) {
|
@@ -135,5 +141,8 @@ export function assistantDecoderStream() {
|
|
135
141
|
}
|
136
142
|
}
|
137
143
|
},
|
144
|
+
flush(controller) {
|
145
|
+
endCurrentToolCall(controller);
|
146
|
+
},
|
138
147
|
});
|
139
148
|
}
|
@@ -133,8 +133,9 @@ export class ExternalStoreThreadRuntimeCore
|
|
133
133
|
)
|
134
134
|
return cache;
|
135
135
|
|
136
|
+
const messageLike = store.convertMessage(m, idx);
|
136
137
|
const newMessage = fromThreadMessageLike(
|
137
|
-
|
138
|
+
messageLike,
|
138
139
|
idx.toString(),
|
139
140
|
autoStatus,
|
140
141
|
);
|
@@ -142,6 +143,8 @@ export class ExternalStoreThreadRuntimeCore
|
|
142
143
|
return newMessage;
|
143
144
|
});
|
144
145
|
|
146
|
+
if (messages.length > 0) this.ensureInitialized();
|
147
|
+
|
145
148
|
for (let i = 0; i < messages.length; i++) {
|
146
149
|
const message = messages[i]!;
|
147
150
|
const parent = messages[i - 1];
|
@@ -19,8 +19,6 @@ export class LocalThreadRuntimeCore
|
|
19
19
|
extends BaseThreadRuntimeCore
|
20
20
|
implements ThreadRuntimeCore
|
21
21
|
{
|
22
|
-
private _isInitialized = false;
|
23
|
-
|
24
22
|
public readonly capabilities = {
|
25
23
|
switchToBranch: true,
|
26
24
|
edit: true,
|
@@ -83,15 +81,8 @@ export class LocalThreadRuntimeCore
|
|
83
81
|
if (hasUpdates) this._notifySubscribers();
|
84
82
|
}
|
85
83
|
|
86
|
-
private _ensureInitialized() {
|
87
|
-
if (!this._isInitialized) {
|
88
|
-
this._isInitialized = true;
|
89
|
-
this._notifyEventSubscribers("initialize");
|
90
|
-
}
|
91
|
-
}
|
92
|
-
|
93
84
|
public async append(message: AppendMessage): Promise<void> {
|
94
|
-
this.
|
85
|
+
this.ensureInitialized();
|
95
86
|
|
96
87
|
const newMessage = fromCoreMessage(message, {
|
97
88
|
attachments: message.attachments,
|
@@ -108,7 +99,7 @@ export class LocalThreadRuntimeCore
|
|
108
99
|
}
|
109
100
|
|
110
101
|
public async startRun(parentId: string | null): Promise<void> {
|
111
|
-
this.
|
102
|
+
this.ensureInitialized();
|
112
103
|
|
113
104
|
this.repository.resetHead(parentId);
|
114
105
|
|
@@ -3,7 +3,7 @@ import { useCallback, useRef } from "react";
|
|
3
3
|
export const useManagedRef = <TNode>(
|
4
4
|
callback: (node: TNode) => (() => void) | void,
|
5
5
|
) => {
|
6
|
-
const cleanupRef = useRef<(() => void) | void>();
|
6
|
+
const cleanupRef = useRef<(() => void) | void>(undefined);
|
7
7
|
|
8
8
|
const ref = useCallback(
|
9
9
|
(el: TNode | null) => {
|