@bynder/compact-view

中文文档
7.0.0发布于 2026/10/29UNLICENSEDTypeScriptESM + CJS近 30 天下载 12万

字节收缩视图

中文使用文档
文档目录8 节
  1. 安装
  2. 出口
  3. 使用量
  4. API 密码
  5. <CompactView> 道具( r) CompactViewProps (中文(简体) )
  6. <Login> 道具( r) CompactViewLoginProps (中文(简体) )
  7. <Modal> 道具( r) CompactViewModalProps (中文(简体) )
  8. 类型

字节收缩视图 — react 组件

可嵌入的拜德资产拾取器,作为 @bynder/compact-view 国家防范机制一揽子计划.

用于CDN/window.BynderCompactView.open() 使用,参见 文档。 。 。 .

安装

npm install @bynder/compact-view

同伴依赖性 : react 财务报告和审定财务报表 react-dom (单位:千美元)^19.2.5) (中文(简体) ).

出口

import {
    CompactView,
    Login,
    Modal,
    // types
    type CompactViewProps,
    type CompactViewLoginProps,
    type CompactViewModalProps,
} from '@bynder/compact-view';

使用量

CompactView 必须在内部 <Login>。 。 。 . <Modal> 是可选的——如果省略,则挂载 <Login> 输入您的容器元素.

import React, { useState } from 'react';
import { createRoot } from 'react-dom/client';
import { CompactView, Login, Modal } from '@bynder/compact-view';

const assetFieldSelection = `
    name
    url
    originalUrl
    derivatives {
        thumbnail
        webImage
    }
    ... on Video {
        previewUrls
    }
`;

function App() {
    const [isOpen, setIsOpen] = useState(false);

    const onSuccess = (assets, additionalInfo) => {
        console.log(assets, additionalInfo);
        setIsOpen(false);
    };

    return (
        <>
            <button onClick={() => setIsOpen(true)}>Open Compact View</button>
            <Modal isOpen={isOpen} onClose={() => setIsOpen(false)}>
                <Login portal={{ url: 'portal.bynder.com', editable: true }} language="en_US">
                    <CompactView
                        language="en_US"
                        onSuccess={onSuccess}
                        assetFieldSelection={assetFieldSelection}
                    />
                </Login>
            </Modal>
        </>
    );
}

const root = createRoot(document.getElementById('app'));
root.render(<App />);

对于装有容器的变体,可降低 <Modal> 通过 isContainerMode 改为 <CompactView>数字 :

<div style={{ width: 800, height: 600 }}>
    <Login portal={{ url: 'portal.bynder.com' }}>
        <CompactView isContainerMode onSuccess={onSuccess} />
    </Login>
</div>

更多见 符号文档。 。 。 .

API 密码

<CompactView> 道具( r)CompactViewProps(中文(简体) )

所有道具都是可选的.

Prop类型默认说明
onSuccess(assets: OnSuccessAsset[], info: AdditionalInfo) => voidconsole.log使用所选资产和 additionalInfo 对象( 当前) { selectedFile? }) (中文(简体) ).
language"en_US" | "nl_NL" | "de_DE" | "fr_FR" | "es_ES""en_US"UI语言. 只有"地语"的前两个字符用于装入翻译.
mode"SingleSelect" | "SingleSelectFile" | "MultiSelect""MultiSelect"选择模式 .
assetTypesAssetType[]["IMAGE", "AUDIO", "VIDEO", "DOCUMENT"]允许的资产类型。 值在 API 表面是忽略大小写 .
assetFieldSelectionstring见 defaultAssetFieldSelection返回的资产的图形QL 字段选择 onSuccess。此选择以外的字段是 undefined。 。 。 .
assetFilterAssetFilterJson无打开时使用的预定义过滤器 .
defaultSearchTermstring无搜索输入的初始值 .
defaultImageDerivativeNamestring无图像衍生工具名称返回为 selectedFile 页:1 SingleSelectFile。 。 。 .
defaultVideoDerivativeNamestring无视频衍生工具名称以 selectedFile 页:1 SingleSelectFile。 。 。 .
selectedAssetsstring[][]要预选的资产ID 。 在单选模式中,只使用上一个ID.
themeTheme无重置(见下文).
hideExternalAccessbooleanfalse从资产和收藏中删除对外部 DAM 的访问.
hideLimitedUsebooleanfalse从网格中隐藏有限用途资产.
hideSwitchbooleanfalse隐藏资产/组合切换器.
hideDefaultDerivativesbooleanfalse隐藏默认衍生工具 webImage, (中文(简体) ), thumbnail 财务报告和审定财务报表 mini 从每类资产的衍生工具下调。 原始资产和其他衍生工具仍可使用.
selectAllOptionbooleanfalse在 MultiSelect 模式.
noCachebooleanfalse在 GraphQL 请求中禁用 HTTP 缓存 .
isContainerModebooleanfalse挂起时需要 <Login> 在您的 DOM 容器内而不是 <Modal>。 。 。 .
resetStoreOnMountbooleanfalse单位 isContainerMode,在挂载时重置内部存储器(搜索、过滤、选择、路由)。 被忽略了其他方式——非容器模式总是被重置.
enableDASHbooleanfalse包括 HLS 中的 DASH 流线链接 streamingLinks 视频资产.
enableDATPermissionManagementbooleanfalse何时 true, DAT UI("新变换"链接和变换编辑器中预设的拾取器)在经过认证的用户 DAT 权限上被锁定 module_permissions 在进入标志。 何时 false, DAT UI 总是可用,预设取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取.

