• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jcubic / 10xDevs / 19946653658

04 Dec 2025 10:56PM UTC coverage: 62.673%. Remained the same
19946653658

push

github

jcubic
10xDev Project

303 of 501 branches covered (60.48%)

Branch coverage included in aggregate %.

555 of 864 new or added lines in 49 files covered. (64.24%)

4 existing lines in 1 file now uncovered.

555 of 868 relevant lines covered (63.94%)

214.35 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

50.0
/src/components/AppLayoutClient.tsx
1
/**
2
 * Client-side layout wrapper for main application structure.
3
 * Arranges navigation, sidebar, content panels, and footer using CSS grid layout.
4
 *
5
 * @remarks
6
 * Dependencies: `./notes/MainNotesLayout.module.css` for CSS Module grid layout styles,
7
 * and `./Footer` for application footer component.
8
 *
9
 * **Layout Structure:**
10
 * ```
11
 * ┌─────────────────────────┐
12
 * │      navigation         │  (Top nav bar)
13
 * ├──────────┬──────────────┤
14
 * │          │              │
15
 * │ sidebar  │   content    │  (Main panels)
16
 * │          │              │
17
 * └──────────┴──────────────┘
18
 * │       children          │  (Optional additional content)
19
 * └─────────────────────────┘
20
 * │        Footer           │  (Copyright info)
21
 * └─────────────────────────┘
22
 * ```
23
 *
24
 * **Usage:**
25
 * - Used in `src/app/layout.tsx` as the root layout wrapper
26
 * - Receives slots from Next.js parallel routes (@navigation, @sidebar, @content)
27
 * - Flexible: all props are optional
28
 *
29
 * **CSS Grid:**
30
 * - Uses CSS Modules for scoped styling
31
 * - Responsive grid layout defined in `MainNotesLayout.module.css`
32
 * - Sidebar and content panels are arranged horizontally
33
 *
34
 * @example
35
 * ```tsx
36
 * import AppLayoutClient from '@/components/AppLayoutClient';
37
 *
38
 * export default function RootLayout({ children }: { children: React.ReactNode }) {
39
 *   return (
40
 *     <AppLayoutClient
41
 *       navigation={<TopNavigationBar />}
42
 *       sidebar={<LeftPanel />}
43
 *       content={<MainContent />}
44
 *     >
45
 *       {children}
46
 *     </AppLayoutClient>
47
 *   );
48
 * }
49
 * ```
50
 *
51
 * @public
52
 */
53
'use client';
54

55
import styles from './notes/MainNotesLayout.module.css';
56
import Footer from './Footer';
57

58
/**
59
 * Props for AppLayoutClient component.
60
 *
61
 * @internal
62
 */
63
interface AppLayoutClientProps {
64
  navigation?: React.ReactNode;
65
  sidebar?: React.ReactNode;
66
  content?: React.ReactNode;
67
  children?: React.ReactNode;
68
}
69

70
/**
71
 * Application layout wrapper with navigation, sidebar, content, and footer.
72
 *
73
 * @param props - Layout slot contents
74
 * @param props.navigation - Top navigation bar (from @navigation slot)
75
 * @param props.sidebar - Left sidebar panel (from @sidebar slot)
76
 * @param props.content - Main content area (from @content slot)
77
 * @param props.children - Additional content below main panels
78
 * @returns Rendered layout structure
79
 *
80
 * @remarks
81
 * This component is the main layout container for the application. It receives
82
 * content from Next.js parallel routes and arranges them in a CSS grid layout.
83
 *
84
 * **Slots:**
85
 * - `navigation`: Top navigation bar (user menu, title)
86
 * - `sidebar`: Left panel (notes tree, create button)
87
 * - `content`: Main content area (note editor)
88
 * - `children`: Additional content (modals, dialogs)
89
 *
90
 * **Styling:**
91
 * - Uses CSS Modules for scoped styling (`MainNotesLayout.module.css`)
92
 * - Grid layout with flexible sidebar and content panels
93
 * - Footer always pinned to bottom
94
 *
95
 * @example
96
 * ```tsx
97
 * <AppLayoutClient
98
 *   navigation={<TopNavigationBar />}
99
 *   sidebar={<LeftPanel />}
100
 *   content={<NoteEditor />}
101
 * />
102
 * ```
103
 *
104
 * @public
105
 */
106
export default function AppLayoutClient({
36✔
107
  navigation,
108
  sidebar,
109
  content,
110
  children
111
}: AppLayoutClientProps) {
NEW
112
  return (
×
113
    <div className={styles.layout}>
114
      {navigation}
115
      <div className={styles.panels}>
116
        {sidebar}
117
        {content}
118
      </div>
119
      {children}
120
      <Footer />
121
    </div>
122
  );
123
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc