Repository navigation
feat(ui): describe all supported paste and upload formats in Dropzone - #235
Merged
obvious-autobuild-staging[bot] merged 3 commits intoOct 20, 2026
Merged
obvious-autobuild-staging[bot] merged 3 commits into
obvious-autobuild-staging[bot] merged 3 commits into
Conversation
Update Dropzone heading, format summary, and paste-field placeholder/aria-label for CSV → JSON and JSON → CSV modes, and extend file-input accept and TEXT_EXTENSION to include .md, .jsonl, and .ndjson. Co-authored-by: David Boskovic <david@obvious.ai>
Verify dropzone-title, dropzone-formats, paste-field placeholder/aria-label, file-input accept, and isTextFile extension coverage across CSV → JSON and JSON → CSV modes. Co-authored-by: David Boskovic <david@obvious.ai>
Add bundled changelog entry #24 and rebuild prerendered app/dist bundle. Co-authored-by: David Boskovic <david@obvious.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
After adding support for Markdown pipe tables, ChatGPT multi-table documents,
psql/MySQL ASCII box tables, wrapped API payloads, and JSONL/NDJSON, the empty-state Dropzone still said only"Paste CSV or TSV here"/"Paste JSON here", and the file picker'sacceptlist omitted.md,.jsonl, and.ndjson(TEXT_EXTENSIONalso omitted.jsonl). Users had no upfront signal in the input area that they could paste or upload those formats directly.What changed
app/src/components/Dropzone.tsx,AC-19/D18):data-testid="dropzone-title"to"Paste CSV, TSV, or Markdown table"inCSV → JSONmode and"Paste JSON or JSONL here"inJSON → CSVmode.data-testid="dropzone-formats"):CSV → JSON:"Supports CSV, TSV / spreadsheet cells, Markdown & ChatGPT docs (multi-table), and psql / MySQL box tables"JSON → CSV:"Supports JSON arrays, nested objects, wrapped API payloads ({ data: […] }), and JSONL / NDJSON"<textarea data-testid="paste-field">placeholderandaria-labelin both modes, with single-line sans-serif placeholder styling so the longer hint never wraps or triggers a vertical scrollbar on mobile (375px–390px) or desktop (1440px).app/src/components/InputPane.tsx,app/src/lib/files.ts):<input type="file" data-testid="file-input">acceptto.csv,.tsv,.txt,.md,text/csv,text/tab-separated-values,text/markdownin CSV mode and.json,.jsonl,.ndjson,.txt,application/json,application/x-ndjsonin JSON mode..jsonltoTEXT_EXTENSION(/\\.(csv|tsv|txt|json|jsonl|ndjson|md|log)$/i) inapp/src/lib/files.ts.app/dist):Dropzone.test.tsx,files.test.ts, andApp.test.tsxto cover the expanded format copy,acceptattribute, andisTextFileextensions.#24inapp/src/changelog/entries.tsand rebuiltapp/dist.Tradeoffs
data-testid="dropzone-formats") inside the centered Dropzone rather than adding format badges or permanent chrome inOptionsRow, preserving the zero-clutter empty state (D1,D18).How to Review
app/src/components/Dropzone.tsx—dropzone-title,dropzone-formats, andpaste-fieldplaceholder/aria-label.app/src/components/InputPane.tsx&app/src/lib/files.ts—file-inputacceptattribute andTEXT_EXTENSION.app/src/components/Dropzone.test.tsx,app/src/lib/__tests__/files.test.ts,app/src/App.test.tsx— unit and integration coverage.Verification
cd app && npm run lint && npx tsc -b --noEmit && npm test(35 test suites, 612 tests passing)cd app && npm run build && cd .. && bash .github/scripts/verify-seo.sh(45,494 bytes prerendered HTML verified)agent-browserheadless Chromium visual QA at1440×900(CSV → JSONandJSON → CSV) and390×844mobile viewportHuman author: David Boskovic (david@obvious.ai)
🔗 Obvious Project · 🧵 Obvious Thread · 🔀 Obvious PR Artifact