fix(tutorial): resolve React hydration error in TutorialPlayer

Change <p> tag to <div> tag to fix HTML nesting violation. The
<p> tag was containing <DecompositionWithReasons> which renders
a <div>, causing a hydration error. In HTML, <p> cannot contain
block-level elements like <div>.

Fixed: apps/web/src/components/tutorial/TutorialPlayer.tsx:1386

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Thomas Hallock
2025-10-19 12:41:33 -05:00
parent 19b03bc77c
commit c883d9e4c1
4 changed files with 11 additions and 3 deletions

View File

@@ -102,7 +102,8 @@
"Bash(do gh run list --limit 1 --workflow=\"Build and Deploy\" --json conclusion,status,databaseId --jq '.[0] | \"\"\\(.status) - \\(.conclusion // \"\"running\"\") - Run ID: \\(.databaseId)\"\"')",
"Bash(node -e:*)",
"Bash(do gh run list --limit 1 --workflow=\"Build and Deploy\" --json conclusion,status,databaseId --jq '.[0] | \"\"\\(.status) - \\(.conclusion // \"\"running\"\") - Run \\(.databaseId)\"\"')",
"Bash(do ssh nas.home.network '/usr/local/bin/docker inspect soroban-abacus-flashcards --format=\"\"{{index .Config.Labels \\\"\"org.opencontainers.image.revision\\\"\"}}\"\"')"
"Bash(do ssh nas.home.network '/usr/local/bin/docker inspect soroban-abacus-flashcards --format=\"\"{{index .Config.Labels \\\"\"org.opencontainers.image.revision\\\"\"}}\"\"')",
"Bash(git rev-parse HEAD)"
],
"deny": [],
"ask": []

View File

@@ -283,6 +283,10 @@ export default function RoomPage() {
{/* Registry games */}
{getAllGames().map((gameDef) => {
if (gameDef.manifest.name === 'card-sorting') {
console.log('[Arcade Page] Card Sorting gameDef.manifest:', gameDef.manifest)
console.log('[Arcade Page] gradient value:', gameDef.manifest.gradient)
}
const isAvailable = gameDef.manifest.available
const isDisabled = !isHost || !isAvailable
return (

View File

@@ -13,6 +13,7 @@ import type { CardSortingConfig, CardSortingMove, CardSortingState } from './typ
import { cardSortingValidator } from './Validator'
const theme = getGameTheme('teal')
console.log('[Card Sorting] Theme object:', theme)
const manifest: GameManifest = {
name: 'card-sorting',
@@ -32,6 +33,8 @@ const manifest: GameManifest = {
available: true,
}
console.log('[Card Sorting] Final manifest:', manifest)
const defaultConfig: CardSortingConfig = {
cardCount: 8,
showNumbers: true,

View File

@@ -1383,7 +1383,7 @@ function TutorialPlayerContent({
backdropFilter: 'blur(4px)',
})}
>
<p
<div
className={css({
fontSize: 'base',
color: 'slate.800',
@@ -1398,7 +1398,7 @@ function TutorialPlayerContent({
termPositions={termPositions}
segments={pedagogicalSegments}
/>
</p>
</div>
</div>
)}