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,
+ })}>
-
+