<Login> 道具( r)CompactViewLoginProps(中文(简体) )

Prop类型说明
portal{ url: string; editable?: boolean } (单位:千美元)PortalConfig(中文(简体) )默认门户 URL. editable: false 将压缩视图锁定到单个门户( 默认) true) (中文(简体) ).
language与 CompactView.language本地化登录屏幕.
authentication{ getAccessToken: () => string; hideLogout?: boolean }通过提供访问符来跳过交互式 OAuth 流 . hideLogout: true 隐藏登录按钮.
onLogout() => void用户日志出后调用 .
childrenReact.ReactNode一般来说 <CompactView>。 。 。 .

<Modal> 道具( r)CompactViewModalProps(中文(简体) )

Prop类型说明
isOpenboolean控制能见度.
onClose() => void用背景点击、逃跑或关闭按钮调用.
styleReact.CSSProperties适用于模式包装器(例如:. { width: '90%' }) (中文(简体) ).

类型

type AssetType = 'AUDIO' | 'DOCUMENT' | 'IMAGE' | 'VIDEO' | 'ARCHIVE';

type SelectionMode = 'SingleSelect' | 'SingleSelectFile' | 'MultiSelect';

type File = {
    url: string;
    width?: number;
    height?: number;
    fileSize?: number;
};

type PortalConfig = {
    url: string;
    editable?: boolean;
};

type AssetFilterJson = {
    predefinedAssetType?: AssetType[];
    collectionId?: string;
    predefinedMetapropertiesOptions?: Record<string, Record<string, string>>;
    searchTerm?: string;
    predefinedTagNames?: string[];
    isLimitedUse?: boolean;
    showToolbar?: boolean;
};

type Theme = {
    colorPrimary?: string;
    colorButtonPrimary?: string;
    colorButtonPrimaryLabel?: string;
    colorButtonPrimaryActive?: string;
    colorButtonPrimaryHover?: string;
    colorButtonPrimaryHoverLabel?: string;
};

type VideoPreset = {
    presetId: string;
    name: string;
    format: string;
    previewUrl: string;
};

type AdditionalInfo = { selectedFile?: File };

interface OnSuccessAsset {
    id: string;
    files: Record<string, File>;
    name?: string;
    description?: string;
    databaseId?: string;
    createdAt?: string;
    originalUrl?: string;
    publishedAt?: string;
    tags?: string[];
    type?: AssetType;
    updatedAt?: string;
    url?: string;
    extensions?: string[];
    metaproperties?: { nodes: OnSuccessAssetMetaproperty[] };
    textMetaproperties?: OnSuccessAssetTextMetaproperty[];
    derivatives?: { thumbnail?: string; webImage?: string };
    previewUrls?: string[];
    streamingLinks?: { hls?: string; dash?: string; embedCode?: string };
    videoPresets?: VideoPreset[];
}

type OnSuccessCallback = (assets: OnSuccessAsset[], info: AdditionalInfo) => void;

OnSuccessAsset 反映默认的 GraphQL 字段选择。 有习惯 assetFieldSelection,未在 OnSuccessAsset 将不会被键入 —— 投放到自定义接口读取 .

版本与发布记录

@bynder/compact-view 共发布 75 个版本,首次发布于 2019/01/10;过去 12 个月发布了 13 个版本。

版本发布日期距今
7.0.0latest2026/10/2910 天前
6.1.02026/09/181 个月前
6.0.22026/09/012 个月前
6.0.12026/08/252 个月前
6.0.02026/08/202 个月前
5.4.02026/06/094 个月前

关于 @bynder/compact-view 的常见问题

@bynder/compact-view 是什么?

字节收缩视图

如何安装 @bynder/compact-view?

在项目目录运行 npm install @bynder/compact-view,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^19.2.5)、react-dom(^19.2.5)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@bynder/compact-view 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@bynder/compact-view 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@bynder/compact-view 可以商用吗?

@bynder/compact-view 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@bynder/compact-view 的下载量有多少?

根据 npm 官方下载统计,@bynder/compact-view 在 2026/10/09 – 2026/11/07 这 30 天内被下载 119,803 次,日均约 3,993 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bynder/compact-view 还在维护吗?

最新版本 7.0.0 发布于 2026/10/29(10 天前);至今共发布 75 个版本,其中过去 12 个月发布了 13 个;首次发布于 2019/01/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。