Create dedicated Nostr Connect component, use nsec.app relay

This commit is contained in:
2026-04-19 15:15:55 +04:00
parent 629a308b79
commit 99d8ca9174
5 changed files with 132 additions and 112 deletions

View File

@@ -10,6 +10,7 @@ import Icon from '../components/icon';
import PlaceEditForm from './place-edit-form';
import PlaceListsManager from './place-lists-manager';
import PlacePhotoUpload from './place-photo-upload';
import NostrConnect from './nostr-connect';
import Modal from './modal';
import { tracked } from '@glimmer/tracking';
@@ -17,16 +18,22 @@ import { action } from '@ember/object';
export default class PlaceDetails extends Component {
@service storage;
@service nostrAuth;
@tracked isEditing = false;
@tracked showLists = false;
@tracked isPhotoUploadModalOpen = false;
@tracked isNostrConnectModalOpen = false;
@action
openPhotoUploadModal(e) {
if (e) {
e.preventDefault();
}
this.isPhotoUploadModalOpen = true;
if (!this.nostrAuth.isConnected) {
this.isNostrConnectModalOpen = true;
} else {
this.isPhotoUploadModalOpen = true;
}
}
@action
@@ -34,6 +41,17 @@ export default class PlaceDetails extends Component {
this.isPhotoUploadModalOpen = false;
}
@action
closeNostrConnectModal() {
this.isNostrConnectModalOpen = false;
}
@action
onNostrConnected() {
this.isNostrConnectModalOpen = false;
this.isPhotoUploadModalOpen = true;
}
get isSaved() {
return this.storage.isPlaceSaved(this.place.id || this.place.osmId);
}
@@ -518,7 +536,7 @@ export default class PlaceDetails extends Component {
</div>
{{#if this.osmUrl}}
<div class="meta-info">
<div class="meta-info">
<p class="content-with-icon">
<Icon @name="camera" />
<span>
@@ -527,7 +545,7 @@ export default class PlaceDetails extends Component {
</a>
</span>
</p>
</div>
</div>
{{/if}}
</div>
@@ -536,5 +554,11 @@ export default class PlaceDetails extends Component {
<PlacePhotoUpload @place={{this.saveablePlace}} />
</Modal>
{{/if}}
{{#if this.isNostrConnectModalOpen}}
<Modal @onClose={{this.closeNostrConnectModal}}>
<NostrConnect @onConnect={{this.onNostrConnected}} />
</Modal>
{{/if}}
</template>
}