This commit is contained in:
Ren Amamiya 2023-04-21 13:58:46 +07:00
parent 1ee77c28fe
commit f8dff5f81e
4 changed files with 55 additions and 176 deletions

View File

@ -14,8 +14,6 @@
"**/*.{js,ts,jsx,tsx}": "eslint --fix"
},
"dependencies": {
"@emoji-mart/data": "^1.1.2",
"@emoji-mart/react": "^1.1.1",
"@radix-ui/react-alert-dialog": "^1.0.3",
"@radix-ui/react-collapsible": "^1.0.2",
"@radix-ui/react-dialog": "^1.0.3",
@ -24,11 +22,10 @@
"@radix-ui/react-tabs": "^1.0.3",
"@radix-ui/react-tooltip": "^1.0.5",
"@rehooks/local-storage": "^2.4.4",
"@supabase/supabase-js": "^2.20.0",
"@supabase/supabase-js": "^2.21.0",
"@tauri-apps/api": "^1.2.0",
"dayjs": "^1.11.7",
"destr": "^1.2.2",
"emoji-mart": "^5.5.2",
"framer-motion": "^9.1.7",
"iconoir-react": "^6.6.0",
"jotai": "^2.0.4",
@ -42,15 +39,14 @@
"react-string-replace": "^1.1.0",
"react-virtuoso": "^4.2.2",
"tauri-plugin-sql-api": "github:tauri-apps/tauri-plugin-sql",
"unique-names-generator": "^4.7.1",
"ws": "^8.13.0"
"unique-names-generator": "^4.7.1"
},
"devDependencies": {
"@next/bundle-analyzer": "^13.3.0",
"@tailwindcss/typography": "^0.5.9",
"@tauri-apps/cli": "^1.2.3",
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
"@types/node": "^18.15.11",
"@types/node": "^18.15.13",
"@types/react": "^18.0.37",
"@types/react-dom": "^18.0.11",
"@typescript-eslint/eslint-plugin": "^5.59.0",
@ -66,11 +62,12 @@
"eslint-plugin-react-hooks": "^4.6.0",
"husky": "^8.0.3",
"lint-staged": "^13.2.1",
"postcss": "^8.4.22",
"postcss": "^8.4.23",
"prettier": "^2.8.7",
"prettier-plugin-tailwindcss": "^0.2.7",
"prop-types": "^15.8.1",
"tailwindcss": "^3.3.1",
"typescript": "^4.9.5"
"typescript": "^4.9.5",
"ws": "^8.13.0"
}
}

View File

