Interaction Libraries
Interaction Library는 프로토파이 Component를 팀 멤버들과 공유할 수 있는 공간이며, 아래와 같이 세 종류의 라이브러리가 있습니다.
![[object Object]](https://cdn.sanity.io/images/vidqzkll/production/5c73d2eee43caa6bf79463e130be3aa65e73e5ee-2175x1269.png/interaction-libraries.png)
- Team Library (팀플랜 및 엔터프라이즈 플랜): 팀에 소속된 멤버는 누구나 Team Library를 만들고 Component를 추가하고 수정할 수 있는 멤버를 추가할 수 있습니다.
- Personal Library (모든 플랜): 여러 장치에서 접근할 수 있는 개인 클라우드 공간입니다.
- Public Library (모든 플랜): Public Library 안에는 Material Design과 iOS Component가 있으며, 모두에게 제공됩니다.
Creating Interaction Libraries
좌측 컴포넌트 패널에 위치한 + 버튼을 눌러서 새로운 Interaction Library를 만들 수 있습니다. 라이브러리 이름과 설명(옵션)을 입력한 후 Create 버튼을 눌러서 Interaction Library를 만듭니다.
![[object Object]](https://cdn.sanity.io/images/vidqzkll/production/0b6207239d8130795a54bb8ec9ccbc5c1cbbcd4c-1450x800.png/interaction_libraries.png)
그러면 새로운 라이브러리 창이 열리고, 컴포넌트 패널에서 현재 열려있는 라이브러리 섹션에 '수정 진행 중' 이란 태그가 붙게 됩니다. 상단 보라색 배너는 현재 파일이 라이브러리임을 알려줍니다.
![[object Object]](https://cdn.sanity.io/images/vidqzkll/production/1d70570dda345103bff285308d964c0a1e62632e-1450x800.png/edit_mode.png)
Publishing Interaction Libraries
라이브러리 파일을 Publish하면, 다른 팀 사용자가 가장 최신 Component를 사용할 수 있습니다. 라이브러리 파일을 저장한 뒤 보라색 배너 우측이나 ProtoPie Studio의 우측 상단 코너에 있는 Publish 버튼을 눌러주면 됩니다. Team Library의 경우, Editor 권한을 가진 멤버는 누구나 이 Component들을 사용할 수 있습니다.
![[object Object]](https://cdn.sanity.io/images/vidqzkll/production/a279198dcea1ffdde7515681542b9606a8750ca8-1450x800.png/publish.png)
Adding Component Instances
어떤 Interaction Library든 사용하고 싶은 Component를 캔버스로 드래그하여 사용할 수 있습니다. 하나의 캔버스에 여러 라이브러리의 Component를 Updating Interaction Libraries사용할 수도 있습니다.
![[object Object]](https://cdn.sanity.io/images/vidqzkll/production/d34c10967aa737c350d472f914aca413d198c73a-1450x800.png/adding_component_instances.png)
Updating Interaction Libraries
현재 사용 중인 Component가 포함된 라이브러리가 업데이트되면, Update Library 아이콘에 알림이 뜹니다. 클릭 후에 나타나는 Update Library 팝업창에서 업데이트할 라이브러리를 선택할 수 있습니다. 또한 팝업창 우측 상단에 있는 Refresh 아이콘을 클릭해 직접 업데이트 사항이 있는지 확인할 수 있습니다.
![[object Object]](https://cdn.sanity.io/images/vidqzkll/production/a383cf8bc2d2c4328d829191816f605d45ac1f35-1450x800.png/updating_libraries.png)
Export as New Library
현재 사용 중인 Component가 포함된 라이브러리가 업데이트되면, Library 아이콘에 알림이 뜹니다. 클릭 후에 나타나는 팝업창에서 업데이트할 라이브러리를 선택할 수 있습니다. 우측 상단에 있는 Update 아이콘을 클릭해 직접 최신 버전으로 업데이트할 수도 있습니다.
![[object Object]](https://cdn.sanity.io/images/vidqzkll/production/892a3df917d68bec80abc9e127993965ec9b1696-1450x800.png/export_as_new_library.png)
Export to Library
![[object Object]](https://cdn.sanity.io/images/vidqzkll/production/9bc9da4b105e5e32da4c2aa2a2d3bd7d4319dcc8-1450x800.png/export_to_library_1.png)
로컬 컴포넌트를 기존의 라이브러리에 추가하는 것도 가능합니다. 로컬 컴포넌트 섹션 우상단에 위치한 Export to Library 버튼을 클릭합니다.
![[object Object]](https://cdn.sanity.io/images/vidqzkll/production/f66cbae7091a910ef7ac304babfd2b563c6e93c2-1450x800.png/export_to_library_2.png)
팝업창이 열리면 추출할 로컬 컴포넌트를 선택한 후 업데이트할 라이브러리를 지정합니다. 또한 옵션을 통해 로컬 컴포넌트를 내보냄과 동시에 라이브러리를 퍼블리시 할 수 있습니다.
![[object Object]](https://cdn.sanity.io/images/vidqzkll/production/084e72b68e3e4d4ff6eb374326de6d4057d8858d-1450x800.png/export_to_library_3.png)
Handling Conflicts
현재 작업 중인 라이브러리를 다른 멤버가 변경하고 Publish하는 경우, 경고 팝업창이 나타납니다. 현재 버전을 최신 버전으로 덮어씌우거나, 현재 버전을 버리고 다른 멤버가 Publish한 버전으로 업데이트할 수 있습니다.
![[object Object]](https://cdn.sanity.io/images/vidqzkll/production/0c03e1a69987075a755823da294947ea3179b18c-1580x870.png/image.png)