diff --git a/lib/notion/views/shared/_database_item.html.erb b/lib/notion/views/shared/_database_item.html.erb index de882a8..dd24476 100644 --- a/lib/notion/views/shared/_database_item.html.erb +++ b/lib/notion/views/shared/_database_item.html.erb @@ -1,41 +1,41 @@
+
+ <% unless item.dig(:icon, :svg) %> + <%= index + 1 %> + <% end %> +
<% if item.dig(:icon, :svg) %>
<%= item[:icon][:svg].html_safe %>
- <% else %> -
- <%= index + 1 %> -
<% end %>
-
- <%= item[:title] %> - <% if status_field.present? %> - <% status_properties = filter_properties_by_names(item[:properties], [status_field]) %> - <% if status_properties.any? %> - <%= status_properties.first[:value] %> - <% end %> - <% end %> -
- - <% labeled_property_names = labeled_properties || [] %> - <% if labeled_property_names.any? %> - <% matched_labeled_properties = filter_properties_by_names(item[:properties], labeled_property_names) %> + <%= item[:title] %> - <% patterns = ["label--inverted", "label--outline", "label--underline"] %> + <% status_properties = if status_field.present? + filter_properties_by_names(item[:properties], [status_field]).select { |property| property[:value].present? } + else + [] + end %> + <% labeled_property_names = labeled_properties || [] %> + <% matched_labeled_properties = filter_properties_by_names(item[:properties], labeled_property_names).select { |property| property[:value].present? } %> + <% label_background_classes = ["bg--gray-40", "bg--gray-60"] %> + <% if status_properties.any? %> + <%= status_properties.first[:value] %> + <% end %> -
+ <% if matched_labeled_properties.any? %> + <% label_background_offset = status_properties.any? ? 1 : 0 %> +
<% matched_labeled_properties.each_with_index do |label, index| %> - <% pattern = patterns[index % patterns.length] %> - <% label_classes = "label label--small #{pattern}" %> - <%= label[:value] %> + <% background_class = label_background_classes[(index + label_background_offset) % label_background_classes.length] %> + <%= label[:value] %> <% end %>
<% end %> <% listed_property_names = listed_properties || [] %> <% if listed_property_names.any? %> - <% matched_listed_properties = filter_properties_by_names(item[:properties], listed_property_names) %> + <% matched_listed_properties = filter_properties_by_names(item[:properties], listed_property_names).select { |property| property[:value].present? } %> <% if matched_listed_properties.any? %>