@@ -184,6 +265,7 @@ const NotesTab = () => {
type: "pubkey",
items: follows.item,
discriminator: `follows:${publicKey?.slice(0, 12)}`,
+ streams: true,
};
return (
@@ -207,7 +289,12 @@ const ConversationsTab = () => {
const TagsTab = () => {
const { tag } = useParams();
- const subject: TimelineSubject = { type: "hashtag", items: [tag ?? ""], discriminator: `tags-${tag}` };
+ const subject: TimelineSubject = {
+ type: "hashtag",
+ items: [tag ?? ""],
+ discriminator: `tags-${tag}`,
+ streams: true,
+ };
return
;
};
@@ -237,6 +324,22 @@ export const RootRoutes = [
path: "tag/:tag",
element:
,
},
+ {
+ path: "trending/notes",
+ element:
,
+ },
+ {
+ path: "trending/people",
+ element:
,
+ },
+ {
+ path: "suggested",
+ element:
,
+ },
+ {
+ path: "/t/:tag",
+ element:
,
+ },
],
},
] as RouteObject[];
diff --git a/packages/app/src/Pages/messages.ts b/packages/app/src/Pages/messages.ts
index d5c872d5..8cc33e87 100644
--- a/packages/app/src/Pages/messages.ts
+++ b/packages/app/src/Pages/messages.ts
@@ -2,11 +2,9 @@ import { defineMessages } from "react-intl";
export default defineMessages({
Login: { defaultMessage: "Login" },
- Conversations: { defaultMessage: "Conversations" },
Global: { defaultMessage: "Global" },
NewUsers: { defaultMessage: "New users page" },
NoFollows: { defaultMessage: "Hmm nothing here.. Checkout {newUsersPage} to follow some recommended nostrich's!" },
- Notes: { defaultMessage: "Notes" },
Reactions: { defaultMessage: "Reactions" },
Followers: { defaultMessage: "Followers" },
FollowersCount: { defaultMessage: "{n} Followers" },
diff --git a/packages/app/src/index.css b/packages/app/src/index.css
index e05630ce..9c7f8acd 100644
--- a/packages/app/src/index.css
+++ b/packages/app/src/index.css
@@ -13,6 +13,7 @@
--error: #ff6053;
--success: #2ad544;
--warning: #ff8800;
+ --live: #f83838;
--gray-superlight: #eee;
--gray-light: #999;
@@ -373,6 +374,22 @@ input:disabled {
justify-content: space-between;
}
+.g2 {
+ gap: 2px;
+}
+
+.g4 {
+ gap: 4px;
+}
+
+.g8 {
+ gap: 8px;
+}
+
+.g12 {
+ gap: 12px;
+}
+
.w-max {
width: 100%;
width: stretch;
@@ -637,3 +654,71 @@ button.tall {
/* Fix width calculation to account for 12px padding on input */
width: calc(100% - 24px) !important;
}
+
+.ctx-menu {
+ color: var(--font-secondary-color) !important;
+ background: transparent !important;
+ box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.4) !important;
+ min-width: 0 !important;
+ margin: 0 !important;
+}
+
+.ctx-menu li {
+ background: #1e1e1e !important;
+ padding: 8px 32px 8px 32px !important;
+ display: grid !important;
+ grid-template-columns: 2rem auto !important;
+ font-size: 16px;
+ font-weight: 600;
+}
+
+.light .ctx-menu li {
+ background: var(--note-bg) !important;
+}
+
+.ctx-menu li:first-of-type {
+ background: transparent !important;
+}
+
+.ctx-menu li:nth-child(3) {
+ padding-top: 24px !important;
+ border-top-left-radius: 16px !important;
+ border-top-right-radius: 16px !important;
+}
+
+.ctx-menu li:last-of-type {
+ padding-bottom: 24px !important;
+ border-bottom-left-radius: 16px !important;
+ border-bottom-right-radius: 16px !important;
+}
+
+.ctx-menu li:hover {
+ color: white !important;
+ background: #2a2a2a !important;
+}
+
+.ctx-menu li:hover:first-of-type {
+ background: transparent !important;
+}
+
+.light .ctx-menu li:hover {
+ color: white !important;
+ background: var(--font-secondary-color) !important;
+}
+
+.ctx-menu .red {
+ color: var(--error) !important;
+}
+
+.ctx-menu .close-menu {
+ position: absolute !important;
+ width: 100vw !important;
+ height: 100vh !important;
+ top: -400px !important;
+ left: -600px !important;
+}
+
+.ctx-menu .close-menu-container {
+ background: transparent !important;
+ position: absolute !important;
+}
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
index 1f65a73f..12348382 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -22,7 +22,6 @@ import ErrorPage from "Pages/ErrorPage";
import VerificationPage from "Pages/Verification";
import MessagesPage from "Pages/MessagesPage";
import DonatePage from "Pages/DonatePage";
-import HashTagsPage from "Pages/HashTagsPage";
import SearchPage from "Pages/SearchPage";
import HelpPage from "Pages/HelpPage";
import { NewUserRoutes } from "Pages/new";
@@ -132,10 +131,6 @@ export const router = createBrowserRouter([
path: "/donate",
element:
,
},
- {
- path: "/t/:tag",
- element:
,
- },
{
path: "/search/:keyword?",
element:
,
diff --git a/packages/app/src/lang.json b/packages/app/src/lang.json
index 011e7537..0c10ed17 100644
--- a/packages/app/src/lang.json
+++ b/packages/app/src/lang.json
@@ -269,9 +269,6 @@
"BGCM48": {
"defaultMessage": "Write access to Snort relay, with 1 year of event retention"
},
- "BGxpTN": {
- "defaultMessage": "Stream Chat"
- },
"BOUMjw": {
"defaultMessage": "No nostr users found for {twitterUsername}"
},
@@ -822,9 +819,6 @@
"c3g2hL": {
"defaultMessage": "Broadcast Again"
},
- "cE4Hfw": {
- "defaultMessage": "Discover"
- },
"cFbU1B": {
"defaultMessage": "Using Alby? Go to {link} to get your NWC config!"
},
@@ -875,9 +869,6 @@
"eSzf2G": {
"defaultMessage": "A single zap of {nIn} sats will allocate {nOut} sats to the zap pool."
},
- "fBI91o": {
- "defaultMessage": "Zap"
- },
"fOksnD": {
"defaultMessage": "Can't vote because LNURL service does not support zaps"
},
@@ -1123,9 +1114,6 @@
"qDwvZ4": {
"defaultMessage": "Unknown error"
},
- "qInqHy": {
- "defaultMessage": "Message..."
- },
"qMx1sA": {
"defaultMessage": "Default Zap amount"
},
diff --git a/packages/system/src/text.ts b/packages/system/src/text.ts
index 91b55b8a..b20a2e7a 100644
--- a/packages/system/src/text.ts
+++ b/packages/system/src/text.ts
@@ -188,7 +188,7 @@ export function transformText(body: string, tags: Array
>) {
fragments = extractCustomEmoji(fragments, tags);
fragments = fragments.map(a => {
if (typeof a === "string") {
- if (a.trim().length > 0) {
+ if (a.length > 0) {
return { type: "text", content: a } as ParsedFragment;
}
} else {