@mobilon-dev/chotto 0.3.105 → 0.3.107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chotto.css +1 -1
- package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue.js +2 -2
- package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +293 -266
- package/dist/components/2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue.js +7 -0
- package/dist/components/2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue2.js +73 -0
- package/dist/components/2_feed_elements/FileMessage/FileMessage.vue.js +1 -1
- package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +185 -158
- package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +3 -3
- package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +227 -200
- package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue.js +2 -2
- package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue2.js +62 -245
- package/dist/components/2_feed_elements/MessageReactions/MessageReactionsOverlay.vue.js +7 -0
- package/dist/components/2_feed_elements/MessageReactions/MessageReactionsOverlay.vue2.js +231 -0
- package/dist/components/2_feed_elements/MessageReactions/composables/usePositioning.js +25 -25
- package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +2 -2
- package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +213 -186
- package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +2 -2
- package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +190 -164
- package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +1 -1
- package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +209 -182
- package/dist/components/3_compounds/Feed/Feed.vue.js +2 -2
- package/dist/components/3_compounds/Feed/Feed.vue2.js +261 -213
- package/dist/components/3_compounds/Feed/composables/useFeedGrouping.js +23 -20
- package/dist/components/3_compounds/Feed/composables/useFeedProgressiveRender.js +82 -0
- package/dist/components/3_compounds/Feed/composables/useFeedReactionsOverlay.js +34 -0
- package/dist/hooks/messages/useMessageActions.js +81 -70
- package/dist/hooks/messages/useMessageReactionsInFeed.js +53 -0
- package/dist/hooks/messages/useMessageReactionsMount.js +21 -0
- package/dist/index.js +245 -238
- package/dist/types/components/2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue.d.ts +19 -0
- package/dist/types/components/2_feed_elements/MessageReactions/MessageReactions.vue.d.ts +4 -71
- package/dist/types/components/2_feed_elements/MessageReactions/MessageReactionsOverlay.vue.d.ts +2 -0
- package/dist/types/components/2_feed_elements/MessageReactions/composables/usePositioning.d.ts +2 -1
- package/dist/types/components/3_compounds/Feed/Feed.vue.d.ts +6 -0
- package/dist/types/components/3_compounds/Feed/composables/index.d.ts +2 -0
- package/dist/types/components/3_compounds/Feed/composables/useFeedGrouping.d.ts +3 -22
- package/dist/types/components/3_compounds/Feed/composables/useFeedProgressiveRender.d.ts +22 -0
- package/dist/types/components/3_compounds/Feed/composables/useFeedReactionsOverlay.d.ts +52 -0
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/hooks/messages/index.d.ts +2 -0
- package/dist/types/hooks/messages/useMessageReactionsInFeed.d.ts +25 -0
- package/dist/types/hooks/messages/useMessageReactionsMount.d.ts +10 -0
- package/package.json +1 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import type { MessageReactions, Reply } from '@/types';
|
|
1
|
+
import type { MessageReactions } from '@/types';
|
|
3
2
|
import { type ReactionsMode } from './composables';
|
|
4
3
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
5
4
|
reactions: {
|
|
@@ -11,10 +10,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
11
10
|
type: (StringConstructor | NumberConstructor)[];
|
|
12
11
|
required: true;
|
|
13
12
|
};
|
|
14
|
-
readonly: {
|
|
15
|
-
type: BooleanConstructor;
|
|
16
|
-
default: boolean;
|
|
17
|
-
};
|
|
18
13
|
enabled: {
|
|
19
14
|
type: BooleanConstructor;
|
|
20
15
|
default: boolean;
|
|
@@ -24,47 +19,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
24
19
|
default: string;
|
|
25
20
|
validator: (value: string) => boolean;
|
|
26
21
|
};
|
|
27
|
-
/** Id текущего пользователя — для расчёта reactedByMe и локальных add/remove */
|
|
28
22
|
currentUserId: {
|
|
29
23
|
type: () => string | number | undefined;
|
|
30
24
|
default: undefined;
|
|
31
25
|
};
|
|
32
|
-
/** Имя текущего пользователя — для тултипа при локальном добавлении реакции */
|
|
33
26
|
currentUserName: {
|
|
34
27
|
type: StringConstructor;
|
|
35
28
|
default: undefined;
|
|
36
29
|
};
|
|
37
|
-
/** userId → имя (если в item нет name) */
|
|
38
30
|
reactionUserNames: {
|
|
39
31
|
type: () => Record<string, string>;
|
|
40
32
|
default: undefined;
|
|
41
33
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
};
|
|
46
|
-
replyEnabled: {
|
|
47
|
-
type: BooleanConstructor;
|
|
48
|
-
default: boolean;
|
|
49
|
-
};
|
|
50
|
-
/** Показывать кнопку меню действий сообщения в панели быстрых реакций */
|
|
51
|
-
menuEnabled: {
|
|
52
|
-
type: BooleanConstructor;
|
|
53
|
-
default: boolean;
|
|
54
|
-
};
|
|
55
|
-
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
56
|
-
menu: (payload: {
|
|
57
|
-
messageId: string | number;
|
|
58
|
-
triggerRect?: {
|
|
59
|
-
top: number;
|
|
60
|
-
right: number;
|
|
61
|
-
bottom: number;
|
|
62
|
-
left: number;
|
|
63
|
-
width: number;
|
|
64
|
-
height: number;
|
|
65
|
-
};
|
|
66
|
-
event?: MouseEvent;
|
|
67
|
-
}) => any;
|
|
34
|
+
}>, {
|
|
35
|
+
reactionsContainerRef: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
|
|
36
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
68
37
|
"toggle-reaction": (payload: {
|
|
69
38
|
messageId: string | number;
|
|
70
39
|
key: string;
|
|
@@ -87,10 +56,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
87
56
|
type: (StringConstructor | NumberConstructor)[];
|
|
88
57
|
required: true;
|
|
89
58
|
};
|
|
90
|
-
readonly: {
|
|
91
|
-
type: BooleanConstructor;
|
|
92
|
-
default: boolean;
|
|
93
|
-
};
|
|
94
59
|
enabled: {
|
|
95
60
|
type: BooleanConstructor;
|
|
96
61
|
default: boolean;
|
|
@@ -100,47 +65,19 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
100
65
|
default: string;
|
|
101
66
|
validator: (value: string) => boolean;
|
|
102
67
|
};
|
|
103
|
-
/** Id текущего пользователя — для расчёта reactedByMe и локальных add/remove */
|
|
104
68
|
currentUserId: {
|
|
105
69
|
type: () => string | number | undefined;
|
|
106
70
|
default: undefined;
|
|
107
71
|
};
|
|
108
|
-
/** Имя текущего пользователя — для тултипа при локальном добавлении реакции */
|
|
109
72
|
currentUserName: {
|
|
110
73
|
type: StringConstructor;
|
|
111
74
|
default: undefined;
|
|
112
75
|
};
|
|
113
|
-
/** userId → имя (если в item нет name) */
|
|
114
76
|
reactionUserNames: {
|
|
115
77
|
type: () => Record<string, string>;
|
|
116
78
|
default: undefined;
|
|
117
79
|
};
|
|
118
|
-
reply: {
|
|
119
|
-
type: () => Reply | undefined;
|
|
120
|
-
default: undefined;
|
|
121
|
-
};
|
|
122
|
-
replyEnabled: {
|
|
123
|
-
type: BooleanConstructor;
|
|
124
|
-
default: boolean;
|
|
125
|
-
};
|
|
126
|
-
/** Показывать кнопку меню действий сообщения в панели быстрых реакций */
|
|
127
|
-
menuEnabled: {
|
|
128
|
-
type: BooleanConstructor;
|
|
129
|
-
default: boolean;
|
|
130
|
-
};
|
|
131
80
|
}>> & Readonly<{
|
|
132
|
-
onMenu?: ((payload: {
|
|
133
|
-
messageId: string | number;
|
|
134
|
-
triggerRect?: {
|
|
135
|
-
top: number;
|
|
136
|
-
right: number;
|
|
137
|
-
bottom: number;
|
|
138
|
-
left: number;
|
|
139
|
-
width: number;
|
|
140
|
-
height: number;
|
|
141
|
-
};
|
|
142
|
-
event?: MouseEvent;
|
|
143
|
-
}) => any) | undefined;
|
|
144
81
|
"onToggle-reaction"?: ((payload: {
|
|
145
82
|
messageId: string | number;
|
|
146
83
|
key: string;
|
|
@@ -154,15 +91,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
154
91
|
key: string;
|
|
155
92
|
}) => any) | undefined;
|
|
156
93
|
}>, {
|
|
157
|
-
reply: Reply | undefined;
|
|
158
94
|
mode: ReactionsMode;
|
|
159
95
|
reactions: MessageReactions | undefined;
|
|
160
|
-
readonly: boolean;
|
|
161
96
|
enabled: boolean;
|
|
162
97
|
currentUserId: string | number | undefined;
|
|
163
98
|
currentUserName: string;
|
|
164
99
|
reactionUserNames: Record<string, string>;
|
|
165
|
-
replyEnabled: boolean;
|
|
166
|
-
menuEnabled: boolean;
|
|
167
100
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
168
101
|
export default _default;
|
package/dist/types/components/2_feed_elements/MessageReactions/MessageReactionsOverlay.vue.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
package/dist/types/components/2_feed_elements/MessageReactions/composables/usePositioning.d.ts
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export declare function findFeedContainer(element: HTMLElement | null): HTMLElement | null;
|
|
5
5
|
/**
|
|
6
|
-
* Находит контейнер содержимого сообщения (например, text-message__content)
|
|
6
|
+
* Находит контейнер содержимого сообщения (например, text-message__content).
|
|
7
|
+
* Якорь overlay может быть самим __content — проверяем элемент и предков.
|
|
7
8
|
*/
|
|
8
9
|
export declare function findMessageContent(element: HTMLElement | null): HTMLElement | null;
|
|
9
10
|
/**
|
|
@@ -6,6 +6,9 @@ type __VLS_Slots = {} & {
|
|
|
6
6
|
'empty-feed'?: (props: typeof __VLS_47) => any;
|
|
7
7
|
};
|
|
8
8
|
declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
9
|
+
/**
|
|
10
|
+
* Объекты ленты. При смене чата сначала рисуется хвост, остальное дорисовывается пачками.
|
|
11
|
+
*/
|
|
9
12
|
objects: {
|
|
10
13
|
type: {
|
|
11
14
|
(arrayLength: number): IFeedObject[];
|
|
@@ -124,6 +127,9 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
124
127
|
forceScrollToBottom: (...args: any[]) => void;
|
|
125
128
|
delimiterRead: (...args: any[]) => void;
|
|
126
129
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
130
|
+
/**
|
|
131
|
+
* Объекты ленты. При смене чата сначала рисуется хвост, остальное дорисовывается пачками.
|
|
132
|
+
*/
|
|
127
133
|
objects: {
|
|
128
134
|
type: {
|
|
129
135
|
(arrayLength: number): IFeedObject[];
|
|
@@ -4,6 +4,8 @@ export * from './useFeedGrouping';
|
|
|
4
4
|
export * from './useFeedKeyboard';
|
|
5
5
|
export * from './useFeedLoadMore';
|
|
6
6
|
export * from './useFeedMessageVisibility';
|
|
7
|
+
export * from './useFeedProgressiveRender';
|
|
8
|
+
export * from './useFeedReactionsOverlay';
|
|
7
9
|
export * from './useFeedReply';
|
|
8
10
|
export * from './useFeedScroll';
|
|
9
11
|
export * from './useFeedScrollTo';
|
|
@@ -4,29 +4,10 @@ interface UseFeedGroupingOptions {
|
|
|
4
4
|
objects: ComputedRef<IFeedObject[]>;
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Флаги «первое в серии» без копирования objects.
|
|
8
|
+
* Сами сообщения остаются исходными ссылками — Vue не патчит все пузыри зря.
|
|
8
9
|
*/
|
|
9
10
|
export declare function useFeedGrouping({ objects }: UseFeedGroupingOptions): {
|
|
10
|
-
|
|
11
|
-
isFirstInSeries: boolean;
|
|
12
|
-
messageId: string;
|
|
13
|
-
type: string;
|
|
14
|
-
header?: string;
|
|
15
|
-
text?: string;
|
|
16
|
-
position?: string;
|
|
17
|
-
status?: string;
|
|
18
|
-
time?: string;
|
|
19
|
-
url?: string;
|
|
20
|
-
alt?: string;
|
|
21
|
-
filename?: string;
|
|
22
|
-
avatar?: string;
|
|
23
|
-
subtext?: string;
|
|
24
|
-
views?: number;
|
|
25
|
-
callDuration?: string;
|
|
26
|
-
isMissedCall?: boolean;
|
|
27
|
-
reply?: import("@/types").Reply;
|
|
28
|
-
linkPreview?: import("@/types").ILinkPreview;
|
|
29
|
-
keyboard?: import("@/types").IKeyBoard[];
|
|
30
|
-
}[]>;
|
|
11
|
+
seriesFlags: ComputedRef<boolean[]>;
|
|
31
12
|
};
|
|
32
13
|
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type Ref } from 'vue';
|
|
2
|
+
import type { IFeedObject } from '@/types';
|
|
3
|
+
export declare const FEED_TAIL_CHUNK = 28;
|
|
4
|
+
export declare const FEED_BACKFILL_CHUNK = 24;
|
|
5
|
+
interface UseFeedProgressiveRenderOptions {
|
|
6
|
+
objectsRef: {
|
|
7
|
+
value: IFeedObject[];
|
|
8
|
+
};
|
|
9
|
+
feedRef: Ref<HTMLElement | null>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Первый кадр — хвост ленты, остальное дорисовывается пачками.
|
|
13
|
+
* После дорисовки все objects в DOM, скролл нативный.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useFeedProgressiveRender({ objectsRef, feedRef, }: UseFeedProgressiveRenderOptions): {
|
|
16
|
+
visibleObjects: import("vue").ComputedRef<IFeedObject[]>;
|
|
17
|
+
renderStart: Ref<number, number>;
|
|
18
|
+
isBackfilling: import("vue").ComputedRef<boolean>;
|
|
19
|
+
revealThroughIndex: (index: number) => void;
|
|
20
|
+
accelerateBackfill: () => void;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type Ref } from 'vue';
|
|
2
|
+
import type { ReactionsMode } from '@/components/2_feed_elements/MessageReactions/composables';
|
|
3
|
+
import type { MessageReactions, Reply } from '@/types';
|
|
4
|
+
import type { OpenMessageMenuSource } from '@/hooks/messages/useMessageActions';
|
|
5
|
+
export interface FeedReactionsHandlers {
|
|
6
|
+
onToggleReaction: (payload: {
|
|
7
|
+
messageId: string | number;
|
|
8
|
+
key: string;
|
|
9
|
+
}) => void;
|
|
10
|
+
onAddReaction: (payload: {
|
|
11
|
+
messageId: string | number;
|
|
12
|
+
key: string;
|
|
13
|
+
}) => void;
|
|
14
|
+
onRemoveReaction: (payload: {
|
|
15
|
+
messageId: string | number;
|
|
16
|
+
key: string;
|
|
17
|
+
}) => void;
|
|
18
|
+
onMenu: (source?: OpenMessageMenuSource) => void;
|
|
19
|
+
}
|
|
20
|
+
export interface FeedReactionsTarget {
|
|
21
|
+
messageId: string | number;
|
|
22
|
+
anchorEl: HTMLElement;
|
|
23
|
+
chipsEl: HTMLElement | null;
|
|
24
|
+
reactions: MessageReactions | undefined;
|
|
25
|
+
reply: Reply | undefined;
|
|
26
|
+
replyEnabled: boolean;
|
|
27
|
+
menuEnabled: boolean;
|
|
28
|
+
mode: ReactionsMode;
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
handlers: FeedReactionsHandlers;
|
|
31
|
+
/** Записать оптимистичное состояние реакций в объект сообщения ленты */
|
|
32
|
+
patchReactions: (next: MessageReactions) => void;
|
|
33
|
+
}
|
|
34
|
+
export interface FeedReactionsConsumerApi {
|
|
35
|
+
activate: (target: FeedReactionsTarget) => void;
|
|
36
|
+
handlePointerLeave: (event: PointerEvent, contentEl: HTMLElement | null, chipsEl?: HTMLElement | null) => void;
|
|
37
|
+
}
|
|
38
|
+
export interface FeedReactionsOverlayState {
|
|
39
|
+
activeTarget: Ref<FeedReactionsTarget | null>;
|
|
40
|
+
anchorRef: Ref<HTMLElement | null>;
|
|
41
|
+
}
|
|
42
|
+
type PanelBridge = {
|
|
43
|
+
onMessageEnter: () => void;
|
|
44
|
+
onMessageLeave: () => void;
|
|
45
|
+
isPanelOpen: () => boolean;
|
|
46
|
+
containsNode: (node: Node) => boolean;
|
|
47
|
+
};
|
|
48
|
+
export declare function registerFeedReactionsPanelBridge(bridge: PanelBridge | null): void;
|
|
49
|
+
export declare function provideFeedReactionsOverlay(): FeedReactionsOverlayState;
|
|
50
|
+
export declare function useFeedReactionsConsumer(): FeedReactionsConsumerApi | null;
|
|
51
|
+
export declare function useFeedReactionsOverlayState(): FeedReactionsOverlayState | null;
|
|
52
|
+
export {};
|
|
@@ -49,6 +49,7 @@ export { default as UserProfile } from './2_elements/UserProfile/UserProfile.vue
|
|
|
49
49
|
export { default as VideoRecorder } from './2_elements/VideoRecorder/VideoRecorder.vue';
|
|
50
50
|
export { default as AudioMessage } from './2_feed_elements/AudioMessage/AudioMessage.vue';
|
|
51
51
|
export { default as BaseReplyMessage } from './2_feed_elements/BaseReplyMessage/BaseReplyMessage.vue';
|
|
52
|
+
export { default as FeedReplyQuote } from './2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue';
|
|
52
53
|
export { default as BaseEditMessage } from './2_feed_elements/BaseEditMessage/BaseEditMessage.vue';
|
|
53
54
|
export { default as CallMessage } from './2_feed_elements/CallMessage/CallMessage.vue';
|
|
54
55
|
export { default as DateMessage } from './2_feed_elements/DateMessage/DateMessage.vue';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export * from './useMessageActions';
|
|
2
2
|
export * from './useMessageHoverActions';
|
|
3
|
+
export * from './useMessageReactionsMount';
|
|
4
|
+
export * from './useMessageReactionsInFeed';
|
|
3
5
|
export * from './calculateMessageMenuPosition';
|
|
4
6
|
export * from './useMessageMenuActions';
|
|
5
7
|
export * from './useMessageLinks';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type InjectionKey, type MaybeRefOrGetter, type Ref } from 'vue';
|
|
2
|
+
import type { MessageReactions, Reply } from '@/types';
|
|
3
|
+
import type { FeedReactionsHandlers } from '@/components/3_compounds/Feed/composables/useFeedReactionsOverlay';
|
|
4
|
+
type MessageWithReactions = {
|
|
5
|
+
reactions?: MessageReactions;
|
|
6
|
+
};
|
|
7
|
+
export declare const MESSAGE_REACTIONS_PATCH_KEY: InjectionKey<(next: MessageReactions) => void>;
|
|
8
|
+
interface UseMessageReactionsInFeedOptions {
|
|
9
|
+
message: MaybeRefOrGetter<MessageWithReactions>;
|
|
10
|
+
messageId: MaybeRefOrGetter<string | number>;
|
|
11
|
+
reactions: MaybeRefOrGetter<MessageReactions | undefined>;
|
|
12
|
+
reactionsActive: MaybeRefOrGetter<boolean>;
|
|
13
|
+
reactionsMode: MaybeRefOrGetter<'single' | 'multi'>;
|
|
14
|
+
reply: MaybeRefOrGetter<Reply | undefined>;
|
|
15
|
+
menuEnabled: MaybeRefOrGetter<boolean>;
|
|
16
|
+
contentRef: Ref<HTMLElement | null>;
|
|
17
|
+
chipsRef?: Ref<HTMLElement | null>;
|
|
18
|
+
handlers: FeedReactionsHandlers;
|
|
19
|
+
}
|
|
20
|
+
export declare function useMessageReactionsInFeed(options: UseMessageReactionsInFeedOptions): {
|
|
21
|
+
showReactions: import("vue").ComputedRef<boolean>;
|
|
22
|
+
onContentPointerEnter: () => void;
|
|
23
|
+
onContentPointerLeave: (event: PointerEvent) => void;
|
|
24
|
+
};
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import type { MessageReactions } from '@/types';
|
|
3
|
+
/**
|
|
4
|
+
* Отложенный mount MessageReactions: без items — только после pointerenter на контент.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useMessageReactionsMount(reactions: MaybeRefOrGetter<MessageReactions | undefined>, reactionsActive: MaybeRefOrGetter<boolean>): {
|
|
7
|
+
showReactions: import("vue").ComputedRef<boolean>;
|
|
8
|
+
engageReactionsMount: () => void;
|
|
9
|
+
hasReactionItems: import("vue").ComputedRef<boolean>;
|
|
10
|
+
};
|