mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-25 02:32:47 +00:00
The file tab stats the file and mounts its panel without reading it. Every panel, built-in or plugin, gets a PluginFile handle: readText, readBytes, url, version-checked writeText/writeBytes (PluginFileConflictError unless force), and watch. useFileText, useFileBytes and useFileUrl read through it, and Loading joins @getpaseo/plugin/client/ui. Panels own their loading state. The host document pipeline, the explorer preview cache and the preview lifecycle are deleted. The daemon classifies a file version from a bounded sniff and writes base64 content as bytes behind fileByteWrites. A deleted file keeps its panel mounted; a read confirms the deletion first, so a remove-and-rewrite is not reported as one. Native Source decodes with builtins and highlights in idle-time slices, the lines around the opening line first, so a large file no longer blocks the JS thread.
14 lines
697 B
Markdown
14 lines
697 B
Markdown
# PDF file panel example
|
|
|
|
Requires Paseo 0.13.0 or later. Install this directory with
|
|
`paseo plugin install /absolute/path/to/plugin-examples/pdf-panel`, then open a `.pdf` in Files.
|
|
|
|
The panel resolves the file's local URL with `useFileUrl`, shows `Loading` until it does, and passes
|
|
it to `DocumentFrame` on web and iOS. Android shows the filename, size, and a message that inline
|
|
PDF rendering is unavailable. The plugin does not construct daemon URLs.
|
|
|
|
See the [file panel reference](https://paseo.sh/docs/plugins/reference#file-panels).
|
|
|
|
Inline PDF rendering needs a daemon from Paseo 0.13.0 or later; see the
|
|
[DocumentFrame reference](https://paseo.sh/docs/plugins/reference#documentframe).
|