npub.email/src/lib/folderLabel.ts
2024-11-27 20:15:51 +01:00

28 lines
870 B
TypeScript

import { NDKEvent, type NDKEventId, NDKKind } from '@nostr-dev-kit/ndk';
export class FolderLabel {
id: NDKEventId;
name: string;
icon: string;
constructor() {
this.id = '';
this.name = '';
this.icon = '';
}
static async fromDecryptedMessage(
decryptedMessage: NDKEvent,
encryptedMessage: NDKEvent
): Promise<FolderLabel> {
if (decryptedMessage.kind !== NDKKind.Label) throw new Error('Not a label');
let labelType = decryptedMessage.tags.find((t) => t[0] === 'label-type')?.[1];
if (!labelType) throw new Error('No label type');
if (labelType !== 'folder') throw new Error('Not a folder');
let label = new FolderLabel();
label.id = encryptedMessage.id;
label.name = decryptedMessage.tags.find((t) => t[0] === 'name')?.[1] ?? 'No name';
label.icon = decryptedMessage.tags.find((t) => t[0] === 'icon')?.[1] ?? '';
return label;
}
}