nextcloud / nextcloud/recommendations
Migrate off the OCA.Viewer global before Nextcloud 36
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 15
- Forks
- 19
- Avg merge
- 6d 15h
- Merged PRs (30d)
- 9
Description
Recommendations opens a recommended file in the viewer:
src/components/RecommendedFile.vue:135:window.OCA.Viewer.mimetypes.indexOf(props.mimeType) !== -1src/components/RecommendedFile.vue:136:window.OCA.Viewer.open({ path: path.value })
The mime test becomes canView(node), which asks the registered handlers rather than a
flattened mime list. open() takes @nextcloud/files nodes rather than a path, so either build
the node or hand openFolder(folder, file) a folder and let it fetch.
OCA.Viewer is gone in Viewer 7.0.0. The viewer ships as the
@nextcloud/viewer library rather than a
bundled app, and nextcloud/server#63954 removes the viewer app from Nextcloud 36 altogether.
Roughly what it looks like:
import { canView, getViewer } from '@nextcloud/viewer'
// OCA.Viewer.open({ path }) / ({ fileInfo, list })
getViewer().open(nodes, file) // @nextcloud/files nodes
getViewer().openFolder(folder, file) // when a path is all you have, let it fetch
// OCA.Viewer.mimetypes.includes(mime) / availableHandlers
canView(node)
The part that is not a rename is that the viewer takes @nextcloud/files nodes now, not
fileinfo objects or path strings. Importing the package is also all it takes to get the viewer
onto the page: no LoadViewer event to dispatch, and nothing to check about whether the app is
enabled.
[!IMPORTANT]
There is no compatibility shim, which was a deliberate call, so this is a real port rather
than a rename. Nothing breaks until the server PR lands; after that these calls throw on
Nextcloud 36.
[!TIP]
The developer manual covers the migration under
Critical changes
(being added in nextcloud/documentation#15597), and the
README
has the full before/after table. Happy to help with the port, just ping me.
👾 This issue was written with the help of Claude Code.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in src/components/RecommendedFile.vue at lines 135-136, then read the nextcloud-viewer README migration table and the @nextcloud/viewer APIs. Replace the OCA.Viewer calls with handler-based viewing and node-aware opening, and confirm the component no longer depends on the removed viewer app or global for Nextcloud 36.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 74/100