Fase 3 (isla): recuperar ítems (restore_items) en React/TSX, flujo de 2 pasos

restore_items_view ahora responde JSON cuando la petición es AJAX (X-Requested-With):
GET con character_name -> {items}; POST recover_id -> {success, message}. Se conserva
el flujo legacy (redirect+messages) para no-AJAX. RestoreItemsForm.tsx: paso 1 elegir
personaje y buscar ítems borrados (SOAP), paso 2 elegir ítem y recuperarlo; refresca la
lista tras recuperar. La vista pasa character_names por json_script.

Verificado: check OK, render de la isla, redirige a login sin sesión.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-12 22:01:19 +00:00
parent 08c36619f0
commit 68cfe7594b
5 changed files with 169 additions and 35 deletions
+14
View File
@@ -0,0 +1,14 @@
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import { RestoreItemsForm } from '../components/RestoreItemsForm'
const el = document.getElementById('restore-items-app')
if (el) {
const dEl = document.getElementById('restore-items-data')
const characters: string[] = dEl ? JSON.parse(dEl.textContent || '[]') : []
createRoot(el).render(
<StrictMode>
<RestoreItemsForm url={el.dataset.url || ''} csrfToken={el.dataset.csrf || ''} characters={characters} />
</StrictMode>,
)
}