diff --git a/README.md b/README.md index ed5b10fe..678e5b6d 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,8 @@ If you like Coracle and want to support its development, you can donate sats via - [x] Fixed likes not showing up in alerts - [x] Raised threshold for pool to 2 so we don't have such a small amount of results - [x] Wait for profile info on login, navigate to network by default +- [x] Fix mention selection, inheritance, and inclusion in notes +- [x] Parse links without http at the beginning ## 0.2.9 diff --git a/package-lock.json b/package-lock.json index 3e9fd068..6c644ed7 100644 Binary files a/package-lock.json and b/package-lock.json differ diff --git a/package.json b/package.json index 5f3bd4b6..18fa9688 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "qa:lint": "eslint src/*/** --quiet", "qa:check": "svelte-check --tsconfig ./tsconfig.json --threshold error", "qa:all": "run-p qa:lint qa:check", - "watch": "find src -type f | entr -r npm run qa:all" + "watch": "find src -type f | entr -r" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^1.1.0", @@ -33,7 +33,6 @@ "classnames": "^2.3.2", "compressorjs": "^1.1.1", "dexie": "^3.2.2", - "extract-urls": "^1.3.2", "fuse.js": "^6.6.2", "hurdak": "github:ConsignCloud/hurdak", "husky": "^8.0.3", diff --git a/src/app/cmd.js b/src/app/cmd.js index 76e74e1f..00e80176 100644 --- a/src/app/cmd.js +++ b/src/app/cmd.js @@ -1,8 +1,8 @@ import {prop, pick, join, uniqBy, last} from 'ramda' import {get} from 'svelte/store' import {first} from "hurdak/lib/hurdak" -import {Tags, isRelay, roomAttrs} from 'src/util/nostr' -import {keys, publish, getRelays} from 'src/agent' +import {Tags, isRelay, roomAttrs, displayPerson} from 'src/util/nostr' +import {keys, publish, getRelays, getPerson} from 'src/agent' const updateUser = (relays, updates) => publishEvent(relays, 0, {content: JSON.stringify(updates)}) @@ -30,7 +30,13 @@ const createDirectMessage = (relays, pubkey, content) => publishEvent(relays, 4, {content, tags: [["p", pubkey]]}) const createNote = (relays, content, mentions = [], topics = []) => { - mentions = mentions.map(p => ["p", p, prop('url', first(getRelays(p)))]) + mentions = mentions.map(p => { + const {url} = first(getRelays(p)) + const name = displayPerson(getPerson(p, true)) + + return ["p", p, url, name] + }) + topics = topics.map(t => ["t", t]) publishEvent(relays, 1, {content, tags: mentions.concat(topics)}) diff --git a/src/partials/Compose.svelte b/src/partials/Compose.svelte index a7a78f0b..6645ba5e 100644 --- a/src/partials/Compose.svelte +++ b/src/partials/Compose.svelte @@ -2,6 +2,7 @@ import {prop, reject, sortBy, last} from 'ramda' import {fly} from 'svelte/transition' import {fuzzy} from "src/util/misc" + import {displayPerson} from "src/util/nostr" import {fromParentOffset} from "src/util/html" import Badge from "src/partials/Badge.svelte" import {people} from "src/agent/data" @@ -62,13 +63,14 @@ selection.collapse(space, 2) } - const pickSuggestion = ({name, pubkey}) => { - highlightWord('@', getWord().length, name) + const pickSuggestion = person => { + const display = displayPerson(person) + + highlightWord('@', getWord().length, display) mentions.push({ - name, - pubkey, - length: name.length + 1, + pubkey: person.pubkey, + length: display.length + 1, end: getText().length - 2, }) @@ -181,9 +183,10 @@
{#each suggestions as person, i (person.pubkey)} diff --git a/src/partials/Note.svelte b/src/partials/Note.svelte index e50cde2a..08f6c9ec 100644 --- a/src/partials/Note.svelte +++ b/src/partials/Note.svelte @@ -1,12 +1,12 @@