Repository navigation
Native iOS app: iPad layouts - #144
Conversation
…ts by screen ONLY takes several combinations and SCREENS picks groups of screens, so a layout change shoots only what it touched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One hook turns the window width into phone, regular (700 to 1100 points) or wide (1100 and up); iPhones are always phone. NativeTabs becomes the iPadOS 18 sidebar with sidebarAdaptable, and the web preview draws the sidebar when wide and a top tab bar in between. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The source sheet's body becomes SourceView, which the sheet and the iPad detail pane share. The selection belongs to the account and debate it was made in, and deleting the open source clears it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The saved-chats rows move into ChatRows, shared by the phone's history sheet and the iPad list, which reloads when the open chat is saved and never shows another debate's chats while the next list loads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The left column keeps the side toggle, counts, Spar and Prepare; the right lists five recent items and the three newest sources. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cases, attacks, brainstorms, factoids and Sparring scorecards list their headed parts in an "On this page" rail from 900 points wide; tapping one scrolls to it. Without a rail the parts register nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The claim sheet's body becomes ClaimPanel. On iPad it opens in an inspector (360 points, 400 when wide) that stays open while the student moves between cards, highlights the open card, and closes when the map or debate on screen changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On a wide iPad window the run taps Case Structure in the rail, waits for it to become the current part and shoots the scrolled case. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
React Native Web renders no aria-selected on menu items, so the run checks that Case Structure's heading moved to the top of the case. A run that skips the sign-in screens no longer says the demo code is missing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The iPad inspector kept a card from the debate and map it was opened on, but not the account, while the Library's split pane checks all three. Drafts are keyed by debate only, so check the account too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…/06b-ipad # Conflicts: # src/locales/en.json # src/locales/es.json # src/locales/hu.json
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Note 🎁 Summarized by CodeRabbit Free
Comment |
|
Codex review r1 at 8239d2f (gpt-6.1-sol, high): 2 findings, accepted; fix in progress together with a merge of feat/native-ios (offline reading conflicts).
|
Keep the iPad layouts together with offline reading, push, and entitlements. A refreshed library list closes a source that is no longer in it, and switching flowchart maps clears the docked claim instead of reopening it later. Co-authored-by: Gáborjáni-Szabó Ádám <Programcode@users.noreply.github.com>
Bring in History, announcements and account tools. The iPad Debate dashboard keeps the announcement banner and the link through to History. Co-authored-by: Gáborjáni-Szabó Ádám <Programcode@users.noreply.github.com>
|
Deployment failed for project debatelab-staging with the following error: Learn More: https://vercel.com/adam-gaborjanis-projects?upgradeToPro=build-rate-limit |
|
Deployment failed for project debate-navigator with the following error: Learn More: https://vercel.com/adam-gaborjanis-projects?upgradeToPro=build-rate-limit |
iPad layouts for the iOS app, following the design Adam picked: mock A (sidebar and split views) with mock C's docked claim panel on the Flowchart.
What's in it
useLayoutClass()returnsphoneon every iPhone and in iPad windows under 700 points,regularfrom 700, andwidefrom 1100. Every phone layout is untouched.sidebarAdaptable, so iPadOS 18+ shows its own sidebar in Expo Go.Checks (local; GitHub Actions is out of minutes)
At this head, each run under the shared memory lock:
npm run verify: exit 0. Vitest 315, collaboration 30/30, edge tests, build, smoke 30/30.npx eslint apps/mobileandnpx knip: all exit 0.Screenshots:
.verify/6b/).iPhone pixel diff, base vs head:
Differences from the mocks
Not provable here
The real iPadOS sidebar (the web export draws a stand-in), rotation, Stage Manager and live Split View resizing.
Codex review rounds follow as comments.
🤖 Generated with Claude Code
iPad layouts for the iOS app, following the design Adam picked: mock A (sidebar and split views) with mock C's docked claim panel on the Flowchart.
What's in it
useLayoutClass()returnsphoneon every iPhone and in iPad windows under 700 points,regularfrom 700, andwidefrom 1100. Every phone layout is untouched.sidebarAdaptable, so iPadOS 18+ shows its own sidebar in Expo Go.Update onto feat/native-ios
Merged
origin/feat/native-ios(through #143, History, announcements and account tools) instead of rebasing. The same files were rewritten on both sides, so one merge kept both. Head61f87f6.Checks on 61f87f6 (local; GitHub Actions is out of minutes)
Expo app, on Linux:
npm run -w @debatelab/mobile typecheck: exit 0 (app andscripts).npx eslint --max-warnings 0on the conflicted mobile sources, and rootnpm run lint(eslint + knip + repo rules): exit 0.npx vitest run apps/mobile/src src/test/i18n.test.ts: 21 files, 79 tests, exit 0. Fullnpm test: 362 passed. Two tests insrc/test/scripts/backend-status.test.tshit Vitest's 10sbeforeEachhook timeout while that file's git setup ran inside the full parallel suite. The file is unchanged fromfeat/native-ios, and those tests pass when the file is run on its own (144ms and 194ms).npx expo export --platform iosand--platform web: exit 0 (iOS 3022 modules, web 52 routes).npm run docs:check,npm run test:collaboration(30/30),npm run test:edgewith Deno 2.9.6 (380 passed),npm run build,npm run test:sw, andnpm run test:e2e:smoke(desktop Chromium, 30 passed): exit 0.npx expo install --checkexits 1. The installed Expo SDK 57 packages are behind the current patch line (expo@57.0.27expected~57.0.31, and the same drift on crypto, linking, network, notifications, router, sharing, splash-screen and widgets).apps/mobile/package.jsonmatchesfeat/native-ios, so this was already on the base. Not bumped here.The earlier
npm run verifyand iPhone pixel diff in this description were for8239d2f, before this merge. They were not repeated as a pixel diff.Differences from the mocks
Not provable here
The real iPadOS sidebar (the web export draws a stand-in), rotation, Stage Manager and live Split View resizing.
useHeaderCoverstill assumes the translucent native header; the web preview uses 0.Codex review rounds follow as comments.