@ichaingo/with-login 1.4.57 → 1.4.59

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/dist/index.d.ts CHANGED
@@ -15,8 +15,6 @@ export interface LoginContextValue {
15
15
  setLoginOpen: (open: boolean) => void;
16
16
  url: string | null;
17
17
  currentTheme: string;
18
- iframeLoaded: boolean;
19
- handleIframeLoad: () => void;
20
18
  mounted: boolean;
21
19
  Trigger: React.FC<React.HTMLAttributes<HTMLDivElement>>;
22
20
  registerLoginSuccessCallback: (callback: () => void | Promise<void>) => () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8E,MAAM,OAAO,CAAC;AAOnG,eAAO,MAAM,OAAO,eAEnB,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,iBAAiB,oBAAoB;IACrC,aAAa,iBAAiB;CAC/B;AAED,oBAAY,aAAa;IACvB,KAAK,UAAU;IACf,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,iBAAiB;IAEhC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAExD,4BAA4B,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC;CACpF;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAKD;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,oBAA8C,EAAE,EAAE,kBAAkB,2CAkJ7G;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C;AAED,UAAU,cACR,SAAQ,KAAK,CAAC,iBAAiB,EAC7B,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,kDAevE;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8E,MAAM,OAAO,CAAC;AAMnG,eAAO,MAAM,OAAO,eAEnB,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,iBAAiB,oBAAoB;IACrC,aAAa,iBAAiB;CAC/B;AAED,oBAAY,aAAa;IACvB,KAAK,UAAU;IACf,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,iBAAiB;IAEhC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAExD,4BAA4B,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC;CACpF;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAKD;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,oBAA8C,EAAE,EAAE,kBAAkB,2CAyH7G;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C;AAED,UAAU,cACR,SAAQ,KAAK,CAAC,iBAAiB,EAC7B,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,kDAevE;AAED,eAAe,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,117 +1,103 @@
1
1
  'use client';
2
- import { jsx as m, jsxs as O } from "react/jsx-runtime";
3
- import P, { createContext as S, useState as g, useRef as b, useCallback as l, useEffect as L, useContext as A } from "react";
4
- import { useLocale as B } from "next-intl";
5
- import { twMerge as I } from "tailwind-merge";
6
- import { useTheme as G } from "@ichaingo/next-themes";
7
- import H from "js-cookie";
8
- const K = () => !!H.get("id_token");
9
- var X = /* @__PURE__ */ ((e) => (e.CLOSE_LOGIN_MODAL = "closeLoginModal", e.LOGIN_SUCCESS = "loginSuccess", e))(X || {}), j = /* @__PURE__ */ ((e) => (e.LOGIN = "login", e.REGISTER = "register", e))(j || {});
10
- const T = S(void 0);
11
- function Q({ children: e, loginSuccessCallback: n = () => Promise.resolve() }) {
12
- const [i, a] = g(!1), [s, $] = g(!1), [w, c] = g(!1), [d, x] = g(null), h = b(/* @__PURE__ */ new Set()), u = B(), { resolvedTheme: p } = G(), r = s && p ? p : "light", v = l((o) => {
13
- const t = typeof window < "u" ? window.location.href : "", U = `${process.env.NEXT_PUBLIC_AUTH_URL}/${u}/login?mode=dialog&theme=${r}&redirect_uri=${t}`, E = `${process.env.NEXT_PUBLIC_AUTH_URL}/${u}/register?mode=dialog&theme=${r}&redirect_uri=${t}`;
14
- a(!0), c(!1), x(o === "register" ? E : U);
15
- }, [r, u]), f = l(() => {
16
- a(!1);
17
- }, []), N = l((o) => {
18
- a(o), o && c(!1);
2
+ import { jsx as m, jsxs as I } from "react/jsx-runtime";
3
+ import M, { createContext as N, useState as w, useRef as R, useCallback as c, useEffect as p, useContext as O } from "react";
4
+ import { useLocale as P } from "next-intl";
5
+ import { twMerge as $ } from "tailwind-merge";
6
+ import { useTheme as y } from "@ichaingo/next-themes";
7
+ import k from "js-cookie";
8
+ const q = () => !!k.get("id_token");
9
+ var A = /* @__PURE__ */ ((e) => (e.CLOSE_LOGIN_MODAL = "closeLoginModal", e.LOGIN_SUCCESS = "loginSuccess", e))(A || {}), B = /* @__PURE__ */ ((e) => (e.LOGIN = "login", e.REGISTER = "register", e))(B || {});
10
+ const C = N(void 0);
11
+ function F({ children: e, loginSuccessCallback: n = () => Promise.resolve() }) {
12
+ const [i, s] = w(!1), [l, h] = w(!1), [a, v] = w(null), _ = R(/* @__PURE__ */ new Set()), u = P(), { resolvedTheme: U } = y(), t = l && U ? U : "light", L = c((o) => {
13
+ const r = typeof window < "u" ? window.location.href : "", g = `${process.env.NEXT_PUBLIC_AUTH_URL}/${u}/login?mode=dialog&theme=${t}&redirect_uri=${r}`, f = `${process.env.NEXT_PUBLIC_AUTH_URL}/${u}/register?mode=dialog&theme=${t}&redirect_uri=${r}`;
14
+ s(!0), v(o === "register" ? f : g);
15
+ }, [t, u]), d = c(() => {
16
+ s(!1);
17
+ }, []), E = c((o) => {
18
+ s(o);
19
19
  }, []);
20
- L(() => {
21
- i && s && c(!1);
22
- }, [p, i, s]), L(() => {
23
- if (r) {
24
- const o = typeof window < "u" ? window.location.href : "", t = `${process.env.NEXT_PUBLIC_AUTH_URL}/${u}/login?mode=dialog&theme=${r}&redirect_uri=${o}`;
25
- x(t);
20
+ p(() => {
21
+ if (t) {
22
+ const o = typeof window < "u" ? window.location.href : "", r = `${process.env.NEXT_PUBLIC_AUTH_URL}/${u}/login?mode=dialog&theme=${t}&redirect_uri=${o}`;
23
+ v(r);
26
24
  }
27
- }, [r]), L(() => {
28
- $(!0);
29
- const o = (t) => {
30
- t.data.type === "closeLoginModal" && f(), t.data.type === "loginSuccess" && (f(), n == null || n(), h.current.forEach((U) => {
31
- try {
32
- U();
33
- } catch (E) {
34
- console.error("Login success callback error:", E);
35
- }
36
- }));
25
+ }, [t]), p(() => {
26
+ h(!0);
27
+ const o = (r) => {
28
+ var g, f;
29
+ ((g = r.data) == null ? void 0 : g.type) === "closeLoginModal" && d(), ((f = r.data) == null ? void 0 : f.type) === "loginSuccess" && (console.log("handleMessage", r.data.type), d(), window.location.reload());
37
30
  };
38
31
  return window.addEventListener("message", o), () => {
39
32
  window.removeEventListener("message", o);
40
33
  };
41
- }, [f, n]);
42
- const _ = l(() => {
43
- console.log("iframe loaded"), c(!0);
44
- }, []), R = l((o) => (h.current.add(o), () => {
45
- h.current.delete(o);
46
- }), []), y = l(
47
- ({ children: o, ...t }) => /* @__PURE__ */ m("div", { onClick: () => v(), style: { cursor: "pointer" }, ...t, children: o }),
48
- [v]
49
- ), C = P.useMemo(() => /* @__PURE__ */ m(
34
+ }, [d, n]);
35
+ const x = c((o) => (_.current.add(o), () => {
36
+ _.current.delete(o);
37
+ }), []), S = c(
38
+ ({ children: o, ...r }) => /* @__PURE__ */ m("div", { onClick: () => L(), style: { cursor: "pointer" }, ...r, children: o }),
39
+ [L]
40
+ ), T = M.useMemo(() => /* @__PURE__ */ m(
50
41
  "div",
51
42
  {
52
- className: I(
43
+ className: $(
53
44
  "fixed left-0 bottom-0 w-px h-px bg-[rgba(0,0,0,0.7)] z-1002",
54
45
  "transition-all duration-500 ease-in-out",
55
46
  i && "w-full h-full "
56
47
  ),
57
- children: d && /* @__PURE__ */ m(
48
+ children: a && /* @__PURE__ */ m(
58
49
  "iframe",
59
50
  {
60
- src: d ?? "",
61
- className: I(
51
+ src: a ?? "",
52
+ className: $(
62
53
  "w-full h-full border-none relative z-10 transition-opacity duration-300",
63
- w ? "opacity-0" : "opacity-100"
54
+ "opacity-100"
64
55
  ),
65
56
  title: "Login",
66
- onLoad: _,
67
57
  sandbox: "allow-scripts allow-forms allow-same-origin"
68
58
  },
69
- `login-iframe-${r}`
59
+ `login-iframe-${t}`
70
60
  )
71
61
  }
72
62
  ), [
73
- r,
74
- _,
75
- w,
63
+ t,
76
64
  i,
77
- d
78
- ]), M = {
65
+ a
66
+ ]), b = {
79
67
  isOpen: i,
80
- openLogin: v,
81
- closeLogin: f,
82
- setLoginOpen: N,
83
- url: d,
84
- currentTheme: r,
85
- iframeLoaded: w,
86
- handleIframeLoad: _,
87
- mounted: s,
88
- Trigger: y,
89
- registerLoginSuccessCallback: R
68
+ openLogin: L,
69
+ closeLogin: d,
70
+ setLoginOpen: E,
71
+ url: a,
72
+ currentTheme: t,
73
+ mounted: l,
74
+ Trigger: S,
75
+ registerLoginSuccessCallback: x
90
76
  };
91
- return /* @__PURE__ */ O(T.Provider, { value: M, children: [
77
+ return /* @__PURE__ */ I(C.Provider, { value: b, children: [
92
78
  e,
93
- C
79
+ T
94
80
  ] });
95
81
  }
96
- function z() {
97
- const e = A(T);
82
+ function G() {
83
+ const e = O(C);
98
84
  if (e === void 0)
99
85
  throw new Error("useLogin must be used within a LoginProvider");
100
86
  return e;
101
87
  }
102
- function V({ children: e, onClick: n, ...i }) {
103
- const { Trigger: a, registerLoginSuccessCallback: s } = z();
104
- return L(() => {
88
+ function J({ children: e, onClick: n, ...i }) {
89
+ const { Trigger: s, registerLoginSuccessCallback: l } = G();
90
+ return p(() => {
105
91
  if (n)
106
- return s(n);
107
- }, [n, s]), e ? /* @__PURE__ */ m(a, { ...i, children: e }) : null;
92
+ return l(n);
93
+ }, [n, l]), e ? /* @__PURE__ */ m(s, { ...i, children: e }) : null;
108
94
  }
109
95
  export {
110
- X as LoginMessageType,
111
- Q as LoginProvider,
112
- j as OpenLoginType,
113
- V as WithLogin,
114
- V as default,
115
- K as isLogin,
116
- z as useLogin
96
+ A as LoginMessageType,
97
+ F as LoginProvider,
98
+ B as OpenLoginType,
99
+ J as WithLogin,
100
+ J as default,
101
+ q as isLogin,
102
+ G as useLogin
117
103
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ichaingo/with-login",
3
- "version": "1.4.57",
3
+ "version": "1.4.59",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",