El merge de backend.js 0.7.6 introdujo sendErrorPage(ctx, message)
que destructura errorView de main_views.js. Nuestro main_views local
no exportaba errorView (es nuevo en 0.7.6).
Sin esto, cualquier ruta que invoque sendErrorPage (ej: errores 403
en AI nav, 404, etc) lanzaría TypeError: errorView is not a function.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
trending, calendars, banking, blockchain
- Nuevo helper src/views/mobile_pager.js — renderMobilePager(opts)
genera el paginador con radios + flechas + cells de 2 botones.
- activity_view: refactor para usar el helper.
- agenda_view, logs_view, inhabitants_view, trending_view,
calendars_view, banking_views, blockchain_view: añaden el
mobilePager y marcan el contenedor desktop con .actpager-desktop-only.
- mobile.css: .actpager-desktop-only se oculta en móvil junto al
grid antiguo de activity.
modules_view (4 botones) y stats_view (3 modos) no necesitan
paginación: caben en una fila.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Eliminado el contador "N / N" del activity_view, sólo flechas <
- mobile.css: rules display:none/flex para mostrar 1 celda activa
(más fiable que translateX con flexbox y cells flex 0 0 100%)
- Override del background/border global de divs en theme dentro
del actpager — ya no se ve cada div como tarjeta separada
- Tamaños reducidos: arrows 32x32, padding-cell 0, gap 40px
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- activity_view.js: render adicional .actpager con N radios + cells
(2 botones por celda) + arrow labels por página. Hidden inline en
desktop (display:none).
- mobile.css: .activity-filter-grid display:none, .actpager block.
Reglas .actpager-rN:checked ~ .actpager-frame ... aplican translateX
por porcentaje y muestran solo el set de flechas correspondiente.
18 páginas para 36 botones; reglas hasta página 30 por holgura.
CSS puro: sin JS, sin scroll del dedo, sin caché. Las flechas <
y > son labels que togglean radios escondidos via for=.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Vuelta al enfoque más simple:
- mobile.css: .activity-filter-grid, .mode-buttons y similares
usan flex-wrap:wrap. Todos los botones visibles en varias filas,
sin scroll del dedo, sin paginación.
- .activity-filter-col con display:contents para aplanar columnas.
- mobile-ui.js vaciado (no-op): ya no hace falta JS.
- main_views.js: quitada la inyección inline.
Razón: el JS no se ejecutaba en el WebView (cache + CSP) por
mucho que se intentaba. CSS puro es más simple y robusto.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
El CSP antes era 'script-src self http://localhost:3000/js' lo cual
bloqueaba el script inline que inyectamos para la paginación móvil
de mode-buttons. Esto explicaba por qué las flechas no aparecían
aunque la APK tuviera el código correcto.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
El WebView de Android cacheaba el archivo /js/mobile-ui.js incluso
después de actualizar la APK, evitando que las flechas de paginación
aparecieran. Ahora el script se lee del filesystem y se inyecta como
<script> inline antes de </body>, eliminando cualquier caché.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- mobile-ui.js: el contenedor se mueve por translateX en pasos de
~2 botones en lugar de scrollLeft. Eliminado el botón "Ver todos".
- mobile.css: nuevo .mode-buttons-clip con overflow:hidden para
bloquear el scroll por gesto. La fila usa width:max-content y
transition en transform.
- Flechas más grandes (36x40, font 1.7rem) para que sean visibles
y fáciles de pulsar.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- mobile.css: width:auto + min-width:0 en grid dentro del wrap para
que las flechas no queden empujadas fuera del viewport
- mobile-ui.js: el step de scroll ahora se calcula dinámicamente
como ~2 botones en lugar de 180px fijos
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- mobile.css: añadidas reglas para .activity-filter-grid en móvil
(display:contents para activity-filter-col, flex row scrollable)
- mobile-ui.js: extendido selector para procesar también
.activity-filter-grid con flechas y expand/collapse
Antes los 6 columnas de filtros se renderizaban como barras
naranjas verticales. Ahora se aplanan a una sola fila con
scroll horizontal y flechas < > para navegar.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Without /game-assets mount the game iframes loaded 404.
Without /maptiles mount the map tiles didn't render.
frame-src 'self' CSP directive needed for iframe sandboxing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
style.css updated to upstream (new shops/chats/pads/games/maps/
torrents/calendars/logs styles) with our QR, hamburger, sidebar-panel
and invite styles appended. config defaults include new modules.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New views, models, routes for 8 new modules from latest upstream.
Updated existing views/models to upstream versions preserving all
local QR, hamburger menu, and mobile CSS modifications.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds left/right arrow navigation to all .mode-buttons on mobile.
Sections with 7+ buttons (Activity, Stats, etc.) also get a
Ver todos / Ver menos toggle to expand the full grid.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Banking, market, jobs, projects, transfers, videos, docs, audios
now on by default so hamburger panel shows Economy/Media on fresh install.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 03_GIT_ESTADO.txt: updated with 8 new commits from this session,
full list of modified files including modules_view.js and style.css
- 05_PROXIMOS_PASOS.txt: all session 2 items marked done,
hamburger architecture section added for next session reference
- cambio_hamburger_nav.txt: new file documenting the hamburger menu
implementation (HTML structure, CSS mechanism, theming, accordion)
- 00_INDICE.txt: added entry for cambio_hamburger_nav.txt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Import details, summary from hyperaxe
- renderPubTable converted to async, generates QR SVG per pub key
- Each row: details/summary collapsible QR panel below the key link
(same pattern as profile and tribe invite QR, no JS required)
- All three renderPubTable calls updated with await
- QR falls back silently if key is missing or generation fails
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove force-expand CSS: groups now start collapsed (tap to open)
- .oasis-nav-header in panel: border-radius 12px, larger padding (11px 14px),
bold font, no uppercase — looks like a proper tappable button
- Arrow rotates on expand (CSS accordion native behavior, no JS)
- Nav items indented with left border accent, 9px padding, 8px radius
- OasisMobile.css: #252500 background + FFD700 text for group buttons
- Separator line between sidebar-left and sidebar-right sections in panel
- Economy group absent: all economy modules (banking/market/jobs) are
disabled in current config — this is expected behavior by design
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- panel-quicklinks div moved from sidebar-panel into the header,
after top-bar-right, so it always visible on mobile without opening menu
- Displays as a horizontal scrollable pill-button strip below logo+hamburger
- header: flex-wrap:wrap so second row renders cleanly
- top-bar-left: flex:1 nowrap for logo+hamburger first row
- panel-quicklinks: flex:0 0 100% forces it to its own row, overflow-x:auto
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Header mobile: single row — logo (flex:1) + hamburger only.
Top-bar nav (inbox/PM/publish) and top-bar-right (tags/search) hidden.
- Add panel-quicklinks section at top of hamburger panel: Inbox, PM,
Publicar, Búsqueda as pill buttons (accessible from panel, not header).
- sidebar-left and sidebar-right inside panel: no background/border,
flat layout with only a separator line between sections.
- panel-quicklinks hidden on desktop (style.css), visible only in panel.
- OasisMobile.css: panel-quicklink theme colors added.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Wrap sidebar-left and sidebar-right in div.sidebar-panel so the
hamburger panel shows ALL navigation (Personal, Content, Economy,
Banking, Media, Network, etc.) — previously only sidebar-left was shown
- style.css: sidebar-panel uses display:contents on desktop so layout
is preserved (left|main|right) via CSS order: 1/2/3
- mobile.css: sidebar-panel is the hidden/shown drawer instead of sidebar-left
- Header layout: logo (flex:1) + hamburger share row 1, nav links
(inbox/PM/publish) wrap to row 2, top-bar-right (tags/search) row 3
- Nav groups auto-expand when panel opens (selector updated to sidebar-panel)
- OasisMobile.css: panel background selector updated
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Force all .oasis-nav-list groups open when hamburger panel is visible
so user can see all nav options without tapping each group header
- Add responsive rules for video/iframe (max-width: 100%)
- Override fixed px widths (640, 800) from hardcoded video players
- Add overflow-x: auto to info tables (block-info-table, bank-info-table, etc.)
- Fix cell word-break in info tables to prevent overflow
- Make pre/code blocks scroll horizontally instead of breaking layout
- Fix modules_view.js: replace flex-wrap:nowrap with mode-buttons class
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
main_views: viewport-fit=cover for notch/home-indicator support
OasisMobile.css: remove full mobile.css duplicate, fix aggressive div border/bg selector,
add :active feedback on buttons/links, fix user-link overflow with ellipsis,
QR colors adapted to dark theme
mobile.css: complete rewrite -
safe-area-inset padding for notch phones
filter buttons as horizontal scroll row (no more tall vertical stacks)
inhabitant photos circular with object-fit cover
post images max-height 60vh to avoid full-screen takeover
invite-log table horizontal scroll on mobile
QR lightbox overlay (CSS-only, no JS)
font-size 14px base (more readable on small screens)
:active touch feedback on all interactive elements
style.css: circular profile photos, max-height post images, button transitions,
invite-page centered layout, user-id-qr alignment
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- tribes_view: renderInvitePage now shows QR of the invite code
- invites_view: snhInvite box shows QR of pub invite code
- inhabitants_view: user profile shows QR of SSB ID (own card + profile view)
- style.css: add QR code styles
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>