参考 组件与 hooks
组件与 hooks
React 应用所需的一切都在这一个包中;它与不使用框架的网盘共享的部分也从这里导出。
本页内容
导出
| 名称 | 说明 |
|---|---|
| FileDrive | 完整的网盘。 |
| SharedLink | 收到链接的人无需登录即可看到的内容。 |
| createMemoryClient | 保存在页面中的网盘,提供与服务器路由相同的客户端。 |
| createDriveClient, createLinkClient | 来自 @rebofiles/drive 的客户端。 |
| RequestError | 服务器拒绝的请求:状态码、代码和消息。 |
| TEXTS, formatSize, formatDate, formatDuration, kindOf | 文字,以及描述文件的辅助函数。 |
| @rebofiles/react/rebodocs | previewDocx、viewDocx、thumbDocx、pictureOfDocx、textOfDocx:由 Rebodocs 引擎处理的 Word 文档。 |
Hooks
| Hook | What it does |
|---|---|
| DriveProvider | 客户端与文字,供其下的每个 hook 使用。 base、client、headers、language、texts、live;放在其中的 <FileDrive> 也使用相同的设置。他人更改网盘时,每个 hook 都会重新获取。 |
| useEntries | 一个文件夹、最近、星标、通过请求收到的文件、与我共享、回收站,或一次搜索。 entries、path、loading、error、refresh:每次改动后重新获取。 |
| useEntry | 某个条目的当前状态及其位置。 entry、path、trashed;加载中或不存在时为 null。 |
| useActions | 修改网盘的操作,完成后通知每个 hook。 createFolder、rename、move、moveToTrash、restore、deleteForever、emptyTrash、restoreVersion、copy、star、setColor、setFields、review、share、unshare、createLink、removeLink、linkToken、upload、url。 |
| useUploads | 正在上传的文件,同时三个,每个都有剩余时间。 uploads、summary、upload、retry、stop、stopAll、decide、dismiss、clear;{ check: true } 会询问如何处理已存在的文件。 |
| useSettings | 网盘的设置和个人设置。 settings、drive、mine、canConfigure、save、saveMine。 |
| useComments | 某个条目的评论,以及发表新评论。 comments、loading、error、add、edit、resolve、remove。 |
| useActivity | 谁对某个条目做了什么,最新的在前。 activity、loading、error;useActivity(id, limit?)。 |
| useTextSearch | 内容中包含这些文字的文件,每个附带一段文本。 results(entry、snippet)、loading、error;查询为空时无结果。 |
| useNotifications | 发给当前用户的通知,以及新通知的数量。 notifications、unseen、loading、error、saw()。 |
| useRequests | 自己发出的文件请求。 requests(folder、link、token)、loading、error、remind(folder, link)。 |
| useExpiring | 字段 expires 在若干天内到期或已过期的文件,最近的在前。 files(entry、expires、days)、loading、error;useExpiring(days?),默认 15 天。 |
| useWithField | 某字段等于此值的条目:你某条记录的文件。 entries、loading、error;没有值时为空。 |
| usePeople | 来自你的目录、与输入内容匹配的人,用于共享。 people、loading、error;输入为空时无人。 |
| useDrive | provider 本身。 client、revision、changed()、t、locale、settings:以函数形式提供的每条路由、每次变更后递增的数字,以及网盘的文字。用于没有专门 hook 的功能。 |
<FileDrive> 的全部属性
| 属性 | Type | What it does |
|---|---|---|
| base | string | @rebofiles/server 的路由所在位置。默认为 /api/files。 |
| client | DriveClient | 用你自己的客户端代替 base:保存在页面中的网盘(createMemoryClient),或与页面其他部分共用的客户端。 |
| headers | () => Record<string, string> | 发往你服务器的每个请求都带上的请求头,例如会话令牌;绝不会发送到存储桶。可以是异步函数。 |
| linkAddress | (token) => string | 网盘链接指向的地址:你放置 <SharedLink> 的页面。默认为本页加 ?link=。 |
| settings | boolean | 设为 false 时不显示设置界面及打开它的按钮。 |
| language | 'en' | 'es' | 'zh' | 低于每个人自己的选择,高于网盘的设置。默认为英文。 |
| texts | Texts | 另一种语言的文字,键与 TEXTS.en 相同。 |
| theme | 'light' | 'dark' | 'auto' | 低于每个人自己的选择,高于网盘的设置。auto 跟随系统。 |
| title | string | 显示在网盘上方的名称:你的应用名,或 “Files”。 |
| logo | ReactNode | 放在标题前面的内容;默认为 ReboFiles 的标志。在 mountDrive 中是一个 Node。 |
| defaultView | 'list' | 'grid' | 首次显示文件夹时使用的视图。 |
| layout | 'full' | 'compact' | compact:左侧没有侧栏,“新建”和各个位置排成一条放在列表上方,适合放在页面中较小的区域。 |
| className | string | 加在 .rf-drive 上的自定义类名,用于设置它的自定义属性。 |
| chrome | boolean | 设为 false 时去掉其顶栏和分区,由你的应用放置自己的:用 go、search、upload、newFolder、requestFiles、share、openSettings 控制它。 |
| root | EntryId | 云盘保持在其中的文件夹,如你的某条记录的文件:从这里开始,路径从这里开始,不会去到其上层。 |
| onState | (state) => void | 每次变化时告知所处位置:分区、文件夹及路径、搜索内容、数量和空间,供你自己的栏使用。 |
| controls | RefObject<DriveControls> | React:在其存在期间放入云盘的 go、search、upload、newFolder、requestFiles、share 和 openSettings。 |
| checkUploads | boolean | 设为 false 时上传前不在网盘中查找相同文件或同名文件:名称冲突时自动加上 “(2)”。 |
| requestTemplates | boolean | 设为 false 时不提供请求模板:既不能从模板开始,也不能存为模板。 |
| qr | boolean | 设为 false 时不显示已创建请求的二维码。 |
| onOpen | (file, url) => void | 双击或按 Enter 打开文件时,按你自己的方式处理。未提供时由网盘的查看器显示。 |
| fields | 'show' | 'edit' | false | 应用在条目上的字段,显示在详情中:显示(默认)、由有重命名权限的人在详情中修改(edit),或不显示。 |
| previewDocument | (bytes) => DocumentPreview | .docx 的详情:标题和开头几段。previewDocx。 |
| viewDocument | (element, bytes) => ShownDocument | .docx 的查看器:逐页或全部显示,带 Rebodocs 的缩放和打印。viewDocx。 |
| thumbDocument | (bytes) => Promise<HTMLElement> | 在网格中绘制其第一页,直到生成它的图片为止。thumbDocx。 |
| pictureDocument | (bytes, size, type, quality) => Promise<Blob> | 将第一页生成为图片,在上传时制作,并按网盘的尺寸保存为缩略图。pictureOfDocx。 |
| textDocument | (bytes) => string | 文档中的文字,在上传时发送,供搜索使用。textOfDocx。 |
| onOpenDocument | (file, url) => void | 为 .docx 添加“在 Rebodocs 中打开”按钮,调用时会传入读取它的地址。 |
| compareDocument | (element, before, after) => ShownDocument | 在历史中为当前版本以外的每个版本提供“比较”:在页面上显示变化。compareDocx。 |
| newDocument | () => Uint8Array | “上传”菜单中的“新建文档”:在当前文件夹中创建一个由用户命名的空 .docx,然后打开。newDocx。 |
| onChange | () => void | 每次在网盘中做出改动后调用,供页面中其他显示这些内容的部分更新(mountDrive;在 React 中由 provider 通知各个 hooks)。 |
| live | boolean | 实时显示他人所做的更改,来自服务器的 /events。默认为 true;在 React 中由 provider 决定。 |
按用途分类并附示例:React 组件。