{renderKind(data)}
diff --git a/src/app/space/index.tsx b/src/app/space/index.tsx
index c1931b26..d77bcc39 100644
--- a/src/app/space/index.tsx
+++ b/src/app/space/index.tsx
@@ -14,6 +14,7 @@ import {
LocalArticlesWidget,
LocalFeedsWidget,
LocalFilesWidget,
+ LocalFollowsWidget,
LocalNetworkWidget,
LocalThreadWidget,
LocalUserWidget,
@@ -22,7 +23,6 @@ import {
XfeedsWidget,
XhashtagWidget,
} from '@shared/widgets';
-import { LocalFollowsWidget } from '@shared/widgets/local/follows';
import { WidgetKinds, useWidgets } from '@stores/widgets';
diff --git a/src/index.css b/src/index.css
index dc3515a7..643f27ec 100644
--- a/src/index.css
+++ b/src/index.css
@@ -12,7 +12,11 @@
}
.markdown {
- @apply prose prose-white max-w-none select-text hyphens-auto text-white prose-p:mb-0 prose-p:mt-0 prose-p:break-words prose-p:[word-break:break-word] prose-p:last:mb-0 prose-a:break-words prose-a:break-all prose-a:font-normal hover:prose-a:text-fuchsia-500 prose-blockquote:mb-1 prose-blockquote:mt-1 prose-blockquote:border-l-[2px] prose-blockquote:border-fuchsia-500 prose-blockquote:pl-2 prose-pre:whitespace-pre-wrap prose-pre:break-words prose-pre:break-all prose-pre:bg-white/10 prose-ol:m-0 prose-ol:mb-1 prose-ul:mb-1 prose-ul:mt-1 prose-img:mb-2 prose-img:mt-3 prose-hr:mx-0 prose-hr:my-2;
+ @apply prose prose-white max-w-none select-text hyphens-auto text-white prose-headings:mb-1 prose-headings:mt-3 prose-p:mb-0 prose-p:mt-0 prose-p:break-words prose-p:[word-break:break-word] prose-p:last:mb-0 prose-a:break-words prose-a:break-all prose-a:font-normal hover:prose-a:text-fuchsia-500 prose-blockquote:mb-1 prose-blockquote:mt-1 prose-blockquote:border-l-[2px] prose-blockquote:border-fuchsia-500 prose-blockquote:pl-2 prose-pre:whitespace-pre-wrap prose-pre:break-words prose-pre:break-all prose-pre:bg-white/10 prose-ol:m-0 prose-ol:mb-1 prose-ul:mb-1 prose-ul:mt-1 prose-img:mb-2 prose-img:mt-3 prose-hr:mx-0 prose-hr:my-2;
+}
+
+.markdown-article {
+ @apply prose prose-white max-w-none select-text hyphens-auto text-white/80 prose-headings:mb-1 prose-headings:mt-3 prose-headings:text-white prose-p:mb-2 prose-p:mt-0 prose-p:break-words prose-p:[word-break:break-word] prose-a:break-words prose-a:break-all prose-a:font-normal hover:prose-a:text-fuchsia-500 prose-blockquote:mb-1 prose-blockquote:mt-1 prose-blockquote:border-l-[2px] prose-blockquote:border-fuchsia-500 prose-blockquote:pl-2 prose-pre:whitespace-pre-wrap prose-pre:break-words prose-pre:break-all prose-pre:bg-white/10 prose-ol:m-0 prose-ol:mb-1 prose-ul:mb-1 prose-ul:mt-1 prose-img:mb-2 prose-img:mt-3 prose-hr:mx-0 prose-hr:my-2;
}
.ProseMirror p.is-empty::before {
diff --git a/src/libs/ndk/instance.ts b/src/libs/ndk/instance.ts
index fa6bf19c..334b9bc9 100644
--- a/src/libs/ndk/instance.ts
+++ b/src/libs/ndk/instance.ts
@@ -6,14 +6,11 @@ import { useEffect, useMemo, useState } from 'react';
import TauriAdapter from '@libs/ndk/cache';
import { useStorage } from '@libs/storage/provider';
-import { FULL_RELAYS } from '@stores/constants';
-
export const NDKInstance = () => {
- const { db } = useStorage();
-
const [ndk, setNDK] = useState(undefined);
const [relayUrls, setRelayUrls] = useState([]);
+ const { db } = useStorage();
const cacheAdapter = useMemo(() => new TauriAdapter(), [ndk]);
// TODO: fully support NIP-11
@@ -23,11 +20,10 @@ export const NDKInstance = () => {
const timeoutId = setTimeout(() => controller.abort('timeout'), 10000);
// get relays
- const relays = (await db.getExplicitRelayUrls()) ?? FULL_RELAYS;
+ const relays = await db.getExplicitRelayUrls();
const requests = relays.map((relay) => {
const url = new URL(relay);
-
return fetch(`https://${url.hostname + url.pathname}`, {
headers: { Accept: 'application/nostr+json' },
signal: controller.signal,
@@ -35,11 +31,12 @@ export const NDKInstance = () => {
});
const responses = await Promise.all(requests);
- const errors = responses.filter((response) => !response.ok);
+ const successes = responses.filter((res) => res.ok);
+ const errors = responses.filter((res) => !res.ok);
if (errors.length > 0) throw errors.map((response) => Error(response.statusText));
- const verifiedRelays: string[] = responses.map((res) => {
+ const verifiedRelays: string[] = successes.map((res) => {
const url = new URL(res.url);
if (url.protocol === 'http:') return `ws://${url.hostname + url.pathname}`;
if (url.protocol === 'https:') return `wss://${url.hostname + url.pathname}`;
@@ -60,8 +57,6 @@ export const NDKInstance = () => {
const instance = new NDK({
explicitRelayUrls,
cacheAdapter,
- // outboxRelayUrls: ['wss://purplepag.es'],
- // enableOutboxModel: true,
});
try {
diff --git a/src/libs/ndk/provider.tsx b/src/libs/ndk/provider.tsx
index 58011bb8..76e54034 100644
--- a/src/libs/ndk/provider.tsx
+++ b/src/libs/ndk/provider.tsx
@@ -5,12 +5,12 @@ import { PropsWithChildren, createContext, useContext } from 'react';
import { NDKInstance } from '@libs/ndk/instance';
interface NDKContext {
- ndk: NDK;
+ ndk: undefined | NDK;
relayUrls: string[];
}
const NDKContext = createContext({
- ndk: new NDK({}),
+ ndk: undefined,
relayUrls: [],
});
diff --git a/src/libs/storage/instance.ts b/src/libs/storage/instance.ts
index 25bf61d0..1114c796 100644
--- a/src/libs/storage/instance.ts
+++ b/src/libs/storage/instance.ts
@@ -4,6 +4,8 @@ import { Platform } from '@tauri-apps/api/os';
import Database from 'tauri-plugin-sql-api';
import { Stronghold } from 'tauri-plugin-stronghold-api';
+import { FULL_RELAYS } from '@stores/constants';
+
import { Account, DBEvent, Relays, Widget } from '@utils/types';
export class LumeStorage {
@@ -287,8 +289,9 @@ export class LumeStorage {
`SELECT * FROM relays WHERE account_id = "${this.account.id}" ORDER BY id DESC LIMIT 50;`
);
- if (result.length < 1) return null;
- return result.map((el) => el.relay);
+ if (result.length < 1) return FULL_RELAYS;
+ // return [...new Set(result.map((el) => el.relay))];
+ return FULL_RELAYS;
}
public async createRelay(relay: string, purpose?: string) {
diff --git a/src/shared/notes/kinds/articleDetail.tsx b/src/shared/notes/kinds/articleDetail.tsx
index cff9fbe7..1f573a99 100644
--- a/src/shared/notes/kinds/articleDetail.tsx
+++ b/src/shared/notes/kinds/articleDetail.tsx
@@ -26,7 +26,7 @@ export function ArticleDetailNote({ event }: { event: NDKEvent }) {
}, [event.id]);*/
return (
-
+
{event.content}
);
diff --git a/src/shared/widgets/index.ts b/src/shared/widgets/index.ts
index 68e240ec..7b29f9d0 100644
--- a/src/shared/widgets/index.ts
+++ b/src/shared/widgets/index.ts
@@ -4,6 +4,7 @@ export * from './local/user';
export * from './local/thread';
export * from './local/files';
export * from './local/articles';
+export * from './local/follows';
export * from './global/articles';
export * from './global/files';
export * from './global/hashtag';
diff --git a/src/shared/widgets/local/feeds.tsx b/src/shared/widgets/local/feeds.tsx
index 26c1e09f..ac1dc890 100644
--- a/src/shared/widgets/local/feeds.tsx
+++ b/src/shared/widgets/local/feeds.tsx
@@ -71,7 +71,7 @@ export function LocalFeedsWidget({ params }: { params: Widget }) {
data-index={index}
ref={virtualizer.measureElement}
>
-
+
);
case 1063:
diff --git a/src/shared/widgets/local/follows.tsx b/src/shared/widgets/local/follows.tsx
index 50f7a79e..73810d4e 100644
--- a/src/shared/widgets/local/follows.tsx
+++ b/src/shared/widgets/local/follows.tsx
@@ -70,7 +70,7 @@ export function LocalFollowsWidget({ params }: { params: Widget }) {
data-index={index}
ref={virtualizer.measureElement}
>
-
+
);
case 1063:
diff --git a/src/shared/widgets/local/network.tsx b/src/shared/widgets/local/network.tsx
index ddd0d530..68aa833e 100644
--- a/src/shared/widgets/local/network.tsx
+++ b/src/shared/widgets/local/network.tsx
@@ -73,7 +73,7 @@ export function LocalNetworkWidget() {
data-index={index}
ref={virtualizer.measureElement}
>
-