Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Bug] Closing a file preview calls a missing Files Sidebar method

Abierto Apto para principiantes
#3,446 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 8 días

Nadie ha tomado este issue todavía.

  • #3447 de @skjnldsv — cerrado sin fusionar

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
75/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript
Área
frontend

Línea de trabajo

Lee src/views/Viewer.vue alrededor del controlador de cierre en las líneas 967–979 y luego inspecciona cómo beforeOpen() comprueba el método de la barra lateral. Confirma que la ruta de cierre maneja la ausencia del método setFullScreenMode y sigue llegando a la limpieza del modo de pantalla completa; la comprobación específica de Node VM descrita en el issue cubre las API ausentes y el método heredado invocable. El trabajo estará terminado cuando cerrar la vista previa no provoque ninguna excepción en esos casos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

3. to review bug
Environment
  • Nextcloud Server 35.0.2, official Apache Docker image
  • Bundled Viewer 8.0.0
  • Chromium with a 390 × 844 mobile viewport and touch emulation
  • Reproduced with custom CSS disabled and by accessing Nextcloud directly, without proxy HTML injection or modified JavaScript
Steps to reproduce
  1. Open Files and preview a PNG image.
  2. Close the preview using its close button.
  3. Inspect the browser console.
Actual result

Viewer.close() throws TypeError: OCA.Files.Sidebar.setFullScreenMode is not a function.

Image preview and download work. A PDF can be opened after the close transition finishes, so this report does not claim that subsequent previews are consistently blocked.

Expected result

Closing the preview completes without an exception when this optional Files Sidebar method is unavailable.

Suspected cause

The close handler checks that OCA.Files.Sidebar exists, but does not check whether setFullScreenMode is callable. beforeOpen() already checks for the method's presence. The same unsafe close call is still present in current master:
https://github.com/nextcloud/viewer/blob/master/src/views/Viewer.vue#L967-L979

A callable guard around the close-time invocation should preserve compatibility with both Sidebar APIs and allow the following fullscreen cleanup to run.

Minimal proposed fix and focused check

Against viewer commit d0d68b960285c820cc69e7eb05d68d9a98555230:

- if (OCA?.Files?.Sidebar) {
+ if (typeof OCA?.Files?.Sidebar?.setFullScreenMode === 'function') {
    OCA.Files.Sidebar.setFullScreenMode(false)
  }

A Node VM check using the actual extracted close() method reproduces the exception on the baseline (and skipped fullscreen exit), then passes with a missing method, missing Files API, and callable legacy method. The legacy method receives false with its original receiver. This is a focused method check, not a full Vue build or integration test.

Lenguaje dominante
JavaScript
Estrellas
121
Forks
75
Merge medio
8 d 11 h
PR fusionados (30 d)
24

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de nextcloud/viewer

Todos los issues de nextcloud/viewer

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.