diff --git a/package-lock.json b/package-lock.json index c38a5ad1..544e2a75 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,6 +32,7 @@ "@twogate/ngx-photo-gallery": "^1.4.0", "@types/sharedworker": "^0.0.91", "angularx-qrcode": "^15.0.1", + "animiq-nip76-tools": "^1.0.5", "dexie": "^3.2.3", "html5-qrcode": "^2.3.7", "idb": "^7.1.1", @@ -4743,6 +4744,31 @@ "@angular/core": "^15.0.0" } }, + "node_modules/animiq-nip76-tools": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/animiq-nip76-tools/-/animiq-nip76-tools-1.0.5.tgz", + "integrity": "sha512-JumeH/1uTgTMEST5LOzeirprY7L0fQbFCien3UrhZN8Z31npSh8tK66gj+p9nG1+yCX5aYXN9LIxVadzndVDyA==", + "dependencies": { + "@noble/hashes": "^1.2.0" + }, + "peerDependencies": { + "@noble/secp256k1": "^1.7", + "@scure/base": "^1.1", + "nostr-tools": "^1.7.1", + "rxjs": "^7.0" + } + }, + "node_modules/animiq-nip76-tools/node_modules/@noble/hashes": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", + "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -16448,6 +16474,21 @@ "tslib": "^2.3.0" } }, + "animiq-nip76-tools": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/animiq-nip76-tools/-/animiq-nip76-tools-1.0.5.tgz", + "integrity": "sha512-JumeH/1uTgTMEST5LOzeirprY7L0fQbFCien3UrhZN8Z31npSh8tK66gj+p9nG1+yCX5aYXN9LIxVadzndVDyA==", + "requires": { + "@noble/hashes": "^1.2.0" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", + "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" + } + } + }, "ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", diff --git a/package.json b/package.json index fc9b14eb..d8ab08dc 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "@twogate/ngx-photo-gallery": "^1.4.0", "@types/sharedworker": "^0.0.91", "angularx-qrcode": "^15.0.1", + "animiq-nip76-tools": "file:../../animiq-nip76-tools/dist", "dexie": "^3.2.3", "html5-qrcode": "^2.3.7", "idb": "^7.1.1", diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 2942a28a..127c5638 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -33,6 +33,9 @@ import { LoginComponent } from './connect/login/login'; import { CreateProfileComponent } from './connect/create/create'; import { EditorBadgesComponent } from './editor-badges/editor'; import { BadgeComponent } from './badge/badge'; +import { Nip76MainComponent } from './nip76/nip76-main/nip76-main.component'; +import { Nip76DemoService } from './nip76/demo-only/nip76-demo.service'; +import { Nip76DemoStarterComponent } from './nip76/demo-only/nip76-demo-starter/nip76-demo-starter.component'; const routes: Routes = [ { @@ -139,6 +142,32 @@ const routes: Routes = [ data: LoadingResolverService, }, }, + { + path: 'private-channels', + component: Nip76MainComponent, + canActivate: [AuthGuard], + resolve: { + data: LoadingResolverService, + }, + }, + { + path: 'private-channels/sent-rsvps', + component: Nip76MainComponent, + canActivate: [AuthGuard], + data: { tabIndex: 1 }, + resolve: { + data: LoadingResolverService, + }, + }, + { + path: 'private-channels/:channelPubKey/notes', + component: Nip76MainComponent, + canActivate: [AuthGuard], + data: { tabIndex: 3 }, + resolve: { + data: LoadingResolverService, + }, + }, { path: 'badges/:id', component: BadgesComponent, diff --git a/src/app/app.css b/src/app/app.css index 3936a639..22906b4a 100644 --- a/src/app/app.css +++ b/src/app/app.css @@ -254,6 +254,9 @@ header { overscroll-behavior-y: contain; overflow-x: hidden; overflow-y: overlay !important; + + flex-direction: column; + display: flex; } .app-mediaplayer { diff --git a/src/app/app.html b/src/app/app.html index fb53fba8..d0a6da48 100644 --- a/src/app/app.html +++ b/src/app/app.html @@ -175,6 +175,10 @@
+ You may use your own private nostr key, but we understand why many users would be hesitant + to do this. If so, please feel free to use a demo profile like + Alice + or Bob, + or create an entirely new user. +
+ +Error: {{ error }}
+NIP 76 Private Channels are not initialized for this profile yet.
++ You have no channels yet. You can create one of your own and invite others + or read an invitation to another's channel. +
++ Here is an invitation + from a Demo user named Alice. + The password is "test". +
+