Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

위젯 집합에 두 번째 위젯 추가

한 저장소에서 코드와 자산을 공유하는 위젯을 함께 게시할 수 있습니다. 위젯 집합 하나의 최대 위젯 수는 50개입니다. React, Vite와 @osdk/widget.vite-plugin을 사용하는 생성 템플릿을 기준으로 설명합니다.

관련 파일 배치는 다음과 같습니다.

repo/
├── src/
│   ├── first.tsx
│   ├── first.config.ts
│   ├── second.tsx
│   └── second.config.ts
├── first.html
├── second.html
└── vite.config.ts

메타데이터와 진입점

src/second.config.ts에 고유 ID와 메타데이터를 정의합니다.

import { defineConfig } from "@osdk/widget.client";

export default defineConfig({
  id: "secondWidgetId",
  name: "Second Widget",
  description: "A second widget",
  type: "workshop",
  parameters: {},
  events: {},
});

src/second.tsx는 FoundryWidget으로 감싸 매개변수와 이벤트 문맥을 제공합니다. 다음은 두 번째 위젯을 식별하는 내용을 렌더링하는 예입니다.

import { FoundryWidget } from "@osdk/widget.client-react";
import { createRoot } from "react-dom/client";
import Second from "./second.config.js";

createRoot(document.getElementById("root")!).render(
  <FoundryWidget config={Second}>
    <section>
      <h1>Second Widget</h1>
      <p>This widget is published from the shared widget set.</p>
    </section>
  </FoundryWidget>,
);

HTML과 빌드 입력

프로젝트 루트의 second.html에 렌더링할 root와 진입점 스크립트를 넣습니다.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Second Widget</title>
  </head>
  <body>
    <div id="root"></div>
    <script type="module" src="/src/second.tsx"></script>
  </body>
</html>

Vite의 빌드 입력에 두 HTML을 포함합니다. 기존 프로젝트의 다른 plugin과 설정은 유지합니다.

import foundryWidgetPlugin from "@osdk/widget.vite-plugin";
import { defineConfig } from "vite";

export default defineConfig({
  plugins: [foundryWidgetPlugin()],
  build: {
    rollupOptions: { input: ["./first.html", "./second.html"] },
  },
});

npm run build로 만든 출력의 .palantir/widgets.config.json에 추가 위젯이 포함됩니다.

미리보기와 게시

게시 전에는 개발 모드로 playground와 VS Code에서 미리 볼 수 있습니다. Workshop에서 새 위젯을 선택하려면 집합의 새 버전을 게시해야 합니다. 이 위젯의 첫 게시 뒤에는 Workshop에서도 미게시 변경을 개발 모드로 볼 수 있습니다.