@mobilon-dev/chotto 0.3.104 → 0.3.106

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.
Files changed (35) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue.js +1 -1
  3. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +171 -167
  4. package/dist/components/2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue.js +7 -0
  5. package/dist/components/2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue2.js +73 -0
  6. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue.js +3 -3
  7. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +112 -108
  8. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +3 -3
  9. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +133 -128
  10. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +3 -3
  11. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +131 -126
  12. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +1 -1
  13. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +149 -145
  14. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +2 -2
  15. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +131 -126
  16. package/dist/components/3_compounds/Feed/Feed.vue.js +2 -2
  17. package/dist/components/3_compounds/Feed/Feed.vue2.js +249 -207
  18. package/dist/components/3_compounds/Feed/composables/useFeedGrouping.js +23 -20
  19. package/dist/components/3_compounds/Feed/composables/useFeedProgressiveRender.js +79 -0
  20. package/dist/components/3_compounds/Feed/composables/useFeedReply.js +10 -10
  21. package/dist/functions/isSmsChannel.js +19 -0
  22. package/dist/hooks/messages/useMessageHoverActions.js +13 -0
  23. package/dist/index.js +225 -218
  24. package/dist/types/components/2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue.d.ts +19 -0
  25. package/dist/types/components/3_compounds/Feed/Feed.vue.d.ts +6 -0
  26. package/dist/types/components/3_compounds/Feed/composables/index.d.ts +1 -0
  27. package/dist/types/components/3_compounds/Feed/composables/useFeedGrouping.d.ts +3 -22
  28. package/dist/types/components/3_compounds/Feed/composables/useFeedProgressiveRender.d.ts +22 -0
  29. package/dist/types/components/3_compounds/Feed/composables/useFeedReply.d.ts +2 -1
  30. package/dist/types/components/index.d.ts +1 -0
  31. package/dist/types/functions/index.d.ts +1 -0
  32. package/dist/types/functions/isSmsChannel.d.ts +8 -0
  33. package/dist/types/hooks/messages/index.d.ts +1 -0
  34. package/dist/types/hooks/messages/useMessageHoverActions.d.ts +9 -0
  35. package/package.json +1 -1
@@ -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 {};
@@ -2,11 +2,12 @@ import { IFeedObject } from '@/types';
2
2
  interface UseFeedReplyOptions {
3
3
  enableDoubleClickReply: boolean;
4
4
  emit: (event: 'messageAction' | 'clickRepliedMessage', payload: IFeedObject | string) => void;
5
+ isReplyAllowed?: (object: IFeedObject) => boolean;
5
6
  }
6
7
  /**
7
8
  * Композабл для обработки ответов и редактирования сообщений
8
9
  */
9
- export declare function useFeedReply({ enableDoubleClickReply, emit }: UseFeedReplyOptions): {
10
+ export declare function useFeedReply({ enableDoubleClickReply, emit, isReplyAllowed }: UseFeedReplyOptions): {
10
11
  getMessage: () => import("@/hooks").MessageDraft;
11
12
  messageAction: (message: IFeedObject) => void;
12
13
  handleClickReplied: (messageId: string) => void;
@@ -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';
@@ -6,5 +6,6 @@ export * from './sortByTimestamp';
6
6
  export * from './getMessageClass';
7
7
  export * from './createReactionHandlers';
8
8
  export * from './getChannelAccentColor';
9
+ export * from './isSmsChannel';
9
10
  export * from './parseMarkdown';
10
11
  export * from './safeMediaPlay';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * SMS-канал: `channelId` начинается с `sms` (например `sms.M444`).
3
+ * В message-server на диалогах обычно `chn_*`, поэтому одного префикса недостаточно —
4
+ * см. `isSmsFeedMessage`.
5
+ */
6
+ export declare function isSmsChannel(channelId?: string | null): boolean;
7
+ /** SMS в демо (`sms.M444`) и в message-server (`chn_*` + `meta.messageStyle: 'sms'`). */
8
+ export declare function isSmsFeedMessage(message?: object | null, channelId?: string | null): boolean;
@@ -1,4 +1,5 @@
1
1
  export * from './useMessageActions';
2
+ export * from './useMessageHoverActions';
2
3
  export * from './calculateMessageMenuPosition';
3
4
  export * from './useMessageMenuActions';
4
5
  export * from './useMessageLinks';
@@ -0,0 +1,9 @@
1
+ import { type MaybeRefOrGetter } from 'vue';
2
+ /**
3
+ * Hover-панели сообщения (реакции и меню по трём точкам).
4
+ * Для SMS недоступны: канал не поддерживает реакции, ответ и редактирование.
5
+ */
6
+ export declare function useMessageHoverActions(channel: MaybeRefOrGetter<string | undefined>, reactionsEnabled?: MaybeRefOrGetter<boolean>, message?: MaybeRefOrGetter<unknown>): {
7
+ hoverActionsEnabled: import("vue").ComputedRef<boolean>;
8
+ reactionsActive: import("vue").ComputedRef<boolean>;
9
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mobilon-dev/chotto",
3
- "version": "0.3.104",
3
+ "version": "0.3.106",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",