@0xchain/with-login 1.1.0-beta.37 → 1.1.0-beta.39

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
@@ -1,4 +1,5 @@
1
1
  import { default as React } from 'react';
2
+ export { ACCESS_TOKEN_COOKIE_KEYS, REFRESH_TOKEN_COOKIE_KEYS, getRuntimeLoginState, setRuntimeSession, } from '@0xchain/auth';
2
3
  export declare const isLogin: () => boolean;
3
4
  export declare enum LoginMessageType {
4
5
  CLOSE_LOGIN_MODAL = "closeLoginModal",
@@ -21,9 +22,11 @@ export interface LoginContextValue {
21
22
  }
22
23
  interface LoginProviderProps {
23
24
  children: React.ReactNode;
25
+ /** 显式传入时可不依赖 NextIntlClientProvider(仍建议包在 Intl 内) */
26
+ locale?: string;
24
27
  loginSuccessCallback?: () => Promise<void>;
25
28
  }
26
- export declare function LoginProvider({ children, loginSuccessCallback }: LoginProviderProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare function LoginProvider({ children, locale: localeProp, loginSuccessCallback, }: LoginProviderProps): import("react/jsx-runtime").JSX.Element;
27
30
  export declare function useLogin(): LoginContextValue;
28
31
  interface WithLoginProps extends React.PropsWithChildren, React.HTMLAttributes<HTMLElement> {
29
32
  children?: React.ReactNode;
@@ -1 +1 @@
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;IAChC,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;IACjB,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IACxD,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;AAuCD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,oBAA8C,EAAE,EAAE,kBAAkB,2CAoG7G;AAED,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,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,kDAcvE;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAON,MAAM,OAAO,CAAC;AAYf,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAcvB,eAAO,MAAM,OAAO,eAInB,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;IAChC,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;IACjB,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IACxD,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,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAuCD,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,oBAA8C,GAC/C,EAAE,kBAAkB,2CA4GpB;AAED,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,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,kDAcvE;AAED,eAAe,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,26 @@
1
1
  'use client';
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import React, { createContext, useState, useRef, useCallback, useEffect, useContext } from "react";
4
- import { useLocale } from "next-intl";
4
+ import { useLocale } from "@0xchain/i18n/react";
5
5
  import { twMerge } from "tailwind-merge";
6
6
  import { useTheme } from "@0xchain/next-themes";
7
7
  import Cookies from "js-cookie";
8
+ import { getRuntimeLoginState, setRuntimeSession, REFRESH_TOKEN_COOKIE_KEYS, ACCESS_TOKEN_COOKIE_KEYS } from "@0xchain/auth";
9
+ import { ACCESS_TOKEN_COOKIE_KEYS as ACCESS_TOKEN_COOKIE_KEYS2, REFRESH_TOKEN_COOKIE_KEYS as REFRESH_TOKEN_COOKIE_KEYS2, getRuntimeLoginState as getRuntimeLoginState2, setRuntimeSession as setRuntimeSession2 } from "@0xchain/auth";
10
+ function pickCookieValue(keys) {
11
+ for (const key of keys) {
12
+ const value = Cookies.get(key);
13
+ if (value) return value;
14
+ }
15
+ return null;
16
+ }
17
+ const hasRefreshToken = () => !!pickCookieValue(REFRESH_TOKEN_COOKIE_KEYS);
18
+ const hasAccessToken = () => !!pickCookieValue(ACCESS_TOKEN_COOKIE_KEYS);
19
+ const hasAnyToken = () => hasRefreshToken() || hasAccessToken();
8
20
  const isLogin = () => {
9
- return Boolean(Cookies.get("refresh_token"));
21
+ const runtime = getRuntimeLoginState();
22
+ if (typeof runtime === "boolean") return runtime;
23
+ return hasAnyToken();
10
24
  };
11
25
  var LoginMessageType = /* @__PURE__ */ ((LoginMessageType2) => {
12
26
  LoginMessageType2["CLOSE_LOGIN_MODAL"] = "closeLoginModal";
@@ -44,12 +58,17 @@ function resolveThemeNow(resolvedTheme) {
44
58
  function buildAuthUrl(locale, path, theme, redirectUri) {
45
59
  return `${process.env.NEXT_PUBLIC_AUTH_URL}/${locale}/${path}?mode=dialog&theme=${theme}&redirect_uri=${encodeURIComponent(redirectUri)}`;
46
60
  }
47
- function LoginProvider({ children, loginSuccessCallback = () => Promise.resolve() }) {
61
+ function LoginProvider({
62
+ children,
63
+ locale: localeProp,
64
+ loginSuccessCallback = () => Promise.resolve()
65
+ }) {
48
66
  const [isOpen, setIsOpen] = useState(false);
49
67
  const [mounted, setMounted] = useState(false);
50
68
  const [url, setUrl] = useState(null);
51
69
  const callbacksRef = useRef(/* @__PURE__ */ new Set());
52
- const locale = useLocale();
70
+ const localeFromIntl = useLocale();
71
+ const locale = localeProp ?? localeFromIntl;
53
72
  const { resolvedTheme } = useTheme();
54
73
  const currentTheme = mounted ? resolveThemeNow(resolvedTheme) : "light";
55
74
  const openLogin = useCallback((type) => {
@@ -75,6 +94,13 @@ function LoginProvider({ children, loginSuccessCallback = () => Promise.resolve(
75
94
  closeLogin();
76
95
  }
77
96
  if (event.data?.type === "loginSuccess") {
97
+ setRuntimeSession({
98
+ isLoggedIn: true,
99
+ hasAccessToken: hasAccessToken(),
100
+ hasRefreshToken: hasRefreshToken(),
101
+ accessTokenExpired: false,
102
+ claims: null
103
+ });
78
104
  closeLogin();
79
105
  window.location.reload();
80
106
  }
@@ -151,11 +177,15 @@ function WithLogin({ children, onClick, ...rest }) {
151
177
  return /* @__PURE__ */ jsx(Trigger, { ...rest, children });
152
178
  }
153
179
  export {
180
+ ACCESS_TOKEN_COOKIE_KEYS2 as ACCESS_TOKEN_COOKIE_KEYS,
154
181
  LoginMessageType,
155
182
  LoginProvider,
156
183
  OpenLoginType,
184
+ REFRESH_TOKEN_COOKIE_KEYS2 as REFRESH_TOKEN_COOKIE_KEYS,
157
185
  WithLogin,
158
186
  WithLogin as default,
187
+ getRuntimeLoginState2 as getRuntimeLoginState,
159
188
  isLogin,
189
+ setRuntimeSession2 as setRuntimeSession,
160
190
  useLogin
161
191
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xchain/with-login",
3
- "version": "1.1.0-beta.37",
3
+ "version": "1.1.0-beta.39",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -21,7 +21,7 @@
21
21
  "@0xchain/next-themes": "1.0.0",
22
22
  "js-cookie": "3.0.5",
23
23
  "next": "16.1.6",
24
- "next-intl": "4.8.2",
24
+ "next-intl": "4.13.0",
25
25
  "react": "19.1.1",
26
26
  "react-dom": "19.1.1",
27
27
  "tailwind-merge": "3.3.1"
@@ -31,12 +31,16 @@
31
31
  "@types/js-cookie": "3.0.6",
32
32
  "js-cookie": "3.0.5",
33
33
  "next": "16.1.6",
34
- "next-intl": "4.8.2",
34
+ "next-intl": "4.13.0",
35
35
  "react": "19.1.1",
36
36
  "react-dom": "19.1.1",
37
37
  "rollup-plugin-preserve-use-client": "3.0.1",
38
38
  "tailwind-merge": "3.3.1"
39
39
  },
40
+ "dependencies": {
41
+ "@0xchain/auth": "1.1.0-beta.39",
42
+ "@0xchain/i18n": "1.1.0-beta.39"
43
+ },
40
44
  "nx": {
41
45
  "tags": [
42
46
  "type:feature"