Skip to content

Commit

Permalink
Zaps & Media Previews
Browse files Browse the repository at this point in the history
Zaps & Media Previews
  • Loading branch information
arbadacarbaYK authored Dec 28, 2024
1 parent 539099f commit d8d1892
Show file tree
Hide file tree
Showing 19 changed files with 2,785 additions and 561 deletions.
33 changes: 18 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,30 @@

Tides is a messaging application built as Chrome extension that enables secure and private communication using the Nostr protocol.

<p align="center">
<img src="https://github.com/user-attachments/assets/85527f53-7f04-4ff9-8e93-ef78ba71d737" width="300" />
<img src="https://github.com/user-attachments/assets/d9b07c28-dcfb-4934-9a90-519612f1925c" width="300" />
<img src="https://github.com/user-attachments/assets/7cde7eac-10d8-4181-8a15-0bbeef1b3ab2" width="300" />
</p>


## Features

- Secure login via:
- NIP-07 browser extension (recommended)
- NIP-07 browser extension
- Chrome storage
- Manual private key (nsec)
- Real-time encrypted messaging
- Contact management with profile pictures and usernames
- Message notifications with sound
- Media sharing support (images, videos, GIFs)
- Media link sharing and preview support:
- Images (PNG, JPG, WEBP, GIF)
- Videos (MP4, WEBM)
- YouTube videos
- Twitter/X posts
- Nostr notes and profiles
- Emoji picker
- Link previews
- Multi-relay support
- Zaps support
- Search history for contacts
- Integrated Noderunners Radio stream


## Installation

1. Download the latest release from the releases page
1. Download the latest release (v1.1.0) from the releases page

2. Install in Chrome:
- Open Chrome and navigate to `chrome://extensions`
Expand All @@ -37,7 +37,7 @@ Tides is a messaging application built as Chrome extension that enables secure a

## Login Methods

1. **NIP-07 Extension (Recommended)**
1. **NIP-07 Extension**
- Install a Nostr signer extension (like nos2x or Alby)
- Click "Login with Extension" in Tides

Expand All @@ -57,13 +57,18 @@ Built using:
- Chrome Storage API for data persistence
- Web Notifications API
- Giphy API for GIF support
- WebLN for Lightning Network integration

Supports NIPs:
- NIP-01: Basic protocol
- NIP-04: Encrypted Direct Messages
- NIP-05: DNS Identifiers
- NIP-07: Browser Extension
- NIP-19: bech32-encoded entities
- NIP-21: nostr: URL scheme
- NIP-25: Reactions
- NIP-44: Versioned Encryption
- NIP-57: Lightning Zaps
- NIP-89: Application Handlers

## Privacy & Security
Expand All @@ -73,6 +78,4 @@ Supports NIPs:
- Private keys never leave your device
- Open source and auditable

## License

MIT License - See LICENSE file for details
26 changes: 26 additions & 0 deletions lib/emoji-picker.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Basic emoji picker implementation
class EmojiPicker {
constructor(options) {
this.onSelect = options.onSelect;
this.emojis = ['😊', '😂', '❤️', '👍', '😎', '🎉', '🔥', '✨'];
}

togglePicker(triggerElement) {
const picker = document.createElement('div');
picker.className = 'emoji-picker';
picker.innerHTML = this.emojis.map(emoji =>
`<span class="emoji-option">${emoji}</span>`
).join('');

picker.addEventListener('click', (e) => {
if (e.target.classList.contains('emoji-option')) {
this.onSelect(e.target.textContent);
picker.remove();
}
});

triggerElement.parentNode.appendChild(picker);
}
}

self.EmojiPicker = EmojiPicker;
8 changes: 8 additions & 0 deletions lib/qrcode.min.js

Large diffs are not rendered by default.

Loading

0 comments on commit d8d1892

Please sign in to comment.