Compare commits

...

2 Commits

Author SHA1 Message Date
5aeb6818f8 Fixes startup warning 2026-05-18 10:29:20 -05:00
ebe0a9692f Adds rules page 2026-05-18 00:44:53 -05:00
4 changed files with 77 additions and 1 deletions

View File

@@ -14,6 +14,7 @@
import HuntCreate from './routes/admin/HuntCreate.svelte'
import HuntManage from './routes/admin/HuntManage.svelte'
import PhotoReview from './routes/admin/PhotoReview.svelte'
import Rules from './routes/Rules.svelte'
const routes = {
'/': HuntList,
@@ -26,6 +27,7 @@
'/admin/hunt/create': HuntCreate,
'/admin/hunt/:huntId': HuntManage,
'/admin/hunt/:huntId/review': PhotoReview,
'/rules': Rules,
}
const publicRoutes = ['/login', '/signup']

View File

@@ -29,4 +29,11 @@
<span class="btm-nav-label text-xs">Scores</span>
</button>
{/if}
<button class:active={isActive('/rules')} onclick={() => push('/rules')}>
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" />
</svg>
<span class="btm-nav-label text-xs">Rules</span>
</button>
</nav>

View File

@@ -1,4 +1,6 @@
<script lang="ts">
import { untrack } from 'svelte'
let {
value = $bindable(''),
defaultTimeIndex = 36,
@@ -27,7 +29,7 @@
let month = $state(today.getMonth())
let day = $state(today.getDate())
let year = $state(today.getFullYear())
let timeIndex = $state(defaultTimeIndex)
let timeIndex = $state(untrack(() => defaultTimeIndex))
const daysInMonth = $derived(new Date(year, month + 1, 0).getDate())

65
src/routes/Rules.svelte Normal file
View File

@@ -0,0 +1,65 @@
<script lang="ts">
</script>
<div class="max-w-lg mx-auto px-4 py-6">
<h1 class="text-2xl font-bold mb-1">Rules</h1>
<p class="text-base-content/60 text-sm mb-6">How to play fairly and have a great time.</p>
<div class="space-y-3">
<div class="card bg-base-100 shadow-sm">
<div class="card-body py-4 px-5">
<h2 class="card-title text-base">1. Photos Must Be Taken Live</h2>
<p class="text-sm text-base-content/70">All photos must be taken during the hunt. No screenshots, stock images, or photos taken before the hunt started.</p>
</div>
</div>
<div class="card bg-base-100 shadow-sm">
<div class="card-body py-4 px-5">
<h2 class="card-title text-base">2. Stay Safe and Legal</h2>
<p class="text-sm text-base-content/70">Never trespass on private property or put yourself in danger to get a shot. No clue is worth it.</p>
</div>
</div>
<div class="card bg-base-100 shadow-sm">
<div class="card-body py-4 px-5">
<h2 class="card-title text-base">3. Leave No Trace</h2>
<p class="text-sm text-base-content/70">Leave every location exactly as you found it. Be respectful of spaces and the people in them.</p>
</div>
</div>
<div class="card bg-base-100 shadow-sm">
<div class="card-body py-4 px-5">
<h2 class="card-title text-base">4. No Sharing Answers</h2>
<p class="text-sm text-base-content/70">Keep your finds to yourself until the hunt is over. Sharing clue answers or locations with other teams is not allowed.</p>
</div>
</div>
<div class="card bg-base-100 shadow-sm">
<div class="card-body py-4 px-5">
<h2 class="card-title text-base">5. Photos Must Be Clear</h2>
<p class="text-sm text-base-content/70">Submitted photos must clearly show the required subject. Blurry, cropped, or ambiguous photos may be rejected by the organizer.</p>
</div>
</div>
<div class="card bg-base-100 shadow-sm">
<div class="card-body py-4 px-5">
<h2 class="card-title text-base">6. Finish Before Time's Up</h2>
<p class="text-sm text-base-content/70">All submissions must be made before the hunt ends. Late entries will not count toward your score.</p>
</div>
</div>
<div class="card bg-base-100 shadow-sm">
<div class="card-body py-4 px-5">
<h2 class="card-title text-base">7. Organizer Decisions Are Final</h2>
<p class="text-sm text-base-content/70">The hunt organizer has final say on whether a photo meets the requirements. Disputes should be raised politely and promptly.</p>
</div>
</div>
<div class="card bg-base-100 shadow-sm">
<div class="card-body py-4 px-5">
<h2 class="card-title text-base">8. Have Fun</h2>
<p class="text-sm text-base-content/70">Good sportsmanship is expected from everyone. Celebrate the wins, shake off the misses, and enjoy the adventure.</p>
</div>
</div>
</div>
</div>