trillion-widget
Version:
Trillion AR Widget
126 lines (96 loc) • 3.84 kB
Markdown
# Trillion AR Widget
This is Trillion AR Widget that allow you to integrate Trillion SDK in your site. For more information please visit https://trillion.jewelry
## Installing
Using npm:
```shell
npm install trillion-widget
```
Using yarn:
```shell
yarn add trillion-widget
```
## How to use:
First of all **get your API key** from https://dashboard.trillion.jewelry/integration
Then you need to create an empty div element for widget initialization.
For example:
```html
<div id="trillion-widget"></div>
```
Then, in your js code (**don't forget to set your API key**):
```js
import {TrillionWidgetApp} from "trillion-widget"
const elem = document.getElementById('trillion-widget')
const trillionWidget = new TrillionWidgetApp()
trillionWidget.init(elem)
trillionWidget.setServiceActivationKey("YOUR_API_KEY_HERE")
trillionWidget.setJewelryID('demo-pendant-ar')
trillionWidget.setJewelryType('necklace')
trillionWidget.refresh()
```
For typescript:
```ts
const elem = document.getElementById('trillion-widget') as HTMLElement
```
## Instance methods
* `trillionWidget#init()` - Create widget on the provided HTML element
* `trillionWidget#setServiceActivationKey(KEY)` - Set API key for app
* `trillionWidget#refresh()` - reload widget after changing parameters
* `trillionWidget#setWidgetMode(mode)` - Set widget mode (basic, ring_carousel, two_hands)
* `trillionWidget#getWidgetMode(mode)` - Get current widget mode
* `trillionWidget#setJewelryID(sku)` - Set the id(SKU) of the jewelry to load
* `trillionWidget#getJewelryID()` - Get the id(SKU) of the uploaded jewelry
* `trillionWidget#setCarousel(sku[])` - Set a group of jewelry.
If set, the widget shows selector with all elements of the group and ignores jewelry from setJewelryID
By default, widget will load first element of the group
* `trillionWidget#getCarousel()` - Get a group of jewelry
* `trillionWidget#setJewelryType(type)` - Set the jewelry type (earrings, ring, necklace) to load. *Deprecated, type will be detected automatically*
* `trillionWidget#getJewelryType()` - Get the uploaded jewelry type. *Deprecated, type will be detected automatically*
* `trillionWidget#setUsePerformanceCheck(use)` - use performance check
* `trillionWidget#getUsePerformanceCheck()` - get performance check
* `trillionWidget#setLanguage(language)` - set language. Available languages: 'en', 'kr', 'ru'
* `trillionWidget#getLanguage()` - get language
* `trillionWidget#useExternalUi()` - Hide native UI
* `trillionWidget#getScreenshot()` - Get screenshot
## Ring carousel
Setting up the carousel mode:
```js
trillionWidget.setWidgetMode("ring_carousel") // Enables carousel mode
trillionWidget.setCarousel(["ring-sku-1", "ring-sku-2", "..."]) // Sets the SKUs of rings used
```
### Custom
If you want to control switching between carousel items yourself, you can hide the native UI and manually update the currently selected carousel item.
For example:
```js
trillionWidget.useExternalUi(true)
trillionWidget.refresh()
customButton1.addEventListener('click', () => {
trillionWidget.updateCarouselItem('ring-sku-1')
})
customButton2.addEventListener('click', () => {
trillionWidget.updateCarouselItem('ring-sku-2')
})
```
## Using CDN to get Trillion Widget
use this pattern:
`unpkg.com/:package@:version/:file`
For example:
```js
import {TrillionWidgetApp} from "https://sdk.trillion.jewelry/widget/latest/trillion-widget.js"
```
## React component
This library also provides the React component for widget.
### How to use
import component:
```js
import { TrillionWidget, JewelryTypeName } from "trillion-widget";
```
use somewhere in your React application:
```js
function MyComponent() {
return (
<div className="MyComponent">
<TrillionWidget jewelryId={'demo-earrings'} jewelryType={JewelryTypeName.Earrings}/>
</div>
)
}
```