Start hacking on sidebar names

This commit is contained in:
Jacob Karlsson 2024-05-24 15:40:26 +02:00
parent 618d7298e1
commit 8a696a66db
4 changed files with 59 additions and 8 deletions

39
main.js
View File

@ -3,6 +3,8 @@ const Path = require('node:path')
const URL = require('node:url')
const p = require('node:util').promisify
const awaitable = require('pull-awaitable')
const iterable = require( 'pull-iterable' )
const pull = require('pull-stream')
const { createPeer } = require('pzp-sdk')
// WARNING monkey patch! -------------------------------------------------------
@ -116,6 +118,8 @@ createPeer({ path }).then(({ peer, account: globalAccountID }) => {
msgIDToElemID.set(msgID, elemID)
elementsByID.set(elemID, msg.data)
}
} else {
console.log('other msg on init', msg)
}
}
const initialElements = [...elementsByID.values()]
@ -132,6 +136,9 @@ createPeer({ path }).then(({ peer, account: globalAccountID }) => {
elementsByID.set(elemID, msg.data)
}
mainWindow.webContents.send('readElements', [msg.data])
} else if(msg?.domain === 'dict_v1__profile') {
// TODO: load on init as well
console.log('other msg on stream', msg)
}
})
@ -174,8 +181,38 @@ createPeer({ path }).then(({ peer, account: globalAccountID }) => {
if (hasSubscribedToConnections) return
hasSubscribedToConnections = true
//async function* recordAdded( start, end ){
// peer.db.onRecordAdded((record) => {
// yield record
// })
//}
const recordsAdded = pull(
pull.count(),
pull.asyncMap((i, cb) => {
})
)
// TODO: combine peers() and onRecordAdded() into one async iterator, so we update the connections list if either there's a new connection *or* if one connected peer has a new name
for await (const connections of awaitable(peer.net.peers())) {
mainWindow.webContents.send('connections', connections)
const connInfo = await Promise.all(connections.map(async (conn) => {
const [multiaddr] = conn
const parts = multiaddr.split('/')
// TODO: woops this seems to get your own name
const key = parts[parts.length - 1]
const accountId = await p(peer.db.account.find)({public: key, subdomain: 'person'})
const profile = await p(peer.dict.read)(accountId, 'profile')
const name = profile?.name
return [
conn[0],
{
...conn[1],
name,
},
]
}))
mainWindow.webContents.send('connections', connInfo)
}
}

View File

@ -21,21 +21,23 @@
"@testing-library/user-event": "^13.5.0",
"concurrently": "^8.2.2",
"debounce": "2.0",
"pull-awaitable": "1.0.0",
"pull-iterable": "^0.1.0",
"pull-stream": "^3.7.0",
"pzp-caps": "^1.0.0",
"pzp-conductor": "^1.0.2",
"pzp-db": "^1.0.2",
"pzp-dict": "^1.0.0",
"pzp-gc": "^1.0.0",
"pzp-goals": "^1.0.0",
"pzp-hub-client": "^1.0.0",
"pzp-invite": "^1.0.0",
"pzp-keypair": "^1.0.0",
"pzp-net": "^1.0.1",
"pzp-promise": "^1.0.0",
"pzp-sdk": "^1.0.0",
"pzp-set": "^1.0.0",
"pzp-sync": "^1.0.0",
"pzp-conductor": "^1.0.2",
"pzp-hub-client": "^1.0.0",
"pzp-invite": "^1.0.0",
"pzp-net": "^1.0.1",
"pzp-promise": "^1.0.0",
"pull-awaitable": "1.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-outside-click-handler": "1.3.0",

View File

@ -22,6 +22,12 @@ dependencies:
pull-awaitable:
specifier: 1.0.0
version: 1.0.0
pull-iterable:
specifier: ^0.1.0
version: 0.1.0
pull-stream:
specifier: ^3.7.0
version: 3.7.0
pzp-caps:
specifier: ^1.0.0
version: 1.0.0
@ -9496,6 +9502,10 @@ packages:
pull-stream: 3.7.0
dev: false
/pull-iterable@0.1.0:
resolution: {integrity: sha512-FjhQ/STYNGwQaBhmuiZspL/+PIj+OHB1lE9OteegEWzciQhkJPx6Fwt+jqcpRDJ3kTzpt/ETSo3M5TFRpZ0pgQ==}
dev: false
/pull-looper@1.0.0:
resolution: {integrity: sha512-djlD60A6NGe5goLdP5pgbqzMEiWmk1bInuAzBp0QOH4vDrVwh05YDz6UP8+pOXveKEk8wHVP+rB2jBrK31QMPA==}
dependencies:

View File

@ -13,6 +13,8 @@ function Connections() {
setConnections(arr)
})
})
console.log('connections', connections)
// TODO: put the names into the sidebar instead of the multiaddr (if the name exists)
return (
<>
@ -30,7 +32,7 @@ function Connections() {
<div className="shrink-0 w-2 h-2 mb-0.5 bg-yellow-500 rounded-full mr-1" />
)}
<div className="break-all">
{tinyMultiaddr(multiaddr)}
{/*tinyMultiaddr(multiaddr)*/multiaddr}
</div>
</div>
))}