react-easy-wall 3.1.0 → 3.3.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.
Files changed (38) hide show
  1. package/dist/cjs/_virtual/index10.js +2 -2
  2. package/dist/cjs/_virtual/index9.js +2 -2
  3. package/dist/cjs/components/session/SessionClientProvider.js +2 -2
  4. package/dist/cjs/components/session/SessionClientProvider.js.map +1 -1
  5. package/dist/cjs/components/session/SessionClientUserProvider.js +77 -0
  6. package/dist/cjs/components/session/SessionClientUserProvider.js.map +1 -0
  7. package/dist/cjs/components/session/SessionServerProvider.js +17 -0
  8. package/dist/cjs/components/session/SessionServerProvider.js.map +1 -0
  9. package/dist/cjs/components/session/SessionServerUserProvider.js +67 -0
  10. package/dist/cjs/components/session/SessionServerUserProvider.js.map +1 -0
  11. package/dist/cjs/components/session/SessionUserContext.js.map +1 -1
  12. package/dist/cjs/components/session/session.constants.js +2 -0
  13. package/dist/cjs/components/session/session.constants.js.map +1 -1
  14. package/dist/cjs/index.js +4 -2
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/node_modules/follow-redirects/index.js +1 -1
  17. package/dist/cjs/node_modules/proxy-from-env/index.js +1 -1
  18. package/dist/esm/components/session/SessionClientProvider.js +2 -2
  19. package/dist/esm/components/session/SessionClientProvider.js.map +1 -1
  20. package/dist/esm/components/session/SessionClientUserProvider.js +75 -0
  21. package/dist/esm/components/session/SessionClientUserProvider.js.map +1 -0
  22. package/dist/esm/components/session/SessionServerProvider.js +15 -0
  23. package/dist/esm/components/session/SessionServerProvider.js.map +1 -0
  24. package/dist/esm/components/session/SessionServerUserProvider.js +65 -0
  25. package/dist/esm/components/session/SessionServerUserProvider.js.map +1 -0
  26. package/dist/esm/components/session/SessionUserContext.js.map +1 -1
  27. package/dist/esm/components/session/session.constants.js +2 -0
  28. package/dist/esm/components/session/session.constants.js.map +1 -1
  29. package/dist/esm/index.js +2 -1
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/types/components/session/SessionClientUserProvider.d.ts +8 -0
  32. package/dist/esm/types/components/session/SessionServerProvider.d.ts +6 -0
  33. package/dist/esm/types/components/session/SessionServerUserProvider.d.ts +8 -0
  34. package/dist/esm/types/components/session/index.d.ts +3 -1
  35. package/dist/esm/types/components/session/session.constants.d.ts +2 -0
  36. package/dist/esm/types/components/session/session.types.d.ts +1 -0
  37. package/dist/index.d.ts +21 -4
  38. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var proxyFromEnv = {};
3
+ var followRedirects = {exports: {}};
4
4
 
5
- exports.__exports = proxyFromEnv;
5
+ exports.__module = followRedirects;
6
6
  //# sourceMappingURL=index10.js.map
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var followRedirects = {exports: {}};
3
+ var proxyFromEnv = {};
4
4
 
5
- exports.__module = followRedirects;
5
+ exports.__exports = proxyFromEnv;
6
6
  //# sourceMappingURL=index9.js.map
@@ -4,10 +4,10 @@
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var index_esm = require('../../node_modules/@react-oauth/google/dist/index.esm.js');
6
6
  var index = require('../../shared/constants/index.js');
7
- var SessionUserClientProvider = require('./SessionUserClientProvider.js');
7
+ var SessionClientUserProvider = require('./SessionClientUserProvider.js');
8
8
 
9
9
  const SessionClientProvider = ({ children }) => {
10
- return (jsxRuntime.jsx(index_esm.GoogleOAuthProvider, { clientId: index.GOOGLE_AUTH_CLIENT, children: jsxRuntime.jsx(SessionUserClientProvider.SessionUserClientProvider, { children: children }) }));
10
+ return (jsxRuntime.jsx(index_esm.GoogleOAuthProvider, { clientId: index.GOOGLE_AUTH_CLIENT, children: jsxRuntime.jsx(SessionClientUserProvider.SessionClientUserProvider, { children: children }) }));
11
11
  };
12
12
 
13
13
  exports.SessionClientProvider = SessionClientProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"SessionClientProvider.js","sources":["../../../../src/components/session/SessionClientProvider.tsx"],"sourcesContent":["'use client';\nimport { GoogleOAuthProvider } from '@react-oauth/google';\nimport React, { ReactNode } from 'react';\nimport { GOOGLE_AUTH_CLIENT } from '@/shared/constants';\nimport { SessionUserClientProvider } from './SessionUserClientProvider';\n\ntype SessionClientProviderProps = {\n children: ReactNode;\n};\n\nexport const SessionClientProvider: React.FC<SessionClientProviderProps> = ({ children }) => {\n return (\n <GoogleOAuthProvider clientId={GOOGLE_AUTH_CLIENT}>\n <SessionUserClientProvider>{children}</SessionUserClientProvider>\n </GoogleOAuthProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAWE;AAKF;;"}
