diff --git a/package.json b/package.json index f096c342..a58b8007 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@ctrl/magnet-link": "^3.1.2", - "@nostr-dev-kit/ndk": "^0.8.21", + "@nostr-dev-kit/ndk": "^0.8.23", "@nostr-fetch/adapter-ndk": "^0.12.2", "@radix-ui/react-alert-dialog": "^1.0.4", "@radix-ui/react-collapsible": "^1.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c41e43e7..3faabcda 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,11 +5,11 @@ dependencies: specifier: ^3.1.2 version: 3.1.2 '@nostr-dev-kit/ndk': - specifier: ^0.8.21 - version: 0.8.21(typescript@5.2.2) + specifier: ^0.8.23 + version: 0.8.23(typescript@5.2.2) '@nostr-fetch/adapter-ndk': specifier: ^0.12.2 - version: 0.12.2(@nostr-dev-kit/ndk@0.8.21)(nostr-fetch@0.12.2) + version: 0.12.2(@nostr-dev-kit/ndk@0.8.23)(nostr-fetch@0.12.2) '@radix-ui/react-alert-dialog': specifier: ^1.0.4 version: 1.0.4(@types/react-dom@18.2.7)(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0) @@ -971,8 +971,8 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@nostr-dev-kit/ndk@0.8.21(typescript@5.2.2): - resolution: {integrity: sha512-nthH3uoFuaXWqhZt96/p/iXTbYcMdkcee6pDm+Wi+MIcEsbj4o7r+ChoQ757TQZtEBLkOmku8/loi2LnHpkI9A==} + /@nostr-dev-kit/ndk@0.8.23(typescript@5.2.2): + resolution: {integrity: sha512-wX/9Cl02gCR0Kz25C/1xxGO47K13Ve1x8IISbkF/M3RTTXftYBvzB7bL8qwLaFaeqb02cMU0YVL+oKDrYzH/Ng==} dependencies: '@noble/hashes': 1.3.2 '@noble/secp256k1': 2.0.0 @@ -992,7 +992,6 @@ packages: nostr-tools: 1.14.2 tsd: 0.28.1 utf8-buffer: 1.0.0 - websocket-polyfill: 0.0.3 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -1000,13 +999,13 @@ packages: - typescript dev: false - /@nostr-fetch/adapter-ndk@0.12.2(@nostr-dev-kit/ndk@0.8.21)(nostr-fetch@0.12.2): + /@nostr-fetch/adapter-ndk@0.12.2(@nostr-dev-kit/ndk@0.8.23)(nostr-fetch@0.12.2): resolution: {integrity: sha512-+7EVuxS5DDZvNo6qbfFp7xRHwIyjyi36hYkiQFDjbQ4gX5LKo9RIPB1P+1XGkOSDFshypTbovZCaFunscJ/zhQ==} peerDependencies: '@nostr-dev-kit/ndk': ^0.7.5 nostr-fetch: ^0.12.2 dependencies: - '@nostr-dev-kit/ndk': 0.8.21(typescript@5.2.2) + '@nostr-dev-kit/ndk': 0.8.23(typescript@5.2.2) '@nostr-fetch/kernel': 0.12.2 nostr-fetch: 0.12.2 dev: false @@ -2945,14 +2944,6 @@ packages: update-browserslist-db: 1.0.11(browserslist@4.21.10) dev: true - /bufferutil@4.0.7: - resolution: {integrity: sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==} - engines: {node: '>=6.14.2'} - requiresBuild: true - dependencies: - node-gyp-build: 4.6.1 - dev: false - /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -3151,13 +3142,6 @@ packages: /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - /d@1.0.1: - resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} - dependencies: - es5-ext: 0.10.62 - type: 1.2.0 - dev: false - /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true @@ -3175,17 +3159,6 @@ packages: resolution: {integrity: sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==} dev: false - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.0.0 - dev: false - /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -3439,31 +3412,6 @@ packages: is-date-object: 1.0.5 is-symbol: 1.0.4 - /es5-ext@0.10.62: - resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} - engines: {node: '>=0.10'} - requiresBuild: true - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - next-tick: 1.1.0 - dev: false - - /es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-symbol: 3.1.3 - dev: false - - /es6-symbol@3.1.3: - resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} - dependencies: - d: 1.0.1 - ext: 1.7.0 - dev: false - /esbuild-plugin-alias@0.2.1: resolution: {integrity: sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==} dev: false @@ -3838,12 +3786,6 @@ packages: strip-final-newline: 3.0.0 dev: true - /ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - dependencies: - type: 2.7.2 - dev: false - /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: false @@ -4409,10 +4351,6 @@ packages: dependencies: which-typed-array: 1.1.11 - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - dev: false - /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -5199,10 +5137,6 @@ packages: engines: {node: '>=4'} dev: false - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: false - /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -5231,10 +5165,6 @@ packages: /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - /next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - dev: false - /nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: false @@ -5253,11 +5183,6 @@ packages: formdata-polyfill: 4.0.10 dev: false - /node-gyp-build@4.6.1: - resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==} - hasBin: true - dev: false - /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true @@ -6723,10 +6648,6 @@ packages: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: false - /tstl@2.5.13: - resolution: {integrity: sha512-h9wayHHFI5+yqt8iau0vqH96cTNhezhZ/Fk/hrIdpfkiMu3lg9nzyvMfs5bIdX51IVzZO6DudLqhkL/rVXpT6g==} - dev: false - /tsutils@3.21.0(typescript@5.2.2): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -6777,14 +6698,6 @@ packages: engines: {node: '>=12.20'} dev: false - /type@1.2.0: - resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - dev: false - - /type@2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - dev: false - /typed-array-buffer@1.0.0: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} @@ -6819,12 +6732,6 @@ packages: for-each: 0.3.3 is-typed-array: 1.1.12 - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: false - /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} @@ -6994,14 +6901,6 @@ packages: react: 18.2.0 dev: false - /utf-8-validate@5.0.10: - resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} - engines: {node: '>=6.14.2'} - requiresBuild: true - dependencies: - node-gyp-build: 4.6.1 - dev: false - /utf8-buffer@1.0.0: resolution: {integrity: sha512-ueuhzvWnp5JU5CiGSY4WdKbiN/PO2AZ/lpeLiz2l38qwdLy/cW40XobgyuIWucNyum0B33bVB0owjFCeGBSLqg==} engines: {node: '>=8'} @@ -7107,29 +7006,6 @@ packages: engines: {node: '>= 8'} dev: false - /websocket-polyfill@0.0.3: - resolution: {integrity: sha512-pF3kR8Uaoau78MpUmFfzbIRxXj9PeQrCuPepGE6JIsfsJ/o/iXr07Q2iQNzKSSblQJ0FiGWlS64N4pVSm+O3Dg==} - dependencies: - tstl: 2.5.13 - websocket: 1.0.34 - transitivePeerDependencies: - - supports-color - dev: false - - /websocket@1.0.34: - resolution: {integrity: sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==} - engines: {node: '>=4.0.0'} - dependencies: - bufferutil: 4.0.7 - debug: 2.6.9 - es5-ext: 0.10.62 - typedarray-to-buffer: 3.1.5 - utf-8-validate: 5.0.10 - yaeti: 0.0.6 - transitivePeerDependencies: - - supports-color - dev: false - /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -7202,11 +7078,6 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /yaeti@0.0.6: - resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==} - engines: {node: '>=0.10.32'} - dev: false - /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} diff --git a/src/app/auth/migrate.tsx b/src/app/auth/migrate.tsx index 6cabe0a8..17378247 100644 --- a/src/app/auth/migrate.tsx +++ b/src/app/auth/migrate.tsx @@ -119,7 +119,7 @@ export function MigrateScreen() {
- + Set a password to protect your key
@@ -127,12 +127,12 @@ export function MigrateScreen() { {...register('password', { required: true })} type={passwordInput} placeholder="min. 4 characters" - className="relative w-full rounded-lg bg-zinc-800 py-3 pl-3.5 pr-11 text-white !outline-none placeholder:text-white/50" + className="relative w-full rounded-lg bg-white/10 py-3 pl-3.5 pr-11 text-white !outline-none placeholder:text-white/50" /> diff --git a/src/shared/icons/chevronUp.tsx b/src/shared/icons/chevronUp.tsx new file mode 100644 index 00000000..d8144fb6 --- /dev/null +++ b/src/shared/icons/chevronUp.tsx @@ -0,0 +1,22 @@ +import { SVGProps } from 'react'; + +export function ChevronUpIcon(props: JSX.IntrinsicAttributes & SVGProps) { + return ( + + + + ); +} diff --git a/src/shared/icons/compose.tsx b/src/shared/icons/compose.tsx index 8857e371..1575b5bb 100644 --- a/src/shared/icons/compose.tsx +++ b/src/shared/icons/compose.tsx @@ -3,17 +3,20 @@ import { SVGProps } from 'react'; export function ComposeIcon(props: JSX.IntrinsicAttributes & SVGProps) { return ( + stroke="currentColor" + strokeLinecap="round" + strokeLinejoin="round" + strokeWidth="1.5" + d="M21 18s-1.334 1.544-2.834 1.544-2.707-1.429-4.18-1.429c-1.472 0-2.326.671-3.236 1.635m6.957-16.293l1.836 1.836a1 1 0 010 1.414l-13.25 13.25a1 1 0 01-.707.293H2.75v-2.836a1 1 0 01.293-.707l13.25-13.25a1 1 0 011.414 0z" + > ); } diff --git a/src/shared/icons/index.tsx b/src/shared/icons/index.ts similarity index 98% rename from src/shared/icons/index.tsx rename to src/shared/icons/index.ts index 5af206f1..fb2ee072 100644 --- a/src/shared/icons/index.tsx +++ b/src/shared/icons/index.ts @@ -54,3 +54,4 @@ export * from './file'; export * from './share'; export * from './expand'; export * from './focus'; +export * from './chevronUp'; diff --git a/src/shared/navigation.tsx b/src/shared/navigation.tsx index a386707c..ee8d62da 100644 --- a/src/shared/navigation.tsx +++ b/src/shared/navigation.tsx @@ -18,6 +18,7 @@ export function Navigation() {
+ Settings +
@@ -93,12 +95,6 @@ export function Navigation() {
-
-
- - -
-
); } diff --git a/src/shared/networkStatusIndicator.tsx b/src/shared/networkStatusIndicator.tsx index e5e3fb46..dcf623ef 100644 --- a/src/shared/networkStatusIndicator.tsx +++ b/src/shared/networkStatusIndicator.tsx @@ -7,7 +7,7 @@ export function NetworkStatusIndicator() { ); } diff --git a/src/shared/notes/kinds/text.tsx b/src/shared/notes/kinds/text.tsx index 76dfe6ea..6237f7f8 100644 --- a/src/shared/notes/kinds/text.tsx +++ b/src/shared/notes/kinds/text.tsx @@ -36,6 +36,7 @@ export function TextNote({ event }: { event: NDKEvent }) { }} disallowedElements={['h1', 'h2', 'h3', 'h4', 'h5', 'h6']} unwrapDisallowed={true} + linkTarget={'_blank'} > {content?.parsed} diff --git a/src/shared/notes/metadata.tsx b/src/shared/notes/metadata.tsx index d424bac3..a1df35b4 100644 --- a/src/shared/notes/metadata.tsx +++ b/src/shared/notes/metadata.tsx @@ -84,7 +84,7 @@ export function NoteMetadata({ id }: { id: string }) {
-
+
{data.users?.map((user, index) => ( ))} diff --git a/src/shared/notes/users/mini.tsx b/src/shared/notes/users/mini.tsx index d04799c1..6fa5d477 100644 --- a/src/shared/notes/users/mini.tsx +++ b/src/shared/notes/users/mini.tsx @@ -6,14 +6,14 @@ export function MiniUser({ pubkey }: { pubkey: string }) { const { status, user } = useProfile(pubkey); if (status === 'loading') { - return
; + return
; } return ( {pubkey} ); } diff --git a/src/shared/notes/users/repost.tsx b/src/shared/notes/users/repost.tsx index abf2e95f..df158ed2 100644 --- a/src/shared/notes/users/repost.tsx +++ b/src/shared/notes/users/repost.tsx @@ -7,7 +7,7 @@ export function RepostUser({ pubkey }: { pubkey: string }) { const { status, user } = useProfile(pubkey); if (status === 'loading') { - return
; + return
; } return ( diff --git a/src/shared/notes/users/thread.tsx b/src/shared/notes/users/thread.tsx index f12d9a8c..7f908d97 100644 --- a/src/shared/notes/users/thread.tsx +++ b/src/shared/notes/users/thread.tsx @@ -9,7 +9,7 @@ export function ThreadUser({ pubkey, time }: { pubkey: string; time: number }) { const createdAt = formatCreatedAt(time); if (status === 'loading') { - return
; + return
; } return ( diff --git a/src/shared/user.tsx b/src/shared/user.tsx index 39e12f50..f365e3d7 100644 --- a/src/shared/user.tsx +++ b/src/shared/user.tsx @@ -65,7 +65,7 @@ export function User({ className={twMerge( `object-cover ${avatarWidth} ${avatarHeight}`, size === 'small' ? 'rounded' : 'rounded-lg', - isRepost ? 'ring-1 ring-zinc-800' : '' + isRepost ? 'ring-1 ring-black' : '' )} /> diff --git a/tailwind.config.js b/tailwind.config.js index e15a381f..8110e056 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -61,6 +61,9 @@ module.exports = { overlayShow: 'overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1)', contentShow: 'contentShow 150ms cubic-bezier(0.16, 1, 0.3, 1)', }, + transitionTimingFunction: { + smooth: 'cubic-bezier(0.6, 0.6, 0, 1)', + }, }, }, plugins: [require('@tailwindcss/typography')],