refactor: alterando layout da sidebar - #145

Merged
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis
Sep 25, 2025

Hidden character warning

The head ref may contain hidden characters: "144-alterar-sidebar-para-ter-bot\u00f5es-colaps\u00e1veis"
Merged

refactor: alterando layout da sidebar#145
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 25, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Introduced a responsive authenticated layout with a collapsible sidebar and improved headers.
    • Added nested, collapsible navigation groups that auto-expand based on the current page.
    • Reorganized the menu into grouped sections (e.g., Reservas de Recursos, Anúncios, Formulários).
  • Improvements

    • Updated terminology across the app from “Formulários” to “Solicitações” (titles, buttons, toasts, descriptions).
    • Refined navigation to only show valid links.
  • Bug Fixes

    • Prevented rendering of mobile navigation items without valid links.

@rbxyzrbxyz linked an issue Sep 25, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 25, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 25, 2025 5:30pm

@coderabbitai

coderabbitaiBot commented Sep 25, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Introduces a client-side authenticated layout and delegates rendering to it, adds metadata. Refactors navigation to support collapsible, nested sidebar groups driven by a new RouteItem type and restructured routes. Adjusts dashboard link rendering guard. Updates UI text across forms/admin pages from “formulários” to “solicitações”.

Changes

Cohort / File(s)Summary
Terminology: Formulários → Solicitações
src/app/(authenticated)/admin/users/page.tsx, src/app/(authenticated)/forms/page.tsx, src/app/(authenticated)/forms/[id]/edit/page.tsx, src/app/(authenticated)/forms/[id]/page.tsx, src/app/(authenticated)/forms/[id]/respond/page.tsx, src/app/(authenticated)/forms/[id]/responses/page.tsx, src/app/(authenticated)/forms/my-responses/page.tsx
Replaces user-facing text, labels, headings, and descriptions to use “solicitações” instead of “formulários”; no logic changes.
Dashboard rendering guard
src/app/(authenticated)/dashboard/page.tsx
Filters mobile route items to require a truthy href in addition to title check before rendering links.
Authenticated layout delegation
src/app/(authenticated)/layout.tsx, src/app/(authenticated)/layout-client.tsx
Adds Metadata export; moves layout structure to a new client component with collapsible sidebar, responsive headers, and auxiliary UI; server layout now delegates to client layout.
Sidebar/MainNav tree navigation
src/components/main-nav.tsx
Implements nested, collapsible groups with auto-expansion based on current pathname; replaces static mapping with recursive renderer and expansion state.
Routes restructuring and typing
src/const/routes.ts
Adds RouteItem interface; changes routeItems to return nested RouteItem[] with optional href/children; groups related routes under “Reserva de Recursos”, “Anúncios”, and “Formulários”.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant Next as Next.js Router
participant L as AuthenticatedLayout (server)
participant LC as AuthenticatedLayoutClient
participant SB as Sidebar
participant MN as MainNav
participant RT as routeItems()
U->>Next: Navigate to /app/…
Next->>L: Render layout
L->>LC: Delegate with {children}
LC->>RT: routeItems(roleConfig)
RT-->>LC: RouteItem[] (nested)
LC->>SB: Render Sidebar(collapsed?)
SB->>MN: Render MainNav with RouteItem[]
MN->>Next: Read current pathname
MN->>MN: Auto-expand groups containing active route
U->>MN: Toggle group
MN->>MN: Update expandedGroups state
MN-->>U: Show nested items (expanded/collapsed)
Loading
sequenceDiagram
autonumber
participant U as User (mobile)
participant Dash as Dashboard Page
participant RT as routeItems()
U->>Dash: Open dashboard (mobile)
Dash->>RT: routeItems()
RT-->>Dash: RouteItem[] (some without href)
Dash->>Dash: Filter items where title != "Dashboard" and href is truthy
Dash-->>U: Render only valid Link items
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

Possibly related PRs

Poem

In burrows of code where menus hide,
I nudge the routes and let them glide.
Groups now bloom, then softly fold,
A sidebar tale, neatly told.
With hops through “solicitações” bright,
I whisk the layout into light.
— A cheerful rabbit, shipping right. 🐇✨

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 144-alterar-sidebar-para-ter-botões-colapsáveis

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 56e3271 and e064a81.

