Commit Graph

32 Commits

Author SHA1 Message Date
kernelkind
bd78be1659 move error out of AnyZapState
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-04-16 13:34:51 -04:00
William Casarin
50dec5b5d5 context: implement note broadcasting
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 16:02:43 -07:00
kernelkind
cfbd601196 note zap button
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-04-08 22:50:00 -04:00
kernelkind
5917bc16fd propagate current account
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-04-08 22:50:00 -04:00
William Casarin
54deb2dd88 switch to profiling crates
This switches to the profiling crate for compatible
profiling between rust libraries.

To enable:

$ cargo build --release --features puffin

Feel free to experiment with other profiling backends
as well! Would be great to get tracy working.
2025-03-23 11:30:18 -07:00
William Casarin
2e991a9aa5 fix a few compile issues after rebase
Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-11 10:55:15 -07:00
William Casarin
51457a0260 android: update to latest winit/egui/android-activity
so we can start fixing this shit

Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-11 10:51:56 -07:00
kernelkind
a9f473e3c9 introduce NoteContext
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-03-08 14:57:32 -05:00
kernelkind
8e0e42a1f3 fix note content rects
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-03-07 18:04:12 -05:00
kernelkind
e7113b17a8 fix note context menu placement inside rect
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-03-07 18:04:12 -05:00
William Casarin
4365839242 Revert driller
This reverts commit cec49c83bd.

Revert "update NoteContentsDriller to NoteContext"

This reverts commit 65bd6a65f9.

Revert "introduce the driller"

This reverts commit 95d618e7fe.
2025-03-07 12:53:34 -08:00
William Casarin
cec49c83bd fix formatting
Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-07 12:36:26 -08:00
William Casarin
65bd6a65f9 update NoteContentsDriller to NoteContext
Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-07 12:30:53 -08:00
kernelkind
95d618e7fe introduce the driller
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-03-07 12:07:24 -05:00
kernelkind
035aa20790 remove redudant arg
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-03-07 11:58:39 -05:00
William Casarin
95affa2245 ui: fix bounciness when loading pfps
Signed-off-by: William Casarin <jb55@jb55.com>
2025-02-27 10:37:07 -08:00
kernelkind
33fdf647e3 migrate to using Images instead of MediaCache directly
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-02-25 16:49:00 -05:00
kernelkind
4f4a0feb8c rename ImageCache -> MediaCache
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-02-25 16:49:00 -05:00
William Casarin
bd352f76d4 feat: add scramble flag for development text scrambling
This commit introduces a new scramble option to help reduce distractions
during development by scrambling text using rot13. When enabled via the
new `--scramble` flag, text displayed in various views is transformed,
making it easier to focus on layout and behavior without reading the
actual content.

App & Args Updates

  - Added a `scramble: bool` field to the main application state (in `app.rs`).

  - Extended argument parsing (in `args.rs`) to recognize the `--scramble` flag.

NoteOptions Enhancement

  - Introduced a new bit flag `scramble_text` in `NoteOptions` with
    corresponding setter/getter methods.

UI Adjustments

  - Propagated the scramble flag through note rendering functions across
    navigation, timeline, and note view modules.

  - Updated several UI components (e.g., in `nav.rs`, `route.rs`, and
    `contents.rs`) to accept and apply the new note options.

Rot13 Implementation

  - Implemented a helper function (`rot13`) to scramble text
    conditionally when the scramble option is enabled.

