notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

commit ff673644614e0b5b3ef1a4ab3eb12d0f9d8790b7
parent 16a4c3e9afea064a1997dbf469e1d10c754a7ae8
Author: William Casarin <jb55@jb55.com>
Date:   Fri, 13 Feb 2026 13:10:13 -0800

tos: add TOS acceptance screen shown on first launch

Add Route::TosAcceptance with a scrollable EULA view, age verification
and TOS agreement checkboxes, and an accept button. On mobile app init,
if TOS has not been accepted yet, the user is routed to this screen
before they can use the app. Acceptance is persisted via
settings.accept_tos(). Only shown on Android/iOS builds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Diffstat:
Mcrates/notedeck_columns/src/app.rs | 8++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/crates/notedeck_columns/src/app.rs b/crates/notedeck_columns/src/app.rs @@ -20,9 +20,9 @@ use egui_extras::{Size, StripBuilder}; use enostr::{ClientMessage, Pubkey, RelayEvent, RelayMessage}; use nostrdb::Transaction; use notedeck::{ - tr, try_process_events_core, ui::is_narrow, Accounts, AppAction, AppContext, AppResponse, - DataPath, DataPathType, FilterState, Images, Localization, MediaJobSender, NotedeckOptions, - SettingsHandler, + tr, try_process_events_core, ui::is_compiled_as_mobile, ui::is_narrow, Accounts, AppAction, + AppContext, AppResponse, DataPath, DataPathType, FilterState, Images, Localization, + MediaJobSender, NotedeckOptions, SettingsHandler, }; use notedeck_ui::{ media::{MediaViewer, MediaViewerFlags, MediaViewerState}, @@ -256,7 +256,7 @@ fn update_damus(damus: &mut Damus, app_ctx: &mut AppContext<'_>, ctx: &egui::Con warn!("update_damus init: {err}"); } - if !app_ctx.settings.tos_accepted() { + if is_compiled_as_mobile() && !app_ctx.settings.tos_accepted() { damus .columns_mut(app_ctx.i18n, app_ctx.accounts) .get_selected_router()