nextjs-cms 0.6.2 → 0.6.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/auth/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/auth/react.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,eAAe,MAAM,4BAA4B,CAAA;AACxD,OAAO,eAAe,MAAM,4BAA4B,CAAA;AAGxD,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;AACnE,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAA;CAC7B;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,OAAO;IAChD,QAAQ,EAAE,CAAC,CAAA;IACX,2BAA2B;IAC3B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;IACrC,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAEpC;;;;OAIG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;CACjD;AAED,eAAO,MAAM,MAAM,EAAE,gBAKpB,CAAA;AAED,wBAAsB,MAAM,CAAC,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,iBA2BjE;AAED,wBAAsB,KAAK,CAAC,EACxB,QAAQ,EACR,QAAQ,EACR,MAAM,GACT,EAAE;IACC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB,iBAqCA;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,iBAWpD;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,oBAGjC;AAwBD,wBAAsB,UAAU,CAAC,MAAM,CAAC,EAAE,gBAAgB,2BAWzD;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,IAAI,CAAC,SAAS,IAAI,GAE/D;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACjE;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAExD;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACjE;IACI,MAAM,EAAE,aAAa,CAAA;IACrB,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAA;CACxC,CAAA;AAEb,eAAO,MAAM,cAAc;YAPL,aAAa;UAAQ,OAAO;YAAU,eAAe;;YAEnD,aAAa;UACf,IAAI;YACF,iBAAiB,GAAG,SAAS;cAG0C,CAAA;AAE/F,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CA6BpG;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,qBAuO1D;AAED,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA"}
@@ -7,6 +7,7 @@ import { fetchData, now, useOnline } from './lib/client.js';
7
7
  import { useRouter } from 'next/navigation';
8
8
  import useAxiosPrivate from './hooks/useAxiosPrivate.js';
9
9
  import useRefreshToken from './hooks/useRefreshToken.js';
