Skip to content

new navbar component - #725

Open
timea-solid wants to merge 3 commits into
stagingfrom
navbar
Open

new navbar component#725
timea-solid wants to merge 3 commits into
stagingfrom
navbar

Conversation

@timea-solid

Copy link
Copy Markdown
Member

This creates a new Navbar web component.
I removed the top icon tray nav but kept it for the resources in the file explorer for now.

@timea-solid
timea-solid requested a review from SharonStrats July 28, 2026 21:05
@timea-solid timea-solid self-assigned this Jul 28, 2026
@timea-solid timea-solid moved this to In review in SolidOS NLNet UI Jul 28, 2026
@timea-solid timea-solid linked an issue Jul 28, 2026 that may be closed by this pull request
…@3.1.3-13 pane-registry@3.1.2-2 activitystreams-pane@1.0.3-4 chat-pane@3.0.4-3 contacts-pane@3.2.1-5 folder-pane@3.1.1-2 issue-pane@3.0.3-1 meeting-pane@3.0.3-1 profile-pane@3.2.3-4 source-pane@3.1.1-5) (latest: rdflib@2.4.0)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new solid-panes-navbar web component and wires it into the main page flow, while also refactoring some outline/pod-storage logic and adjusting build/watch behavior in Vite.

Changes:

  • Add a new Navbar web component (solid-panes-navbar) plus main-page creation/insert logic.
  • Refactor pod storage discovery and folder-pane item creation into new outline utilities, and update outline manager behavior/UI.
  • Update Vite config to speed up vite build --watch and ensure async/nested plugins (incl. babel) are preserved; bump package version and update lockfile.

Reviewed changes

Copilot reviewed 13 out of 14 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
vite.config.mts Adds watch-mode optimizations and async plugin flattening for reliable builds.
src/social/socialPane.css Tweaks spacing and removes redundant .social-pane block.
src/registerPanes.js Changes pane registration (notably default/internal panes).
src/outline/podUtils.ts New helper for discovering pod storage containers + loading container turtle.
src/outline/folderPaneUtils.ts New helper for producing folder-pane menu items for pod storages.
src/outline/manager.js Integrates new pod/folder helpers; adjusts navbar visibility; removes parts of icon-tray logic.
src/outline/manager.css Updates .tdFlex styling used by outline header row.
src/mainPage/navbar.ts Creates and inserts the new navbar component; builds menu items.
src/mainPage/index.ts Initializes navbar alongside the existing header.
src/components/navbar/Navbar.ts Implements the solid-panes-navbar component.
src/components/navbar/Navbar.styles.css Adds navbar/button styles (nested under :host).
src/components/navbar/index.ts Exports the Navbar component module.
package.json Version bump and removal of dependency overrides.
package-lock.json Lockfile updates including nested dependency installs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/mainPage/navbar.ts
import '~icons/lucide/folder-open'
import '../components/navbar'
import { NamedNode } from 'rdflib'
import { NavbarMenuItem } from 'src/components/navbar/Navbar'
Comment thread src/mainPage/navbar.ts
Comment on lines +39 to +47
createNavItem('Storage', () => {
const folderPanes = podStorages.map((pod, index) => createFolderPaneItem(outliner?.context?.session?.paneRegistry?.byName('folder'), pod, index))
if (folderPanes.length === 0) {
console.warn('Folder pane is not registered')
return
}
// TODO make storage work for more storage spaces, not just the first one
outliner.GotoSubject(subject, true, folderPanes[0], true, undefined, OutlineView)
})
Comment thread src/outline/manager.js
Comment on lines 2331 to 2335
const currentUrl = new URL(document.location.href)
const targetUrl = new URL(subject.uri, document.location.href)
console.log('currentUrl.origin: ' + currentUrl)
console.log('targetUrl.origin: ' + targetUrl)
if (currentUrl.origin === targetUrl.origin) {
Comment thread src/outline/manager.js
return [panes.byName('internal')]
}

// filter according to audience (develoepr and or power user)
Comment on lines +32 to +38
<button
type='button'
@click=${() => menuItem.onSelected?.()}
title="${menuItem.label}"
text="${menuItem.label}"
aria-expanded="false">
${menuItem.label}
Comment thread src/registerPanes.js
Comment on lines 113 to 117
register(tableViewPane)

// Fallback totally generic:
register(defaultPane)
// register(defaultPane)

Comment thread src/registerPanes.js
Comment on lines 139 to 143
register(sharingPane)

// The internals pane is always (almost?) the last as it is the least user-friendly
register(internalPane)
// register(internalPane) // under the hood has been removed with new design

Comment thread package.json
Comment on lines 70 to 78
"pane-registry": "3.1.2-2",
"profile-pane": "3.2.3-3",
"rdflib": "2.4.0",
"solid-logic": "4.0.8-1",
"solid-namespace": "^0.5.4",
"solid-ui": "3.1.3-13",
"source-pane": "3.1.1-4"
},
"overrides": {
"rdflib": "$rdflib",
"solid-logic": "$solid-logic",
"solid-ui": "$solid-ui",
"pane-registry": "$pane-registry"
},
"devDependencies": {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

Redesign nav bar

2 participants