Fix NetUP settings not loading: snake_case → camelCase (transformKeys)
req() auto-converts server_url→serverUrl, default_language→defaultLanguage, netup_room_number→netupRoomNumber. Fixed both type declarations and component reads. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -269,7 +269,7 @@ export const api = {
|
|||||||
// ── NetUP IPTV ────────────────────────────────────────────────────────────
|
// ── NetUP IPTV ────────────────────────────────────────────────────────────
|
||||||
netup: {
|
netup: {
|
||||||
getSettings: (slug: string) =>
|
getSettings: (slug: string) =>
|
||||||
req<{ server_url: string; username: string; password: string; default_language: string; enabled: boolean }>(
|
req<{ serverUrl: string; username: string; password: string; defaultLanguage: string; enabled: boolean }>(
|
||||||
'GET', `/api/hotels/${slug}/netup/settings`),
|
'GET', `/api/hotels/${slug}/netup/settings`),
|
||||||
|
|
||||||
saveSettings: (slug: string, data: { server_url: string; username: string; password?: string; default_language: string; enabled: boolean }) =>
|
saveSettings: (slug: string, data: { server_url: string; username: string; password?: string; default_language: string; enabled: boolean }) =>
|
||||||
@@ -279,7 +279,7 @@ export const api = {
|
|||||||
req<{ ok: boolean; message: string }>('POST', `/api/hotels/${slug}/netup/test`),
|
req<{ ok: boolean; message: string }>('POST', `/api/hotels/${slug}/netup/test`),
|
||||||
|
|
||||||
getRoomMappings: (slug: string) =>
|
getRoomMappings: (slug: string) =>
|
||||||
req<{ id: string; number: string; type: string; netup_room_number: string }[]>(
|
req<{ id: string; number: string; type: string; netupRoomNumber: string }[]>(
|
||||||
'GET', `/api/hotels/${slug}/netup/rooms`),
|
'GET', `/api/hotels/${slug}/netup/rooms`),
|
||||||
|
|
||||||
saveRoomMappings: (slug: string, mappings: { pms_room_id: string; netup_room_number: string }[]) =>
|
saveRoomMappings: (slug: string, mappings: { pms_room_id: string; netup_room_number: string }[]) =>
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ export function TvWelcomePage() {
|
|||||||
const [settingsLoaded, setSettingsLoaded] = useState(false)
|
const [settingsLoaded, setSettingsLoaded] = useState(false)
|
||||||
|
|
||||||
// Room mappings
|
// Room mappings
|
||||||
const [rooms, setRooms] = useState<{ id: string; number: string; type: string; netup_room_number: string }[]>([])
|
const [rooms, setRooms] = useState<{ id: string; number: string; type: string; netupRoomNumber: string }[]>([])
|
||||||
const [roomsSaving, setRoomsSaving] = useState(false)
|
const [roomsSaving, setRoomsSaving] = useState(false)
|
||||||
const [roomsSaved, setRoomsSaved] = useState(false)
|
const [roomsSaved, setRoomsSaved] = useState(false)
|
||||||
|
|
||||||
@@ -42,9 +42,9 @@ export function TvWelcomePage() {
|
|||||||
if (!slug) return
|
if (!slug) return
|
||||||
api.netup.getSettings(slug)
|
api.netup.getSettings(slug)
|
||||||
.then(s => {
|
.then(s => {
|
||||||
setServerUrl(s.server_url)
|
setServerUrl(s.serverUrl)
|
||||||
setUsername(s.username)
|
setUsername(s.username)
|
||||||
setLanguage(s.default_language)
|
setLanguage(s.defaultLanguage)
|
||||||
setEnabled(s.enabled)
|
setEnabled(s.enabled)
|
||||||
setSettingsLoaded(true)
|
setSettingsLoaded(true)
|
||||||
})
|
})
|
||||||
@@ -103,7 +103,7 @@ export function TvWelcomePage() {
|
|||||||
try {
|
try {
|
||||||
await api.netup.saveRoomMappings(slug, rooms.map(r => ({
|
await api.netup.saveRoomMappings(slug, rooms.map(r => ({
|
||||||
pms_room_id: r.id,
|
pms_room_id: r.id,
|
||||||
netup_room_number: r.netup_room_number,
|
netup_room_number: r.netupRoomNumber,
|
||||||
})))
|
})))
|
||||||
setRoomsSaved(true)
|
setRoomsSaved(true)
|
||||||
setTimeout(() => setRoomsSaved(false), 2500)
|
setTimeout(() => setRoomsSaved(false), 2500)
|
||||||
@@ -113,7 +113,7 @@ export function TvWelcomePage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const updateRoomNetup = (id: string, val: string) =>
|
const updateRoomNetup = (id: string, val: string) =>
|
||||||
setRooms(prev => prev.map(r => r.id === id ? { ...r, netup_room_number: val } : r))
|
setRooms(prev => prev.map(r => r.id === id ? { ...r, netupRoomNumber: val } : r))
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="p-6 max-w-3xl mx-auto space-y-6">
|
<div className="p-6 max-w-3xl mx-auto space-y-6">
|
||||||
@@ -328,7 +328,7 @@ export function TvWelcomePage() {
|
|||||||
<td className="px-5 py-3">
|
<td className="px-5 py-3">
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
value={room.netup_room_number}
|
value={room.netupRoomNumber}
|
||||||
onChange={e => updateRoomNetup(room.id, e.target.value)}
|
onChange={e => updateRoomNetup(room.id, e.target.value)}
|
||||||
placeholder="Не задан"
|
placeholder="Не задан"
|
||||||
className="input py-1.5 w-36 text-sm"
|
className="input py-1.5 w-36 text-sm"
|
||||||
|
|||||||
Reference in New Issue
Block a user