mirror of
https://github.com/hzrd149/nostrudel.git
synced 2025-03-17 21:31:43 +01:00
add basic views for groups
This commit is contained in:
parent
54a9c26901
commit
c88e2df5f0
@ -55,7 +55,7 @@
|
||||
"applesauce-factory": "next",
|
||||
"applesauce-lists": "next",
|
||||
"applesauce-loaders": "next",
|
||||
"applesauce-net": "next",
|
||||
"applesauce-net": "^0.10.0",
|
||||
"applesauce-react": "next",
|
||||
"applesauce-signer": "next",
|
||||
"bech32": "^2.0.0",
|
||||
@ -75,7 +75,7 @@
|
||||
"framer-motion": "^10.18.0",
|
||||
"gif-picker-react": "^1.4.0",
|
||||
"handlebars": "^4.7.8",
|
||||
"hls.js": "^1.5.19",
|
||||
"hls.js": "^1.5.20",
|
||||
"i18n-iso-countries": "^7.13.0",
|
||||
"idb": "^8.0.1",
|
||||
"identicon.js": "^2.3.3",
|
||||
@ -164,7 +164,7 @@
|
||||
"camelcase": "^8.0.0",
|
||||
"eventemitter3": "^5.0.1",
|
||||
"typescript": "^5.7.3",
|
||||
"vite": "^5.4.12",
|
||||
"vite": "^5.4.14",
|
||||
"vite-plugin-pwa": "^0.21.1",
|
||||
"vite-tsconfig-paths": "^5.1.4",
|
||||
"workbox-build": "^7.3.0",
|
||||
|
300
pnpm-lock.yaml
generated
300
pnpm-lock.yaml
generated
@ -104,31 +104,31 @@ importers:
|
||||
version: 0.7.2
|
||||
applesauce-channel:
|
||||
specifier: next
|
||||
version: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
version: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-content:
|
||||
specifier: next
|
||||
version: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
version: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-core:
|
||||
specifier: next
|
||||
version: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
version: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-factory:
|
||||
specifier: next
|
||||
version: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
version: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-lists:
|
||||
specifier: next
|
||||
version: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
version: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-loaders:
|
||||
specifier: next
|
||||
version: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
version: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-net:
|
||||
specifier: next
|
||||
version: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
specifier: ^0.10.0
|
||||
version: 0.10.0(typescript@5.7.3)
|
||||
applesauce-react:
|
||||
specifier: next
|
||||
version: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
version: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-signer:
|
||||
specifier: next
|
||||
version: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
version: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
bech32:
|
||||
specifier: ^2.0.0
|
||||
version: 2.0.0
|
||||
@ -181,8 +181,8 @@ importers:
|
||||
specifier: ^4.7.8
|
||||
version: 4.7.8
|
||||
hls.js:
|
||||
specifier: ^1.5.19
|
||||
version: 1.5.19
|
||||
specifier: ^1.5.20
|
||||
version: 1.5.20
|
||||
i18n-iso-countries:
|
||||
specifier: ^7.13.0
|
||||
version: 7.13.0
|
||||
@ -269,7 +269,7 @@ importers:
|
||||
version: 9.0.3(@types/react@18.3.18)(react@19.0.0)
|
||||
react-mosaic-component:
|
||||
specifier: ^6.1.1
|
||||
version: 6.1.1(@types/node@22.10.7)(@types/react@18.3.18)(dnd-core@16.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
version: 6.1.1(@types/node@22.10.10)(@types/react@18.3.18)(dnd-core@16.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
react-photo-album:
|
||||
specifier: ^2.4.1
|
||||
version: 2.4.1(react@19.0.0)
|
||||
@ -363,7 +363,7 @@ importers:
|
||||
version: 6.0.2(@capacitor/core@6.2.0)
|
||||
'@capacitor/assets':
|
||||
specifier: ^3.0.5
|
||||
version: 3.0.5(@types/node@22.10.7)(typescript@5.7.3)
|
||||
version: 3.0.5(@types/node@22.10.10)(typescript@5.7.3)
|
||||
'@capacitor/cli':
|
||||
specifier: ^6.2.0
|
||||
version: 6.2.0
|
||||
@ -432,7 +432,7 @@ importers:
|
||||
version: 0.8.7
|
||||
'@vitejs/plugin-react':
|
||||
specifier: ^4.3.4
|
||||
version: 4.3.4(vite@5.4.12(@types/node@22.10.7)(terser@5.37.0))
|
||||
version: 4.3.4(vite@5.4.14(@types/node@22.10.10)(terser@5.37.0))
|
||||
camelcase:
|
||||
specifier: ^8.0.0
|
||||
version: 8.0.0
|
||||
@ -443,14 +443,14 @@ importers:
|
||||
specifier: ^5.7.3
|
||||
version: 5.7.3
|
||||
vite:
|
||||
specifier: ^5.4.12
|
||||
version: 5.4.12(@types/node@22.10.7)(terser@5.37.0)
|
||||
specifier: ^5.4.14
|
||||
version: 5.4.14(@types/node@22.10.10)(terser@5.37.0)
|
||||
vite-plugin-pwa:
|
||||
specifier: ^0.21.1
|
||||
version: 0.21.1(vite@5.4.12(@types/node@22.10.7)(terser@5.37.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
|
||||
version: 0.21.1(vite@5.4.14(@types/node@22.10.10)(terser@5.37.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
|
||||
vite-tsconfig-paths:
|
||||
specifier: ^5.1.4
|
||||
version: 5.1.4(typescript@5.7.3)(vite@5.4.12(@types/node@22.10.7)(terser@5.37.0))
|
||||
version: 5.1.4(typescript@5.7.3)(vite@5.4.14(@types/node@22.10.10)(terser@5.37.0))
|
||||
workbox-build:
|
||||
specifier: ^7.3.0
|
||||
version: 7.3.0(@types/babel__core@7.20.5)
|
||||
@ -1954,8 +1954,8 @@ packages:
|
||||
'@types/fs-extra@8.1.5':
|
||||
resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==}
|
||||
|
||||
'@types/geojson@7946.0.15':
|
||||
resolution: {integrity: sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==}
|
||||
'@types/geojson@7946.0.16':
|
||||
resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
|
||||
|
||||
'@types/hast@3.0.4':
|
||||
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
|
||||
@ -2005,8 +2005,8 @@ packages:
|
||||
'@types/node@12.20.55':
|
||||
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
|
||||
|
||||
'@types/node@22.10.7':
|
||||
resolution: {integrity: sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==}
|
||||
'@types/node@22.10.10':
|
||||
resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==}
|
||||
|
||||
'@types/normalize-package-data@2.4.4':
|
||||
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
|
||||
@ -2096,8 +2096,8 @@ packages:
|
||||
react: '>=16.8.0'
|
||||
react-dom: '>=16.8.0'
|
||||
|
||||
'@ungap/structured-clone@1.2.1':
|
||||
resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==}
|
||||
'@ungap/structured-clone@1.3.0':
|
||||
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
|
||||
|
||||
'@vitejs/plugin-react@4.3.4':
|
||||
resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
|
||||
@ -2195,32 +2195,35 @@ packages:
|
||||
engines: {node: '>=8.0.0'}
|
||||
hasBin: true
|
||||
|
||||
applesauce-channel@0.0.0-next-20250120191411:
|
||||
resolution: {integrity: sha512-EhMC195fKq8Tez16Zl/ck1Pl+jhfkjyJNxyD5N3SQQkBjlKeI6W1gQiOi6mEqjVtnfRoHyhva7GLnuZvTYiOMA==}
|
||||
applesauce-channel@0.0.0-next-20250123215242:
|
||||
resolution: {integrity: sha512-Hnad4rOAZOBknAwbe+D3NgmOwHiaDs0bb0753uWapg4hCoJdxJnkGVv1cO5afDsOjJKXSmxtzh9A0n/JEAr7uA==}
|
||||
|
||||
applesauce-content@0.0.0-next-20250120191411:
|
||||
resolution: {integrity: sha512-3ecwZCk35xttSi8M5GN8r6AWqSUF4RqkrSCnxH2i/Mk5L97q1PJdjRaBlQNGkKzmacZRUasFuiCuNqvKFh2+aQ==}
|
||||
applesauce-content@0.0.0-next-20250123215242:
|
||||
resolution: {integrity: sha512-OKzIlcuSim6vHzw/4yJpAhcIIy2hHEo58GP50btmn4BhWDf0cLNHw/X3GRRep3+5GHnYIFcNXmne/ngySwW9QA==}
|
||||
|
||||
applesauce-core@0.0.0-next-20250120191411:
|
||||
resolution: {integrity: sha512-fgqqYpaBWBudk6jdPLNKkAtCVETkcsdFwerjPCcc6+CKcGktP/JO/xhyQUo2uuY+6ED9p840Efor0dzRoBTVAQ==}
|
||||
applesauce-core@0.0.0-next-20250123215242:
|
||||
resolution: {integrity: sha512-k7407vczwk6vcYJcr/d/32HWT4MGEZ4aDR57s79kkRg5SDcUyiksroZvn+u1YTldsQ57Ap9v2fuN1HlsJmNDOA==}
|
||||
|
||||
applesauce-factory@0.0.0-next-20250120191411:
|
||||
resolution: {integrity: sha512-MOd2fdpdmehgH3XqxUvWnm0cc1DRjRpHXnBvfG0L5t4/3u/WyzJOAXWV+IOrb3JuyBsYq9jFPI54KJE6kgTNow==}
|
||||
applesauce-core@0.10.0:
|
||||
resolution: {integrity: sha512-QMhUh4FIARcqY5soCB4Z8DIu+py0rYb28IgWT4gP9DLBGpDrY8lStXk7W1/46TLjEH97y0hbiXFK7kMCZ31oOQ==}
|
||||
|
||||
applesauce-lists@0.0.0-next-20250120191411:
|
||||
resolution: {integrity: sha512-b7z4mYilwUySHPKOYbjpWbYAorbbZw38LjGD7iBMfMdigMiOIzW1daeU+hYLj4aJtGwMqchQKvOfIFTqqXcSYQ==}
|
||||
applesauce-factory@0.0.0-next-20250123215242:
|
||||
resolution: {integrity: sha512-kTk1yz/iFHgtkFA/0/EicfWG2yVv7UsZN/AKKp7FZPVXOWZVpVVWeXAvwayMsb8UnY4jpfAHYfBOYzj2Uo3ZEg==}
|
||||
|
||||
applesauce-loaders@0.0.0-next-20250120191411:
|
||||
resolution: {integrity: sha512-i6kV1r2yNCygS6fSV7U0AR97tR3b/IszEIjFzYDI0U6ZwZPe5Efoh15NsFZBVdofCewrwr/iidaCyvBj/3ZJZA==}
|
||||
applesauce-lists@0.0.0-next-20250123215242:
|
||||
resolution: {integrity: sha512-zqf1bhOlBVp+X9RRAhe4A/O6IUkxjh3aL8INviXIVEC9sj9+mtWTOY4sg2EToc9cyh0ub+uZyzKWQWgHVYHV1A==}
|
||||
|
||||
applesauce-net@0.0.0-next-20250120191411:
|
||||
resolution: {integrity: sha512-B2fGuXKdOXEuHca0aIhtS9hTZd6aeEnqnfHGVidMFq8dOEUo+eYauI/0RsrdWHiK/ADqawrViOACZplqS73M5A==}
|
||||
applesauce-loaders@0.0.0-next-20250123215242:
|
||||
resolution: {integrity: sha512-gcXV5IebXr55ovgqoF3FHvsE5HmWrmlDJiuWuIFB4vPLEafe1xY6GvpLVKCYIFgUxvtRdJjMyH4g2IvfMbW/xw==}
|
||||
|
||||
applesauce-react@0.0.0-next-20250120191411:
|
||||
resolution: {integrity: sha512-+e+DNw+4KjUuW7q3wKD1R/evcjFXaEC6BRDJaFuL5yRkV6yCAFkgX/X6gduyggRKfJbtXVbnorC5eazAtyoQfA==}
|
||||
applesauce-net@0.10.0:
|
||||
resolution: {integrity: sha512-ZsAs/MkeGHiPZ2/a8lwP8lx/Eh+5Dot0qG4BLTAqjg4emP/RsiqW+hyc6v6QcVbdvuR0+hP1gka3+wWtiy/cTA==}
|
||||
|
||||
applesauce-signer@0.0.0-next-20250120191411:
|
||||
resolution: {integrity: sha512-B/2fb96BYB7mZf4XzE916qMy63dXlVsVewEZu80Y4XDD400xV+0+ZfjTnBvCg2ruCOMcqV23KQoqbNOvVnqZjg==}
|
||||
applesauce-react@0.0.0-next-20250123215242:
|
||||
resolution: {integrity: sha512-ekf0EqJEGunNvmExzXuCBe4SqowBZZ0u61cDg1NS8vgjvYKyan4QsGYPCtLvmR9M/3g3nd03xhTTMmXkx9+Iiw==}
|
||||
|
||||
applesauce-signer@0.0.0-next-20250123215242:
|
||||
resolution: {integrity: sha512-YuqOsW35mr1cwqudjw9+Pkti0MdmsJawmIT9zluPoUk8PcGv/sOwRZCi2DrG6U+VUmfwMC+OU4L77QITyG2nwQ==}
|
||||
|
||||
arg@4.1.3:
|
||||
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
|
||||
@ -2264,6 +2267,10 @@ packages:
|
||||
resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
async-function@1.0.0:
|
||||
resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
async@3.2.6:
|
||||
resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
|
||||
|
||||
@ -3032,8 +3039,8 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
hasBin: true
|
||||
|
||||
electron-to-chromium@1.5.84:
|
||||
resolution: {integrity: sha512-I+DQ8xgafao9Ha6y0qjHHvpZ9OfyA1qKlkHkjywxzniORU2awxyz7f/iVJcULmrF2yrM3nHQf+iDjJtbbexd/g==}
|
||||
electron-to-chromium@1.5.87:
|
||||
resolution: {integrity: sha512-mPFwmEWmRivw2F8x3w3l2m6htAUN97Gy0kwpO++2m9iT1Gt8RCFVUfv9U/sIbHJ6rY4P6/ooqFL/eL7ock+pPg==}
|
||||
|
||||
elementtree@0.1.7:
|
||||
resolution: {integrity: sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==}
|
||||
@ -3207,8 +3214,8 @@ packages:
|
||||
fast-shallow-equal@1.0.0:
|
||||
resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
|
||||
|
||||
fast-uri@3.0.5:
|
||||
resolution: {integrity: sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==}
|
||||
fast-uri@3.0.6:
|
||||
resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
|
||||
|
||||
fast-xml-parser@4.5.1:
|
||||
resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==}
|
||||
@ -3513,8 +3520,8 @@ packages:
|
||||
resolution: {integrity: sha512-qlspKUK7IlSQv2o+5I7yhUd7TxlOG2Vr5LTa3ve2XSNVKAL/n/u/7KLvKmFNimomDIKvZFXWHv0T12mv7rT8Aw==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
hls.js@1.5.19:
|
||||
resolution: {integrity: sha512-C020dKWEJcyvLnrqsFKW4q6D/6IEzKWdhktIS5bgoyEFE8lHgrFBq4RIngdy113abJOlIruhv8qjg7UX8hwxOw==}
|
||||
hls.js@1.5.20:
|
||||
resolution: {integrity: sha512-uu0VXUK52JhihhnN/MVVo1lvqNNuhoxkonqgO3IpjvQiGpJBdIXMGkofjQb/j9zvV7a1SW8U9g1FslWx/1HOiQ==}
|
||||
|
||||
hoist-non-react-statics@3.3.2:
|
||||
resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
|
||||
@ -3657,8 +3664,8 @@ packages:
|
||||
is-arrayish@0.3.2:
|
||||
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
|
||||
|
||||
is-async-function@2.1.0:
|
||||
resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==}
|
||||
is-async-function@2.1.1:
|
||||
resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
is-bigint@1.1.0:
|
||||
@ -4210,8 +4217,8 @@ packages:
|
||||
micromark-util-sanitize-uri@2.0.1:
|
||||
resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
|
||||
|
||||
micromark-util-subtokenize@2.0.3:
|
||||
resolution: {integrity: sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==}
|
||||
micromark-util-subtokenize@2.0.4:
|
||||
resolution: {integrity: sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==}
|
||||
|
||||
micromark-util-symbol@2.0.1:
|
||||
resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
|
||||
@ -4341,8 +4348,8 @@ packages:
|
||||
engines: {node: ^18 || >=20}
|
||||
hasBin: true
|
||||
|
||||
napi-build-utils@1.0.2:
|
||||
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
|
||||
napi-build-utils@2.0.0:
|
||||
resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==}
|
||||
|
||||
native-run@2.0.1:
|
||||
resolution: {integrity: sha512-XfG1FBZLM50J10xH9361whJRC9SHZ0Bub4iNRhhI61C8Jv0e1ud19muex6sNKB51ibQNUJNuYn25MuYET/rE6w==}
|
||||
@ -4470,8 +4477,8 @@ packages:
|
||||
once@1.4.0:
|
||||
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
||||
|
||||
oniguruma-to-es@2.2.0:
|
||||
resolution: {integrity: sha512-EEsso27ri0sf+t4uRFEj5C5gvXQj0d0w1Y2qq06b+hDLBnvzO1rWTwEW4C7ytan6nhg4WPwE26eLoiPhHUbvKg==}
|
||||
oniguruma-to-es@2.3.0:
|
||||
resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==}
|
||||
|
||||
open@8.4.2:
|
||||
resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
|
||||
@ -4640,8 +4647,8 @@ packages:
|
||||
preact@10.25.4:
|
||||
resolution: {integrity: sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==}
|
||||
|
||||
prebuild-install@7.1.2:
|
||||
resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==}
|
||||
prebuild-install@7.1.3:
|
||||
resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
|
||||
@ -4884,8 +4891,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
react-remove-scroll@2.6.2:
|
||||
resolution: {integrity: sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==}
|
||||
react-remove-scroll@2.6.3:
|
||||
resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
'@types/react': ^18.2.22
|
||||
@ -5525,8 +5532,8 @@ packages:
|
||||
peerDependencies:
|
||||
three: '>=0.118.3'
|
||||
|
||||
three-render-objects@1.37.0:
|
||||
resolution: {integrity: sha512-k/OBwmjVyUwAMJGjvqGI9ISXaR7uWopuwLPZW3thi/w/97Rd4ZgcnioAPn6OD3wfN6P6Mm12ioEGdJjBJzDg9Q==}
|
||||
three-render-objects@1.38.1:
|
||||
resolution: {integrity: sha512-w51UYkIXnyULX9b7m8fJCDHy9HSviCbubYFIpI4Ox5gluAXRlKDvYg2E9ZKhBf4SXr1ieCpPLVfqLwWfo+ceRA==}
|
||||
engines: {node: '>=12'}
|
||||
peerDependencies:
|
||||
three: '>=0.168'
|
||||
@ -5870,8 +5877,8 @@ packages:
|
||||
vite:
|
||||
optional: true
|
||||
|
||||
vite@5.4.12:
|
||||
resolution: {integrity: sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA==}
|
||||
vite@5.4.14:
|
||||
resolution: {integrity: sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@ -6168,7 +6175,7 @@ snapshots:
|
||||
kapsule: 1.16.0
|
||||
three: 0.170.0
|
||||
three-forcegraph: 1.42.12(three@0.170.0)
|
||||
three-render-objects: 1.37.0(three@0.170.0)
|
||||
three-render-objects: 1.38.1(three@0.170.0)
|
||||
|
||||
'@ampproject/remapping@2.3.0':
|
||||
dependencies:
|
||||
@ -6854,12 +6861,12 @@ snapshots:
|
||||
dependencies:
|
||||
'@capacitor/core': 6.2.0
|
||||
|
||||
'@capacitor/assets@3.0.5(@types/node@22.10.7)(typescript@5.7.3)':
|
||||
'@capacitor/assets@3.0.5(@types/node@22.10.10)(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@capacitor/cli': 5.7.8
|
||||
'@ionic/utils-array': 2.1.6
|
||||
'@ionic/utils-fs': 3.1.7
|
||||
'@trapezedev/project': 7.1.3(@types/node@22.10.7)(typescript@5.7.3)
|
||||
'@trapezedev/project': 7.1.3(@types/node@22.10.10)(typescript@5.7.3)
|
||||
commander: 8.3.0
|
||||
debug: 4.3.4
|
||||
fs-extra: 10.1.0
|
||||
@ -7045,7 +7052,7 @@ snapshots:
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
react-fast-compare: 3.2.2
|
||||
react-focus-lock: 2.13.5(@types/react@18.3.18)(react@19.0.0)
|
||||
react-remove-scroll: 2.6.2(@types/react@18.3.18)(react@19.0.0)
|
||||
react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@19.0.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/react'
|
||||
|
||||
@ -8039,7 +8046,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@shikijs/types': 1.29.1
|
||||
'@shikijs/vscode-textmate': 10.0.1
|
||||
oniguruma-to-es: 2.2.0
|
||||
oniguruma-to-es: 2.3.0
|
||||
|
||||
'@shikijs/engine-oniguruma@1.29.1':
|
||||
dependencies:
|
||||
@ -8083,7 +8090,7 @@ snapshots:
|
||||
|
||||
'@trapezedev/gradle-parse@7.1.3': {}
|
||||
|
||||
'@trapezedev/project@7.1.3(@types/node@22.10.7)(typescript@5.7.3)':
|
||||
'@trapezedev/project@7.1.3(@types/node@22.10.10)(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@ionic/utils-fs': 3.1.7
|
||||
'@ionic/utils-subprocess': 2.1.14
|
||||
@ -8105,7 +8112,7 @@ snapshots:
|
||||
replace: 1.2.2
|
||||
tempy: 1.0.1
|
||||
tmp: 0.2.3
|
||||
ts-node: 10.9.2(@types/node@22.10.7)(typescript@5.7.3)
|
||||
ts-node: 10.9.2(@types/node@22.10.10)(typescript@5.7.3)
|
||||
xcode: 3.0.1
|
||||
xml-js: 1.6.11
|
||||
xpath: 0.0.32
|
||||
@ -8186,9 +8193,9 @@ snapshots:
|
||||
|
||||
'@types/fs-extra@8.1.5':
|
||||
dependencies:
|
||||
'@types/node': 22.10.7
|
||||
'@types/node': 22.10.10
|
||||
|
||||
'@types/geojson@7946.0.15': {}
|
||||
'@types/geojson@7946.0.16': {}
|
||||
|
||||
'@types/hast@3.0.4':
|
||||
dependencies:
|
||||
@ -8206,7 +8213,7 @@ snapshots:
|
||||
|
||||
'@types/leaflet@1.9.16':
|
||||
dependencies:
|
||||
'@types/geojson': 7946.0.15
|
||||
'@types/geojson': 7946.0.16
|
||||
|
||||
'@types/lodash.mergewith@4.6.7':
|
||||
dependencies:
|
||||
@ -8236,7 +8243,7 @@ snapshots:
|
||||
|
||||
'@types/node@12.20.55': {}
|
||||
|
||||
'@types/node@22.10.7':
|
||||
'@types/node@22.10.10':
|
||||
dependencies:
|
||||
undici-types: 6.20.0
|
||||
|
||||
@ -8333,16 +8340,16 @@ snapshots:
|
||||
- '@codemirror/lint'
|
||||
- '@codemirror/search'
|
||||
|
||||
'@ungap/structured-clone@1.2.1': {}
|
||||
'@ungap/structured-clone@1.3.0': {}
|
||||
|
||||
'@vitejs/plugin-react@4.3.4(vite@5.4.12(@types/node@22.10.7)(terser@5.37.0))':
|
||||
'@vitejs/plugin-react@4.3.4(vite@5.4.14(@types/node@22.10.10)(terser@5.37.0))':
|
||||
dependencies:
|
||||
'@babel/core': 7.26.0
|
||||
'@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0)
|
||||
'@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0)
|
||||
'@types/babel__core': 7.20.5
|
||||
react-refresh: 0.14.2
|
||||
vite: 5.4.12(@types/node@22.10.7)(terser@5.37.0)
|
||||
vite: 5.4.14(@types/node@22.10.10)(terser@5.37.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@ -8409,7 +8416,7 @@ snapshots:
|
||||
ajv@8.17.1:
|
||||
dependencies:
|
||||
fast-deep-equal: 3.1.3
|
||||
fast-uri: 3.0.5
|
||||
fast-uri: 3.0.6
|
||||
json-schema-traverse: 1.0.0
|
||||
require-from-string: 2.0.2
|
||||
|
||||
@ -8429,23 +8436,23 @@ snapshots:
|
||||
dependencies:
|
||||
entities: 2.2.0
|
||||
|
||||
applesauce-channel@0.0.0-next-20250120191411(typescript@5.7.3):
|
||||
applesauce-channel@0.0.0-next-20250123215242(typescript@5.7.3):
|
||||
dependencies:
|
||||
applesauce-core: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-factory: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-core: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-factory: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
nostr-tools: 2.10.4(typescript@5.7.3)
|
||||
rxjs: 7.8.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
applesauce-content@0.0.0-next-20250120191411(typescript@5.7.3):
|
||||
applesauce-content@0.0.0-next-20250123215242(typescript@5.7.3):
|
||||
dependencies:
|
||||
'@cashu/cashu-ts': 2.0.0-rc1
|
||||
'@types/hast': 3.0.4
|
||||
'@types/mdast': 4.0.4
|
||||
'@types/unist': 3.0.3
|
||||
applesauce-core: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-core: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
mdast-util-find-and-replace: 3.0.2
|
||||
nostr-tools: 2.10.4(typescript@5.7.3)
|
||||
remark: 15.0.1
|
||||
@ -8456,7 +8463,7 @@ snapshots:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
applesauce-core@0.0.0-next-20250120191411(typescript@5.7.3):
|
||||
applesauce-core@0.0.0-next-20250123215242(typescript@5.7.3):
|
||||
dependencies:
|
||||
'@scure/base': 1.2.4
|
||||
debug: 4.4.0
|
||||
@ -8470,23 +8477,37 @@ snapshots:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
applesauce-factory@0.0.0-next-20250120191411(typescript@5.7.3):
|
||||
applesauce-core@0.10.0(typescript@5.7.3):
|
||||
dependencies:
|
||||
applesauce-content: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-core: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
'@scure/base': 1.2.4
|
||||
debug: 4.4.0
|
||||
fast-deep-equal: 3.1.3
|
||||
hash-sum: 2.0.0
|
||||
light-bolt11-decoder: 3.2.0
|
||||
nanoid: 5.0.9
|
||||
nostr-tools: 2.10.4(typescript@5.7.3)
|
||||
rxjs: 7.8.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
applesauce-factory@0.0.0-next-20250123215242(typescript@5.7.3):
|
||||
dependencies:
|
||||
applesauce-content: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-core: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
nostr-tools: 2.10.4(typescript@5.7.3)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
applesauce-lists@0.0.0-next-20250120191411(typescript@5.7.3):
|
||||
applesauce-lists@0.0.0-next-20250123215242(typescript@5.7.3):
|
||||
dependencies:
|
||||
'@noble/hashes': 1.7.1
|
||||
'@noble/secp256k1': 1.7.1
|
||||
'@scure/base': 1.2.4
|
||||
'@types/dom-serial': 1.0.6
|
||||
applesauce-core: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-factory: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-core: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-factory: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
debug: 4.4.0
|
||||
nostr-tools: 2.10.4(typescript@5.7.3)
|
||||
rxjs: 7.8.1
|
||||
@ -8494,9 +8515,9 @@ snapshots:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
applesauce-loaders@0.0.0-next-20250120191411(typescript@5.7.3):
|
||||
applesauce-loaders@0.0.0-next-20250123215242(typescript@5.7.3):
|
||||
dependencies:
|
||||
applesauce-core: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-core: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
nanoid: 5.0.9
|
||||
nostr-tools: 2.10.4(typescript@5.7.3)
|
||||
rx-nostr: 3.5.0
|
||||
@ -8505,9 +8526,9 @@ snapshots:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
applesauce-net@0.0.0-next-20250120191411(typescript@5.7.3):
|
||||
applesauce-net@0.10.0(typescript@5.7.3):
|
||||
dependencies:
|
||||
applesauce-core: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-core: 0.10.0(typescript@5.7.3)
|
||||
nanoid: 5.0.9
|
||||
nostr-tools: 2.10.4(typescript@5.7.3)
|
||||
rxjs: 7.8.1
|
||||
@ -8515,11 +8536,11 @@ snapshots:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
applesauce-react@0.0.0-next-20250120191411(typescript@5.7.3):
|
||||
applesauce-react@0.0.0-next-20250123215242(typescript@5.7.3):
|
||||
dependencies:
|
||||
applesauce-content: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-core: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-factory: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-content: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-core: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
applesauce-factory: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
nostr-tools: 2.10.4(typescript@5.7.3)
|
||||
react: 18.3.1
|
||||
rxjs: 7.8.1
|
||||
@ -8527,13 +8548,13 @@ snapshots:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
applesauce-signer@0.0.0-next-20250120191411(typescript@5.7.3):
|
||||
applesauce-signer@0.0.0-next-20250123215242(typescript@5.7.3):
|
||||
dependencies:
|
||||
'@noble/hashes': 1.7.1
|
||||
'@noble/secp256k1': 1.7.1
|
||||
'@scure/base': 1.2.4
|
||||
'@types/dom-serial': 1.0.6
|
||||
applesauce-core: 0.0.0-next-20250120191411(typescript@5.7.3)
|
||||
applesauce-core: 0.0.0-next-20250123215242(typescript@5.7.3)
|
||||
debug: 4.4.0
|
||||
nanoid: 5.0.9
|
||||
nostr-tools: 2.10.4(typescript@5.7.3)
|
||||
@ -8580,6 +8601,8 @@ snapshots:
|
||||
|
||||
astral-regex@2.0.0: {}
|
||||
|
||||
async-function@1.0.0: {}
|
||||
|
||||
async@3.2.6: {}
|
||||
|
||||
at-least-node@1.0.0: {}
|
||||
@ -8664,7 +8687,7 @@ snapshots:
|
||||
better-sqlite3@11.8.1:
|
||||
dependencies:
|
||||
bindings: 1.5.0
|
||||
prebuild-install: 7.1.2
|
||||
prebuild-install: 7.1.3
|
||||
|
||||
bezier-js@6.1.4: {}
|
||||
|
||||
@ -8756,7 +8779,7 @@ snapshots:
|
||||
browserslist@4.24.4:
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001695
|
||||
electron-to-chromium: 1.5.84
|
||||
electron-to-chromium: 1.5.87
|
||||
node-releases: 2.0.19
|
||||
update-browserslist-db: 1.1.2(browserslist@4.24.4)
|
||||
|
||||
@ -9453,7 +9476,7 @@ snapshots:
|
||||
dependencies:
|
||||
jake: 10.9.2
|
||||
|
||||
electron-to-chromium@1.5.84: {}
|
||||
electron-to-chromium@1.5.87: {}
|
||||
|
||||
elementtree@0.1.7:
|
||||
dependencies:
|
||||
@ -9696,7 +9719,7 @@ snapshots:
|
||||
|
||||
fast-shallow-equal@1.0.0: {}
|
||||
|
||||
fast-uri@3.0.5: {}
|
||||
fast-uri@3.0.6: {}
|
||||
|
||||
fast-xml-parser@4.5.1:
|
||||
dependencies:
|
||||
@ -10055,7 +10078,7 @@ snapshots:
|
||||
|
||||
hexoid@2.0.0: {}
|
||||
|
||||
hls.js@1.5.19: {}
|
||||
hls.js@1.5.20: {}
|
||||
|
||||
hoist-non-react-statics@3.3.2:
|
||||
dependencies:
|
||||
@ -10185,8 +10208,9 @@ snapshots:
|
||||
|
||||
is-arrayish@0.3.2: {}
|
||||
|
||||
is-async-function@2.1.0:
|
||||
is-async-function@2.1.1:
|
||||
dependencies:
|
||||
async-function: 1.0.0
|
||||
call-bound: 1.0.3
|
||||
get-proto: 1.0.1
|
||||
has-tostringtag: 1.0.2
|
||||
@ -10645,7 +10669,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
'@types/mdast': 4.0.4
|
||||
'@ungap/structured-clone': 1.2.1
|
||||
'@ungap/structured-clone': 1.3.0
|
||||
devlop: 1.1.0
|
||||
micromark-util-sanitize-uri: 2.0.1
|
||||
trim-lines: 3.0.1
|
||||
@ -10738,7 +10762,7 @@ snapshots:
|
||||
micromark-util-html-tag-name: 2.0.1
|
||||
micromark-util-normalize-identifier: 2.0.1
|
||||
micromark-util-resolve-all: 2.0.1
|
||||
micromark-util-subtokenize: 2.0.3
|
||||
micromark-util-subtokenize: 2.0.4
|
||||
micromark-util-symbol: 2.0.1
|
||||
micromark-util-types: 2.0.1
|
||||
|
||||
@ -10885,7 +10909,7 @@ snapshots:
|
||||
micromark-util-encode: 2.0.1
|
||||
micromark-util-symbol: 2.0.1
|
||||
|
||||
micromark-util-subtokenize@2.0.3:
|
||||
micromark-util-subtokenize@2.0.4:
|
||||
dependencies:
|
||||
devlop: 1.1.0
|
||||
micromark-util-chunked: 2.0.1
|
||||
@ -10912,7 +10936,7 @@ snapshots:
|
||||
micromark-util-normalize-identifier: 2.0.1
|
||||
micromark-util-resolve-all: 2.0.1
|
||||
micromark-util-sanitize-uri: 2.0.1
|
||||
micromark-util-subtokenize: 2.0.3
|
||||
micromark-util-subtokenize: 2.0.4
|
||||
micromark-util-symbol: 2.0.1
|
||||
micromark-util-types: 2.0.1
|
||||
transitivePeerDependencies:
|
||||
@ -11026,7 +11050,7 @@ snapshots:
|
||||
|
||||
nanoid@5.0.9: {}
|
||||
|
||||
napi-build-utils@1.0.2: {}
|
||||
napi-build-utils@2.0.0: {}
|
||||
|
||||
native-run@2.0.1:
|
||||
dependencies:
|
||||
@ -11177,7 +11201,7 @@ snapshots:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
|
||||
oniguruma-to-es@2.2.0:
|
||||
oniguruma-to-es@2.3.0:
|
||||
dependencies:
|
||||
emoji-regex-xs: 1.0.0
|
||||
regex: 5.1.1
|
||||
@ -11340,14 +11364,14 @@ snapshots:
|
||||
|
||||
preact@10.25.4: {}
|
||||
|
||||
prebuild-install@7.1.2:
|
||||
prebuild-install@7.1.3:
|
||||
dependencies:
|
||||
detect-libc: 2.0.3
|
||||
expand-template: 2.0.3
|
||||
github-from-package: 0.0.0
|
||||
minimist: 1.2.8
|
||||
mkdirp-classic: 0.5.3
|
||||
napi-build-utils: 1.0.2
|
||||
napi-build-utils: 2.0.0
|
||||
node-abi: 3.73.0
|
||||
pump: 3.0.2
|
||||
rc: 1.2.8
|
||||
@ -11474,26 +11498,26 @@ snapshots:
|
||||
dependencies:
|
||||
dnd-core: 16.0.1
|
||||
|
||||
react-dnd-multi-backend@8.1.2(dnd-core@16.0.1)(react-dnd@16.0.1(@types/node@22.10.7)(@types/react@18.3.18)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
react-dnd-multi-backend@8.1.2(dnd-core@16.0.1)(react-dnd@16.0.1(@types/node@22.10.10)(@types/react@18.3.18)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
dependencies:
|
||||
dnd-core: 16.0.1
|
||||
dnd-multi-backend: 8.1.2(dnd-core@16.0.1)
|
||||
react: 19.0.0
|
||||
react-dnd: 16.0.1(@types/node@22.10.7)(@types/react@18.3.18)(react@19.0.0)
|
||||
react-dnd-preview: 8.1.2(react-dnd@16.0.1(@types/node@22.10.7)(@types/react@18.3.18)(react@19.0.0))(react@19.0.0)
|
||||
react-dnd: 16.0.1(@types/node@22.10.10)(@types/react@18.3.18)(react@19.0.0)
|
||||
react-dnd-preview: 8.1.2(react-dnd@16.0.1(@types/node@22.10.10)(@types/react@18.3.18)(react@19.0.0))(react@19.0.0)
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
|
||||
react-dnd-preview@8.1.2(react-dnd@16.0.1(@types/node@22.10.7)(@types/react@18.3.18)(react@19.0.0))(react@19.0.0):
|
||||
react-dnd-preview@8.1.2(react-dnd@16.0.1(@types/node@22.10.10)(@types/react@18.3.18)(react@19.0.0))(react@19.0.0):
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
react-dnd: 16.0.1(@types/node@22.10.7)(@types/react@18.3.18)(react@19.0.0)
|
||||
react-dnd: 16.0.1(@types/node@22.10.10)(@types/react@18.3.18)(react@19.0.0)
|
||||
|
||||
react-dnd-touch-backend@16.0.1:
|
||||
dependencies:
|
||||
'@react-dnd/invariant': 4.0.2
|
||||
dnd-core: 16.0.1
|
||||
|
||||
react-dnd@16.0.1(@types/node@22.10.7)(@types/react@18.3.18)(react@19.0.0):
|
||||
react-dnd@16.0.1(@types/node@22.10.10)(@types/react@18.3.18)(react@19.0.0):
|
||||
dependencies:
|
||||
'@react-dnd/invariant': 4.0.2
|
||||
'@react-dnd/shallowequal': 4.0.2
|
||||
@ -11502,7 +11526,7 @@ snapshots:
|
||||
hoist-non-react-statics: 3.3.2
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.10.7
|
||||
'@types/node': 22.10.10
|
||||
'@types/react': 18.3.18
|
||||
|
||||
react-dom@19.0.0(react@19.0.0):
|
||||
@ -11571,7 +11595,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
react-mosaic-component@6.1.1(@types/node@22.10.7)(@types/react@18.3.18)(dnd-core@16.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
react-mosaic-component@6.1.1(@types/node@22.10.10)(@types/react@18.3.18)(dnd-core@16.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
dependencies:
|
||||
classnames: 2.5.1
|
||||
immutability-helper: 3.1.1
|
||||
@ -11579,9 +11603,9 @@ snapshots:
|
||||
prop-types: 15.8.1
|
||||
rdndmb-html5-to-touch: 8.1.2(dnd-core@16.0.1)
|
||||
react: 19.0.0
|
||||
react-dnd: 16.0.1(@types/node@22.10.7)(@types/react@18.3.18)(react@19.0.0)
|
||||
react-dnd: 16.0.1(@types/node@22.10.10)(@types/react@18.3.18)(react@19.0.0)
|
||||
react-dnd-html5-backend: 16.0.1
|
||||
react-dnd-multi-backend: 8.1.2(dnd-core@16.0.1)(react-dnd@16.0.1(@types/node@22.10.7)(@types/react@18.3.18)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
react-dnd-multi-backend: 8.1.2(dnd-core@16.0.1)(react-dnd@16.0.1(@types/node@22.10.10)(@types/react@18.3.18)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
react-dnd-touch-backend: 16.0.1
|
||||
uuid: 9.0.1
|
||||
transitivePeerDependencies:
|
||||
@ -11613,7 +11637,7 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.18
|
||||
|
||||
react-remove-scroll@2.6.2(@types/react@18.3.18)(react@19.0.0):
|
||||
react-remove-scroll@2.6.3(@types/react@18.3.18)(react@19.0.0):
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@19.0.0)
|
||||
@ -12058,7 +12082,7 @@ snapshots:
|
||||
color: 4.2.3
|
||||
detect-libc: 2.0.3
|
||||
node-addon-api: 6.1.0
|
||||
prebuild-install: 7.1.2
|
||||
prebuild-install: 7.1.3
|
||||
semver: 7.6.3
|
||||
simple-get: 4.0.1
|
||||
tar-fs: 3.0.8
|
||||
@ -12424,7 +12448,7 @@ snapshots:
|
||||
three: 0.170.0
|
||||
tinycolor2: 1.6.0
|
||||
|
||||
three-render-objects@1.37.0(three@0.170.0):
|
||||
three-render-objects@1.38.1(three@0.170.0):
|
||||
dependencies:
|
||||
'@tweenjs/tween.js': 25.0.0
|
||||
accessor-fn: 1.5.1
|
||||
@ -12505,14 +12529,14 @@ snapshots:
|
||||
|
||||
ts-easing@0.2.0: {}
|
||||
|
||||
ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3):
|
||||
ts-node@10.9.2(@types/node@22.10.10)(typescript@5.7.3):
|
||||
dependencies:
|
||||
'@cspotcode/source-map-support': 0.8.1
|
||||
'@tsconfig/node10': 1.0.11
|
||||
'@tsconfig/node12': 1.0.11
|
||||
'@tsconfig/node14': 1.0.3
|
||||
'@tsconfig/node16': 1.0.4
|
||||
'@types/node': 22.10.7
|
||||
'@types/node': 22.10.10
|
||||
acorn: 8.14.0
|
||||
acorn-walk: 8.3.4
|
||||
arg: 4.1.3
|
||||
@ -12727,35 +12751,35 @@ snapshots:
|
||||
|
||||
vite-plugin-funding@0.1.0: {}
|
||||
|
||||
vite-plugin-pwa@0.21.1(vite@5.4.12(@types/node@22.10.7)(terser@5.37.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0):
|
||||
vite-plugin-pwa@0.21.1(vite@5.4.14(@types/node@22.10.10)(terser@5.37.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0):
|
||||
dependencies:
|
||||
debug: 4.4.0
|
||||
pretty-bytes: 6.1.1
|
||||
tinyglobby: 0.2.10
|
||||
vite: 5.4.12(@types/node@22.10.7)(terser@5.37.0)
|
||||
vite: 5.4.14(@types/node@22.10.10)(terser@5.37.0)
|
||||
workbox-build: 7.3.0(@types/babel__core@7.20.5)
|
||||
workbox-window: 7.3.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@5.4.12(@types/node@22.10.7)(terser@5.37.0)):
|
||||
vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@5.4.14(@types/node@22.10.10)(terser@5.37.0)):
|
||||
dependencies:
|
||||
debug: 4.4.0
|
||||
globrex: 0.1.2
|
||||
tsconfck: 3.1.4(typescript@5.7.3)
|
||||
optionalDependencies:
|
||||
vite: 5.4.12(@types/node@22.10.7)(terser@5.37.0)
|
||||
vite: 5.4.14(@types/node@22.10.10)(terser@5.37.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
vite@5.4.12(@types/node@22.10.7)(terser@5.37.0):
|
||||
vite@5.4.14(@types/node@22.10.10)(terser@5.37.0):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.5.1
|
||||
rollup: 4.31.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.10.7
|
||||
'@types/node': 22.10.10
|
||||
fsevents: 2.3.3
|
||||
terser: 5.37.0
|
||||
|
||||
@ -12805,7 +12829,7 @@ snapshots:
|
||||
call-bound: 1.0.3
|
||||
function.prototype.name: 1.1.8
|
||||
has-tostringtag: 1.0.2
|
||||
is-async-function: 2.1.0
|
||||
is-async-function: 2.1.1
|
||||
is-date-object: 1.1.0
|
||||
is-finalizationregistry: 1.1.1
|
||||
is-generator-function: 1.1.0
|
||||
|
@ -47,6 +47,7 @@ import bookmarksRoutes from "./views/bookmarks/routes";
|
||||
import articlesRoutes from "./views/articles/routes";
|
||||
import torrentsRoutes from "./views/torrents/routes";
|
||||
import channelsRoutes from "./views/channels/routes";
|
||||
import groupsRoutes from "./views/groups/routes";
|
||||
import goalsRoutes from "./views/goals/routes";
|
||||
import badgesRoutes from "./views/badges/routes";
|
||||
import emojisRoutes from "./views/emojis/routes";
|
||||
@ -108,6 +109,7 @@ const router = createBrowserRouter(
|
||||
{ path: "notifications", Component: NotificationsView },
|
||||
{ path: "media", children: mediaRoutes },
|
||||
{ path: "streams", children: streamsRoutes },
|
||||
{ path: "groups", children: groupsRoutes },
|
||||
{ path: "tools", children: toolsRoutes },
|
||||
{ path: "discovery", children: discoveryRoutes },
|
||||
{ path: "wiki", children: wikiRoutes },
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Box, Flex, FlexProps, IconButton, Spacer } from "@chakra-ui/react";
|
||||
import { NostrEvent } from "nostr-tools";
|
||||
import { getMediaAttachments, MediaAttachment } from "applesauce-core/helpers/media-attachment";
|
||||
import { getMediaAttachments, MediaAttachment } from "applesauce-core/helpers/file-metadata";
|
||||
import { Carousel, useCarousel } from "nuka-carousel";
|
||||
import styled from "@emotion/styled";
|
||||
|
||||
|
@ -29,6 +29,7 @@ import Users03 from "../icons/users-03";
|
||||
import FileAttachment01 from "../icons/file-attachment-01";
|
||||
import Rocket02 from "../icons/rocket-02";
|
||||
import PuzzlePiece01 from "../icons/puzzle-piece-01";
|
||||
import Users02 from "../icons/users-02";
|
||||
|
||||
export type App = {
|
||||
icon?: ComponentWithAs<"svg", IconProps>;
|
||||
@ -66,6 +67,13 @@ export const internalApps: App[] = [
|
||||
id: "streams",
|
||||
to: "/streams",
|
||||
},
|
||||
{
|
||||
title: "Groups",
|
||||
description: "Simple relay based groups",
|
||||
icon: Users02,
|
||||
id: "groups",
|
||||
to: "/groups",
|
||||
},
|
||||
{
|
||||
title: "Media",
|
||||
description: "Browser media posts",
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { memo } from "react";
|
||||
import { memo, useEffect } from "react";
|
||||
import { Flex, Heading, Text } from "@chakra-ui/react";
|
||||
import { parseSharedEvent } from "applesauce-core/helpers/share";
|
||||
import { kinds, nip18 } from "nostr-tools";
|
||||
|
||||
import { NostrEvent } from "../../../types/nostr-event";
|
||||
@ -11,14 +12,18 @@ import { TrustProvider } from "../../../providers/local/trust-provider";
|
||||
import useSingleEvent from "../../../hooks/use-single-event";
|
||||
import { EmbedEvent } from "../../embed-event";
|
||||
import useUserMuteFilter from "../../../hooks/use-user-mute-filter";
|
||||
import { parseHardcodedNoteContent } from "../../../helpers/nostr/event";
|
||||
import LoadingNostrLink from "../../loading-nostr-link";
|
||||
import NoteMenu from "../../note/note-menu";
|
||||
import useEventIntersectionRef from "../../../hooks/use-event-intersection-ref";
|
||||
import { eventStore } from "../../../services/event-store";
|
||||
|
||||
function ShareEvent({ event }: { event: NostrEvent }) {
|
||||
const muteFilter = useUserMuteFilter();
|
||||
const hardCodedNote = parseHardcodedNoteContent(event);
|
||||
const hardCodedNote = parseSharedEvent(event);
|
||||
|
||||
useEffect(() => {
|
||||
if (hardCodedNote) eventStore.add(hardCodedNote);
|
||||
}, [hardCodedNote]);
|
||||
|
||||
const pointer = nip18.getRepostedEventPointer(event);
|
||||
const loadedNote = useSingleEvent(pointer?.id, pointer?.relays);
|
||||
|
@ -1,20 +1,14 @@
|
||||
import { EventTemplate, kinds, validateEvent } from "nostr-tools";
|
||||
import { EventTemplate, kinds } from "nostr-tools";
|
||||
import { getEventUID } from "nostr-idb";
|
||||
import dayjs from "dayjs";
|
||||
import { nanoid } from "nanoid";
|
||||
import {
|
||||
getAddressPointerFromATag,
|
||||
getEventPointerFromETag,
|
||||
getNip10References,
|
||||
parseCoordinate,
|
||||
} from "applesauce-core/helpers";
|
||||
import { getAddressPointerFromATag, getEventPointerFromETag, getNip10References } from "applesauce-core/helpers";
|
||||
|
||||
import { ATag, ETag, isDTag, isETag, isPTag, NostrEvent, Tag } from "../../types/nostr-event";
|
||||
import { getMatchNostrLink } from "../regexp";
|
||||
import { AddressPointer, DecodeResult, EventPointer } from "nostr-tools/nip19";
|
||||
import { safeJson } from "../parse";
|
||||
import { safeDecode } from "../nip19";
|
||||
import { safeRelayUrl, safeRelayUrls } from "../relay";
|
||||
import { safeRelayUrl } from "../relay";
|
||||
import RelaySet from "../../classes/relay-set";
|
||||
import { truncateId } from "../string";
|
||||
import { createATagFromAddressPointer, createETagFromEventPointer } from "applesauce-factory/helpers";
|
||||
@ -170,18 +164,6 @@ export type CustomAddressPointer = Omit<AddressPointer, "identifier"> & {
|
||||
|
||||
export { parseCoordinate } from "applesauce-core/helpers/pointers";
|
||||
|
||||
export function parseHardcodedNoteContent(event: NostrEvent) {
|
||||
const json = safeJson<NostrEvent>(event.content);
|
||||
if (!json) return null;
|
||||
|
||||
// ensure the note has tags
|
||||
json.tags = json.tags || [];
|
||||
|
||||
validateEvent(json);
|
||||
|
||||
return (json as NostrEvent) ?? null;
|
||||
}
|
||||
|
||||
export function sortByDate(a: NostrEvent, b: NostrEvent) {
|
||||
return b.created_at - a.created_at;
|
||||
}
|
||||
|
@ -7,6 +7,8 @@ import { getEventCoordinate, replaceOrAddSimpleTag } from "./event";
|
||||
import { getRelayVariations, safeRelayUrls } from "../relay";
|
||||
import { isAddressPointerInList, isEventPointerInList, isProfilePointerInList } from "applesauce-lists/helpers";
|
||||
|
||||
export const USER_GROUPS_LIST_KIND = 10009;
|
||||
|
||||
export const LIST_KINDS = [
|
||||
kinds.Mutelist,
|
||||
kinds.Pinlist,
|
||||
@ -19,6 +21,7 @@ export const LIST_KINDS = [
|
||||
kinds.InterestsList,
|
||||
kinds.UserEmojiList,
|
||||
kinds.DirectMessageRelaysList,
|
||||
USER_GROUPS_LIST_KIND,
|
||||
];
|
||||
export const SET_KINDS = [
|
||||
kinds.Followsets,
|
||||
|
15
src/hooks/use-user-groups-list.ts
Normal file
15
src/hooks/use-user-groups-list.ts
Normal file
@ -0,0 +1,15 @@
|
||||
import { getPublicGroups } from "applesauce-lists/helpers/groups";
|
||||
|
||||
import useCurrentAccount from "./use-current-account";
|
||||
import useReplaceableEvent from "./use-replaceable-event";
|
||||
import { USER_GROUPS_LIST_KIND } from "../helpers/nostr/lists";
|
||||
|
||||
export default function useUserGroupsList(pubkey?: string, relays: string[] = [], force?: boolean) {
|
||||
const account = useCurrentAccount();
|
||||
const key = pubkey ?? account?.pubkey;
|
||||
|
||||
const list = useReplaceableEvent(key ? { kind: USER_GROUPS_LIST_KIND, pubkey: key } : undefined, relays, force);
|
||||
const pointers = list ? getPublicGroups(list) : [];
|
||||
|
||||
return { list, pointers };
|
||||
}
|
24
src/views/groups/explore.tsx
Normal file
24
src/views/groups/explore.tsx
Normal file
@ -0,0 +1,24 @@
|
||||
import { Alert, AlertDescription, AlertIcon, AlertTitle, Box, Text } from "@chakra-ui/react";
|
||||
|
||||
import PeopleListProvider from "../../providers/local/people-list-provider";
|
||||
import PeopleListSelection from "../../components/people-list-selection/people-list-selection";
|
||||
import ContainedSimpleView from "../../components/layout/presets/contained-simple-view";
|
||||
|
||||
function GroupsExplorePage() {
|
||||
return (
|
||||
<ContainedSimpleView title="Explore channels" actions={<PeopleListSelection ms="auto" size="sm" />}>
|
||||
<Alert status="info">
|
||||
<AlertIcon />
|
||||
<AlertTitle>Work in progress</AlertTitle>
|
||||
</Alert>
|
||||
</ContainedSimpleView>
|
||||
);
|
||||
}
|
||||
|
||||
export default function GroupsExploreView() {
|
||||
return (
|
||||
<PeopleListProvider>
|
||||
<GroupsExplorePage />
|
||||
</PeopleListProvider>
|
||||
);
|
||||
}
|
20
src/views/groups/group.tsx
Normal file
20
src/views/groups/group.tsx
Normal file
@ -0,0 +1,20 @@
|
||||
import { decodeGroupPointer } from "applesauce-core/helpers/groups";
|
||||
import { Navigate, useParams } from "react-router-dom";
|
||||
import ContainedSimpleView from "../../components/layout/presets/contained-simple-view";
|
||||
import { Alert, AlertIcon, AlertTitle } from "@chakra-ui/react";
|
||||
|
||||
export default function GroupView() {
|
||||
const { identifier } = useParams();
|
||||
if (!identifier) return <Navigate to="/groups" />;
|
||||
|
||||
const pointer = decodeGroupPointer(identifier);
|
||||
|
||||
return (
|
||||
<ContainedSimpleView title="Group">
|
||||
<Alert status="info">
|
||||
<AlertIcon />
|
||||
<AlertTitle>Work in progress</AlertTitle>
|
||||
</Alert>
|
||||
</ContainedSimpleView>
|
||||
);
|
||||
}
|
51
src/views/groups/index.tsx
Normal file
51
src/views/groups/index.tsx
Normal file
@ -0,0 +1,51 @@
|
||||
import { Alert, AlertDescription, AlertIcon, AlertTitle, Button } from "@chakra-ui/react";
|
||||
|
||||
import { ErrorBoundary } from "../../components/error-boundary";
|
||||
import ContainedParentView from "../../components/layout/presets/contained-parent-view";
|
||||
import RouterLink from "../../components/router-link";
|
||||
import useUserGroupsList from "../../hooks/use-user-groups-list";
|
||||
import { encodeGroupPointer } from "applesauce-core/helpers/groups";
|
||||
import SimpleNavItem from "../../components/layout/presets/simple-nav-item";
|
||||
|
||||
export default function ChannelsHomeView() {
|
||||
const { pointers } = useUserGroupsList();
|
||||
|
||||
return (
|
||||
<ContainedParentView
|
||||
title="Groups"
|
||||
path="/groups"
|
||||
width="sm"
|
||||
actions={
|
||||
<Button as={RouterLink} to="explore" ms="auto" size="sm">
|
||||
Explore
|
||||
</Button>
|
||||
}
|
||||
>
|
||||
{pointers?.map((pointer) => (
|
||||
<SimpleNavItem to={`/groups/${encodeGroupPointer(pointer)}`} key={pointer.relay + pointer.id}>
|
||||
{encodeGroupPointer(pointer)}
|
||||
</SimpleNavItem>
|
||||
))}
|
||||
|
||||
{pointers.length === 0 && (
|
||||
<Alert
|
||||
status="info"
|
||||
variant="subtle"
|
||||
flexDirection="column"
|
||||
alignItems="center"
|
||||
justifyContent="center"
|
||||
textAlign="center"
|
||||
>
|
||||
<AlertIcon boxSize="40px" mr={0} />
|
||||
<AlertTitle mt={4} mb={1} fontSize="lg">
|
||||
No groups
|
||||
</AlertTitle>
|
||||
<AlertDescription maxWidth="sm">Looks like you have not joined any groups.</AlertDescription>
|
||||
<Button as={RouterLink} to="explore" variant="link" p="2">
|
||||
Explore
|
||||
</Button>
|
||||
</Alert>
|
||||
)}
|
||||
</ContainedParentView>
|
||||
);
|
||||
}
|
17
src/views/groups/routes.tsx
Normal file
17
src/views/groups/routes.tsx
Normal file
@ -0,0 +1,17 @@
|
||||
import { lazy } from "react";
|
||||
import { RouteObject } from "react-router-dom";
|
||||
|
||||
const ChannelsHomeView = lazy(() => import("."));
|
||||
const GroupView = lazy(() => import("./group"));
|
||||
const GroupsExploreView = lazy(() => import("./explore"));
|
||||
|
||||
export default [
|
||||
{
|
||||
Component: ChannelsHomeView,
|
||||
children: [
|
||||
{ index: true, Component: GroupsExploreView },
|
||||
{ path: "explore", Component: GroupsExploreView },
|
||||
{ path: ":identifier", Component: GroupView },
|
||||
],
|
||||
},
|
||||
] satisfies RouteObject[];
|
@ -44,13 +44,14 @@ import { useSharableProfileId } from "../../../hooks/use-shareable-profile-id";
|
||||
import UserProfileBadges from "./user-profile-badges";
|
||||
import UserPinnedEvents from "./user-pinned-events";
|
||||
import UserStatsAccordion from "./user-stats-accordion";
|
||||
import UserJoinedChanneled from "./user-joined-channels";
|
||||
import UserJoinedChannels from "./user-joined-channels";
|
||||
import { getTextColor } from "../../../helpers/color";
|
||||
import UserName from "../../../components/user/user-name";
|
||||
import { useUserDNSIdentity } from "../../../hooks/use-user-dns-identity";
|
||||
import UserAboutContent from "../../../components/user/user-about-content";
|
||||
import UserRecentEvents from "./user-recent-events";
|
||||
import useAppSettings, { useUserAppSettings } from "../../../hooks/use-user-app-settings";
|
||||
import UserJoinedGroups from "./user-joined-groups";
|
||||
|
||||
function DNSIdentityWarning({ pubkey }: { pubkey: string }) {
|
||||
const metadata = useUserProfile(pubkey);
|
||||
@ -264,7 +265,8 @@ export default function UserAboutTab() {
|
||||
Nostree page
|
||||
</Button>
|
||||
</Flex>
|
||||
<UserJoinedChanneled pubkey={pubkey} />
|
||||
<UserJoinedGroups pubkey={pubkey} />
|
||||
<UserJoinedChannels pubkey={pubkey} />
|
||||
|
||||
<Modal isOpen={colorModal.isOpen} onClose={colorModal.onClose} size="2xl">
|
||||
<ModalOverlay />
|
||||
|
@ -6,7 +6,7 @@ import { useBreakpointValue } from "../../../providers/global/breakpoint-provide
|
||||
import useUserChannelsList from "../../../hooks/use-user-channels-list";
|
||||
import { PointerChannelCard } from "../../channels/components/channel-card";
|
||||
|
||||
export default function UserJoinedChanneled({ pubkey }: { pubkey: string }) {
|
||||
export default function UserJoinedChannels({ pubkey }: { pubkey: string }) {
|
||||
const contextRelays = useAdditionalRelayContext();
|
||||
const { pointers: channels } = useUserChannelsList(pubkey, contextRelays, true);
|
||||
const columns = useBreakpointValue({ base: 1, lg: 2, xl: 3 }) ?? 1;
|
||||
|
39
src/views/user/about/user-joined-groups.tsx
Normal file
39
src/views/user/about/user-joined-groups.tsx
Normal file
@ -0,0 +1,39 @@
|
||||
import { Button, Flex, Heading, SimpleGrid, useDisclosure } from "@chakra-ui/react";
|
||||
import { encodeGroupPointer } from "applesauce-core/helpers/groups";
|
||||
|
||||
import { useAdditionalRelayContext } from "../../../providers/local/additional-relay-context";
|
||||
import { ErrorBoundary } from "../../../components/error-boundary";
|
||||
import { useBreakpointValue } from "../../../providers/global/breakpoint-provider";
|
||||
import useUserGroupsList from "../../../hooks/use-user-groups-list";
|
||||
import RouterLink from "../../../components/router-link";
|
||||
|
||||
export default function UserJoinedGroups({ pubkey }: { pubkey: string }) {
|
||||
const contextRelays = useAdditionalRelayContext();
|
||||
const { list, pointers: groups } = useUserGroupsList(pubkey, contextRelays, true);
|
||||
const columns = useBreakpointValue({ base: 1, lg: 2, xl: 3 }) ?? 1;
|
||||
const showAll = useDisclosure();
|
||||
|
||||
if (groups.length === 0) return null;
|
||||
|
||||
return (
|
||||
<Flex direction="column" px="2">
|
||||
<Heading size="md" my="2">
|
||||
Joined Groups ({groups.length})
|
||||
</Heading>
|
||||
<SimpleGrid spacing="4" columns={columns}>
|
||||
{(showAll.isOpen ? groups : groups.slice(0, columns * 2)).map((pointer) => (
|
||||
<ErrorBoundary key={pointer.id}>
|
||||
<Button as={RouterLink} to={`/groups/${encodeGroupPointer(pointer)}`}>
|
||||
{encodeGroupPointer(pointer)}
|
||||
</Button>
|
||||
</ErrorBoundary>
|
||||
))}
|
||||
</SimpleGrid>
|
||||
{!showAll.isOpen && groups.length > columns * 2 && (
|
||||
<Button variant="link" pt="4" onClick={showAll.onOpen}>
|
||||
Show All
|
||||
</Button>
|
||||
)}
|
||||
</Flex>
|
||||
);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user