Skip to content

Commit fe33111

Browse files
committed
Compact the yyyymm tabs
1 parent afd86c8 commit fe33111

File tree

1 file changed

+23
-9
lines changed

1 file changed

+23
-9
lines changed

app/views/messages/index.html.erb

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,30 @@
77
<% end %>
88

99
<div class="mb-4 border border-gray-200 dark:border-gray-700 rounded-lg p-3 bg-white dark:bg-gray-800">
10-
<% @yyyymms.group_by {|yyyymm| yyyymm[0, 4] }.sort.each do |year, months| %>
11-
<div class="flex gap-1 items-center mb-1">
12-
<span class="text-sm font-medium text-gray-700 dark:text-gray-300 w-12"><%= year %>:</span>
13-
<div class="flex gap-1 flex-wrap">
14-
<% months.sort.each do |yyyymm| %>
15-
<%= link_to [@list, yyyymm: yyyymm], class: "px-2 py-1 text-xs font-medium rounded transition-colors #{@yyyymm == yyyymm ? 'bg-red-600 dark:bg-red-500 text-white border-2 border-red-700 dark:border-red-400' : 'bg-gray-100 dark:bg-gray-900 text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 border-2 border-transparent'}" do %>
16-
<%= yyyymm[4..] %>
17-
<% end %>
10+
<%
11+
selected_year = @yyyymm&.[](0, 4)
12+
selected_month = @yyyymm&.[](4, 2)
13+
years_with_months = @yyyymms.group_by {|yyyymm| yyyymm[0, 4] }.sort.reverse
14+
%>
15+
16+
<!-- Year tabs -->
17+
<div class="flex gap-2 overflow-x-auto pb-2 mb-3 border-b border-gray-200 dark:border-gray-700">
18+
<% years_with_months.each do |year, months| %>
19+
<%= link_to year, [@list, yyyymm: "#{year}#{months.sort.first[4, 2]}"], class: "px-3 py-1 text-sm font-medium rounded whitespace-nowrap transition-colors #{selected_year == year ? 'bg-red-600 dark:bg-red-500 text-white' : 'bg-gray-100 dark:bg-gray-900 text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100'}" %>
20+
<% end %>
21+
</div>
22+
23+
<!-- Month tabs -->
24+
<% if selected_year %>
25+
<div class="flex gap-1 flex-wrap">
26+
<% available_months = years_with_months.detect {|y, _| y == selected_year }&.last&.map {|yyyymm| yyyymm[4, 2] } || [] %>
27+
<% ('01'..'12').each do |month| %>
28+
<% if available_months.include?(month) %>
29+
<%= link_to month, [@list, yyyymm: "#{selected_year}#{month}"], class: "px-2 py-1 text-xs font-medium rounded transition-colors #{selected_month == month ? 'bg-red-600 dark:bg-red-500 text-white border-2 border-red-700 dark:border-red-400' : 'bg-gray-100 dark:bg-gray-900 text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 border-2 border-transparent'}" %>
30+
<% else %>
31+
<span class="px-2 py-1 text-xs font-medium rounded text-gray-300 dark:text-gray-600 border-2 border-transparent"><%= month %></span>
1832
<% end %>
19-
</div>
33+
<% end %>
2034
</div>
2135
<% end %>
2236
</div>

0 commit comments

Comments
 (0)