Así que tengo esta aplicación donde hago clic en un botón y comienza una serie de modales para tomar la entrada del usuario. Tengo un problema al intentar actualizar el modal actual con un nuevo objeto de vista.
Puedo actualizar y enviar nuevas vistas sin problemas cuando respondo a otros botones dentro de un modal, pero no cuando es el botón de envío. Desafortunadamente, al usar bloques de entrada, debe incluir un botón de envío.
Aquí está el código que estoy usando para manejar la carga útil view_submission que recibo al hacer clic en enviar.
app.view('callback_period', async ({ ack, body, view, client }) => { // Pass callback_id // Acknowledge the view_submission event await ack(); // Log out view ID to confirm it is indeed the same as the initial view try { console.log(body.view.id); const result = await client.views.update({ response_action: "update", view_id: body.view.id, hash: body.view.hash, view: views_payroll_prefill_shift }); console.log(result); console.log(body.view.id); } catch (error) { console.error(error); console.log(body.view.id); } });Entonces, cuando hago clic en el botón, mi aplicación recibe la carga útil sin problemas, pero el método client.views.update solo me da un error "not_found". Revisé la documentación y dice que view_id no debe ser válido; sin embargo, registré el ID de vista del modal original y es consistente en todo momento. No entiendo por qué funciona para app.actions() pero no para app.view().
Intenté crear const para el body.view.id original y pasarlo, pero seguiré recibiendo este error not_found de app.views().
Estoy realmente al final de mi ingenio. Cualquier ayuda sería muy apreciada.
Entonces, después de investigar un poco más, finalmente encontré mi respuesta. Debe pasar la vista actualizada como argumentos durante su reconocimiento. Cuando se presiona el botón de envío, pasa la acción de respuesta y su vista dentro de ack(). Aquí está la solución;
app.view('callback_period', async ({ ack, view}) => { // Pass callback_id // Acknowledge the view_submission event await ack({ "response_action": "update", "view": views_payroll_prefill_shift, }); });