Files
andros 7e1c37db7f Settings toggle to disable per-post share + configurable preview URL
The previous commit hardcoded https://preview.org-social.org/ as the
preview service for the Share button on each post. Now both the toggle
and the URL are user-configurable:

- New UserDefaults keys, registered with sensible defaults in
  OrgSocialApp.init: previewServiceEnabled (true), previewServiceURL
  ("https://preview.org-social.org/").
- SettingsViewModel exposes both as @Observable properties, persists them
  in saveIfValid, and adds previewServiceValid -> canSave so the URL
  must be a valid HTTP(S) URL when the toggle is on (when off the field
  is irrelevant and validation passes).
- SettingsView gets a new "Sharing" section between Relay and
  Migration, with a Toggle and a conditionally-shown Preview URL field.
  Field disappears entirely when the toggle is off.
- PostRowView reads previewServiceEnabled at render time, hiding the
  ShareLink when off, and reads previewServiceURL when building the
  share URL (tolerates trailing slash both ways).

Bundle behaviour: existing installs default to "on" + the public preview
service, so nothing changes for current users until they opt out.
2026-04-26 08:00:28 +02:00
..