@inappstory/react-sdk 1.0.0 → 1.1.0-rc.0

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.
@@ -27,6 +27,7 @@ export type SharePanel<CustomTargets extends string = never> = Partial<{
27
27
  label: string;
28
28
  svgSrc: {
29
29
  baseState: string;
30
+ doneState: string
30
31
  };
31
32
  };
32
33
  downloadButton: {
@@ -1 +1,2 @@
1
1
  export { IASContainer } from './IasContainer';
2
+ export * from "./publicEvents"
@@ -1,3 +1,21 @@
1
+ export type PublicEvents = {
2
+ сlickOnStory: ClickOnStoryEvent;
3
+ showStory: ShowStoryEvent;
4
+ closeStory: CloseStoryEvent;
5
+ showSlide: ShowSlideEvent;
6
+ clickOnButton: ClickOnButtonEvent;
7
+ likeStory: LikeStoryEvent;
8
+ dislikeStory: DislikeStoryEvent;
9
+ favoriteStory: FavoriteStoryEvent;
10
+ shareStory: ShareStoryEvent;
11
+ shareStoryWithPath: ShareStoryWithPathEvent;
12
+ feedImpression: FeedImpressionEvent;
13
+ visibleAreaUpdated: VisibleAreaUpdatedEvent
14
+ widgetEvent: WidgetEvent
15
+ };
16
+
17
+ export type PublicEventHandler<Event extends keyof PublicEvents> = (event: PublicEvents[Event]) => void;
18
+
1
19
  interface BaseEvent {
2
20
  id: number;
3
21
  title?: string;
@@ -12,13 +30,13 @@ interface BaseEvent {
12
30
  }
13
31
 
14
32
  export declare enum CloseAction {
15
- closeReaderByCloseBtn = "closeReaderByCloseBtn", // closed by btn with cross icon in StoryReader
16
- closeReaderByEscBtn = "closeReaderByEscBtn", // closed by ESC on keyboard (desktop only)
17
- swipeDown = "swipeDown", // closed by swipe down StoryReader (mobile only)
18
- swipe = "swipe", // closed by swipe on next story (mobile only)
19
- lastSlideClick = "lastSlideClick", // closed by first (move backward) or last (move forward) slide in story
20
- auto = "auto", // closed by auto transition (by timer) on next story
21
- externalCloseReader = "externalCloseReader" // closed by public API method StoryManager.closeStoryReader
33
+ closeReaderByCloseBtn = "closeReaderByCloseBtn",
34
+ closeReaderByEscBtn = "closeReaderByEscBtn",
35
+ swipeDown = "swipeDown",
36
+ swipe = "swipe",
37
+ lastSlideClick = "lastSlideClick",
38
+ auto = "auto",
39
+ externalCloseReader = "externalCloseReader"
22
40
  }
23
41
 
24
42
  export interface ClickOnStoryEvent extends BaseEvent {
@@ -0,0 +1,28 @@
1
+ export type LottiePlayerEventName = "play" | "complete" | "beforeLoad" | "load" | "minPlayingTimeExpired" | "error";
2
+
3
+ export interface LottiePlayer {
4
+ get frameRate(): number;
5
+ get loop(): boolean;
6
+
7
+ destroy(): void;
8
+ play(): void;
9
+ stop(): void;
10
+ setSpeed(speed: number): void;
11
+ setTimer(duration: number): void;
12
+ clearTimer(): void;
13
+ on(eventName: LottiePlayerEventName, listener: (...args: any[]) => void): this;
14
+ once(eventName: LottiePlayerEventName, listener: (...args: any[]) => void): this;
15
+ off(eventName: LottiePlayerEventName, listener: (...args: any[]) => void): this;
16
+ }
17
+
18
+ export interface DotLottiePlugin {
19
+ createLottiePlayer(
20
+ canvas: HTMLCanvasElement,
21
+ config: {
22
+ url?: string;
23
+ size: number;
24
+ sha1: string;
25
+ durationMinimalMs: number;
26
+ }
27
+ ): LottiePlayer;
28
+ }
@@ -0,0 +1 @@
1
+ export * from "./dotLottiePlayer"
@@ -1,5 +1,12 @@
1
+ import { PublicEventHandler, PublicEvents } from "./ias-container";
1
2
  import { SharePage, SharePageOptions } from "./share-page";
2
3
 
4
+ export declare enum LinkSource {
5
+ StoryList = "storyList",
6
+ StoryReader = "storyReader",
7
+ GameReader = "gameReader"
8
+ }
9
+
3
10
  export type StoryManagerConfig = {
4
11
  apiKey: string;
5
12
  userId?: string | number;
@@ -21,10 +28,15 @@ export type UgcEditorConfig = {
21
28
  lang: string;
22
29
  };
23
30
 
31
+ export type StoryLinkClickHandler = (payload: {
32
+ data: { id: number; index: number; isDeeplink: boolean; url: string };
33
+ src: LinkSource;
34
+ }) => void;
35
+
24
36
  interface StoryManager {
25
37
  get sdkVersionName(): string;
26
38
  get sdkVersionCode(): number;
27
- set storyLinkClickHandler(callback: Function);
39
+ set storyLinkClickHandler(value: StoryLinkClickHandler);
28
40
  showOnboardingStories(options?: { feed?: string; customTags?: Array<string>; limit?: number }): Promise<void>;
29
41
  showSharePage(storyId: number, options?: SharePageOptions): SharePage;
30
42
  showStory(id: number | string): Promise<void>;
@@ -34,9 +46,9 @@ interface StoryManager {
34
46
  closeStoryReader(): Promise<boolean | undefined>;
35
47
  closeGoodsWidget(): void;
36
48
  getUgcEditorConfig(): Promise<UgcEditorConfig>;
37
- on(eventName: string | symbol, listener: (...args: any[]) => void): this;
38
- once(eventName: string | symbol, listener: (...args: any[]) => void): this;
39
- off(eventName: string | symbol, listener: (...args: any[]) => void): this;
49
+ on<Event extends keyof PublicEvents>(eventName: Event, listener: PublicEventHandler<Event>): this;
50
+ once<Event extends keyof PublicEvents>(eventName: Event, listener: PublicEventHandler<Event>): this;
51
+ off<Event extends keyof PublicEvents>(eventName: Event, listener: PublicEventHandler<Event>): this;
40
52
  }
41
53
 
42
54
  export declare const storyManager: StoryManager;
package/package.json CHANGED
@@ -1,9 +1,18 @@
1
1
  {
2
2
  "name": "@inappstory/react-sdk",
3
- "version": "1.0.0",
3
+ "version": "1.1.0-rc.0",
4
4
  "description": "React SDK",
5
- "main": "dist/index.js",
5
+ "main": "dist/index.umd.js",
6
+ "module": "dist/index.esm.mjs",
6
7
  "types": "dist/types/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/types/index.d.ts",
11
+ "require": "./dist/index.umd.js",
12
+ "import": "./dist/index.esm.mjs",
13
+ "default": "./dist/index.umd.js"
14
+ }
15
+ },
7
16
  "files": [
8
17
  "dist"
9
18
  ],
@@ -27,10 +36,7 @@
27
36
  },
28
37
  "bugs": "https://github.com/inappstory/react-web-sdk/issues",
29
38
  "dependencies": {
30
- "@emotion/cache": "^11.11.0",
31
- "@emotion/react": "^11.11.1",
32
- "@emotion/styled": "^11.11.0",
33
- "@inappstory/slide-api": "0.0.10",
39
+ "@inappstory/slide-api": "^0.0.13",
34
40
  "@inappstory/video-player": "^1.0.1",
35
41
  "bowser": "^2.4.0",
36
42
  "classnames": "^2.5.1",