@mobilon-dev/chotto 0.3.105 → 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 (27) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue.js +3 -3
  3. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +39 -39
  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 +2 -2
  7. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +28 -28
  8. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +1 -1
  9. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +39 -39
  10. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +1 -1
  11. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +41 -41
  12. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +1 -1
  13. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +28 -28
  14. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +3 -3
  15. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +26 -26
  16. package/dist/components/3_compounds/Feed/Feed.vue.js +2 -2
  17. package/dist/components/3_compounds/Feed/Feed.vue2.js +249 -211
  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/index.js +212 -210
  21. package/dist/types/components/2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue.d.ts +19 -0
  22. package/dist/types/components/3_compounds/Feed/Feed.vue.d.ts +6 -0
  23. package/dist/types/components/3_compounds/Feed/composables/index.d.ts +1 -0
  24. package/dist/types/components/3_compounds/Feed/composables/useFeedGrouping.d.ts +3 -22
  25. package/dist/types/components/3_compounds/Feed/composables/useFeedProgressiveRender.d.ts +22 -0
  26. package/dist/types/components/index.d.ts +1 -0
  27. package/package.json +1 -1
@@ -4,6 +4,7 @@ export * from './useFeedGrouping';
4
4
  export * from './useFeedKeyboard';
5
5
  export * from './useFeedLoadMore';
6
6
  export * from './useFeedMessageVisibility';
7
+ export * from './useFeedProgressiveRender';
7
8
  export * from './useFeedReply';
8
9
  export * from './useFeedScroll';
9
10
  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
- groupedObjects: ComputedRef<{
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 {};
@@ -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';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mobilon-dev/chotto",
3
- "version": "0.3.105",
3
+ "version": "0.3.106",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",