WIP! A BB-style forum, on the ATmosphere!
We're still working... we'll be back soon when we have something to show off!
node
typescript
hono
htmx
atproto
1meta {
2 name: Get Settings Page
3 type: http
4 seq: 1
5}
6
7get {
8 url: {{web_url}}/settings
9}
10
11assert {
12 res.status: eq 200
13}
14
15docs {
16 Renders the user settings page.
17
18 Requires authentication (session cookie). Unauthenticated users are redirected
19 to /login (302).
20
21 Returns HTML page containing:
22 - Light-theme <select id="lightThemeUri"> when allowUserChoice is true
23 - Dark-theme <select id="darkThemeUri"> when allowUserChoice is true
24 - Informational banner when allowUserChoice is false
25 - "Preferences saved." banner when ?saved=1 query param is present
26 - Error banner when ?error=<message> query param is present
27 - <div id="theme-preview"> HTMX swap target
28
29 Both selects carry HTMX attributes:
30 hx-get="/settings/preview"
31 hx-trigger="change"
32 hx-target="#theme-preview"
33 hx-swap="outerHTML"
34 hx-include="this"
35
36 Query parameters:
37 - saved: "1" (optional) — shows "Preferences saved." success banner
38 - error: string (optional) — shows decoded error message in error banner
39
40 Error codes:
41 - 302: Not authenticated → redirects to /login
42 - 200: Success — page rendered (with or without selects depending on policy)
43}