46 lines
1.8 KiB
Plaintext
46 lines
1.8 KiB
Plaintext
<div class="container mx-auto px-4 py-8">
|
|
<h1 class="text-3xl font-bold mb-8">Upcoming Events</h1>
|
|
|
|
<% if @parties.any? %>
|
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
<% @parties.each do |party| %>
|
|
<div class="bg-white rounded-lg shadow-md overflow-hidden">
|
|
<% if party.image.present? %>
|
|
<img src="<%= party.image %>" alt="<%= party.name %>" class="w-full h-48 object-cover">
|
|
<% else %>
|
|
<div class="bg-gray-200 border-2 border-dashed rounded-xl w-full h-48 flex items-center justify-center">
|
|
<span class="text-gray-500">No Image</span>
|
|
</div>
|
|
<% end %>
|
|
|
|
<div class="p-6">
|
|
<h2 class="text-xl font-semibold mb-2"><%= party.name %></h2>
|
|
<p class="text-gray-600 mb-4"><%= party.description.truncate(100) %></p>
|
|
|
|
<div class="flex justify-between items-center">
|
|
<div>
|
|
<p class="text-sm text-gray-500"><%= party.venue_name %></p>
|
|
<p class="text-sm text-gray-500"><%= party.venue_address %></p>
|
|
</div>
|
|
<div>
|
|
<span class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-blue-100 text-blue-800">
|
|
<%= party.state.humanize %>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
|
|
<!-- Pagination -->
|
|
<div class="mt-8 flex justify-center">
|
|
<%= paginate @parties %>
|
|
</div>
|
|
<% else %>
|
|
<div class="text-center py-12">
|
|
<h2 class="text-xl font-medium text-gray-900 mb-4">No events found</h2>
|
|
<p class="text-gray-500">Check back later for upcoming events.</p>
|
|
</div>
|
|
<% end %>
|
|
</div> |