diff --git a/AGENTS.md b/AGENTS.md index a15e538e..59363a72 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,7 @@ Flotilla is a Nostr "relays as groups" community chat client. It implements NIP- - SvelteKit 5.48+ with TypeScript 5.9+ - Capacitor for cross-platform (Web/PWA, Android, iOS) -- TailwindCSS + DaisyUI for styling +- TailwindCSS for styling - Welshman library suite for Nostr protocol - IndexedDB for local storage - Vite for building diff --git a/eslint.config.js b/eslint.config.js index 89e6c12b..7d6c1ba2 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -26,6 +26,10 @@ export default [ parser: ts.parser, }, }, + rules: { + // eslint doesn't see type parameters declared by @@ -28,6 +30,6 @@ - + diff --git a/src/app/components/ChatMessage.svelte b/src/app/components/ChatMessage.svelte index 6aeeb72f..ce372e21 100644 --- a/src/app/components/ChatMessage.svelte +++ b/src/app/components/ChatMessage.svelte @@ -72,8 +72,7 @@ {/if}
+ class={cx("group flex items-center justify-end gap-1 px-2", {"flex-row-reverse": !isOwn})}> {#if !isMobile} clip(nevent1) const copyPubkey = () => clip(npub1) const copyJson = () => clip(json) + const back = () => history.back() const formatter = new Intl.DateTimeFormat(LOCALE, { dateStyle: "long", @@ -110,6 +111,6 @@
- + diff --git a/src/app/components/InfoBunker.svelte b/src/app/components/InfoBunker.svelte index d40f286e..11246146 100644 --- a/src/app/components/InfoBunker.svelte +++ b/src/app/components/InfoBunker.svelte @@ -6,6 +6,8 @@ import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalTitle from "@lib/components/ModalTitle.svelte" import {PLATFORM_NAME} from "@app/env" + + const back = () => history.back() nostrapps.com.

- +
diff --git a/src/app/components/InfoHandle.svelte b/src/app/components/InfoHandle.svelte index d8556d52..c007f8d6 100644 --- a/src/app/components/InfoHandle.svelte +++ b/src/app/components/InfoHandle.svelte @@ -6,6 +6,8 @@ import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalTitle from "@lib/components/ModalTitle.svelte" import {PLATFORM_NAME} from "@app/env" + + const back = () => history.back() nostr.how.

- +
diff --git a/src/app/components/InfoNostr.svelte b/src/app/components/InfoNostr.svelte index 7ccfb190..86d89df7 100644 --- a/src/app/components/InfoNostr.svelte +++ b/src/app/components/InfoNostr.svelte @@ -5,6 +5,8 @@ import ModalBody from "@lib/components/ModalBody.svelte" import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalTitle from "@lib/components/ModalTitle.svelte" + + const back = () => history.back() nosta.me.

- +
diff --git a/src/app/components/InfoRelay.svelte b/src/app/components/InfoRelay.svelte index 73e2cdbd..48889868 100644 --- a/src/app/components/InfoRelay.svelte +++ b/src/app/components/InfoRelay.svelte @@ -7,6 +7,8 @@ import Modal from "@lib/components/Modal.svelte" import ModalBody from "@lib/components/ModalBody.svelte" import {PLATFORM_NAME} from "@app/env" + + const back = () => history.back() @@ -27,6 +29,6 @@

- +
diff --git a/src/app/components/PinForm.svelte b/src/app/components/PinForm.svelte index bc522181..1ae65e64 100644 --- a/src/app/components/PinForm.svelte +++ b/src/app/components/PinForm.svelte @@ -88,10 +88,7 @@ Title {/snippet} {#snippet input()} - + {/snippet} @@ -133,7 +130,7 @@

A URL or nostr link (note, nevent, naddr, npub, or nprofile).

{/snippet} {#snippet input()} - + {/snippet}
diff --git a/src/app/components/PinboardEdit.svelte b/src/app/components/PinboardEdit.svelte index 936a196d..e233c752 100644 --- a/src/app/components/PinboardEdit.svelte +++ b/src/app/components/PinboardEdit.svelte @@ -65,7 +65,7 @@ Title {/snippet} {#snippet input()} - + {/snippet} @@ -75,7 +75,7 @@ {#snippet input()} {/snippet} diff --git a/src/app/components/PollActions.svelte b/src/app/components/PollActions.svelte index fb7421c4..bf154b22 100644 --- a/src/app/components/PollActions.svelte +++ b/src/app/components/PollActions.svelte @@ -12,7 +12,7 @@ import {canEnforceNip70} from "@app/relays" import {makePollPath, makeSpacePath} from "@app/routes" - interface Props { + type Props = { url: string event: TrustedEvent showRoom?: boolean diff --git a/src/app/components/PrimaryNav.svelte b/src/app/components/PrimaryNav.svelte index f88a0195..cb1b12f7 100644 --- a/src/app/components/PrimaryNav.svelte +++ b/src/app/components/PrimaryNav.svelte @@ -1,5 +1,6 @@ -
+
{#if PLATFORM_RELAYS.length > 0} diff --git a/src/app/components/ProfileInfo.svelte b/src/app/components/ProfileInfo.svelte index 4af6cc63..198d6fe1 100644 --- a/src/app/components/ProfileInfo.svelte +++ b/src/app/components/ProfileInfo.svelte @@ -41,6 +41,7 @@ const copyLink = () => clip(nprofile1) const copyPubkey = () => clip(npub1) const copyJson = () => clip(json) + const back = () => history.back() const formatter = new Intl.DateTimeFormat(LOCALE, { dateStyle: "long", @@ -116,6 +117,6 @@
- + diff --git a/src/app/components/ProfileList.svelte b/src/app/components/ProfileList.svelte index 9eaaabbe..f1fe3258 100644 --- a/src/app/components/ProfileList.svelte +++ b/src/app/components/ProfileList.svelte @@ -16,6 +16,8 @@ } const {subtitle = "", pubkeys, url, ...restProps}: Props = $props() + + const back = () => history.back() @@ -31,6 +33,6 @@ {/each} - + diff --git a/src/app/components/RoomChat.svelte b/src/app/components/RoomChat.svelte index 8fe4274c..a8d49490 100644 --- a/src/app/components/RoomChat.svelte +++ b/src/app/components/RoomChat.svelte @@ -515,8 +515,9 @@ {#if type === "new-messages"}
+ class={cx("flex items-center py-2 text-xs transition-colors", { + "opacity-0": showFixedNewMessages, + })}>

-
+