@ -1,8 +1,6 @@
lockfileVersion: 5.4
specifiers:
'@emoji-mart/data': ^1.1.2
'@emoji-mart/react': ^1.1.1
'@next/bundle-analyzer': ^13.3.0
'@radix-ui/react-alert-dialog': ^1.0.3
'@radix-ui/react-collapsible': ^1.0.2
@ -12,12 +10,12 @@ specifiers:
'@radix-ui/react-tabs': ^1.0.3
'@radix-ui/react-tooltip': ^1.0.5
'@rehooks/local-storage': ^2.4.4
'@supabase/supabase-js': ^2.20.0
'@supabase/supabase-js': ^2.21.0
'@tailwindcss/typography': ^0.5.9
'@tauri-apps/api': ^1.2.0
'@tauri-apps/cli': ^1.2.3
'@trivago/prettier-plugin-sort-imports': ^4.1.1
'@types/node': ^18.15.11
'@types/node': ^18.15.13
'@types/react': ^18.0.37
'@types/react-dom': ^18.0.11
'@typescript-eslint/eslint-plugin': ^5.59.0
@ -27,7 +25,6 @@ specifiers:
csstype: ^3.1.2
dayjs: ^1.11.7
destr: ^1.2.2
emoji-mart: ^5.5.2
encoding: ^0.1.13
eslint: ^8.38.0
eslint-config-next: ^13.3.0
@ -42,7 +39,7 @@ specifiers:
next: 13.3.1-canary.16
nostr-relaypool: ^0.5.18
nostr-tools: ^1.10.0
postcss: ^8.4.22
postcss: ^8.4.23
prettier: ^2.8.7
prettier-plugin-tailwindcss: ^0.2.7
prop-types: ^15.8.1
@ -59,8 +56,6 @@ specifiers:
ws: ^8.13.0
dependencies:
'@emoji-mart/data': 1.1.2
'@emoji-mart/react': 1.1.1_kyrnz3vmphzqyjjk2ivrm6bcsu
'@radix-ui/react-alert-dialog': 1.0.3_jf7puk66b2eiqxne3oe3xlxkou
'@radix-ui/react-collapsible': 1.0.2_biqbaboplfbrettd7655fr4n2y
'@radix-ui/react-dialog': 1.0.3_jf7puk66b2eiqxne3oe3xlxkou
@ -69,11 +64,10 @@ dependencies:
'@radix-ui/react-tabs': 1.0.3_biqbaboplfbrettd7655fr4n2y
'@radix-ui/react-tooltip': 1.0.5_jf7puk66b2eiqxne3oe3xlxkou
'@rehooks/local-storage': 2.4.4_react@18.2.0
'@supabase/supabase-js': 2.20.0_encoding@0.1.13
'@supabase/supabase-js': 2.21.0_encoding@0.1.13
'@tauri-apps/api': 1.2.0
dayjs: 1.11.7
destr: 1.2.2
emoji-mart: 5.5.2
framer-motion: 9.1.7_biqbaboplfbrettd7655fr4n2y
iconoir-react: 6.6.0_react@18.2.0
jotai: 2.0.4_react@18.2.0
@ -88,19 +82,18 @@ dependencies:
react-virtuoso: 4.2.2_biqbaboplfbrettd7655fr4n2y
tauri-plugin-sql-api: github.com/tauri-apps/tauri-plugin-sql/62b21ef24303d80e9905f57b2b6d27efc8677c23
unique-names-generator: 4.7.1
ws: 8.13.0
devDependencies:
'@next/bundle-analyzer': 13.3.0
'@tailwindcss/typography': 0.5.9_tailwindcss@3.3.1
'@tauri-apps/cli': 1.2.3
'@trivago/prettier-plugin-sort-imports': 4.1.1_prettier@2.8.7
'@types/node': 18.15.11
'@types/node': 18.15.13
'@types/react': 18.0.37
'@types/react-dom': 18.0.11
'@typescript-eslint/eslint-plugin': 5.59.0_fdxyi3g57a6lyb5rx36h2olw2q
'@typescript-eslint/parser': 5.59.0_ze6bmax3gcsfve3yrzu6npguhe
autoprefixer: 10.4.14_postcss@8.4.22
autoprefixer: 10.4.14_postcss@8.4.23
cross-env: 7.0.3
csstype: 3.1.2
encoding: 0.1.13
@ -111,12 +104,13 @@ devDependencies:
eslint-plugin-react-hooks: 4.6.0_eslint@8.38.0
husky: 8.0.3
lint-staged: 13.2.1
postcss: 8.4.22
postcss: 8.4.23
prettier: 2.8.7
prettier-plugin-tailwindcss: 0.2.7_yk5p2qt6yzw3zyyilt4azle7eu
prop-types: 15.8.1
tailwindcss: 3.3.1_postcss@8.4.22
tailwindcss: 3.3.1_postcss@8.4.23
typescript: 4.9.5
ws: 8.13.0
packages:
/@babel/code-frame/7.21.4:
@ -254,22 +248,6 @@ packages:
to-fast-properties: 2.0.0
dev: true
/@emoji-mart/data/1.1.2:
resolution:
{ integrity: sha512-1HP8BxD2azjqWJvxIaWAMyTySeZY0Osr83ukYjltPVkNXeJvTz7yDrPLBtnrD5uqJ3tg4CcLuuBW09wahqL/fg== }
dev: false
/@emoji-mart/react/1.1.1_kyrnz3vmphzqyjjk2ivrm6bcsu:
resolution:
{ integrity: sha512-NMlFNeWgv1//uPsvLxvGQoIerPuVdXwK/EUek8OOkJ6wVOWPUizRBJU0hDqWZCOROVpfBgCemaC3m6jDOXi03g== }
peerDependencies:
emoji-mart: ^5.2
react: ^16.8 || ^17 || ^18
dependencies:
emoji-mart: 5.5.2
react: 18.2.0
dev: false
/@emotion/is-prop-valid/0.8.8:
resolution:
{ integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== }
@ -1127,9 +1105,9 @@ packages:
- encoding
dev: false
/@supabase/gotrue-js/2.22.3_encoding@0.1.13:
/@supabase/gotrue-js/2.23.0_encoding@0.1.13:
resolution:
{ integrity: sha512-GBu+YT7jaWgmmVRNPZnT2YmO7TjscjoBVMzMDnr2yPL6C2ImzRmOKIbHnGliDeI5EaEsPPljWoYR4xB+WJb98w== }
{ integrity: sha512-N6o+MMGsPDbdiz0R0Oy9GlgefYFjJJvoBduR16s8c1H3yG2jp6jq+pMEP18P1bg7uk2DljEjyBnVN7Wj7SJ2Zw== }
dependencies:
cross-fetch: 3.1.5_encoding@0.1.13
transitivePeerDependencies:
@ -1165,12 +1143,12 @@ packages:
- encoding
dev: false
/@supabase/supabase-js/2.20.0_encoding@0.1.13:
/@supabase/supabase-js/2.21.0_encoding@0.1.13:
resolution:
{ integrity: sha512-6sNX4WEaVBbmOS1K2U3PcpAhp0FcjVo1FRSEoj4N+NZ6DIokX+yut8IBhF176pg5kFCdFIL2wyNhf3SltREmWw== }
{ integrity: sha512-FW3ZzBoc4orSgfX0dXrmJoXAcI/hiekmqXTkN64vjtUF2Urp3UjyAf71UTtV9Jl6ejHoe3K++e0+Rg9zKUJh5w== }
dependencies:
'@supabase/functions-js': 2.1.1_encoding@0.1.13
'@supabase/gotrue-js': 2.22.3_encoding@0.1.13
'@supabase/gotrue-js': 2.23.0_encoding@0.1.13
'@supabase/postgrest-js': 1.6.0_encoding@0.1.13
'@supabase/realtime-js': 2.7.2
'@supabase/storage-js': 2.5.1_encoding@0.1.13
@ -1197,7 +1175,7 @@ packages:
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
postcss-selector-parser: 6.0.10
tailwindcss: 3.3.1_postcss@8.4.22
tailwindcss: 3.3.1_postcss@8.4.23
dev: true
/@tauri-apps/api/1.2.0:
@ -1344,9 +1322,9 @@ packages:
{ integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== }
dev: true
/@types/node/18.15.11:
/@types/node/18.15.13:
resolution:
{ integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== }
{ integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== }
/@types/phoenix/1.5.6:
resolution:
@ -1385,7 +1363,7 @@ packages:
resolution:
{ integrity: sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ== }
dependencies:
'@types/node': 18.15.11
'@types/node': 18.15.13
dev: false
/@typescript-eslint/eslint-plugin/5.59.0_fdxyi3g57a6lyb5rx36h2olw2q:
@ -1718,7 +1696,7 @@ packages:
engines: { node: '>=8' }
dev: true
/autoprefixer/10.4.14_postcss@8.4.22:
/autoprefixer/10.4.14_postcss@8.4.23:
resolution:
{ integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== }
engines: { node: ^10 || ^12 || >=14 }
@ -1727,11 +1705,11 @@ packages:
postcss: ^8.1.0
dependencies:
browserslist: 4.21.5
caniuse-lite: 1.0.30001480
caniuse-lite: 1.0.30001481
fraction.js: 4.2.0
normalize-range: 0.1.2
picocolors: 1.0.0
postcss: 8.4.22
postcss: 8.4.23
postcss-value-parser: 4.2.0
dev: true
@ -1787,7 +1765,7 @@ packages:
engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
hasBin: true
dependencies:
caniuse-lite: 1.0.30001480
caniuse-lite: 1.0.30001481
electron-to-chromium: 1.4.368
node-releases: 2.0.10
update-browserslist-db: 1.0.11_browserslist@4.21.5
@ -1829,9 +1807,9 @@ packages:
engines: { node: '>= 6' }
dev: true
/caniuse-lite/1.0.30001480:
/caniuse-lite/1.0.30001481:
resolution:
{ integrity: sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ== }
{ integrity: sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ== }
/chalk/2.4.2:
resolution:
@ -2074,7 +2052,7 @@ packages:
object-is: 1.1.5
object-keys: 1.1.1
object.assign: 4.1.4
regexp.prototype.flags: 1.4.3
regexp.prototype.flags: 1.5.0
side-channel: 1.0.4
which-boxed-primitive: 1.0.2
which-collection: 1.0.1
@ -2166,11 +2144,6 @@ packages:
{ integrity: sha512-e2aeCAixCj9M7nJxdB/wDjO6mbYX+lJJxSJCXDzlr5YPGYVofuJwGN9nKg2o6wWInjX6XmxRinn3AeJMK81ltw== }
dev: true
/emoji-mart/5.5.2:
resolution:
{ integrity: sha512-Sqc/nso4cjxhOwWJsp9xkVm8OF5c+mJLZJFoFfzRuKO+yWiN7K8c96xmtughYb0d/fZ8UC6cLIQ/p4BR6Pv3/A== }
dev: false
/emoji-regex/8.0.0:
resolution:
{ integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== }
@ -2187,9 +2160,9 @@ packages:
dependencies:
iconv-lite: 0.6.3
/enhanced-resolve/5.12.0:
/enhanced-resolve/5.13.0:
resolution:
{ integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== }
{ integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg== }
engines: { node: '>=10.13.0' }
dependencies:
graceful-fs: 4.2.11
@ -2227,7 +2200,7 @@ packages:
object-inspect: 1.12.3
object-keys: 1.1.1
object.assign: 4.1.4
regexp.prototype.flags: 1.4.3
regexp.prototype.flags: 1.5.0
safe-regex-test: 1.0.0
string.prototype.trim: 1.2.7
string.prototype.trimend: 1.0.6
@ -2381,7 +2354,7 @@ packages:
eslint-plugin-import: '*'
dependencies:
debug: 4.3.4
enhanced-resolve: 5.12.0
enhanced-resolve: 5.13.0
eslint: 8.38.0
eslint-module-utils: 2.8.0_amdmgvxvyswgee2ths52dmheye
eslint-plugin-import: 2.27.5_zd47usm4wh46g3or3idhwsf3ym
@ -3673,7 +3646,7 @@ packages:
'@next/env': 13.3.1-canary.16
'@swc/helpers': 0.5.0
busboy: 1.6.0
caniuse-lite: 1.0.30001480
caniuse-lite: 1.0.30001481
postcss: 8.4.14
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
@ -3989,20 +3962,20 @@ packages:
engines: { node: '>= 6' }
dev: true
/postcss-import/14.1.0_postcss@8.4.22:
/postcss-import/14.1.0_postcss@8.4.23:
resolution:
{ integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== }
engines: { node: '>=10.0.0' }
peerDependencies:
postcss: ^8.0.0
dependencies:
postcss: 8.4.22
postcss: 8.4.23
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.2
dev: true
/postcss-js/4.0.1_postcss@8.4.22:
/postcss-js/4.0.1_postcss@8.4.23:
resolution:
{ integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== }
engines: { node: ^12 || ^14 || >= 16 }
@ -4010,10 +3983,10 @@ packages:
postcss: ^8.4.21
dependencies:
camelcase-css: 2.0.1
postcss: 8.4.22
postcss: 8.4.23
dev: true
/postcss-load-config/3.1.4_postcss@8.4.22:
/postcss-load-config/3.1.4_postcss@8.4.23:
resolution:
{ integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== }
engines: { node: '>= 10' }
@ -4027,18 +4000,18 @@ packages:
optional: true
dependencies:
lilconfig: 2.1.0
postcss: 8.4.22
postcss: 8.4.23
yaml: 1.10.2
dev: true
/postcss-nested/6.0.0_postcss@8.4.22:
/postcss-nested/6.0.0_postcss@8.4.23:
resolution:
{ integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== }
engines: { node: '>=12.0' }
peerDependencies:
postcss: ^8.2.14
dependencies:
postcss: 8.4.22
postcss: 8.4.23
postcss-selector-parser: 6.0.11
dev: true
@ -4075,9 +4048,9 @@ packages:
source-map-js: 1.0.2
dev: false
/postcss/8.4.22:
/postcss/8.4.23:
resolution:
{ integrity: sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA== }
{ integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== }
engines: { node: ^10 || ^12 || >=14 }
dependencies:
nanoid: 3.3.6
@ -4324,9 +4297,9 @@ packages:
resolution:
{ integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== }
/regexp.prototype.flags/1.4.3:
/regexp.prototype.flags/1.5.0:
resolution:
{ integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== }
{ integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== }
engines: { node: '>= 0.4' }
dependencies:
call-bind: 1.0.2
@ -4583,7 +4556,7 @@ packages:
get-intrinsic: 1.2.0
has-symbols: 1.0.3
internal-slot: 1.0.5
regexp.prototype.flags: 1.4.3
regexp.prototype.flags: 1.5.0
side-channel: 1.0.4
dev: true
@ -4713,7 +4686,7 @@ packages:
tslib: 2.5.0
dev: true
/tailwindcss/3.3.1_postcss@8.4.22:
/tailwindcss/3.3.1_postcss@8.4.23:
resolution:
{ integrity: sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g== }
engines: { node: '>=12.13.0' }
@ -4735,11 +4708,11 @@ packages:
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.0.0
postcss: 8.4.22
postcss-import: 14.1.0_postcss@8.4.22
postcss-js: 4.0.1_postcss@8.4.22
postcss-load-config: 3.1.4_postcss@8.4.22
postcss-nested: 6.0.0_postcss@8.4.22
postcss: 8.4.23
postcss-import: 14.1.0_postcss@8.4.23
postcss-js: 4.0.1_postcss@8.4.23
postcss-load-config: 3.1.4_postcss@8.4.23
postcss-nested: 6.0.0_postcss@8.4.23
postcss-selector-parser: 6.0.11
postcss-value-parser: 4.2.0
quick-lru: 5.1.1
@ -5145,7 +5118,6 @@ packages:
optional: true
utf-8-validate:
optional: true
dev: false
/yaeti/0.0.6:
resolution:

View File

@ -1,67 +0,0 @@
'use client';
import { BrowseChannelItem } from '@components/channels/browseChannelItem';
import { getChannels } from '@utils/storage';
import { Suspense, useCallback, useEffect, useRef, useState } from 'react';
import { VirtuosoGrid } from 'react-virtuoso';
export default function Page() {
const [data, setData] = useState([]);
const virtuosoRef = useRef(null);
const limit = useRef(20);
const offset = useRef(0);
const itemContent: any = useCallback(
(index: string | number) => {
return <BrowseChannelItem key={data[index].event_id} data={data[index]} />;
},
[data]
);
const computeItemKey = useCallback(
(index: string | number) => {
return data[index].event_id;
},
[data]
);
const initialData = useCallback(async () => {
const result: any = await getChannels(limit.current, offset.current);
console.log(result);
setData((data) => [...data, ...result]);
}, [setData]);
const loadMore = useCallback(async () => {
offset.current += limit.current;
// query next page
const result: any = await getChannels(limit.current, offset.current);
setData((data) => [...data, ...result]);
}, [setData]);
useEffect(() => {
initialData().catch(console.error);
}, [initialData]);
return (
<div className="h-full w-full">
<div className="mx-auto h-full w-full max-w-2xl px-4">
<Suspense fallback={<>Loading...</>}>
<VirtuosoGrid
ref={virtuosoRef}
data={data}
itemContent={itemContent}
itemClassName="col-span-1"
listClassName="grid grid-cols-2 gap-4"
computeItemKey={computeItemKey}
overscan={200}
endReached={loadMore}
className="scrollbar-hide h-full w-full overflow-y-auto overflow-x-hidden"
/>
</Suspense>
</div>
</div>
);
}

View File

@ -1,23 +0,0 @@
import AppHeader from '@components/appHeader';
import MultiAccounts from '@components/multiAccounts';
export default function NostrLayout({ children }: { children: React.ReactNode }) {
return (
<div className="h-screen w-screen bg-zinc-50 text-zinc-900 dark:bg-black dark:text-white">
<div className="flex h-screen w-full flex-col">
<div
data-tauri-drag-region
className="relative h-11 shrink-0 border-b border-zinc-100 bg-white dark:border-zinc-900 dark:bg-black"
>
<AppHeader collector={true} />
</div>
<div className="relative flex min-h-0 w-full flex-1">
<div className="relative w-[68px] shrink-0 border-r border-zinc-900">
<MultiAccounts />
</div>
<div className="w-full">{children}</div>
</div>
</div>
</div>
);
}