diff --git a/package.json b/package.json
index 79d3620a..d6aa0445 100644
--- a/package.json
+++ b/package.json
@@ -83,6 +83,7 @@
"tailwind-scrollbar": "^3.0.5",
"tauri-controls": "^0.2.0",
"tippy.js": "^6.3.7",
+ "tiptap-markdown": "^0.8.2",
"virtua": "^0.14.0",
"zustand": "^4.4.3"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 06a1b85a..13e6c655 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -200,6 +200,9 @@ dependencies:
tippy.js:
specifier: ^6.3.7
version: 6.3.7
+ tiptap-markdown:
+ specifier: ^0.8.2
+ version: 0.8.2(@tiptap/core@2.1.12)
virtua:
specifier: ^0.14.0
version: 0.14.0(react-dom@18.2.0)(react@18.2.0)
@@ -2745,12 +2748,27 @@ packages:
resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==}
dev: true
+ /@types/linkify-it@3.0.4:
+ resolution: {integrity: sha512-hPpIeeHb/2UuCw06kSNAOVWgehBLXEo0/fUs0mw3W2qhqX89PI2yvok83MnuctYGCPrabGIoi0fFso4DQ+sNUQ==}
+ dev: false
+
+ /@types/markdown-it@12.2.3:
+ resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==}
+ dependencies:
+ '@types/linkify-it': 3.0.4
+ '@types/mdurl': 1.0.4
+ dev: false
+
/@types/mdast@3.0.14:
resolution: {integrity: sha512-gVZ04PGgw1qLZKsnWnyFv4ORnaJ+DXLdHTVSFbU8yX6xZ34Bjg4Q32yPkmveUP1yItXReKfB0Aknlh/3zxTKAw==}
dependencies:
'@types/unist': 2.0.9
dev: false
+ /@types/mdurl@1.0.4:
+ resolution: {integrity: sha512-ARVxjAEX5TARFRzpDRVC6cEk0hUIXCCwaMhz8y7S1/PxU6zZS1UMjyobz7q4w/D/R552r4++EhwmXK1N2rAy0A==}
+ dev: false
+
/@types/ms@0.7.33:
resolution: {integrity: sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==}
dev: false
@@ -4735,6 +4753,10 @@ packages:
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
dev: false
+ /markdown-it-task-lists@2.1.1:
+ resolution: {integrity: sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==}
+ dev: false
+
/markdown-it@13.0.2:
resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==}
hasBin: true
@@ -6434,6 +6456,18 @@ packages:
'@popperjs/core': 2.11.8
dev: false
+ /tiptap-markdown@0.8.2(@tiptap/core@2.1.12):
+ resolution: {integrity: sha512-RyfpnH475+FYVh1fCiWF9+wBvA8T6X3PqxZR1MApEewxkoQ5kREQFiVwjZiez9qUQk/Bxu3RerFSJot65V6cbQ==}
+ peerDependencies:
+ '@tiptap/core': ^2.0.3
+ dependencies:
+ '@tiptap/core': 2.1.12(@tiptap/pm@2.1.12)
+ '@types/markdown-it': 12.2.3
+ markdown-it: 13.0.2
+ markdown-it-task-lists: 2.1.1
+ prosemirror-markdown: 1.11.2
+ dev: false
+
/to-fast-properties@2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'}
diff --git a/src/app.tsx b/src/app.tsx
index 65360885..009d7157 100644
--- a/src/app.tsx
+++ b/src/app.tsx
@@ -123,6 +123,13 @@ export default function App() {
element:
Your private key is your password. If you lose this key, you will lose access to your account! Copy it and keep it in a safe place.{' '} - + There is no way to reset your private key.
diff --git a/src/app/auth/onboarding/enrich.tsx b/src/app/auth/onboarding/enrich.tsx index ec69c273..350a2698 100644 --- a/src/app/auth/onboarding/enrich.tsx +++ b/src/app/auth/onboarding/enrich.tsx @@ -1,8 +1,10 @@ +import { NDKEvent, NDKKind } from '@nostr-dev-kit/ndk'; import { useQuery } from '@tanstack/react-query'; import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { toast } from 'sonner'; +import { useNDK } from '@libs/ndk/provider'; import { useStorage } from '@libs/storage/provider'; import { ArrowLeftIcon, CheckCircleIcon, LoaderIcon } from '@shared/icons'; @@ -10,10 +12,10 @@ import { User } from '@shared/user'; import { useOnboarding } from '@stores/onboarding'; -import { useNostr } from '@utils/hooks/useNostr'; import { arrayToNIP02 } from '@utils/transform'; export function OnboardEnrichScreen() { + const { ndk } = useNDK(); const { db } = useStorage(); const { status, data } = useQuery(['trending-profiles-widget'], async () => { const res = await fetch('https://api.nostr.band/v0/trending/profiles'); @@ -22,7 +24,6 @@ export function OnboardEnrichScreen() { } return res.json(); }); - const { publish } = useNostr(); const [loading, setLoading] = useState(false); const [follows, setFollows] = useState([]); @@ -43,10 +44,17 @@ export function OnboardEnrichScreen() { setLoading(true); const tags = arrayToNIP02(follows); - const event = await publish({ content: '', kind: 3, tags: tags }); + + const event = new NDKEvent(ndk); + event.content = ''; + event.kind = NDKKind.Contacts; + event.created_at = Math.floor(Date.now() / 1000); + event.tags = tags; + + const publish = await event.publish(); // redirect to next step - if (event) { + if (publish) { db.account.follows = follows; await db.updateAccount('follows', JSON.stringify(follows)); diff --git a/src/app/auth/onboarding/relays.tsx b/src/app/auth/onboarding/relays.tsx index c77dc270..3c940fae 100644 --- a/src/app/auth/onboarding/relays.tsx +++ b/src/app/auth/onboarding/relays.tsx @@ -1,8 +1,10 @@ +import { NDKEvent } from '@nostr-dev-kit/ndk'; import { useQuery } from '@tanstack/react-query'; import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { toast } from 'sonner'; +import { useNDK } from '@libs/ndk/provider'; import { useStorage } from '@libs/storage/provider'; import { ArrowLeftIcon, CheckCircleIcon, LoaderIcon } from '@shared/icons'; @@ -19,8 +21,8 @@ export function OnboardRelaysScreen() { const [loading, setLoading] = useState(false); const [relays, setRelays] = useState(new Set