Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
019d36a0ab | ||
|
|
1922b2122b | ||
|
|
3dfe54f1cb |
@@ -1,3 +1,11 @@
|
||||
## [3.17.1](https://github.com/antialias/soroban-abacus-flashcards/compare/v3.17.0...v3.17.1) (2025-10-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **arcade-rooms:** navigate to invite link after room creation ([1922b21](https://github.com/antialias/soroban-abacus-flashcards/commit/1922b2122bb1bc4aeada7526d8c46aa89024bb00))
|
||||
* **memory-quiz:** scope game settings by game name for proper persistence ([3dfe54f](https://github.com/antialias/soroban-abacus-flashcards/commit/3dfe54f1cb89bd636e763e1c5acb03776f97c011))
|
||||
|
||||
## [3.17.0](https://github.com/antialias/soroban-abacus-flashcards/compare/v3.16.0...v3.17.0) (2025-10-15)
|
||||
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ export default function RoomBrowserPage() {
|
||||
}
|
||||
|
||||
const data = await response.json()
|
||||
router.push(`/arcade-rooms/${data.room.id}`)
|
||||
router.push(`/join/${data.room.code}`)
|
||||
} catch (err) {
|
||||
console.error('Failed to create room:', err)
|
||||
showError('Failed to create room', err instanceof Error ? err.message : undefined)
|
||||
|
||||
@@ -248,11 +248,16 @@ export function RoomMemoryQuizProvider({ children }: { children: ReactNode }) {
|
||||
const [localCurrentInput, setLocalCurrentInput] = useState('')
|
||||
|
||||
// Merge saved game config from room with initialState
|
||||
// Settings are scoped by game name to preserve settings when switching games
|
||||
const mergedInitialState = useMemo(() => {
|
||||
const savedConfig = roomData?.gameConfig as Record<string, any> | null | undefined
|
||||
const gameConfig = roomData?.gameConfig as Record<string, any> | null | undefined
|
||||
if (!gameConfig) return initialState
|
||||
|
||||
// Get settings for this specific game (memory-quiz)
|
||||
const savedConfig = gameConfig['memory-quiz'] as Record<string, any> | null | undefined
|
||||
if (!savedConfig) return initialState
|
||||
|
||||
console.log('[RoomMemoryQuizProvider] Loading saved game config:', savedConfig)
|
||||
console.log('[RoomMemoryQuizProvider] Loading saved game config for memory-quiz:', savedConfig)
|
||||
|
||||
return {
|
||||
...initialState,
|
||||
@@ -441,12 +446,20 @@ export function RoomMemoryQuizProvider({ children }: { children: ReactNode }) {
|
||||
})
|
||||
|
||||
// Save setting to room's gameConfig for persistence
|
||||
// Settings are scoped by game name to preserve settings when switching games
|
||||
if (roomData?.id) {
|
||||
const currentGameConfig = (roomData.gameConfig as Record<string, any>) || {}
|
||||
const currentMemoryQuizConfig =
|
||||
(currentGameConfig['memory-quiz'] as Record<string, any>) || {}
|
||||
|
||||
const updatedConfig = {
|
||||
...(roomData.gameConfig as Record<string, any>),
|
||||
[field]: value,
|
||||
...currentGameConfig,
|
||||
'memory-quiz': {
|
||||
...currentMemoryQuizConfig,
|
||||
[field]: value,
|
||||
},
|
||||
}
|
||||
console.log('[RoomMemoryQuizProvider] Saving game config:', updatedConfig)
|
||||
console.log('[RoomMemoryQuizProvider] Saving game config for memory-quiz:', updatedConfig)
|
||||
updateGameConfig({
|
||||
roomId: roomData.id,
|
||||
gameConfig: updatedConfig,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "soroban-monorepo",
|
||||
"version": "3.17.0",
|
||||
"version": "3.17.1",
|
||||
"private": true,
|
||||
"description": "Beautiful Soroban Flashcard Generator - Monorepo",
|
||||
"workspaces": [
|
||||
|
||||
Reference in New Issue
Block a user