10
+ import { setLoginPageLocaleCookie, clearLocaleChangedOnLogin } from '../translations/locale-cookie.js';
10
11
  export const __AUTH = {
11
12
  _lastSync: 0,
12
13
  _session: undefined,
@@ -56,6 +57,14 @@ export async function login({ username, password, locale, }) {
56
57
  throw new Error(error.error);
57
58
  }
58
59
  const data = await response.json();
60
+ /**
61
+ * Clear the locale changed flag and sync cookie with session locale.
62
+ * This ensures the cookie matches the user's effective locale after login.
63
+ */
64
+ clearLocaleChangedOnLogin();
65
+ if (data.session?.user?.locale) {
66
+ setLoginPageLocaleCookie(data.session.user.locale);
67
+ }
59
68
  /**
60
69
  * Broadcast a message to all other tabs/windows to tell them the user has logged in.
61
70
  * This is to ensure all tabs/windows trigger a session update.
@@ -11,7 +11,7 @@
11
11
  declare function getString(key: string, lang?: string): string;
12
12
  export default getString;
13
13
  export { RTL_LOCALES, resolveLocale } from './locale-utils.js';
14
- export { LOCALE_COOKIE_NAME, setLoginPageLocaleCookie } from './locale-cookie.js';
14
+ export { LOCALE_COOKIE_NAME, setLoginPageLocaleCookie, markLocaleChangedOnLogin, wasLocaleChangedOnLogin, clearLocaleChangedOnLogin, } from './locale-cookie.js';
15
15
  export type { TranslationDictionary } from './types.js';
16
16
  export { resolveLocalizedString, isLocalizedObject } from './localization.js';
17
17
  export type { LocalizedString } from './localization.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AACH,iBAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAkB,GAAG,MAAM,CAQ9D;AAED,eAAe,SAAS,CAAA;AACxB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AACjF,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC7E,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AACH,iBAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAkB,GAAG,MAAM,CAQ9D;AAED,eAAe,SAAS,CAAA;AACxB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,GAC5B,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC7E,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
@@ -21,5 +21,5 @@ function getString(key, lang = FALLBACK_LOCALE) {
21
21
  }
22
22
  export default getString;
23
23
  export { RTL_LOCALES, resolveLocale } from './locale-utils.js';
24
- export { LOCALE_COOKIE_NAME, setLoginPageLocaleCookie } from './locale-cookie.js';
24
+ export { LOCALE_COOKIE_NAME, setLoginPageLocaleCookie, markLocaleChangedOnLogin, wasLocaleChangedOnLogin, clearLocaleChangedOnLogin, } from './locale-cookie.js';
25
25
  export { resolveLocalizedString, isLocalizedObject } from './localization.js';
@@ -8,4 +8,17 @@ export declare const LOCALE_COOKIE_NAME = "nextjs-cms-locale";
8
8
  * Call when user changes language on the login page; auth layout reads it when no session.
9
9
  */
10
10
  export declare function setLoginPageLocaleCookie(locale: string): void;
11
+ /**
12
+ * Mark that user explicitly changed locale on login page.
13
+ * Used to determine whether to send locale to server on login.
14
+ */
15
+ export declare function markLocaleChangedOnLogin(): void;
16
+ /**
17
+ * Check if user explicitly changed locale on login page.
18
+ */
19
+ export declare function wasLocaleChangedOnLogin(): boolean;
20
+ /**
21
+ * Clear the locale changed flag after login.
22
+ */
23
+ export declare function clearLocaleChangedOnLogin(): void;
11
24
  //# sourceMappingURL=locale-cookie.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"locale-cookie.d.ts","sourceRoot":"","sources":["../../src/translations/locale-cookie.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,sBAAsB,CAAA;AAIrD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG7D"}
1
+ {"version":3,"file":"locale-cookie.d.ts","sourceRoot":"","sources":["../../src/translations/locale-cookie.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,sBAAsB,CAAA;AASrD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG7D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAGjD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD"}
@@ -3,6 +3,10 @@
3
3
  * Read by auth layout when unauthenticated; set by login-page locale dropdown.
4
4
  */
5
5
  export const LOCALE_COOKIE_NAME = 'nextjs-cms-locale';
6
+ /**
7
+ * SessionStorage key to track if user explicitly changed locale on login page.
8
+ */
9
+ const LOCALE_CHANGED_KEY = 'nextjs-cms-locale-changed';
6
10
  const MAX_AGE_YEAR = 60 * 60 * 24 * 365;
7
11
  /**
8
12
  * Set the login-page locale cookie (client-only).
@@ -13,3 +17,28 @@ export function setLoginPageLocaleCookie(locale) {
13
17
  return;
14
18
  document.cookie = `${LOCALE_COOKIE_NAME}=${encodeURIComponent(locale)}; path=/; max-age=${MAX_AGE_YEAR}; SameSite=Lax`;
15
19
  }
20
+ /**
21
+ * Mark that user explicitly changed locale on login page.
22
+ * Used to determine whether to send locale to server on login.
23
+ */
24
+ export function markLocaleChangedOnLogin() {
25
+ if (typeof sessionStorage === 'undefined')
26
+ return;
27
+ sessionStorage.setItem(LOCALE_CHANGED_KEY, 'true');
28
+ }
29
+ /**
30
+ * Check if user explicitly changed locale on login page.
31
+ */
32
+ export function wasLocaleChangedOnLogin() {
33
+ if (typeof sessionStorage === 'undefined')
34
+ return false;
35
+ return sessionStorage.getItem(LOCALE_CHANGED_KEY) === 'true';
36
+ }
37
+ /**
38
+ * Clear the locale changed flag after login.
39
+ */
40
+ export function clearLocaleChangedOnLogin() {
41
+ if (typeof sessionStorage === 'undefined')
42
+ return;
43
+ sessionStorage.removeItem(LOCALE_CHANGED_KEY);
44
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nextjs-cms",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "type": "module",
@@ -191,8 +191,8 @@
191
191
  "prettier": "^3.3.3",
192
192
  "tsx": "^4.20.6",
193
193
  "typescript": "^5.9.2",
194
- "@lzcms/prettier-config": "0.1.0",
195
194
  "@lzcms/eslint-config": "0.3.0",
195
+ "@lzcms/prettier-config": "0.1.0",
196
196
  "@lzcms/tsconfig": "0.1.0"
197
197
  },
198
198
  "license": "MIT",