1
+ {"version":3,"file":"SessionClientProvider.js","sources":["../../../../src/components/session/SessionClientProvider.tsx"],"sourcesContent":["'use client';\nimport { GoogleOAuthProvider } from '@react-oauth/google';\nimport React, { ReactNode } from 'react';\nimport { GOOGLE_AUTH_CLIENT } from '@/shared/constants';\nimport { SessionClientUserProvider } from './SessionClientUserProvider';\n\ntype SessionClientProviderProps = {\n children: ReactNode;\n};\n\nexport const SessionClientProvider: React.FC<SessionClientProviderProps> = ({ children }) => {\n return (\n <GoogleOAuthProvider clientId={GOOGLE_AUTH_CLIENT}>\n <SessionClientUserProvider>{children}</SessionClientUserProvider>\n </GoogleOAuthProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAWE;AAKF;;"}
@@ -0,0 +1,77 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
6
+ var SessionUserContext = require('./SessionUserContext.js');
7
+ var index_esm = require('../../node_modules/@react-oauth/google/dist/index.esm.js');
8
+ var theme = require('../../shared/mui/theme.js');
9
+ var session_utils = require('./session.utils.js');
10
+ var session_constants = require('./session.constants.js');
11
+ var index = require('../../_virtual/index.js');
12
+ var session_actions = require('./session.actions.js');
13
+ var index$1 = require('../../shared/cookies/index.js');
14
+ var index$2 = require('../../shared/constants/index.js');
15
+ var session_events = require('./session.events.js');
16
+ var ThemeProvider = require('../../node_modules/@mui/material/esm/styles/ThemeProvider.js');
17
+ var CssBaseline = require('../../node_modules/@mui/material/esm/CssBaseline/CssBaseline.js');
18
+
19
+ const SessionClientUserProvider = ({ children, initial }) => {
20
+ const [user, setUser] = React.useState(initial);
21
+ const { token } = index.libExports.useEvent(session_events.tokenEvent);
22
+ const [savedPosts, setSavedPosts] = React.useState([]);
23
+ const [callGoogleOneTap] = index.libExports.useCallAction(session_actions.googleOneTapAction, {
24
+ onCompleted: (data) => {
25
+ index$1.universalCookies.set(index$2.COOKIE_NAME, data.token, session_constants.COOKIES_OPTIONS);
26
+ window.location.reload();
27
+ },
28
+ });
29
+ index_esm.useGoogleOneTapLogin({
30
+ onSuccess: (credentialResponse) => {
31
+ callGoogleOneTap(credentialResponse.credential);
32
+ },
33
+ onError: () => {
34
+ console.log('Login Failed');
35
+ },
36
+ disabled: !!token,
37
+ promptMomentNotification: (data) => {
38
+ // if (data.isSkippedMoment()) {
39
+ // createAction(EasyDataName.skipSwg);
40
+ // }
41
+ },
42
+ });
43
+ const [callCurrentUserAction, loading] = index.libExports.useCallAction(session_actions.currentUserAction, {
44
+ onCompleted: (data) => {
45
+ setUser(data.currentUser);
46
+ setSavedPosts(data.currentUser?.post_saved);
47
+ },
48
+ onError: (error) => {
49
+ index$1.universalCookies.remove(index$2.COOKIE_NAME, session_constants.COOKIES_OPTIONS);
50
+ console.log({ message: error.message });
51
+ },
52
+ });
53
+ React.useEffect(() => {
54
+ if (token) {
55
+ callCurrentUserAction();
56
+ }
57
+ }, [callCurrentUserAction, token]);
58
+ const refetch = () => callCurrentUserAction();
59
+ const logout = () => {
60
+ index$1.universalCookies.remove(session_constants.config?.cookieTokenName, session_constants.COOKIES_OPTIONS);
61
+ window.location.reload();
62
+ };
63
+ const values = {
64
+ user,
65
+ config: session_constants.config,
66
+ subscription: session_utils.getSubscriptionActive(user),
67
+ loading,
68
+ savedPosts,
69
+ refetch,
70
+ logout,
71
+ isAuthenticated: !!token,
72
+ };
73
+ return (jsxRuntime.jsx(SessionUserContext.Provider, { value: values, children: jsxRuntime.jsxs(ThemeProvider.default, { theme: theme.theme, children: [jsxRuntime.jsx(CssBaseline.default, {}), children] }) }));
74
+ };
75
+
76
+ exports.SessionClientUserProvider = SessionClientUserProvider;
77
+ //# sourceMappingURL=SessionClientUserProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionClientUserProvider.js","sources":["../../../../src/components/session/SessionClientUserProvider.tsx"],"sourcesContent":["'use client';\nimport React, { useState, useEffect } from 'react';\nimport { User, UserSavedPost } from '@/shared/types/generated';\nimport { Provider } from './SessionUserContext';\nimport { SessionContextDefaultValues } from './session.types';\nimport { useGoogleOneTapLogin } from '@react-oauth/google';\nimport { ThemeProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { theme } from '@/shared/mui/theme';\nimport { getSubscriptionActive } from './session.utils';\nimport { config, COOKIES_OPTIONS } from './session.constants';\nimport { useCallAction, useEvent } from '@cobuildlab/react-simple-state';\nimport { currentUserAction, googleOneTapAction } from './session.actions';\nimport { universalCookies } from '@/shared/cookies';\nimport { COOKIE_NAME } from '@/shared/constants';\nimport { tokenEvent } from './session.events';\n\ntype SessionUserProviderProps = {\n children: React.ReactNode;\n initial?: User | null;\n};\n\nexport const SessionClientUserProvider: React.FC<SessionUserProviderProps> = ({ children, initial }) => {\n const [user, setUser] = useState<User | null | undefined>(initial);\n const { token } = useEvent(tokenEvent);\n const [savedPosts, setSavedPosts] = useState<UserSavedPost[]>([]);\n\n const [callGoogleOneTap] = useCallAction(googleOneTapAction, {\n onCompleted: (data) => {\n universalCookies.set(COOKIE_NAME, data.token, COOKIES_OPTIONS);\n window.location.reload();\n },\n });\n\n useGoogleOneTapLogin({\n onSuccess: (credentialResponse) => {\n callGoogleOneTap(credentialResponse.credential);\n },\n onError: () => {\n console.log('Login Failed');\n },\n disabled: !!token,\n promptMomentNotification: (data) => {\n // if (data.isSkippedMoment()) {\n // createAction(EasyDataName.skipSwg);\n // }\n },\n });\n\n const [callCurrentUserAction, loading] = useCallAction(currentUserAction, {\n onCompleted: (data) => {\n setUser(data.currentUser);\n setSavedPosts(data.currentUser?.post_saved as UserSavedPost[]);\n },\n onError: (error) => {\n universalCookies.remove(COOKIE_NAME, COOKIES_OPTIONS);\n console.log({ message: error.message });\n },\n });\n\n useEffect(() => {\n if (token) {\n callCurrentUserAction();\n }\n }, [callCurrentUserAction, token]);\n\n const refetch = () => callCurrentUserAction();\n\n const logout = () => {\n universalCookies.remove(config?.cookieTokenName as string, COOKIES_OPTIONS);\n window.location.reload();\n };\n\n const values: SessionContextDefaultValues = {\n user,\n config,\n subscription: getSubscriptionActive(user),\n loading,\n savedPosts,\n refetch,\n logout,\n isAuthenticated: !!token,\n };\n return (\n <Provider value={values}>\n <ThemeProvider theme={theme}>\n <CssBaseline />\n {children}\n </ThemeProvider>\n </Provider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAsBO;;;;AAKL;AACE;;AAEE;;AAEH;AAED;AACE;AACE;;;AAGA;;;AAGF;;;;;AAKD;;AAGC;AACE;AACA;;AAEF;AACE;;;AAGH;;;AAIG;;AAEJ;AAEA;;;AAIE;AACF;AAEA;;;AAGE;;;;;;;;AAeJ;;"}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var SessionServerUserProvider = require('./SessionServerUserProvider.js');
5
+ var session_server_actions = require('./session.server.actions.js');
6
+ var session_constants = require('./session.constants.js');
7
+ var index = require('../../shared/constants/index.js');
8
+ var index_esm = require('../../node_modules/@react-oauth/google/dist/index.esm.js');
9
+ var appRouterV13 = require('../../node_modules/@mui/material-nextjs/esm/v13-appRouter/appRouterV13.js');
10
+
11
+ const SessionServerProvider = async ({ children }) => {
12
+ const user = await session_server_actions.getUserServer(session_constants.config);
13
+ return (jsxRuntime.jsx(appRouterV13.default, { children: jsxRuntime.jsx(index_esm.GoogleOAuthProvider, { clientId: index.GOOGLE_AUTH_CLIENT, children: jsxRuntime.jsx(SessionServerUserProvider.SessionServerUserProvider, { initial: user, children: children }) }) }));
14
+ };
15
+
16
+ exports.SessionServerProvider = SessionServerProvider;
17
+ //# sourceMappingURL=SessionServerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionServerProvider.js","sources":["../../../../src/components/session/SessionServerProvider.tsx"],"sourcesContent":["import React from 'react';\nimport { SessionServerUserProvider } from './SessionServerUserProvider';\nimport { AppRouterCacheProvider } from '@mui/material-nextjs/v15-appRouter';\nimport { getUserServer } from './session.server.actions';\nimport { config } from './session.constants';\nimport { GOOGLE_AUTH_CLIENT } from '@/shared/constants';\nimport { GoogleOAuthProvider } from '@react-oauth/google';\n\ntype SessionProviderServerProps = {\n children: React.ReactNode;\n};\n\nexport const SessionServerProvider: React.FC<SessionProviderServerProps> = async ({ children }) => {\n const user = await getUserServer(config);\n\n return (\n <AppRouterCacheProvider>\n <GoogleOAuthProvider clientId={GOOGLE_AUTH_CLIENT}>\n <SessionServerUserProvider initial={user}>{children}</SessionServerUserProvider>\n </GoogleOAuthProvider>\n </AppRouterCacheProvider>\n );\n};\n"],"names":["getUserServer","config","_jsx","AppRouterCacheProvider","GoogleOAuthProvider","GOOGLE_AUTH_CLIENT","SessionServerUserProvider"],"mappings":";;;;;;;;;;AAYO,MAAM,qBAAqB,GAAyC,OAAO,EAAE,QAAQ,EAAE,KAAI;AAChG,IAAA,MAAM,IAAI,GAAG,MAAMA,oCAAa,CAACC,wBAAM,CAAC;IAExC,QACEC,eAACC,oBAAsB,EAAA,EAAA,QAAA,EACrBD,eAACE,6BAAmB,EAAA,EAAC,QAAQ,EAAEC,wBAAkB,EAAA,QAAA,EAC/CH,eAACI,mDAAyB,EAAA,EAAC,OAAO,EAAE,IAAI,EAAA,QAAA,EAAG,QAAQ,EAAA,CAA6B,EAAA,CAC5D,EAAA,CACC;AAE7B;;;;"}
@@ -0,0 +1,67 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
6
+ var SessionUserContext = require('./SessionUserContext.js');
7
+ var theme = require('../../shared/mui/theme.js');
8
+ var session_utils = require('./session.utils.js');
9
+ var index$1 = require('../../shared/cookies/index.js');
10
+ var session_constants = require('./session.constants.js');
11
+ var index = require('../../_virtual/index.js');
12
+ var session_events = require('./session.events.js');
13
+ var session_actions = require('./session.actions.js');
14
+ var index$2 = require('../../shared/constants/index.js');
15
+ var index_esm = require('../../node_modules/@react-oauth/google/dist/index.esm.js');
16
+ var ThemeProvider = require('../../node_modules/@mui/material/esm/styles/ThemeProvider.js');
17
+ var CssBaseline = require('../../node_modules/@mui/material/esm/CssBaseline/CssBaseline.js');
18
+
19
+ const SessionServerUserProvider = ({ children, initial, }) => {
20
+ const [user, setUser] = React.useState(initial);
21
+ const { token } = index.libExports.useEvent(session_events.tokenEvent);
22
+ const [savedPosts, setSavedPosts] = React.useState([]);
23
+ const [callGoogleOneTap] = index.libExports.useCallAction(session_actions.googleOneTapAction, {
24
+ onCompleted: (data) => {
25
+ index$1.universalCookies.set(index$2.COOKIE_NAME, data.token, session_constants.COOKIES_OPTIONS);
26
+ window.location.reload();
27
+ },
28
+ });
29
+ index_esm.useGoogleOneTapLogin({
30
+ onSuccess: (credentialResponse) => {
31
+ callGoogleOneTap(credentialResponse.credential);
32
+ },
33
+ onError: () => {
34
+ console.log('Login Failed');
35
+ },
36
+ disabled: !!token,
37
+ });
38
+ const [callCurrentUserAction, loading] = index.libExports.useCallAction(session_actions.currentUserAction, {
39
+ onCompleted: (data) => {
40
+ setUser(data.currentUser);
41
+ setSavedPosts(data.currentUser?.post_saved);
42
+ },
43
+ onError: (error) => {
44
+ index$1.universalCookies.remove(index$2.COOKIE_NAME, session_constants.COOKIES_OPTIONS);
45
+ console.log({ message: error.message });
46
+ },
47
+ });
48
+ const refetch = () => callCurrentUserAction();
49
+ const logout = () => {
50
+ index$1.universalCookies.remove(session_constants.config?.cookieTokenName, session_constants.COOKIES_OPTIONS);
51
+ window.location.reload();
52
+ };
53
+ const values = {
54
+ user,
55
+ config: session_constants.config,
56
+ subscription: session_utils.getSubscriptionActive(user),
57
+ loading,
58
+ savedPosts,
59
+ refetch,
60
+ logout,
61
+ isAuthenticated: !!token,
62
+ };
63
+ return (jsxRuntime.jsx(SessionUserContext.Provider, { value: values, children: jsxRuntime.jsxs(ThemeProvider.default, { theme: theme.theme, children: [jsxRuntime.jsx(CssBaseline.default, {}), children] }) }));
64
+ };
65
+
66
+ exports.SessionServerUserProvider = SessionServerUserProvider;
67
+ //# sourceMappingURL=SessionServerUserProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionServerUserProvider.js","sources":["../../../../src/components/session/SessionServerUserProvider.tsx"],"sourcesContent":["'use client';\nimport React, { useState } from 'react';\nimport { User, UserSavedPost } from '@/shared/types/generated';\nimport { Provider } from './SessionUserContext';\nimport { SessionContextDefaultValues } from './session.types';\nimport { ThemeProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { theme } from '@/shared/mui/theme';\nimport { getSubscriptionActive } from './session.utils';\nimport { universalCookies } from '@/shared/cookies';\nimport { config, COOKIES_OPTIONS } from '@/components/session/session.constants';\nimport { useCallAction, useEvent } from '@cobuildlab/react-simple-state';\nimport { tokenEvent } from '@/components/session/session.events';\nimport { currentUserAction, googleOneTapAction } from '@/components/session/session.actions';\nimport { COOKIE_NAME } from '@/shared/constants';\nimport { useGoogleOneTapLogin } from '@react-oauth/google';\n\ntype SessionUserProviderProps = {\n children: React.ReactNode;\n initial: User | null | undefined;\n};\n\nexport const SessionServerUserProvider: React.FC<SessionUserProviderProps> = ({\n children,\n initial,\n}) => {\n const [user, setUser] = useState<User | null | undefined>(initial);\n const { token } = useEvent(tokenEvent);\n const [savedPosts, setSavedPosts] = useState<UserSavedPost[]>([]);\n\n const [callGoogleOneTap] = useCallAction(googleOneTapAction, {\n onCompleted: (data) => {\n universalCookies.set(COOKIE_NAME, data.token, COOKIES_OPTIONS);\n window.location.reload();\n },\n });\n\n useGoogleOneTapLogin({\n onSuccess: (credentialResponse) => {\n callGoogleOneTap(credentialResponse.credential);\n },\n onError: () => {\n console.log('Login Failed');\n },\n disabled: !!token,\n });\n\n const [callCurrentUserAction, loading] = useCallAction(currentUserAction, {\n onCompleted: (data) => {\n setUser(data.currentUser);\n setSavedPosts(data.currentUser?.post_saved as UserSavedPost[]);\n },\n onError: (error) => {\n universalCookies.remove(COOKIE_NAME, COOKIES_OPTIONS);\n console.log({ message: error.message });\n },\n });\n\n const refetch = () => callCurrentUserAction();\n\n const logout = () => {\n universalCookies.remove(config?.cookieTokenName as string, COOKIES_OPTIONS);\n window.location.reload();\n };\n\n const values: SessionContextDefaultValues = {\n user,\n config,\n subscription: getSubscriptionActive(user),\n loading,\n savedPosts,\n refetch,\n logout,\n isAuthenticated: !!token,\n };\n return (\n <Provider value={values}>\n <ThemeProvider theme={theme}>\n <CssBaseline />\n\n {children}\n </ThemeProvider>\n </Provider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAsBO;;;;AAQL;AACE;;AAEE;;AAEH;AAED;AACE;AACE;;;AAGA;;;AAGH;;AAGC;AACE;AACA;;AAEF;AACE;;;AAGH;AAED;;;AAIE;AACF;AAEA;;;AAGE;;;;;;;;AAgBJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionUserContext.js","sources":["../../../../src/components/session/SessionUserContext.tsx"],"sourcesContent":["'use client'\nimport { createContext } from 'react';\n\nimport { SessionContextDefaultValues } from './session.types';\nimport { DEFAULT_USER_CONTEXT } from './session.constants';\n\nexport const Context = createContext<SessionContextDefaultValues>(DEFAULT_USER_CONTEXT);\n\nexport const { Provider } = Context;\n"],"names":[],"mappings":";;;;;;;AAQO;;;"}
1
+ {"version":3,"file":"SessionUserContext.js","sources":["../../../../src/components/session/SessionUserContext.tsx"],"sourcesContent":["'use client';\nimport { createContext } from 'react';\n\nimport { SessionContextDefaultValues } from './session.types';\nimport { DEFAULT_USER_CONTEXT } from './session.constants';\n\nexport const Context = createContext<SessionContextDefaultValues>(DEFAULT_USER_CONTEXT);\n\nexport const { Provider } = Context;\n"],"names":[],"mappings":";;;;;;;AAQO;;;"}
@@ -11,6 +11,8 @@ const config = {
11
11
  };
12
12
  const DEFAULT_USER_CONTEXT = {
13
13
  user: undefined,
14
+ logout: () => { },
15
+ refetch: () => { },
14
16
  };
15
17
  const COOKIES_OPTIONS = {
16
18
  expires: moment.default().add(1, 'year').toDate(),
@@ -1 +1 @@
1
- {"version":3,"file":"session.constants.js","sources":["../../../../src/components/session/session.constants.ts"],"sourcesContent":["import { Config } from '@/config/config.types';\nimport moment from 'moment';\nimport { COOKIE_DOMAIN, COOKIE_NAME, URI, URL_PORTAL } from '@/shared/constants';\n\nexport const config: Config = {\n uri: URI,\n urlPortal: URL_PORTAL,\n cookieTokenName: COOKIE_NAME,\n cookieDomain: COOKIE_DOMAIN,\n};\n\nexport const DEFAULT_USER_CONTEXT = {\n user: undefined,\n};\n\nexport const COOKIES_OPTIONS = {\n expires: moment().add(1, 'year').toDate(),\n path: '/',\n domain: COOKIE_DOMAIN,\n};\n"],"names":["URI","URL_PORTAL","COOKIE_NAME","COOKIE_DOMAIN","moment"],"mappings":";;;;;AAIO,MAAM,MAAM,GAAW;AAC5B,IAAA,GAAG,EAAEA,SAAG;AACR,IAAA,SAAS,EAAEC,gBAAU;AACrB,IAAA,eAAe,EAAEC,iBAAW;AAC5B,IAAA,YAAY,EAAEC,mBAAa;;AAGtB,MAAM,oBAAoB,GAAG;AAClC,IAAA,IAAI,EAAE,SAAS;;AAGV,MAAM,eAAe,GAAG;AAC7B,IAAA,OAAO,EAAEC,cAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;AACzC,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAED,mBAAa;;;;;;;"}
1
+ {"version":3,"file":"session.constants.js","sources":["../../../../src/components/session/session.constants.ts"],"sourcesContent":["import { Config } from '@/config/config.types';\nimport moment from 'moment';\nimport { COOKIE_DOMAIN, COOKIE_NAME, URI, URL_PORTAL } from '@/shared/constants';\n\nexport const config: Config = {\n uri: URI,\n urlPortal: URL_PORTAL,\n cookieTokenName: COOKIE_NAME,\n cookieDomain: COOKIE_DOMAIN,\n};\n\nexport const DEFAULT_USER_CONTEXT = {\n user: undefined,\n logout: () => {},\n refetch: () => {},\n};\n\nexport const COOKIES_OPTIONS = {\n expires: moment().add(1, 'year').toDate(),\n path: '/',\n domain: COOKIE_DOMAIN,\n};\n"],"names":["URI","URL_PORTAL","COOKIE_NAME","COOKIE_DOMAIN","moment"],"mappings":";;;;;AAIO,MAAM,MAAM,GAAW;AAC5B,IAAA,GAAG,EAAEA,SAAG;AACR,IAAA,SAAS,EAAEC,gBAAU;AACrB,IAAA,eAAe,EAAEC,iBAAW;AAC5B,IAAA,YAAY,EAAEC,mBAAa;;AAGtB,MAAM,oBAAoB,GAAG;AAClC,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,MAAK,EAAE,CAAC;AAChB,IAAA,OAAO,EAAE,MAAK,EAAE,CAAC;;AAGZ,MAAM,eAAe,GAAG;AAC7B,IAAA,OAAO,EAAEC,cAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;AACzC,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAED,mBAAa;;;;;;;"}
package/dist/cjs/index.js CHANGED
@@ -11,8 +11,9 @@ var PanelItem = require('./components/panel/PanelItem.js');
11
11
  var PanelListItems = require('./components/panel/PanelListItems.js');
12
12
  var panel_store = require('./components/panel/panel.store.js');
13
13
  var panel_actions = require('./components/panel/panel.actions.js');
14
- var SessionProviderServer = require('./components/session/SessionProviderServer.js');
14
+ var SessionServerProvider = require('./components/session/SessionServerProvider.js');
15
15
  var SessionClientProvider = require('./components/session/SessionClientProvider.js');
16
+ var session_hooks = require('./components/session/session.hooks.js');
16
17
  var SaveNoteButton = require('./components/post/SaveNoteButton.js');
17
18
  var PaywallSubscription = require('./components/paywall/PaywallSubscription.js');
18
19
  var PaywallRegister = require('./components/paywall/PaywallRegister.js');
@@ -36,8 +37,9 @@ exports.PanelListItems = PanelListItems.PanelListItems;
36
37
  exports.panelStore = panel_store.panelStore;
37
38
  exports.handlePanelClick = panel_actions.handlePanelClick;
38
39
  exports.panelStoreAction = panel_actions.panelStoreAction;
39
- exports.SessionProviderServer = SessionProviderServer.SessionProviderServer;
40
+ exports.SessionServerProvider = SessionServerProvider.SessionServerProvider;
40
41
  exports.SessionClientProvider = SessionClientProvider.SessionClientProvider;
42
+ exports.useSession = session_hooks.useSession;
41
43
  exports.SaveNoteButton = SaveNoteButton.SaveNoteButton;
42
44
  exports.PaywallSubscription = PaywallSubscription.PaywallSubscription;
43
45
  exports.PaywallRegister = PaywallRegister.PaywallRegister;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('../../_virtual/index9.js');
3
+ var index = require('../../_virtual/index10.js');
4
4
  var _url_commonjsExternal = require('../../_virtual/_url.js');
5
5
  var _http_commonjsExternal = require('../../_virtual/_http.js');
6
6
  var _https_commonjsExternal = require('../../_virtual/_https.js');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('../../_virtual/index10.js');
3
+ var index = require('../../_virtual/index9.js');
4
4
  var _url_commonjsExternal = require('../../_virtual/_url.js');
5
5
 
6
6
  var hasRequiredProxyFromEnv;
@@ -2,10 +2,10 @@
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { GoogleOAuthProvider } from '../../node_modules/@react-oauth/google/dist/index.esm.js';
4
4
  import { GOOGLE_AUTH_CLIENT } from '../../shared/constants/index.js';
5
- import { SessionUserClientProvider } from './SessionUserClientProvider.js';
5
+ import { SessionClientUserProvider } from './SessionClientUserProvider.js';
6
6
 
7
7
  const SessionClientProvider = ({ children }) => {
8
- return (jsx(GoogleOAuthProvider, { clientId: GOOGLE_AUTH_CLIENT, children: jsx(SessionUserClientProvider, { children: children }) }));
8
+ return (jsx(GoogleOAuthProvider, { clientId: GOOGLE_AUTH_CLIENT, children: jsx(SessionClientUserProvider, { children: children }) }));
9
9
  };
10
10
 
11
11
  export { SessionClientProvider };
@@ -1 +1 @@
1
- {"version":3,"file":"SessionClientProvider.js","sources":["../../../../src/components/session/SessionClientProvider.tsx"],"sourcesContent":["'use client';\nimport { GoogleOAuthProvider } from '@react-oauth/google';\nimport React, { ReactNode } from 'react';\nimport { GOOGLE_AUTH_CLIENT } from '@/shared/constants';\nimport { SessionUserClientProvider } from './SessionUserClientProvider';\n\ntype SessionClientProviderProps = {\n children: ReactNode;\n};\n\nexport const SessionClientProvider: React.FC<SessionClientProviderProps> = ({ children }) => {\n return (\n <GoogleOAuthProvider clientId={GOOGLE_AUTH_CLIENT}>\n <SessionUserClientProvider>{children}</SessionUserClientProvider>\n </GoogleOAuthProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAWE;AAKF;;"}
1
+ {"version":3,"file":"SessionClientProvider.js","sources":["../../../../src/components/session/SessionClientProvider.tsx"],"sourcesContent":["'use client';\nimport { GoogleOAuthProvider } from '@react-oauth/google';\nimport React, { ReactNode } from 'react';\nimport { GOOGLE_AUTH_CLIENT } from '@/shared/constants';\nimport { SessionClientUserProvider } from './SessionClientUserProvider';\n\ntype SessionClientProviderProps = {\n children: ReactNode;\n};\n\nexport const SessionClientProvider: React.FC<SessionClientProviderProps> = ({ children }) => {\n return (\n <GoogleOAuthProvider clientId={GOOGLE_AUTH_CLIENT}>\n <SessionClientUserProvider>{children}</SessionClientUserProvider>\n </GoogleOAuthProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAWE;AAKF;;"}
@@ -0,0 +1,75 @@
1
+ "use client";
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { useState, useEffect } from 'react';
4
+ import { Provider } from './SessionUserContext.js';
5
+ import { useGoogleOneTapLogin } from '../../node_modules/@react-oauth/google/dist/index.esm.js';
6
+ import { theme } from '../../shared/mui/theme.js';
7
+ import { getSubscriptionActive } from './session.utils.js';
8
+ import { COOKIES_OPTIONS, config } from './session.constants.js';
9
+ import { l as libExports } from '../../_virtual/index.js';
10
+ import { googleOneTapAction, currentUserAction } from './session.actions.js';
11
+ import { universalCookies } from '../../shared/cookies/index.js';
12
+ import { COOKIE_NAME } from '../../shared/constants/index.js';
13
+ import { tokenEvent } from './session.events.js';
14
+ import ThemeProvider from '../../node_modules/@mui/material/esm/styles/ThemeProvider.js';
15
+ import CssBaseline from '../../node_modules/@mui/material/esm/CssBaseline/CssBaseline.js';
16
+
17
+ const SessionClientUserProvider = ({ children, initial }) => {
18
+ const [user, setUser] = useState(initial);
19
+ const { token } = libExports.useEvent(tokenEvent);
20
+ const [savedPosts, setSavedPosts] = useState([]);
21
+ const [callGoogleOneTap] = libExports.useCallAction(googleOneTapAction, {
22
+ onCompleted: (data) => {
23
+ universalCookies.set(COOKIE_NAME, data.token, COOKIES_OPTIONS);
24
+ window.location.reload();
25
+ },
26
+ });
27
+ useGoogleOneTapLogin({
28
+ onSuccess: (credentialResponse) => {
29
+ callGoogleOneTap(credentialResponse.credential);
30
+ },
31
+ onError: () => {
32
+ console.log('Login Failed');
33
+ },
34
+ disabled: !!token,
35
+ promptMomentNotification: (data) => {
36
+ // if (data.isSkippedMoment()) {
37
+ // createAction(EasyDataName.skipSwg);
38
+ // }
39
+ },
40
+ });
41
+ const [callCurrentUserAction, loading] = libExports.useCallAction(currentUserAction, {
42
+ onCompleted: (data) => {
43
+ setUser(data.currentUser);
44
+ setSavedPosts(data.currentUser?.post_saved);
45
+ },
46
+ onError: (error) => {
47
+ universalCookies.remove(COOKIE_NAME, COOKIES_OPTIONS);
48
+ console.log({ message: error.message });
49
+ },
50
+ });
51
+ useEffect(() => {
52
+ if (token) {
53
+ callCurrentUserAction();
54
+ }
55
+ }, [callCurrentUserAction, token]);
56
+ const refetch = () => callCurrentUserAction();
57
+ const logout = () => {
58
+ universalCookies.remove(config?.cookieTokenName, COOKIES_OPTIONS);
59
+ window.location.reload();
60
+ };
61
+ const values = {
62
+ user,
63
+ config,
64
+ subscription: getSubscriptionActive(user),
65
+ loading,
66
+ savedPosts,
67
+ refetch,
68
+ logout,
69
+ isAuthenticated: !!token,
70
+ };
71
+ return (jsx(Provider, { value: values, children: jsxs(ThemeProvider, { theme: theme, children: [jsx(CssBaseline, {}), children] }) }));
72
+ };
73
+
74
+ export { SessionClientUserProvider };
75
+ //# sourceMappingURL=SessionClientUserProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionClientUserProvider.js","sources":["../../../../src/components/session/SessionClientUserProvider.tsx"],"sourcesContent":["'use client';\nimport React, { useState, useEffect } from 'react';\nimport { User, UserSavedPost } from '@/shared/types/generated';\nimport { Provider } from './SessionUserContext';\nimport { SessionContextDefaultValues } from './session.types';\nimport { useGoogleOneTapLogin } from '@react-oauth/google';\nimport { ThemeProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { theme } from '@/shared/mui/theme';\nimport { getSubscriptionActive } from './session.utils';\nimport { config, COOKIES_OPTIONS } from './session.constants';\nimport { useCallAction, useEvent } from '@cobuildlab/react-simple-state';\nimport { currentUserAction, googleOneTapAction } from './session.actions';\nimport { universalCookies } from '@/shared/cookies';\nimport { COOKIE_NAME } from '@/shared/constants';\nimport { tokenEvent } from './session.events';\n\ntype SessionUserProviderProps = {\n children: React.ReactNode;\n initial?: User | null;\n};\n\nexport const SessionClientUserProvider: React.FC<SessionUserProviderProps> = ({ children, initial }) => {\n const [user, setUser] = useState<User | null | undefined>(initial);\n const { token } = useEvent(tokenEvent);\n const [savedPosts, setSavedPosts] = useState<UserSavedPost[]>([]);\n\n const [callGoogleOneTap] = useCallAction(googleOneTapAction, {\n onCompleted: (data) => {\n universalCookies.set(COOKIE_NAME, data.token, COOKIES_OPTIONS);\n window.location.reload();\n },\n });\n\n useGoogleOneTapLogin({\n onSuccess: (credentialResponse) => {\n callGoogleOneTap(credentialResponse.credential);\n },\n onError: () => {\n console.log('Login Failed');\n },\n disabled: !!token,\n promptMomentNotification: (data) => {\n // if (data.isSkippedMoment()) {\n // createAction(EasyDataName.skipSwg);\n // }\n },\n });\n\n const [callCurrentUserAction, loading] = useCallAction(currentUserAction, {\n onCompleted: (data) => {\n setUser(data.currentUser);\n setSavedPosts(data.currentUser?.post_saved as UserSavedPost[]);\n },\n onError: (error) => {\n universalCookies.remove(COOKIE_NAME, COOKIES_OPTIONS);\n console.log({ message: error.message });\n },\n });\n\n useEffect(() => {\n if (token) {\n callCurrentUserAction();\n }\n }, [callCurrentUserAction, token]);\n\n const refetch = () => callCurrentUserAction();\n\n const logout = () => {\n universalCookies.remove(config?.cookieTokenName as string, COOKIES_OPTIONS);\n window.location.reload();\n };\n\n const values: SessionContextDefaultValues = {\n user,\n config,\n subscription: getSubscriptionActive(user),\n loading,\n savedPosts,\n refetch,\n logout,\n isAuthenticated: !!token,\n };\n return (\n <Provider value={values}>\n <ThemeProvider theme={theme}>\n <CssBaseline />\n {children}\n </ThemeProvider>\n </Provider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAsBO;;;;AAKL;AACE;;AAEE;;AAEH;AAED;AACE;AACE;;;AAGA;;;AAGF;;;;;AAKD;;AAGC;AACE;AACA;;AAEF;AACE;;;AAGH;;;AAIG;;AAEJ;AAEA;;;AAIE;AACF;AAEA;;;AAGE;;;;;;;;AAeJ;;"}
@@ -0,0 +1,15 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { SessionServerUserProvider } from './SessionServerUserProvider.js';
3
+ import { getUserServer } from './session.server.actions.js';
4
+ import { config } from './session.constants.js';
5
+ import { GOOGLE_AUTH_CLIENT } from '../../shared/constants/index.js';
6
+ import { GoogleOAuthProvider } from '../../node_modules/@react-oauth/google/dist/index.esm.js';
7
+ import AppRouterCacheProvider from '../../node_modules/@mui/material-nextjs/esm/v13-appRouter/appRouterV13.js';
8
+
9
+ const SessionServerProvider = async ({ children }) => {
10
+ const user = await getUserServer(config);
11
+ return (jsx(AppRouterCacheProvider, { children: jsx(GoogleOAuthProvider, { clientId: GOOGLE_AUTH_CLIENT, children: jsx(SessionServerUserProvider, { initial: user, children: children }) }) }));
12
+ };
13
+
14
+ export { SessionServerProvider };
15
+ //# sourceMappingURL=SessionServerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionServerProvider.js","sources":["../../../../src/components/session/SessionServerProvider.tsx"],"sourcesContent":["import React from 'react';\nimport { SessionServerUserProvider } from './SessionServerUserProvider';\nimport { AppRouterCacheProvider } from '@mui/material-nextjs/v15-appRouter';\nimport { getUserServer } from './session.server.actions';\nimport { config } from './session.constants';\nimport { GOOGLE_AUTH_CLIENT } from '@/shared/constants';\nimport { GoogleOAuthProvider } from '@react-oauth/google';\n\ntype SessionProviderServerProps = {\n children: React.ReactNode;\n};\n\nexport const SessionServerProvider: React.FC<SessionProviderServerProps> = async ({ children }) => {\n const user = await getUserServer(config);\n\n return (\n <AppRouterCacheProvider>\n <GoogleOAuthProvider clientId={GOOGLE_AUTH_CLIENT}>\n <SessionServerUserProvider initial={user}>{children}</SessionServerUserProvider>\n </GoogleOAuthProvider>\n </AppRouterCacheProvider>\n );\n};\n"],"names":["_jsx"],"mappings":";;;;;;;;AAYO,MAAM,qBAAqB,GAAyC,OAAO,EAAE,QAAQ,EAAE,KAAI;AAChG,IAAA,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC;IAExC,QACEA,IAAC,sBAAsB,EAAA,EAAA,QAAA,EACrBA,IAAC,mBAAmB,EAAA,EAAC,QAAQ,EAAE,kBAAkB,EAAA,QAAA,EAC/CA,IAAC,yBAAyB,EAAA,EAAC,OAAO,EAAE,IAAI,EAAA,QAAA,EAAG,QAAQ,EAAA,CAA6B,EAAA,CAC5D,EAAA,CACC;AAE7B;;;;"}
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { useState } from 'react';
4
+ import { Provider } from './SessionUserContext.js';
5
+ import { theme } from '../../shared/mui/theme.js';
6
+ import { getSubscriptionActive } from './session.utils.js';
7
+ import { universalCookies } from '../../shared/cookies/index.js';
8
+ import { COOKIES_OPTIONS, config } from './session.constants.js';
9
+ import { l as libExports } from '../../_virtual/index.js';
10
+ import { tokenEvent } from './session.events.js';
11
+ import { googleOneTapAction, currentUserAction } from './session.actions.js';
12
+ import { COOKIE_NAME } from '../../shared/constants/index.js';
13
+ import { useGoogleOneTapLogin } from '../../node_modules/@react-oauth/google/dist/index.esm.js';
14
+ import ThemeProvider from '../../node_modules/@mui/material/esm/styles/ThemeProvider.js';
15
+ import CssBaseline from '../../node_modules/@mui/material/esm/CssBaseline/CssBaseline.js';
16
+
17
+ const SessionServerUserProvider = ({ children, initial, }) => {
18
+ const [user, setUser] = useState(initial);
19
+ const { token } = libExports.useEvent(tokenEvent);
20
+ const [savedPosts, setSavedPosts] = useState([]);
21
+ const [callGoogleOneTap] = libExports.useCallAction(googleOneTapAction, {
22
+ onCompleted: (data) => {
23
+ universalCookies.set(COOKIE_NAME, data.token, COOKIES_OPTIONS);
24
+ window.location.reload();
25
+ },
26
+ });
27
+ useGoogleOneTapLogin({
28
+ onSuccess: (credentialResponse) => {
29
+ callGoogleOneTap(credentialResponse.credential);
30
+ },
31
+ onError: () => {
32
+ console.log('Login Failed');
33
+ },
34
+ disabled: !!token,
35
+ });
36
+ const [callCurrentUserAction, loading] = libExports.useCallAction(currentUserAction, {
37
+ onCompleted: (data) => {
38
+ setUser(data.currentUser);
39
+ setSavedPosts(data.currentUser?.post_saved);
40
+ },
41
+ onError: (error) => {
42
+ universalCookies.remove(COOKIE_NAME, COOKIES_OPTIONS);
43
+ console.log({ message: error.message });
44
+ },
45
+ });
46
+ const refetch = () => callCurrentUserAction();
47
+ const logout = () => {
48
+ universalCookies.remove(config?.cookieTokenName, COOKIES_OPTIONS);
49
+ window.location.reload();
50
+ };
51
+ const values = {
52
+ user,
53
+ config,
54
+ subscription: getSubscriptionActive(user),
55
+ loading,
56
+ savedPosts,
57
+ refetch,
58
+ logout,
59
+ isAuthenticated: !!token,
60
+ };
61
+ return (jsx(Provider, { value: values, children: jsxs(ThemeProvider, { theme: theme, children: [jsx(CssBaseline, {}), children] }) }));
62
+ };
63
+
64
+ export { SessionServerUserProvider };
65
+ //# sourceMappingURL=SessionServerUserProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionServerUserProvider.js","sources":["../../../../src/components/session/SessionServerUserProvider.tsx"],"sourcesContent":["'use client';\nimport React, { useState } from 'react';\nimport { User, UserSavedPost } from '@/shared/types/generated';\nimport { Provider } from './SessionUserContext';\nimport { SessionContextDefaultValues } from './session.types';\nimport { ThemeProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { theme } from '@/shared/mui/theme';\nimport { getSubscriptionActive } from './session.utils';\nimport { universalCookies } from '@/shared/cookies';\nimport { config, COOKIES_OPTIONS } from '@/components/session/session.constants';\nimport { useCallAction, useEvent } from '@cobuildlab/react-simple-state';\nimport { tokenEvent } from '@/components/session/session.events';\nimport { currentUserAction, googleOneTapAction } from '@/components/session/session.actions';\nimport { COOKIE_NAME } from '@/shared/constants';\nimport { useGoogleOneTapLogin } from '@react-oauth/google';\n\ntype SessionUserProviderProps = {\n children: React.ReactNode;\n initial: User | null | undefined;\n};\n\nexport const SessionServerUserProvider: React.FC<SessionUserProviderProps> = ({\n children,\n initial,\n}) => {\n const [user, setUser] = useState<User | null | undefined>(initial);\n const { token } = useEvent(tokenEvent);\n const [savedPosts, setSavedPosts] = useState<UserSavedPost[]>([]);\n\n const [callGoogleOneTap] = useCallAction(googleOneTapAction, {\n onCompleted: (data) => {\n universalCookies.set(COOKIE_NAME, data.token, COOKIES_OPTIONS);\n window.location.reload();\n },\n });\n\n useGoogleOneTapLogin({\n onSuccess: (credentialResponse) => {\n callGoogleOneTap(credentialResponse.credential);\n },\n onError: () => {\n console.log('Login Failed');\n },\n disabled: !!token,\n });\n\n const [callCurrentUserAction, loading] = useCallAction(currentUserAction, {\n onCompleted: (data) => {\n setUser(data.currentUser);\n setSavedPosts(data.currentUser?.post_saved as UserSavedPost[]);\n },\n onError: (error) => {\n universalCookies.remove(COOKIE_NAME, COOKIES_OPTIONS);\n console.log({ message: error.message });\n },\n });\n\n const refetch = () => callCurrentUserAction();\n\n const logout = () => {\n universalCookies.remove(config?.cookieTokenName as string, COOKIES_OPTIONS);\n window.location.reload();\n };\n\n const values: SessionContextDefaultValues = {\n user,\n config,\n subscription: getSubscriptionActive(user),\n loading,\n savedPosts,\n refetch,\n logout,\n isAuthenticated: !!token,\n };\n return (\n <Provider value={values}>\n <ThemeProvider theme={theme}>\n <CssBaseline />\n\n {children}\n </ThemeProvider>\n </Provider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAsBO;;;;AAQL;AACE;;AAEE;;AAEH;AAED;AACE;AACE;;;AAGA;;;AAGH;;AAGC;AACE;AACA;;AAEF;AACE;;;AAGH;AAED;;;AAIE;AACF;AAEA;;;AAGE;;;;;;;;AAgBJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionUserContext.js","sources":["../../../../src/components/session/SessionUserContext.tsx"],"sourcesContent":["'use client'\nimport { createContext } from 'react';\n\nimport { SessionContextDefaultValues } from './session.types';\nimport { DEFAULT_USER_CONTEXT } from './session.constants';\n\nexport const Context = createContext<SessionContextDefaultValues>(DEFAULT_USER_CONTEXT);\n\nexport const { Provider } = Context;\n"],"names":[],"mappings":";;;;;AAQO;;"}
1
+ {"version":3,"file":"SessionUserContext.js","sources":["../../../../src/components/session/SessionUserContext.tsx"],"sourcesContent":["'use client';\nimport { createContext } from 'react';\n\nimport { SessionContextDefaultValues } from './session.types';\nimport { DEFAULT_USER_CONTEXT } from './session.constants';\n\nexport const Context = createContext<SessionContextDefaultValues>(DEFAULT_USER_CONTEXT);\n\nexport const { Provider } = Context;\n"],"names":[],"mappings":";;;;;AAQO;;"}
@@ -9,6 +9,8 @@ const config = {
9
9
  };
10
10
  const DEFAULT_USER_CONTEXT = {
11
11
  user: undefined,
12
+ logout: () => { },
13
+ refetch: () => { },
12
14
  };
13
15
  const COOKIES_OPTIONS = {
14
16
  expires: moment().add(1, 'year').toDate(),
@@ -1 +1 @@
1
- {"version":3,"file":"session.constants.js","sources":["../../../../src/components/session/session.constants.ts"],"sourcesContent":["import { Config } from '@/config/config.types';\nimport moment from 'moment';\nimport { COOKIE_DOMAIN, COOKIE_NAME, URI, URL_PORTAL } from '@/shared/constants';\n\nexport const config: Config = {\n uri: URI,\n urlPortal: URL_PORTAL,\n cookieTokenName: COOKIE_NAME,\n cookieDomain: COOKIE_DOMAIN,\n};\n\nexport const DEFAULT_USER_CONTEXT = {\n user: undefined,\n};\n\nexport const COOKIES_OPTIONS = {\n expires: moment().add(1, 'year').toDate(),\n path: '/',\n domain: COOKIE_DOMAIN,\n};\n"],"names":[],"mappings":";;;AAIO,MAAM,MAAM,GAAW;AAC5B,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,SAAS,EAAE,UAAU;AACrB,IAAA,eAAe,EAAE,WAAW;AAC5B,IAAA,YAAY,EAAE,aAAa;;AAGtB,MAAM,oBAAoB,GAAG;AAClC,IAAA,IAAI,EAAE,SAAS;;AAGV,MAAM,eAAe,GAAG;AAC7B,IAAA,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;AACzC,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,aAAa;;;;;"}
1
+ {"version":3,"file":"session.constants.js","sources":["../../../../src/components/session/session.constants.ts"],"sourcesContent":["import { Config } from '@/config/config.types';\nimport moment from 'moment';\nimport { COOKIE_DOMAIN, COOKIE_NAME, URI, URL_PORTAL } from '@/shared/constants';\n\nexport const config: Config = {\n uri: URI,\n urlPortal: URL_PORTAL,\n cookieTokenName: COOKIE_NAME,\n cookieDomain: COOKIE_DOMAIN,\n};\n\nexport const DEFAULT_USER_CONTEXT = {\n user: undefined,\n logout: () => {},\n refetch: () => {},\n};\n\nexport const COOKIES_OPTIONS = {\n expires: moment().add(1, 'year').toDate(),\n path: '/',\n domain: COOKIE_DOMAIN,\n};\n"],"names":[],"mappings":";;;AAIO,MAAM,MAAM,GAAW;AAC5B,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,SAAS,EAAE,UAAU;AACrB,IAAA,eAAe,EAAE,WAAW;AAC5B,IAAA,YAAY,EAAE,aAAa;;AAGtB,MAAM,oBAAoB,GAAG;AAClC,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,MAAK,EAAE,CAAC;AAChB,IAAA,OAAO,EAAE,MAAK,EAAE,CAAC;;AAGZ,MAAM,eAAe,GAAG;AAC7B,IAAA,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;AACzC,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,aAAa;;;;;"}
package/dist/esm/index.js CHANGED
@@ -9,8 +9,9 @@ export { PanelItem } from './components/panel/PanelItem.js';
9
9
  export { PanelListItems } from './components/panel/PanelListItems.js';
10
10
  export { panelStore } from './components/panel/panel.store.js';
11
11
  export { handlePanelClick, panelStoreAction } from './components/panel/panel.actions.js';
12
- export { SessionProviderServer } from './components/session/SessionProviderServer.js';
12
+ export { SessionServerProvider } from './components/session/SessionServerProvider.js';
13
13
  export { SessionClientProvider } from './components/session/SessionClientProvider.js';
14
+ export { useSession } from './components/session/session.hooks.js';
14
15
  export { SaveNoteButton } from './components/post/SaveNoteButton.js';
15
16
  export { PaywallSubscription } from './components/paywall/PaywallSubscription.js';
16
17
  export { PaywallRegister } from './components/paywall/PaywallRegister.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { User } from '@/shared/types/generated';
3
+ type SessionUserProviderProps = {
4
+ children: React.ReactNode;
5
+ initial?: User | null;
6
+ };
7
+ export declare const SessionClientUserProvider: React.FC<SessionUserProviderProps>;
8
+ export {};
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ type SessionProviderServerProps = {
3
+ children: React.ReactNode;
4
+ };
5
+ export declare const SessionServerProvider: React.FC<SessionProviderServerProps>;
6
+ export {};
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { User } from '@/shared/types/generated';
3
+ type SessionUserProviderProps = {
4
+ children: React.ReactNode;
5
+ initial: User | null | undefined;
6
+ };
7
+ export declare const SessionServerUserProvider: React.FC<SessionUserProviderProps>;
8
+ export {};
@@ -1,2 +1,4 @@
1
- export { SessionProviderServer } from './SessionProviderServer';
1
+ export { SessionServerProvider } from './SessionServerProvider';
2
2
  export { SessionClientProvider } from './SessionClientProvider';
3
+ export { useSession } from './session.hooks';
4
+ export * from './session.types';
@@ -2,6 +2,8 @@ import { Config } from '@/config/config.types';
2
2
  export declare const config: Config;
3
3
  export declare const DEFAULT_USER_CONTEXT: {
4
4
  user: undefined;
5
+ logout: () => void;
6
+ refetch: () => void;
5
7
  };
6
8
  export declare const COOKIES_OPTIONS: {
7
9
  expires: Date;
@@ -10,5 +10,6 @@ export type SessionContextDefaultValues = {
10
10
  isAuthenticated?: boolean;
11
11
  loading?: boolean;
12
12
  logout: () => void;
13
+ refetch: () => void;
13
14
  savedPosts?: UserSavedPost[];
14
15
  };
package/dist/index.d.ts CHANGED
@@ -2,10 +2,11 @@ import { DrawerProps, AvatarProps, TypographyProps, BoxProps, DividerProps, Butt
2
2
  import * as React from 'react';
3
3
  import React__default, { FC, ReactNode } from 'react';
4
4
  import * as _cobuildlab_react_simple_state from '@cobuildlab/react-simple-state';
5
+ import { User, Subscription, UserSavedPost, Comment } from '@/shared/types/generated';
6
+ import { Config as Config$1 } from '@/config/config.types';
5
7
  import { CreateSavedPostEvent, DeleteSavedPostEvent } from '@/components/post/post.types';
6
8
  import { ReactSimpleWysiwygProps } from '@/shared/components/react-editor/ReactSimpleWysiwyg';
7
9
  import { CreateCommentTitleItemProps } from '@/components/comment/components/create-comment/CreateCommentAction';
8
- import { Comment } from '@/shared/types/generated';
9
10
  import { CommentItemExtraProps } from '@/components/comment/comment.types';
10
11
  import { DialogDefaultProps } from '@/shared/components/dialog/DialogDefault';
11
12
  import { ShowCommentButtonProps } from '@/components/comment/components/ShowCommentButton';
@@ -100,13 +101,29 @@ declare const handlePanelClick: (isOpen: boolean) => void;
100
101
  type SessionProviderServerProps = {
101
102
  children: React__default.ReactNode;
102
103
  };
103
- declare const SessionProviderServer: React__default.FC<SessionProviderServerProps>;
104
+ declare const SessionServerProvider: React__default.FC<SessionProviderServerProps>;
104
105
 
105
106
  type SessionClientProviderProps = {
106
107
  children: ReactNode;
107
108
  };
108
109
  declare const SessionClientProvider: React__default.FC<SessionClientProviderProps>;
109
110
 
111
+ type Token = {
112
+ token: undefined | string;
113
+ };
114
+ type SessionContextDefaultValues = {
115
+ user?: User | null;
116
+ config?: Config$1;
117
+ subscription?: Subscription | null;
118
+ isAuthenticated?: boolean;
119
+ loading?: boolean;
120
+ logout: () => void;
121
+ refetch: () => void;
122
+ savedPosts?: UserSavedPost[];
123
+ };
124
+
125
+ declare const useSession: () => SessionContextDefaultValues;
126
+
110
127
  type SaveNoteButtonProps = {
111
128
  postId: number;
112
129
  SavedNoteComponent?: React__default.ReactNode | null | string;
@@ -235,5 +252,5 @@ interface Config {
235
252
  cookieDomain?: string;
236
253
  }
237
254
 
238
- export { COOKIE_DOMAIN, COOKIE_NAME, CommentContext, CommentProvider, Comments, GOOGLE_AUTH_CLIENT, Panel, PanelAvatar, PanelButton, PanelDivider, PanelFooter, PanelHeader, PanelItem, PanelListItems, PanelSubscriptionIcon, Paywall, PaywallRegister, PaywallSubscription, Provider, SaveNoteButton, SessionClientProvider, SessionProviderServer, URI, URL_PORTAL, handlePanelClick, panelStore, panelStoreAction };
239
- export type { CommentsProps, Config, PanelAvatarProps, PanelButtonProps, PanelDividerProps, PanelFooterProps, PanelHeaderProps, PanelItemProps, PanelListRoute, PanelProps, PanelStoreAction, PanelSubscriptionIconProps, PaywallProps, PaywallRegisterProps, PaywallSubscriptionProps, SaveNoteButtonProps };
255
+ export { COOKIE_DOMAIN, COOKIE_NAME, CommentContext, CommentProvider, Comments, GOOGLE_AUTH_CLIENT, Panel, PanelAvatar, PanelButton, PanelDivider, PanelFooter, PanelHeader, PanelItem, PanelListItems, PanelSubscriptionIcon, Paywall, PaywallRegister, PaywallSubscription, Provider, SaveNoteButton, SessionClientProvider, SessionServerProvider, URI, URL_PORTAL, handlePanelClick, panelStore, panelStoreAction, useSession };
256
+ export type { CommentsProps, Config, PanelAvatarProps, PanelButtonProps, PanelDividerProps, PanelFooterProps, PanelHeaderProps, PanelItemProps, PanelListRoute, PanelProps, PanelStoreAction, PanelSubscriptionIconProps, PaywallProps, PaywallRegisterProps, PaywallSubscriptionProps, SaveNoteButtonProps, SessionContextDefaultValues, Token };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-easy-wall",
3
- "version": "3.1.0",
3
+ "version": "3.3.0",
4
4
  "main": "./dist/cjs/index.js",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/index.d.ts",