diff --git a/src/app/components/EventCreate.svelte b/src/app/components/EventCreate.svelte index 7f48a07f..d06b4009 100644 --- a/src/app/components/EventCreate.svelte +++ b/src/app/components/EventCreate.svelte @@ -1,8 +1,8 @@
diff --git a/src/app/components/EventItem.svelte b/src/app/components/EventItem.svelte index d8a62ffb..91f3ef37 100644 --- a/src/app/components/EventItem.svelte +++ b/src/app/components/EventItem.svelte @@ -1,10 +1,6 @@
diff --git a/src/lib/components/DateTimeInput.svelte b/src/lib/components/DateTimeInput.svelte index 5b84786e..a98c6307 100644 --- a/src/lib/components/DateTimeInput.svelte +++ b/src/lib/components/DateTimeInput.svelte @@ -1,58 +1,74 @@
- +
- {#if value} + {#if date} @@ -64,6 +80,12 @@
diff --git a/src/lib/components/Suggestions.svelte b/src/lib/components/Suggestions.svelte index f85132b2..1c13c229 100644 --- a/src/lib/components/Suggestions.svelte +++ b/src/lib/components/Suggestions.svelte @@ -8,8 +8,6 @@ let index = $state(0) let items: string[] = $state([]) - $inspect(items) - const populateItems = throttle(300, term => { items = search(term).slice(0, 5) }) diff --git a/src/lib/html.ts b/src/lib/html.ts index c1f989a5..0d664c6d 100644 --- a/src/lib/html.ts +++ b/src/lib/html.ts @@ -21,7 +21,6 @@ export type ScrollerOpts = { onScroll: () => any element: Element threshold?: number - reverse?: boolean delay?: number } @@ -35,7 +34,6 @@ export const createScroller = ({ element, delay = 1000, threshold = 2000, - reverse = false, }: ScrollerOpts) => { let done = false diff --git a/src/lib/util.ts b/src/lib/util.ts index 6514a79f..5d76eee7 100644 --- a/src/lib/util.ts +++ b/src/lib/util.ts @@ -1,6 +1,6 @@ import {hexToBytes, bytesToHex} from "@noble/hashes/utils" import * as nip19 from "nostr-tools/nip19" -import {HOUR} from "@welshman/lib" +import {HOUR, MONTH, DAY} from "@welshman/lib" export const displayList = (xs: T[], conj = "and", n = 6, locale = "en-US") => { const stringItems = xs.map(String) @@ -44,10 +44,7 @@ export const timeHash = (seconds: number, precision = 32) => { return hash } -export const timeHashesBetween = (a: number, b: number) => { - const precisions = [10, 15, 20] - const start = Math.min(a, b) >>> 0 - const end = Math.min(Math.max(a, b) >>> 0, 0xffffffff) +export const timeHashesBetween = (start: number, end: number, precisions = [10, 15, 20]) => { const hashes = new Set() for (let seconds = start; seconds <= end; seconds += HOUR) { @@ -58,3 +55,12 @@ export const timeHashesBetween = (a: number, b: number) => { return Array.from(hashes).sort() } + +export const timeHashesForFilter = (start: number, end: number) => { + const diff = end - start + + if (diff < 3 * DAY) return timeHashesBetween(start, end, [20]) + if (diff < 3 * MONTH) return timeHashesBetween(start, end, [15]) + + return timeHashesBetween(start, end, [10]) +} diff --git a/src/routes/spaces/[relay]/calendar/+page.svelte b/src/routes/spaces/[relay]/calendar/+page.svelte index 8093dc2e..de9b1dee 100644 --- a/src/routes/spaces/[relay]/calendar/+page.svelte +++ b/src/routes/spaces/[relay]/calendar/+page.svelte @@ -1,10 +1,11 @@