This feature is intended for development builds only, offering a way to
obscure text content during UI tweaks and testing.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-02-22 14:30:38 -08:00
William Casarin
ac10c7e5b2 hashtags: click hashtags to open them
Fixes: https://github.com/damus-io/notedeck/issues/695
Fixes: https://github.com/damus-io/notedeck/issues/713
Changelog-Added: Add ability to click hashtags
Signed-off-by: William Casarin <jb55@jb55.com>
2025-02-05 18:43:09 -08:00
William Casarin
96481a47f3 pfp: remove border except for profile
Signed-off-by: William Casarin <jb55@jb55.com>
2025-02-03 19:45:32 -08:00
jglad
cd72cc36e8 fix formatting 2025-01-31 08:41:25 +01:00
jglad
803f427f77 make optional 2025-01-30 19:14:02 +01:00
kernelkind
a7cfe9bd37 refactor DisplayName -> NostrName
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-01-03 18:39:35 -05:00
kernelkind
2dde3034a1 refactor profile
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-01-03 18:39:35 -05:00
William Casarin
cb2330abac refactor: move reply_desc into its own file
it's grown up enough now to deserve that at least
2024-12-19 07:58:43 -08:00
William Casarin
09d6568ef9 ui: make reply description mentions clickable
Small oversight from previous changes
2024-12-18 14:55:11 -08:00
William Casarin
4967f64bb6 ui: show note previews when hovering reply descriptions
Preview: https://cdn.jb55.com/s/bef26a2caf09e952.png
Demo: https://cdn.jb55.com/s/hover-preview-2.mp4

Changelog-Added: Show note previews when hovering reply descriptions
Signed-off-by: William Casarin <jb55@jb55.com>
2024-12-17 14:43:46 -08:00
William Casarin
80982059fc ui: fix repost button size
triggering ocd

Changelog-Fixed: Fix repost button size
Signed-off-by: William Casarin <jb55@jb55.com>
2024-12-17 12:32:58 -08:00
William Casarin
59dec0c066 ui: show cursor when hovering pfp
Signed-off-by: William Casarin <jb55@jb55.com>
2024-12-17 12:21:40 -08:00
William Casarin
ec755493d9 Introducing Damus Notedeck: a nostr browser
This splits notedeck into:

- notedeck
- notedeck_chrome
- notedeck_columns

The `notedeck` crate is the library that `notedeck_chrome` and
`notedeck_columns`, use. It contains common functionality related to
notedeck apps such as the NoteCache, ImageCache, etc.

The `notedeck_chrome` crate is the binary and ui chrome. It is
responsible for managing themes, user accounts, signing, data paths,
nostrdb, image caches etc. It will eventually have its own ui which has
yet to be determined.  For now it just manages the browser data, which
is passed to apps via a new struct called `AppContext`.

`notedeck_columns` is our columns app, with less responsibility now that
more things are handled by `notedeck_chrome`

There is still much work left to do before this is a proper browser:

- process isolation
- sandboxing
- etc

This is the beginning of a new era! We're just getting started.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-12-12 20:08:55 -08:00
William Casarin
74c5f0c748 split notedeck into crates
This splits notedeck into crates, separating the browser chrome and
individual apps:

* notedeck: binary file, browser chrome
* notedeck_columns: our columns app
* enostr: same as before

We still need to do more work to cleanly separate the chrome apis
from the app apis. Soon I will create notedeck-notebook to see what
makes sense to be shared between the apps.

Some obvious ones that come to mind:

1. ImageCache

We will likely want to move this to the notedeck crate, as most apps
will want some kind of image cache. In web browsers, web pages do not
need to worry about this, so we will likely have to do something similar

2. Ndb

Since NdbRef is threadsafe and Ndb is an Arc<NdbRef>, it can be safely
copied to each app. This will simplify things. In the future we might
want to create an abstraction over this? Maybe each app shouldn't have
access to the same database... we assume the data in DBs are all public
anyways, but if we have unwrapped giftwraps that could be a problem.

3. RelayPool / Subscription Manager

The browser should probably maintain these. Then apps can use ken's
high level subscription manager api and not have to worry about
connection pool details

4. Accounts

Accounts and key management should be handled by the chrome. Apps should
only have a simple signer interface.

That's all for now, just something to think about!

Signed-off-by: William Casarin <jb55@jb55.com>
2024-12-11 11:24:29 -08:00