@streamlayer/react 0.1.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.
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@streamlayer/react",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./src/main.js",
6
+ "typings": "./src/main.d.ts",
7
+ "files": [
8
+ "src/",
9
+ "package.json"
10
+ ],
11
+ "dependencies": {
12
+ "@emotion/react": "11.11.1",
13
+ "@emotion/styled": "11.11.0",
14
+ "@nanostores/react": "^0.7.1",
15
+ "@streamlayer/sdk-web": "workspace:^",
16
+ "@streamlayer/react-ui": "workspace:^",
17
+ "react": "18.2.0",
18
+ "react-dom": "18.2.0",
19
+ "react-router-dom": "6.16.0"
20
+ },
21
+ "devDependencies": {
22
+ "@babel/preset-react": "^7.14.5",
23
+ "@babel/preset-typescript": "^7.23.0",
24
+ "@emotion/babel-plugin": "11.11.0",
25
+ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
26
+ "@svgr/webpack": "^8.0.1",
27
+ "@testing-library/react": "14.0.0",
28
+ "@types/react": "18.2.28",
29
+ "@types/react-dom": "18.2.13",
30
+ "eslint-plugin-jsx-a11y": "6.7.1",
31
+ "eslint-plugin-react": "7.33.2",
32
+ "eslint-plugin-react-hooks": "4.6.0",
33
+ "react-refresh": "^0.14.0",
34
+ "url-loader": "^4.1.1"
35
+ },
36
+ "module": "./src/main.js"
37
+ }
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const StreamLayerSDKReact: React.FC;
package/src/app/app.js ADDED
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
+ import { Demo } from '@streamlayer/react-ui';
3
+ import { useContext } from 'react';
4
+ import { StreamLayerContext, StreamLayerStatus } from './provider';
5
+ export const StreamLayerSDKReact = () => {
6
+ const { sdk, status } = useContext(StreamLayerContext);
7
+ if (status === StreamLayerStatus.UNSET) {
8
+ throw new Error('Wrap app in `StreamLayerProvider`');
9
+ }
10
+ if (status === StreamLayerStatus.CONNECTED) {
11
+ return _jsx("div", { children: "wait" });
12
+ }
13
+ if (sdk === undefined) {
14
+ return _jsx("div", { children: "sdk not initialized" });
15
+ }
16
+ return _jsx(Demo, { sdk: sdk });
17
+ };
18
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../../packages/react/src/app/app.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAE5C,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAa,GAAG,EAAE;IAChD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAEtD,IAAI,MAAM,KAAK,iBAAiB,CAAC,KAAK,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;KACrD;IAED,IAAI,MAAM,KAAK,iBAAiB,CAAC,SAAS,EAAE;QAC1C,OAAO,iCAAe,CAAA;KACvB;IAED,IAAI,GAAG,KAAK,SAAS,EAAE;QACrB,OAAO,gDAA8B,CAAA;KACtC;IAED,OAAO,KAAC,IAAI,IAAC,GAAG,EAAE,GAAG,GAAI,CAAA;AAC3B,CAAC,CAAA"}
@@ -0,0 +1,19 @@
1
+ import type { StreamLayerSDK, StreamLayerPlugin } from '@streamlayer/sdk-web-interfaces';
2
+ import React from 'react';
3
+ export declare enum StreamLayerStatus {
4
+ UNSET = 0,
5
+ CONNECTED = 1,
6
+ READY = 2
7
+ }
8
+ export declare const StreamLayerContext: React.Context<{
9
+ status: StreamLayerStatus;
10
+ sdk?: StreamLayerSDK | undefined;
11
+ }>;
12
+ type StreamLayerProps = {
13
+ sdkKey: string;
14
+ plugins?: Set<StreamLayerPlugin>;
15
+ };
16
+ export declare const StreamLayerProvider: React.FC<StreamLayerProps & {
17
+ children: React.ReactNode;
18
+ }>;
19
+ export {};
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
+ import { createContext, useMemo } from 'react';
3
+ import { useStreamLayer } from './useStreamLayer';
4
+ export var StreamLayerStatus;
5
+ (function (StreamLayerStatus) {
6
+ StreamLayerStatus[StreamLayerStatus["UNSET"] = 0] = "UNSET";
7
+ StreamLayerStatus[StreamLayerStatus["CONNECTED"] = 1] = "CONNECTED";
8
+ StreamLayerStatus[StreamLayerStatus["READY"] = 2] = "READY";
9
+ })(StreamLayerStatus || (StreamLayerStatus = {}));
10
+ export const StreamLayerContext = createContext({
11
+ status: StreamLayerStatus.UNSET,
12
+ });
13
+ if (process.env.NODE_ENV !== 'production') {
14
+ StreamLayerContext.displayName = 'StreamLayerProvider';
15
+ }
16
+ export const StreamLayerProvider = ({ sdkKey, plugins, children, }) => {
17
+ const streamLayer = useStreamLayer(sdkKey, plugins);
18
+ const value = useMemo(() => {
19
+ if (!streamLayer) {
20
+ return { status: StreamLayerStatus.CONNECTED };
21
+ }
22
+ return { sdk: streamLayer, status: StreamLayerStatus.READY };
23
+ }, [streamLayer]);
24
+ return _jsx(StreamLayerContext.Provider, { value: value, children: children });
25
+ };
26
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../../packages/react/src/app/provider.tsx"],"names":[],"mappings":";AAEA,OAAc,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,2DAAS,CAAA;IACT,mEAAa,CAAA;IACb,2DAAS,CAAA;AACX,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAsD;IACnG,MAAM,EAAE,iBAAiB,CAAC,KAAK;CAChC,CAAC,CAAA;AAEF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;IACzC,kBAAkB,CAAC,WAAW,GAAG,qBAAqB,CAAA;CACvD;AAID,MAAM,CAAC,MAAM,mBAAmB,GAA+D,CAAC,EAC9F,MAAM,EACN,OAAO,EACP,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAA;SAC/C;QAED,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,CAAA;IAC9D,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,OAAO,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA+B,CAAA;AAC5F,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { StreamLayerSDK, StreamLayerPlugin } from '@streamlayer/sdk-web-interfaces';
2
+ declare global {
3
+ interface Window {
4
+ instance: any;
5
+ }
6
+ }
7
+ export declare const useStreamLayer: (sdkKey: string, plugins?: Set<StreamLayerPlugin>) => StreamLayerSDK | null;
@@ -0,0 +1,39 @@
1
+ import { StreamLayer } from '@streamlayer/sdk-web';
2
+ import { useState, useEffect } from 'react';
3
+ window.instance = null;
4
+ export const useStreamLayer = (sdkKey, plugins) => {
5
+ const [sdk, setSdk] = useState(null);
6
+ useEffect(() => {
7
+ let ignore = false;
8
+ if (!sdkKey) {
9
+ throw new Error('sdk key should be provided');
10
+ }
11
+ const instance = StreamLayer(sdkKey);
12
+ if (plugins) {
13
+ for (const plugin of plugins) {
14
+ instance.use(plugin);
15
+ }
16
+ }
17
+ instance
18
+ .ready()
19
+ .then((service) => {
20
+ if (!ignore) {
21
+ window.instance = service;
22
+ setSdk(service.sdk);
23
+ }
24
+ })
25
+ .catch((err) => console.log(err));
26
+ return () => {
27
+ ignore = true;
28
+ instance.close(function (err) {
29
+ if (err)
30
+ throw err;
31
+ });
32
+ };
33
+ // ignored because we should skip updating plugins.
34
+ // this deps should be provided on mount and we have checked this
35
+ // eslint-disable-next-line react-hooks/exhaustive-deps
36
+ }, [sdkKey]);
37
+ return sdk;
38
+ };
39
+ //# sourceMappingURL=useStreamLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStreamLayer.js","sourceRoot":"","sources":["../../../../../packages/react/src/app/useStreamLayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAS3C,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAA;AAEtB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,OAAgC,EAAE,EAAE;IACjF,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAA;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,GAAG,KAAK,CAAA;QAElB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC9C;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;QAEpC,IAAI,OAAO,EAAE;YACX,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;aACrB;SACF;QAED,QAAQ;aACL,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAA;gBACzB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;aACpB;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAEnC,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,IAAI,CAAA;YACb,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG;gBAC1B,IAAI,GAAG;oBAAE,MAAM,GAAG,CAAA;YACpB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QACD,mDAAmD;QACnD,iEAAiE;QACjE,uDAAuD;IACzD,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const environment: {
2
+ production: boolean;
3
+ };
@@ -0,0 +1,6 @@
1
+ // This file can be replaced during build by using the `fileReplacements` array.
2
+ // When building for production, this file is replaced with `environment.prod.ts`.
3
+ export const environment = {
4
+ production: false,
5
+ };
6
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../../packages/react/src/environments/environment.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,kFAAkF;AAElF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;CAClB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const environment: {
2
+ production: boolean;
3
+ };
@@ -0,0 +1,4 @@
1
+ export const environment = {
2
+ production: true,
3
+ };
4
+ //# sourceMappingURL=environment.prod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.prod.js","sourceRoot":"","sources":["../../../../../packages/react/src/environments/environment.prod.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,IAAI;CACjB,CAAA"}
package/src/main.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { StreamLayerSDKReact } from './app/app';
2
+ export { StreamLayerProvider } from './app/provider';
3
+ export { useStreamLayer } from './app/useStreamLayer';
package/src/main.js ADDED
@@ -0,0 +1,4 @@
1
+ export { StreamLayerSDKReact } from './app/app';
2
+ export { StreamLayerProvider } from './app/provider';
3
+ export { useStreamLayer } from './app/useStreamLayer';
4
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../packages/react/src/main.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}