📒 Files selected for processing (12)
  • src/app/(authenticated)/admin/users/page.tsx (6 hunks)
  • src/app/(authenticated)/dashboard/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/edit/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/[id]/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/respond/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/my-responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/page.tsx (4 hunks)
  • src/app/(authenticated)/layout-client.tsx (1 hunks)
  • src/app/(authenticated)/layout.tsx (1 hunks)
  • src/components/main-nav.tsx (3 hunks)
  • src/const/routes.ts (2 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Alterar sidebar para ter botões colapsáveis

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

refactor: alterando layout da sidebar - #145

Merged
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis
Sep 25, 2025

Hidden character warning

The head ref may contain hidden characters: "144-alterar-sidebar-para-ter-bot\u00f5es-colaps\u00e1veis"
Merged

refactor: alterando layout da sidebar#145
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 25, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Introduced a responsive authenticated layout with a collapsible sidebar and improved headers.
    • Added nested, collapsible navigation groups that auto-expand based on the current page.
    • Reorganized the menu into grouped sections (e.g., Reservas de Recursos, Anúncios, Formulários).
  • Improvements

    • Updated terminology across the app from “Formulários” to “Solicitações” (titles, buttons, toasts, descriptions).
    • Refined navigation to only show valid links.
  • Bug Fixes

    • Prevented rendering of mobile navigation items without valid links.

@rbxyzrbxyz linked an issue Sep 25, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 25, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 25, 2025 5:30pm

@coderabbitai

coderabbitaiBot commented Sep 25, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Introduces a client-side authenticated layout and delegates rendering to it, adds metadata. Refactors navigation to support collapsible, nested sidebar groups driven by a new RouteItem type and restructured routes. Adjusts dashboard link rendering guard. Updates UI text across forms/admin pages from “formulários” to “solicitações”.

Changes

Cohort / File(s)Summary
Terminology: Formulários → Solicitações
src/app/(authenticated)/admin/users/page.tsx, src/app/(authenticated)/forms/page.tsx, src/app/(authenticated)/forms/[id]/edit/page.tsx, src/app/(authenticated)/forms/[id]/page.tsx, src/app/(authenticated)/forms/[id]/respond/page.tsx, src/app/(authenticated)/forms/[id]/responses/page.tsx, src/app/(authenticated)/forms/my-responses/page.tsx
Replaces user-facing text, labels, headings, and descriptions to use “solicitações” instead of “formulários”; no logic changes.
Dashboard rendering guard
src/app/(authenticated)/dashboard/page.tsx
Filters mobile route items to require a truthy href in addition to title check before rendering links.
Authenticated layout delegation
src/app/(authenticated)/layout.tsx, src/app/(authenticated)/layout-client.tsx
Adds Metadata export; moves layout structure to a new client component with collapsible sidebar, responsive headers, and auxiliary UI; server layout now delegates to client layout.
Sidebar/MainNav tree navigation
src/components/main-nav.tsx
Implements nested, collapsible groups with auto-expansion based on current pathname; replaces static mapping with recursive renderer and expansion state.
Routes restructuring and typing
src/const/routes.ts
Adds RouteItem interface; changes routeItems to return nested RouteItem[] with optional href/children; groups related routes under “Reserva de Recursos”, “Anúncios”, and “Formulários”.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant Next as Next.js Router
participant L as AuthenticatedLayout (server)
participant LC as AuthenticatedLayoutClient
participant SB as Sidebar
participant MN as MainNav
participant RT as routeItems()
U->>Next: Navigate to /app/…
Next->>L: Render layout
L->>LC: Delegate with {children}
LC->>RT: routeItems(roleConfig)
RT-->>LC: RouteItem[] (nested)
LC->>SB: Render Sidebar(collapsed?)
SB->>MN: Render MainNav with RouteItem[]
MN->>Next: Read current pathname
MN->>MN: Auto-expand groups containing active route
U->>MN: Toggle group
MN->>MN: Update expandedGroups state
MN-->>U: Show nested items (expanded/collapsed)
Loading
sequenceDiagram
autonumber
participant U as User (mobile)
participant Dash as Dashboard Page
participant RT as routeItems()
U->>Dash: Open dashboard (mobile)
Dash->>RT: routeItems()
RT-->>Dash: RouteItem[] (some without href)
Dash->>Dash: Filter items where title != "Dashboard" and href is truthy
Dash-->>U: Render only valid Link items
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

Possibly related PRs

Poem

In burrows of code where menus hide,
I nudge the routes and let them glide.
Groups now bloom, then softly fold,
A sidebar tale, neatly told.
With hops through “solicitações” bright,
I whisk the layout into light.
— A cheerful rabbit, shipping right. 🐇✨

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 144-alterar-sidebar-para-ter-botões-colapsáveis

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 56e3271 and e064a81.

📒 Files selected for processing (12)
  • src/app/(authenticated)/admin/users/page.tsx (6 hunks)
  • src/app/(authenticated)/dashboard/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/edit/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/[id]/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/respond/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/my-responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/page.tsx (4 hunks)
  • src/app/(authenticated)/layout-client.tsx (1 hunks)
  • src/app/(authenticated)/layout.tsx (1 hunks)
  • src/components/main-nav.tsx (3 hunks)
  • src/const/routes.ts (2 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Alterar sidebar para ter botões colapsáveis

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

refactor: alterando layout da sidebar - #145

Merged
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis
Sep 25, 2025

Hidden character warning

The head ref may contain hidden characters: "144-alterar-sidebar-para-ter-bot\u00f5es-colaps\u00e1veis"
Merged

refactor: alterando layout da sidebar#145
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 25, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Introduced a responsive authenticated layout with a collapsible sidebar and improved headers.
    • Added nested, collapsible navigation groups that auto-expand based on the current page.
    • Reorganized the menu into grouped sections (e.g., Reservas de Recursos, Anúncios, Formulários).
  • Improvements

    • Updated terminology across the app from “Formulários” to “Solicitações” (titles, buttons, toasts, descriptions).
    • Refined navigation to only show valid links.
  • Bug Fixes

    • Prevented rendering of mobile navigation items without valid links.

@rbxyzrbxyz linked an issue Sep 25, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 25, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 25, 2025 5:30pm

@coderabbitai

coderabbitaiBot commented Sep 25, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Introduces a client-side authenticated layout and delegates rendering to it, adds metadata. Refactors navigation to support collapsible, nested sidebar groups driven by a new RouteItem type and restructured routes. Adjusts dashboard link rendering guard. Updates UI text across forms/admin pages from “formulários” to “solicitações”.

Changes

Cohort / File(s)Summary
Terminology: Formulários → Solicitações
src/app/(authenticated)/admin/users/page.tsx, src/app/(authenticated)/forms/page.tsx, src/app/(authenticated)/forms/[id]/edit/page.tsx, src/app/(authenticated)/forms/[id]/page.tsx, src/app/(authenticated)/forms/[id]/respond/page.tsx, src/app/(authenticated)/forms/[id]/responses/page.tsx, src/app/(authenticated)/forms/my-responses/page.tsx
Replaces user-facing text, labels, headings, and descriptions to use “solicitações” instead of “formulários”; no logic changes.
Dashboard rendering guard
src/app/(authenticated)/dashboard/page.tsx
Filters mobile route items to require a truthy href in addition to title check before rendering links.
Authenticated layout delegation
src/app/(authenticated)/layout.tsx, src/app/(authenticated)/layout-client.tsx
Adds Metadata export; moves layout structure to a new client component with collapsible sidebar, responsive headers, and auxiliary UI; server layout now delegates to client layout.
Sidebar/MainNav tree navigation
src/components/main-nav.tsx
Implements nested, collapsible groups with auto-expansion based on current pathname; replaces static mapping with recursive renderer and expansion state.
Routes restructuring and typing
src/const/routes.ts
Adds RouteItem interface; changes routeItems to return nested RouteItem[] with optional href/children; groups related routes under “Reserva de Recursos”, “Anúncios”, and “Formulários”.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant Next as Next.js Router
participant L as AuthenticatedLayout (server)
participant LC as AuthenticatedLayoutClient
participant SB as Sidebar
participant MN as MainNav
participant RT as routeItems()
U->>Next: Navigate to /app/…
Next->>L: Render layout
L->>LC: Delegate with {children}
LC->>RT: routeItems(roleConfig)
RT-->>LC: RouteItem[] (nested)
LC->>SB: Render Sidebar(collapsed?)
SB->>MN: Render MainNav with RouteItem[]
MN->>Next: Read current pathname
MN->>MN: Auto-expand groups containing active route
U->>MN: Toggle group
MN->>MN: Update expandedGroups state
MN-->>U: Show nested items (expanded/collapsed)
Loading
sequenceDiagram
autonumber
participant U as User (mobile)
participant Dash as Dashboard Page
participant RT as routeItems()
U->>Dash: Open dashboard (mobile)
Dash->>RT: routeItems()
RT-->>Dash: RouteItem[] (some without href)
Dash->>Dash: Filter items where title != "Dashboard" and href is truthy
Dash-->>U: Render only valid Link items
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

Possibly related PRs

Poem

In burrows of code where menus hide,
I nudge the routes and let them glide.
Groups now bloom, then softly fold,
A sidebar tale, neatly told.
With hops through “solicitações” bright,
I whisk the layout into light.
— A cheerful rabbit, shipping right. 🐇✨

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 144-alterar-sidebar-para-ter-botões-colapsáveis

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 56e3271 and e064a81.

📒 Files selected for processing (12)
  • src/app/(authenticated)/admin/users/page.tsx (6 hunks)
  • src/app/(authenticated)/dashboard/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/edit/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/[id]/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/respond/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/my-responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/page.tsx (4 hunks)
  • src/app/(authenticated)/layout-client.tsx (1 hunks)
  • src/app/(authenticated)/layout.tsx (1 hunks)
  • src/components/main-nav.tsx (3 hunks)
  • src/const/routes.ts (2 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Alterar sidebar para ter botões colapsáveis

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

refactor: alterando layout da sidebar - #145

Merged
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis
Sep 25, 2025

Hidden character warning

The head ref may contain hidden characters: "144-alterar-sidebar-para-ter-bot\u00f5es-colaps\u00e1veis"
Merged

refactor: alterando layout da sidebar#145
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 25, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Introduced a responsive authenticated layout with a collapsible sidebar and improved headers.
    • Added nested, collapsible navigation groups that auto-expand based on the current page.
    • Reorganized the menu into grouped sections (e.g., Reservas de Recursos, Anúncios, Formulários).
  • Improvements

    • Updated terminology across the app from “Formulários” to “Solicitações” (titles, buttons, toasts, descriptions).
    • Refined navigation to only show valid links.
  • Bug Fixes

    • Prevented rendering of mobile navigation items without valid links.

@rbxyzrbxyz linked an issue Sep 25, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 25, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 25, 2025 5:30pm

@coderabbitai

coderabbitaiBot commented Sep 25, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Introduces a client-side authenticated layout and delegates rendering to it, adds metadata. Refactors navigation to support collapsible, nested sidebar groups driven by a new RouteItem type and restructured routes. Adjusts dashboard link rendering guard. Updates UI text across forms/admin pages from “formulários” to “solicitações”.

Changes

Cohort / File(s)Summary
Terminology: Formulários → Solicitações
src/app/(authenticated)/admin/users/page.tsx, src/app/(authenticated)/forms/page.tsx, src/app/(authenticated)/forms/[id]/edit/page.tsx, src/app/(authenticated)/forms/[id]/page.tsx, src/app/(authenticated)/forms/[id]/respond/page.tsx, src/app/(authenticated)/forms/[id]/responses/page.tsx, src/app/(authenticated)/forms/my-responses/page.tsx
Replaces user-facing text, labels, headings, and descriptions to use “solicitações” instead of “formulários”; no logic changes.
Dashboard rendering guard
src/app/(authenticated)/dashboard/page.tsx
Filters mobile route items to require a truthy href in addition to title check before rendering links.
Authenticated layout delegation
src/app/(authenticated)/layout.tsx, src/app/(authenticated)/layout-client.tsx
Adds Metadata export; moves layout structure to a new client component with collapsible sidebar, responsive headers, and auxiliary UI; server layout now delegates to client layout.
Sidebar/MainNav tree navigation
src/components/main-nav.tsx
Implements nested, collapsible groups with auto-expansion based on current pathname; replaces static mapping with recursive renderer and expansion state.
Routes restructuring and typing
src/const/routes.ts
Adds RouteItem interface; changes routeItems to return nested RouteItem[] with optional href/children; groups related routes under “Reserva de Recursos”, “Anúncios”, and “Formulários”.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant Next as Next.js Router
participant L as AuthenticatedLayout (server)
participant LC as AuthenticatedLayoutClient
participant SB as Sidebar
participant MN as MainNav
participant RT as routeItems()
U->>Next: Navigate to /app/…
Next->>L: Render layout
L->>LC: Delegate with {children}
LC->>RT: routeItems(roleConfig)
RT-->>LC: RouteItem[] (nested)
LC->>SB: Render Sidebar(collapsed?)
SB->>MN: Render MainNav with RouteItem[]
MN->>Next: Read current pathname
MN->>MN: Auto-expand groups containing active route
U->>MN: Toggle group
MN->>MN: Update expandedGroups state
MN-->>U: Show nested items (expanded/collapsed)
Loading
sequenceDiagram
autonumber
participant U as User (mobile)
participant Dash as Dashboard Page
participant RT as routeItems()
U->>Dash: Open dashboard (mobile)
Dash->>RT: routeItems()
RT-->>Dash: RouteItem[] (some without href)
Dash->>Dash: Filter items where title != "Dashboard" and href is truthy
Dash-->>U: Render only valid Link items
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

Possibly related PRs

Poem

In burrows of code where menus hide,
I nudge the routes and let them glide.
Groups now bloom, then softly fold,
A sidebar tale, neatly told.
With hops through “solicitações” bright,
I whisk the layout into light.
— A cheerful rabbit, shipping right. 🐇✨

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 144-alterar-sidebar-para-ter-botões-colapsáveis

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 56e3271 and e064a81.

📒 Files selected for processing (12)
  • src/app/(authenticated)/admin/users/page.tsx (6 hunks)
  • src/app/(authenticated)/dashboard/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/edit/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/[id]/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/respond/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/my-responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/page.tsx (4 hunks)
  • src/app/(authenticated)/layout-client.tsx (1 hunks)
  • src/app/(authenticated)/layout.tsx (1 hunks)
  • src/components/main-nav.tsx (3 hunks)
  • src/const/routes.ts (2 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Alterar sidebar para ter botões colapsáveis

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

refactor: alterando layout da sidebar - #145

Merged
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis
Sep 25, 2025

Hidden character warning

The head ref may contain hidden characters: "144-alterar-sidebar-para-ter-bot\u00f5es-colaps\u00e1veis"
Merged

refactor: alterando layout da sidebar#145
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 25, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Introduced a responsive authenticated layout with a collapsible sidebar and improved headers.
    • Added nested, collapsible navigation groups that auto-expand based on the current page.
    • Reorganized the menu into grouped sections (e.g., Reservas de Recursos, Anúncios, Formulários).
  • Improvements

    • Updated terminology across the app from “Formulários” to “Solicitações” (titles, buttons, toasts, descriptions).
    • Refined navigation to only show valid links.
  • Bug Fixes

    • Prevented rendering of mobile navigation items without valid links.

@rbxyzrbxyz linked an issue Sep 25, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 25, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 25, 2025 5:30pm

@coderabbitai

coderabbitaiBot commented Sep 25, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Introduces a client-side authenticated layout and delegates rendering to it, adds metadata. Refactors navigation to support collapsible, nested sidebar groups driven by a new RouteItem type and restructured routes. Adjusts dashboard link rendering guard. Updates UI text across forms/admin pages from “formulários” to “solicitações”.

Changes

Cohort / File(s)Summary
Terminology: Formulários → Solicitações
src/app/(authenticated)/admin/users/page.tsx, src/app/(authenticated)/forms/page.tsx, src/app/(authenticated)/forms/[id]/edit/page.tsx, src/app/(authenticated)/forms/[id]/page.tsx, src/app/(authenticated)/forms/[id]/respond/page.tsx, src/app/(authenticated)/forms/[id]/responses/page.tsx, src/app/(authenticated)/forms/my-responses/page.tsx
Replaces user-facing text, labels, headings, and descriptions to use “solicitações” instead of “formulários”; no logic changes.
Dashboard rendering guard
src/app/(authenticated)/dashboard/page.tsx
Filters mobile route items to require a truthy href in addition to title check before rendering links.
Authenticated layout delegation
src/app/(authenticated)/layout.tsx, src/app/(authenticated)/layout-client.tsx
Adds Metadata export; moves layout structure to a new client component with collapsible sidebar, responsive headers, and auxiliary UI; server layout now delegates to client layout.
Sidebar/MainNav tree navigation
src/components/main-nav.tsx
Implements nested, collapsible groups with auto-expansion based on current pathname; replaces static mapping with recursive renderer and expansion state.
Routes restructuring and typing
src/const/routes.ts
Adds RouteItem interface; changes routeItems to return nested RouteItem[] with optional href/children; groups related routes under “Reserva de Recursos”, “Anúncios”, and “Formulários”.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant Next as Next.js Router
participant L as AuthenticatedLayout (server)
participant LC as AuthenticatedLayoutClient
participant SB as Sidebar
participant MN as MainNav
participant RT as routeItems()
U->>Next: Navigate to /app/…
Next->>L: Render layout
L->>LC: Delegate with {children}
LC->>RT: routeItems(roleConfig)
RT-->>LC: RouteItem[] (nested)
LC->>SB: Render Sidebar(collapsed?)
SB->>MN: Render MainNav with RouteItem[]
MN->>Next: Read current pathname
MN->>MN: Auto-expand groups containing active route
U->>MN: Toggle group
MN->>MN: Update expandedGroups state
MN-->>U: Show nested items (expanded/collapsed)
Loading
sequenceDiagram
autonumber
participant U as User (mobile)
participant Dash as Dashboard Page
participant RT as routeItems()
U->>Dash: Open dashboard (mobile)
Dash->>RT: routeItems()
RT-->>Dash: RouteItem[] (some without href)
Dash->>Dash: Filter items where title != "Dashboard" and href is truthy
Dash-->>U: Render only valid Link items
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

Possibly related PRs

Poem

In burrows of code where menus hide,
I nudge the routes and let them glide.
Groups now bloom, then softly fold,
A sidebar tale, neatly told.
With hops through “solicitações” bright,
I whisk the layout into light.
— A cheerful rabbit, shipping right. 🐇✨

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 144-alterar-sidebar-para-ter-botões-colapsáveis

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 56e3271 and e064a81.

📒 Files selected for processing (12)
  • src/app/(authenticated)/admin/users/page.tsx (6 hunks)
  • src/app/(authenticated)/dashboard/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/edit/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/[id]/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/respond/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/my-responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/page.tsx (4 hunks)
  • src/app/(authenticated)/layout-client.tsx (1 hunks)
  • src/app/(authenticated)/layout.tsx (1 hunks)
  • src/components/main-nav.tsx (3 hunks)
  • src/const/routes.ts (2 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Alterar sidebar para ter botões colapsáveis

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

refactor: alterando layout da sidebar - #145

Merged
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis
Sep 25, 2025

Hidden character warning

The head ref may contain hidden characters: "144-alterar-sidebar-para-ter-bot\u00f5es-colaps\u00e1veis"
Merged

refactor: alterando layout da sidebar#145
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 25, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Introduced a responsive authenticated layout with a collapsible sidebar and improved headers.
    • Added nested, collapsible navigation groups that auto-expand based on the current page.
    • Reorganized the menu into grouped sections (e.g., Reservas de Recursos, Anúncios, Formulários).
  • Improvements

    • Updated terminology across the app from “Formulários” to “Solicitações” (titles, buttons, toasts, descriptions).
    • Refined navigation to only show valid links.
  • Bug Fixes

    • Prevented rendering of mobile navigation items without valid links.

@rbxyzrbxyz linked an issue Sep 25, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 25, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 25, 2025 5:30pm

@coderabbitai

coderabbitaiBot commented Sep 25, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Introduces a client-side authenticated layout and delegates rendering to it, adds metadata. Refactors navigation to support collapsible, nested sidebar groups driven by a new RouteItem type and restructured routes. Adjusts dashboard link rendering guard. Updates UI text across forms/admin pages from “formulários” to “solicitações”.

Changes

Cohort / File(s)Summary
Terminology: Formulários → Solicitações
src/app/(authenticated)/admin/users/page.tsx, src/app/(authenticated)/forms/page.tsx, src/app/(authenticated)/forms/[id]/edit/page.tsx, src/app/(authenticated)/forms/[id]/page.tsx, src/app/(authenticated)/forms/[id]/respond/page.tsx, src/app/(authenticated)/forms/[id]/responses/page.tsx, src/app/(authenticated)/forms/my-responses/page.tsx
Replaces user-facing text, labels, headings, and descriptions to use “solicitações” instead of “formulários”; no logic changes.
Dashboard rendering guard
src/app/(authenticated)/dashboard/page.tsx
Filters mobile route items to require a truthy href in addition to title check before rendering links.
Authenticated layout delegation
src/app/(authenticated)/layout.tsx, src/app/(authenticated)/layout-client.tsx
Adds Metadata export; moves layout structure to a new client component with collapsible sidebar, responsive headers, and auxiliary UI; server layout now delegates to client layout.
Sidebar/MainNav tree navigation
src/components/main-nav.tsx
Implements nested, collapsible groups with auto-expansion based on current pathname; replaces static mapping with recursive renderer and expansion state.
Routes restructuring and typing
src/const/routes.ts
Adds RouteItem interface; changes routeItems to return nested RouteItem[] with optional href/children; groups related routes under “Reserva de Recursos”, “Anúncios”, and “Formulários”.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant Next as Next.js Router
participant L as AuthenticatedLayout (server)
participant LC as AuthenticatedLayoutClient
participant SB as Sidebar
participant MN as MainNav
participant RT as routeItems()
U->>Next: Navigate to /app/…
Next->>L: Render layout
L->>LC: Delegate with {children}
LC->>RT: routeItems(roleConfig)
RT-->>LC: RouteItem[] (nested)
LC->>SB: Render Sidebar(collapsed?)
SB->>MN: Render MainNav with RouteItem[]
MN->>Next: Read current pathname
MN->>MN: Auto-expand groups containing active route
U->>MN: Toggle group
MN->>MN: Update expandedGroups state
MN-->>U: Show nested items (expanded/collapsed)
Loading
sequenceDiagram
autonumber
participant U as User (mobile)
participant Dash as Dashboard Page
participant RT as routeItems()
U->>Dash: Open dashboard (mobile)
Dash->>RT: routeItems()
RT-->>Dash: RouteItem[] (some without href)
Dash->>Dash: Filter items where title != "Dashboard" and href is truthy
Dash-->>U: Render only valid Link items
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

Possibly related PRs

Poem

In burrows of code where menus hide,
I nudge the routes and let them glide.
Groups now bloom, then softly fold,
A sidebar tale, neatly told.
With hops through “solicitações” bright,
I whisk the layout into light.
— A cheerful rabbit, shipping right. 🐇✨

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 144-alterar-sidebar-para-ter-botões-colapsáveis

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 56e3271 and e064a81.

📒 Files selected for processing (12)
  • src/app/(authenticated)/admin/users/page.tsx (6 hunks)
  • src/app/(authenticated)/dashboard/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/edit/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/[id]/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/respond/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/my-responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/page.tsx (4 hunks)
  • src/app/(authenticated)/layout-client.tsx (1 hunks)
  • src/app/(authenticated)/layout.tsx (1 hunks)
  • src/components/main-nav.tsx (3 hunks)
  • src/const/routes.ts (2 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Alterar sidebar para ter botões colapsáveis

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

refactor: alterando layout da sidebar - #145

Merged
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis
Sep 25, 2025

Hidden character warning

The head ref may contain hidden characters: "144-alterar-sidebar-para-ter-bot\u00f5es-colaps\u00e1veis"
Merged

refactor: alterando layout da sidebar#145
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 25, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Introduced a responsive authenticated layout with a collapsible sidebar and improved headers.
    • Added nested, collapsible navigation groups that auto-expand based on the current page.
    • Reorganized the menu into grouped sections (e.g., Reservas de Recursos, Anúncios, Formulários).
  • Improvements

    • Updated terminology across the app from “Formulários” to “Solicitações” (titles, buttons, toasts, descriptions).
    • Refined navigation to only show valid links.
  • Bug Fixes

    • Prevented rendering of mobile navigation items without valid links.

@rbxyzrbxyz linked an issue Sep 25, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 25, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 25, 2025 5:30pm

@coderabbitai

coderabbitaiBot commented Sep 25, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Introduces a client-side authenticated layout and delegates rendering to it, adds metadata. Refactors navigation to support collapsible, nested sidebar groups driven by a new RouteItem type and restructured routes. Adjusts dashboard link rendering guard. Updates UI text across forms/admin pages from “formulários” to “solicitações”.

Changes

Cohort / File(s)Summary
Terminology: Formulários → Solicitações
src/app/(authenticated)/admin/users/page.tsx, src/app/(authenticated)/forms/page.tsx, src/app/(authenticated)/forms/[id]/edit/page.tsx, src/app/(authenticated)/forms/[id]/page.tsx, src/app/(authenticated)/forms/[id]/respond/page.tsx, src/app/(authenticated)/forms/[id]/responses/page.tsx, src/app/(authenticated)/forms/my-responses/page.tsx
Replaces user-facing text, labels, headings, and descriptions to use “solicitações” instead of “formulários”; no logic changes.
Dashboard rendering guard
src/app/(authenticated)/dashboard/page.tsx
Filters mobile route items to require a truthy href in addition to title check before rendering links.
Authenticated layout delegation
src/app/(authenticated)/layout.tsx, src/app/(authenticated)/layout-client.tsx
Adds Metadata export; moves layout structure to a new client component with collapsible sidebar, responsive headers, and auxiliary UI; server layout now delegates to client layout.
Sidebar/MainNav tree navigation
src/components/main-nav.tsx
Implements nested, collapsible groups with auto-expansion based on current pathname; replaces static mapping with recursive renderer and expansion state.
Routes restructuring and typing
src/const/routes.ts
Adds RouteItem interface; changes routeItems to return nested RouteItem[] with optional href/children; groups related routes under “Reserva de Recursos”, “Anúncios”, and “Formulários”.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant Next as Next.js Router
participant L as AuthenticatedLayout (server)
participant LC as AuthenticatedLayoutClient
participant SB as Sidebar
participant MN as MainNav
participant RT as routeItems()
U->>Next: Navigate to /app/…
Next->>L: Render layout
L->>LC: Delegate with {children}
LC->>RT: routeItems(roleConfig)
RT-->>LC: RouteItem[] (nested)
LC->>SB: Render Sidebar(collapsed?)
SB->>MN: Render MainNav with RouteItem[]
MN->>Next: Read current pathname
MN->>MN: Auto-expand groups containing active route
U->>MN: Toggle group
MN->>MN: Update expandedGroups state
MN-->>U: Show nested items (expanded/collapsed)
Loading
sequenceDiagram
autonumber
participant U as User (mobile)
participant Dash as Dashboard Page
participant RT as routeItems()
U->>Dash: Open dashboard (mobile)
Dash->>RT: routeItems()
RT-->>Dash: RouteItem[] (some without href)
Dash->>Dash: Filter items where title != "Dashboard" and href is truthy
Dash-->>U: Render only valid Link items
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

Possibly related PRs

Poem

In burrows of code where menus hide,
I nudge the routes and let them glide.
Groups now bloom, then softly fold,
A sidebar tale, neatly told.
With hops through “solicitações” bright,
I whisk the layout into light.
— A cheerful rabbit, shipping right. 🐇✨

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 144-alterar-sidebar-para-ter-botões-colapsáveis

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 56e3271 and e064a81.

📒 Files selected for processing (12)
  • src/app/(authenticated)/admin/users/page.tsx (6 hunks)
  • src/app/(authenticated)/dashboard/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/edit/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/[id]/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/respond/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/my-responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/page.tsx (4 hunks)
  • src/app/(authenticated)/layout-client.tsx (1 hunks)
  • src/app/(authenticated)/layout.tsx (1 hunks)
  • src/components/main-nav.tsx (3 hunks)
  • src/const/routes.ts (2 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Alterar sidebar para ter botões colapsáveis

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

refactor: alterando layout da sidebar - #145

Merged
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis
Sep 25, 2025

Hidden character warning

The head ref may contain hidden characters: "144-alterar-sidebar-para-ter-bot\u00f5es-colaps\u00e1veis"
Merged

refactor: alterando layout da sidebar#145
rbxyz merged 1 commit into
mainfrom
144-alterar-sidebar-para-ter-botões-colapsáveis

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 25, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Introduced a responsive authenticated layout with a collapsible sidebar and improved headers.
    • Added nested, collapsible navigation groups that auto-expand based on the current page.
    • Reorganized the menu into grouped sections (e.g., Reservas de Recursos, Anúncios, Formulários).
  • Improvements

    • Updated terminology across the app from “Formulários” to “Solicitações” (titles, buttons, toasts, descriptions).
    • Refined navigation to only show valid links.
  • Bug Fixes

    • Prevented rendering of mobile navigation items without valid links.

@rbxyzrbxyz linked an issue Sep 25, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 25, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 25, 2025 5:30pm

@coderabbitai

coderabbitaiBot commented Sep 25, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Introduces a client-side authenticated layout and delegates rendering to it, adds metadata. Refactors navigation to support collapsible, nested sidebar groups driven by a new RouteItem type and restructured routes. Adjusts dashboard link rendering guard. Updates UI text across forms/admin pages from “formulários” to “solicitações”.

Changes

Cohort / File(s)Summary
Terminology: Formulários → Solicitações
src/app/(authenticated)/admin/users/page.tsx, src/app/(authenticated)/forms/page.tsx, src/app/(authenticated)/forms/[id]/edit/page.tsx, src/app/(authenticated)/forms/[id]/page.tsx, src/app/(authenticated)/forms/[id]/respond/page.tsx, src/app/(authenticated)/forms/[id]/responses/page.tsx, src/app/(authenticated)/forms/my-responses/page.tsx
Replaces user-facing text, labels, headings, and descriptions to use “solicitações” instead of “formulários”; no logic changes.
Dashboard rendering guard
src/app/(authenticated)/dashboard/page.tsx
Filters mobile route items to require a truthy href in addition to title check before rendering links.
Authenticated layout delegation
src/app/(authenticated)/layout.tsx, src/app/(authenticated)/layout-client.tsx
Adds Metadata export; moves layout structure to a new client component with collapsible sidebar, responsive headers, and auxiliary UI; server layout now delegates to client layout.
Sidebar/MainNav tree navigation
src/components/main-nav.tsx
Implements nested, collapsible groups with auto-expansion based on current pathname; replaces static mapping with recursive renderer and expansion state.
Routes restructuring and typing
src/const/routes.ts
Adds RouteItem interface; changes routeItems to return nested RouteItem[] with optional href/children; groups related routes under “Reserva de Recursos”, “Anúncios”, and “Formulários”.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant Next as Next.js Router
participant L as AuthenticatedLayout (server)
participant LC as AuthenticatedLayoutClient
participant SB as Sidebar
participant MN as MainNav
participant RT as routeItems()
U->>Next: Navigate to /app/…
Next->>L: Render layout
L->>LC: Delegate with {children}
LC->>RT: routeItems(roleConfig)
RT-->>LC: RouteItem[] (nested)
LC->>SB: Render Sidebar(collapsed?)
SB->>MN: Render MainNav with RouteItem[]
MN->>Next: Read current pathname
MN->>MN: Auto-expand groups containing active route
U->>MN: Toggle group
MN->>MN: Update expandedGroups state
MN-->>U: Show nested items (expanded/collapsed)
Loading
sequenceDiagram
autonumber
participant U as User (mobile)
participant Dash as Dashboard Page
participant RT as routeItems()
U->>Dash: Open dashboard (mobile)
Dash->>RT: routeItems()
RT-->>Dash: RouteItem[] (some without href)
Dash->>Dash: Filter items where title != "Dashboard" and href is truthy
Dash-->>U: Render only valid Link items
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

Possibly related PRs

Poem

In burrows of code where menus hide,
I nudge the routes and let them glide.
Groups now bloom, then softly fold,
A sidebar tale, neatly told.
With hops through “solicitações” bright,
I whisk the layout into light.
— A cheerful rabbit, shipping right. 🐇✨

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 144-alterar-sidebar-para-ter-botões-colapsáveis

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 56e3271 and e064a81.

📒 Files selected for processing (12)
  • src/app/(authenticated)/admin/users/page.tsx (6 hunks)
  • src/app/(authenticated)/dashboard/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/edit/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/[id]/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/respond/page.tsx (1 hunks)
  • src/app/(authenticated)/forms/[id]/responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/my-responses/page.tsx (2 hunks)
  • src/app/(authenticated)/forms/page.tsx (4 hunks)
  • src/app/(authenticated)/layout-client.tsx (1 hunks)
  • src/app/(authenticated)/layout.tsx (1 hunks)
  • src/components/main-nav.tsx (3 hunks)
  • src/const/routes.ts (2 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Alterar sidebar para ter botões colapsáveis

1 participant

@rbxyz