mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-09 08:47:11 -05:00
164 lines
6.7 KiB
Text
164 lines
6.7 KiB
Text
<div class="min-h-screen bg-gradient-to-br from-base-100 to-base-200 py-12 px-4 mx-auto">
|
|
<div class="max-w-4xl mx-auto">
|
|
<!-- Hero Section -->
|
|
<div class="text-center mb-12">
|
|
<div class="mx-auto flex items-center justify-center h-24 w-24 rounded-full bg-primary mb-6 shadow-xl">
|
|
<%= icon 'users', class: "h-12 w-12 text-primary-content" %>
|
|
</div>
|
|
|
|
<h1 class="text-5xl font-bold text-base-content mb-4">
|
|
Join <%= @invitation.family.name %>!
|
|
</h1>
|
|
|
|
<p class="text-xl text-base-content opacity-80 mb-2">
|
|
You've been invited by <strong class="text-base-content"><%= @invitation.invited_by.email %></strong> to join their family. Create your account to accept the invitation and start sharing location data.
|
|
</p>
|
|
|
|
<div class="alert alert-info inline-flex rounded-lg px-4 py-2 mt-4">
|
|
<%= icon 'info', class: "h-5 w-5 mr-2" %>
|
|
<span class="text-sm font-medium">
|
|
Your email (<%= @invitation.email %>) will be used for this account
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Benefits Section -->
|
|
<div class="bg-base-200 shadow-xl rounded-2xl p-8 mb-8">
|
|
<h2 class="text-2xl font-bold text-base-content mb-6 text-center">
|
|
What benefits does joining a family bring?
|
|
</h2>
|
|
|
|
<div class="grid md:grid-cols-2 gap-6 mb-8">
|
|
<div class="flex items-start space-x-4 p-4 bg-info/10 rounded-lg border border-info/20">
|
|
<div class="flex-shrink-0">
|
|
<div class="h-10 w-10 rounded-full bg-info flex items-center justify-center">
|
|
<%= icon 'map-pin', class: "h-6 w-6 text-info-content" %>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<h3 class="font-semibold text-base-content mb-1">
|
|
Share Location Data
|
|
</h3>
|
|
<p class="text-sm text-base-content opacity-70">
|
|
Share your location history with family members and see where they are
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex items-start space-x-4 p-4 bg-secondary/10 rounded-lg border border-secondary/20">
|
|
<div class="flex-shrink-0">
|
|
<div class="h-10 w-10 rounded-full bg-secondary flex items-center justify-center">
|
|
<%= icon 'chart-column', class: "h-6 w-6 text-secondary-content" %>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<h3 class="font-semibold text-base-content mb-1">
|
|
Track your location history
|
|
</h3>
|
|
<p class="text-sm text-base-content opacity-70">
|
|
Access interactive maps and personal travel statistics
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex items-start space-x-4 p-4 bg-success/10 rounded-lg border border-success/20">
|
|
<div class="flex-shrink-0">
|
|
<div class="h-10 w-10 rounded-full bg-success flex items-center justify-center">
|
|
<%= icon 'heart', class: "h-6 w-6 text-success-content" %>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<h3 class="font-semibold text-base-content mb-1">
|
|
Stay Connected
|
|
</h3>
|
|
<p class="text-sm text-base-content opacity-70">
|
|
Keep track of your loved ones' travels and adventures in real-time
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex items-start space-x-4 p-4 bg-warning/10 rounded-lg border border-warning/20">
|
|
<div class="flex-shrink-0">
|
|
<div class="h-10 w-10 rounded-full bg-warning flex items-center justify-center">
|
|
<%= icon 'shield-check', class: "h-6 w-6 text-warning-content" %>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<h3 class="font-semibold text-base-content mb-1">
|
|
Full Control & Privacy
|
|
</h3>
|
|
<p class="text-sm text-base-content opacity-70">
|
|
You control what and how long you share and can leave the family anytime
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Invitation Details -->
|
|
<div class="bg-base-300 rounded-lg p-6 mb-6">
|
|
<h3 class="text-sm font-medium text-base-content opacity-70 mb-3">Invitation Details</h3>
|
|
<div class="grid grid-cols-2 gap-4 text-sm">
|
|
<div>
|
|
<span class="text-base-content opacity-60">Family:</span>
|
|
<span class="ml-2 font-semibold text-base-content"><%= @invitation.family.name %></span>
|
|
</div>
|
|
<div>
|
|
<span class="text-base-content opacity-60">Invited by:</span>
|
|
<span class="ml-2 font-semibold text-base-content"><%= @invitation.invited_by.email %></span>
|
|
</div>
|
|
<div>
|
|
<span class="text-base-content opacity-60">Your email:</span>
|
|
<span class="ml-2 font-semibold text-base-content"><%= @invitation.email %></span>
|
|
</div>
|
|
<div>
|
|
<span class="text-base-content opacity-60">Expires:</span>
|
|
<span class="ml-2 font-semibold text-base-content"><%= @invitation.expires_at.strftime('%b %d, %Y') %></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Action Buttons -->
|
|
<div class="space-y-4">
|
|
<% if user_signed_in? %>
|
|
<!-- User is logged in, show accept button -->
|
|
<%= link_to accept_family_invitation_path(token: @invitation.token),
|
|
method: :post,
|
|
class: "btn btn-success btn-lg w-full text-lg shadow-lg" do %>
|
|
✓ Accept Invitation & Join Family
|
|
<% end %>
|
|
|
|
<p class="text-sm text-base-content opacity-60 text-center">
|
|
Logged in as <%= current_user.email %>
|
|
·
|
|
<%= link_to destroy_user_session_path, method: :delete, class: "link link-info" do %>
|
|
Logout
|
|
<% end %>
|
|
</p>
|
|
<% else %>
|
|
<!-- User is not logged in, show register button prominently -->
|
|
<%= link_to new_user_registration_path(invitation_token: @invitation.token),
|
|
class: "btn btn-primary btn-lg w-full text-lg shadow-lg" do %>
|
|
Create Account & Join Family →
|
|
<% end %>
|
|
|
|
<div class="text-center">
|
|
<p class="text-sm text-gray-300 mb-2">
|
|
Already have an account?
|
|
</p>
|
|
<%= link_to new_user_session_path(invitation_token: @invitation.token),
|
|
class: "link link-info font-medium" do %>
|
|
Sign in to accept invitation
|
|
<% end %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<!-- Decline Option -->
|
|
<div class="pt-6 border-t border-base-300 text-center">
|
|
<p class="text-sm text-base-content opacity-60">
|
|
Not interested? You can simply close this page.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|