@djangocfg/layouts 1.2.11 → 1.2.14

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@djangocfg/layouts",
3
- "version": "1.2.11",
3
+ "version": "1.2.14",
4
4
  "description": "Layout system and components for Unrealon applications",
5
5
  "author": {
6
6
  "name": "DjangoCFG",
@@ -53,9 +53,9 @@
53
53
  "check": "tsc --noEmit"
54
54
  },
55
55
  "peerDependencies": {
56
- "@djangocfg/api": "^1.2.11",
57
- "@djangocfg/og-image": "^1.2.11",
58
- "@djangocfg/ui": "^1.2.11",
56
+ "@djangocfg/api": "^1.2.14",
57
+ "@djangocfg/og-image": "^1.2.14",
58
+ "@djangocfg/ui": "^1.2.14",
59
59
  "@hookform/resolvers": "^5.2.0",
60
60
  "consola": "^3.4.2",
61
61
  "lucide-react": "^0.468.0",
@@ -76,7 +76,7 @@
76
76
  "vidstack": "0.6.15"
77
77
  },
78
78
  "devDependencies": {
79
- "@djangocfg/typescript-config": "^1.2.11",
79
+ "@djangocfg/typescript-config": "^1.2.14",
80
80
  "@types/node": "^24.7.2",
81
81
  "@types/react": "19.2.2",
82
82
  "@types/react-dom": "19.2.1",
@@ -16,36 +16,36 @@ export interface PackageInfo {
16
16
  /**
17
17
  * Package versions registry
18
18
  * Auto-synced from package.json files
19
- * Last updated: 2025-10-29T04:34:21.718Z
19
+ * Last updated: 2025-10-29T12:42:02.313Z
20
20
  */
21
21
  const PACKAGE_VERSIONS: PackageInfo[] = [
22
22
  {
23
23
  "name": "@djangocfg/ui",
24
- "version": "1.2.11"
24
+ "version": "1.2.14"
25
25
  },
26
26
  {
27
27
  "name": "@djangocfg/api",
28
- "version": "1.2.11"
28
+ "version": "1.2.14"
29
29
  },
30
30
  {
31
31
  "name": "@djangocfg/layouts",
32
- "version": "1.2.11"
32
+ "version": "1.2.14"
33
33
  },
34
34
  {
35
35
  "name": "@djangocfg/markdown",
36
- "version": "1.2.11"
36
+ "version": "1.2.14"
37
37
  },
38
38
  {
39
39
  "name": "@djangocfg/og-image",
40
- "version": "1.2.11"
40
+ "version": "1.2.14"
41
41
  },
42
42
  {
43
43
  "name": "@djangocfg/eslint-config",
44
- "version": "1.2.11"
44
+ "version": "1.2.14"
45
45
  },
46
46
  {
47
47
  "name": "@djangocfg/typescript-config",
48
- "version": "1.2.11"
48
+ "version": "1.2.14"
49
49
  }
50
50
  ];
51
51
 
@@ -37,6 +37,12 @@ export function UserMenu({ variant, onNavigate }: UserMenuProps) {
37
37
  const { config, userMenuOpen, toggleUserMenu, closeUserMenu } = useAppContext();
38
38
  const { user, isAuthenticated, logout } = useAuth();
39
39
 
40
+ // Fix hydration mismatch by only rendering auth-dependent content after mount
41
+ const [mounted, setMounted] = React.useState(false);
42
+ React.useEffect(() => {
43
+ setMounted(true);
44
+ }, []);
45
+
40
46
  const { publicLayout, routes } = config;
41
47
 
42
48
  // Desktop: determine if user is on dashboard
@@ -177,6 +183,15 @@ export function UserMenu({ variant, onNavigate }: UserMenuProps) {
177
183
 
178
184
  // Desktop variant
179
185
  if (variant === 'desktop') {
186
+ // Show loading state during hydration
187
+ if (!mounted) {
188
+ return (
189
+ <div className="flex items-center gap-3">
190
+ <div className="h-9 w-20 animate-pulse bg-muted rounded-sm" />
191
+ </div>
192
+ );
193
+ }
194
+
180
195
  return (
181
196
  <div className="flex items-center gap-3">
182
197
  {isAuthenticated ? (
@@ -265,6 +280,17 @@ export function UserMenu({ variant, onNavigate }: UserMenuProps) {
265
280
  }
266
281
 
267
282
  // Mobile variant
283
+ // Show loading state during hydration
284
+ if (!mounted) {
285
+ return (
286
+ <Card className="border-border !bg-accent/50">
287
+ <CardContent className="p-4">
288
+ <div className="h-24 animate-pulse bg-muted rounded-sm" />
289
+ </CardContent>
290
+ </Card>
291
+ );
292
+ }
293
+
268
294
  if (isAuthenticated) {
269
295
  return (
270
296
  <Card className="border-primary/20 shadow-lg !bg-accent/50">