You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Open text/document files inline in the web app (files.fx.land/app/) like the mobile app, instead of only downloading. Today the web bucket screen only treats .txt/.md/.json/.csv/.log (+ text/*, application/json MIME) as inline-viewable and renders them as a bare SelectableText in a small dialog; everything else — including .xml, .ts, .js, .html, .yaml, .py, etc. — falls through to download. So the document types users care about feel download-only.
New pure, VM-testable logic file (no package:web/dart:ui): extension parsing (mirrors native incl. dotfiles/Makefile), isTextViewable, isCode, JSON pretty-print, line-match search — so the classification + helpers are unit-tested.
New full-screen web text viewer widget mirroring the native UX (line numbers, code dark theme, font sizing, wrap toggle, search w/ highlight + next/prev, go-to-line, copy-all, download, JSON pretty-print). Rendered as a full-screen dialog (consistent with the app's existing dialog-based previews; keeps download + Recent recording in the bucket screen so Web Home: add Recent section (recently-opened cloud files) like the mobile app #17 keeps working).
Bucket screen: expand the inline-text classification to the native list (+ text/*, application/json, application/xml MIME) so xml/ts/js/html/etc. open inline; route text to the new viewer; binary/over-cap → download fallback.
Decode bytes as UTF-8 lenient (malformed → replacement char). Generous size cap for inline rendering; above it, download instead.
Acceptance
Opening a .xml/.ts/.js/.html/.yaml/.py/.md/.csv/... document in the web app shows it inline in a mobile-style viewer (not a download).
Code files render in the dark editor theme; line numbers, font sizing, wrap, search (with highlight + nav), copy-all, download all work; JSON pretty-printed.
Summary
Open text/document files inline in the web app (files.fx.land/app/) like the mobile app, instead of only downloading. Today the web bucket screen only treats
.txt/.md/.json/.csv/.log(+text/*,application/jsonMIME) as inline-viewable and renders them as a bareSelectableTextin a small dialog; everything else — including.xml,.ts,.js,.html,.yaml,.py, etc. — falls through to download. So the document types users care about feel download-only.Native reference
lib/features/viewer/screens/text_viewer_screen.dart+lib/core/models/local_file.dart(isTextViewable):Web plan
package:web/dart:ui): extension parsing (mirrors native incl. dotfiles/Makefile),isTextViewable,isCode, JSON pretty-print, line-match search — so the classification + helpers are unit-tested.text/*,application/json,application/xmlMIME) so xml/ts/js/html/etc. open inline; route text to the new viewer; binary/over-cap → download fallback.Acceptance
.xml/.ts/.js/.html/.yaml/.py/.md/.csv/...document in the web app shows it inline in a mobile-style viewer (not a download).Part of the mobile->web parity work.