Skip to content

Commit

Permalink
Fix pages nav empty state
Browse files Browse the repository at this point in the history
  • Loading branch information
allmarkedup committed Jun 6, 2024
1 parent 7ab3d51 commit 17a75d5
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 19 deletions.
17 changes: 2 additions & 15 deletions app/components/lookbook/ui/app/layout/layout.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,8 @@

<% if pages.any? || previews.any? %>
<%=
lb_pane_group("app-body",
tag: :div,
opts: {
orientation: :vertical,
sizes: ["280px", "auto"],
min_sizes: [200, 200]
}) do |body|
body.with_pane do
lb_pane_group("app-sidebar",
opts: {
orientation: :horizontal,
sizes: nav_panels.take(2).map {"#{100 / nav_panels.size}%"},
min_sizes: nav_panels.take(2).map {100}
}) do |sidebar|

lb_pane_group("app-body", tag: :div, opts: body_split) do |body|
body.with_pane do lb_pane_group("app-sidebar", opts: sidebar_split) do |sidebar|
config.ui_nav_panels.each do |name|
if name.to_sym == :previews
sidebar.with_pane("previews-nav") do |pane|
Expand Down
27 changes: 26 additions & 1 deletion app/components/lookbook/ui/app/layout/layout.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,33 @@ def previews
Lookbook::Previews
end

def body_split
{
orientation: :vertical,
sizes: ["280px", "auto"],
min_sizes: [200, 200]
}
end

def sidebar_split
{
orientation: :horizontal,
sizes: nav_panels.map { "#{100 / nav_panels.size}%" },
min_sizes: nav_panels.map { 100 }
}
end

def nav_panels
config.ui_nav_panels.take(2)
config.ui_nav_panels.take(2).filter do |name|
case name.to_sym
when :previews
previews_nav?
when :pages
pages_nav?
else
false
end
end
end
end
end
Expand Down
6 changes: 5 additions & 1 deletion app/components/lookbook/ui/elements/nav/nav.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,11 @@ export default AlpineComponent("nav", (id) => {
},

get children() {
return Array.from(this.$refs.nav.children).map((node) => getData(node));
if (this.$refs.nav) {
return Array.from(this.$refs.nav.children).map((node) => getData(node));
} else {
return [];
}
},
};
});
2 changes: 1 addition & 1 deletion app/views/layouts/lookbook/application.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
layout.with_header

layout.with_previews_nav(@previews.tree)
layout.with_pages_nav(@pages.tree) if @pages.any?
layout.with_pages_nav(@pages.tree) if @pages.directory_exists?

layout.with_main do
tag.main { yield }
Expand Down
4 changes: 4 additions & 0 deletions lib/lookbook/pages/pages.rb
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,10 @@ def parser
@parser ||= PagesParser.new(page_paths)
end

def directory_exists?
page_paths.find { File.exist?(_1) }
end

private

def clear_cache
Expand Down
6 changes: 5 additions & 1 deletion public/lookbook-assets/app.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 17a75d5

Please sign in to comment.