From 284cc8b01978a5bd23199d3ff78cfc1641ba16f5 Mon Sep 17 00:00:00 2001 From: cmd Date: Sun, 3 Mar 2024 20:44:15 -0600 Subject: [PATCH] update --- demo/draft/alice/leave.ts | 21 +++++++++++++++++++++ src/client/class/draft.ts | 15 ++++++--------- 2 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 demo/draft/alice/leave.ts diff --git a/demo/draft/alice/leave.ts b/demo/draft/alice/leave.ts new file mode 100644 index 00000000..3522fafa --- /dev/null +++ b/demo/draft/alice/leave.ts @@ -0,0 +1,21 @@ +import { DraftSession } from '@scrow/core' +import { signer } from './config.js' +import { secret_id } from '../terms.js' + +const session = new DraftSession(secret_id, signer, { + debug : false, + verbose : false +}) + +session.on('ready', () => { + console.log('session:', session.data) + if (session.is_member) { + session.leave() + } +}) + +session.on('leave', (data) => { + console.log('left:', data) +}) + +await session.connect('wss://relay.damus.io') diff --git a/src/client/class/draft.ts b/src/client/class/draft.ts index 3bbd6644..1f3da10d 100644 --- a/src/client/class/draft.ts +++ b/src/client/class/draft.ts @@ -25,7 +25,6 @@ import { } from '@/lib/policy.js' import { - get_object_id, is_hash, now } from '@/lib/util.js' @@ -372,8 +371,8 @@ export class DraftSession extends EventEmitter <{ this.emit('leave', mship) } - _leave_handler (msg : EventMessage) { - const mship = msg.body + _leave_handler (msg : EventMessage) { + const mship = JSON.parse(msg.body) const cat = msg.envelope.created_at this._leave(mship, cat) this.log.info('member left :', mship.pub) @@ -534,13 +533,11 @@ export class DraftSession extends EventEmitter <{ const members = this.data.members const signer = this.signer if (has_membership(members, signer._signer)) { - const cred = signer.credential.claim(members) - const mship = cred.data - const commit_id = get_object_id(mship).hex - const receipt = this.when_commit(commit_id) - this.log.info('send commit :', commit_id) + const cred = signer.credential.claim(members) + const mship = cred.data + this._leave(mship) this._room.send('leave', JSON.stringify(mship)) - return receipt + this.log.info('send leave :', mship.pub) } return }