@tiq/companion-sdk
v1.0.1
Published
Companion SDK for tiq
Downloads
3
Readme
tiq Companion SDK
With tiq you can collect augmented feedback and bug reports from testers and stakeholders directly on your web app. Transform feedback into issues with one-click and deliver web apps faster.
The Companion SDK enables you to extend the functionality of the companion, for example by providing custom metadata for created tiqs.
Installation
For the latest stable version:
npm install @tiq/companion-sdkDocumentation
Add custom metadata to tiqs
The SDK allows you to extend the collected metadata upon creation of a tiq with further entries like User IDs and more.
registerMetadataGetter
registerMetadataGetter(metadata: (() => Record<string, unknown> | Promise<Record<string, unknown>>))
=> numberRegister a custom metadata getter. This function is used to provide custom metadata to the SDK.
The getter is called every time a tiq is created and the returned data is added to the custom field of the tiq metadata.
You may register more than one getter in your function, and all of them will be called and their data will be merged.
Make sure that the getter returns data with unique keys or all data is stored in one unique top-level key, since the companion will flat-merge the data from all registered getters.
unregisterMetadataGetter
unregisterMetadataGetter(handle: number) => booleanUnregister a custom metadata getter. May be used when i.e. leaving a page or when a component in react is re-rendered.
Example - React application
The following implementation will attach an imaginary userId to each tiq's metadata, as long as the component Component has been mounted before the tiq-creation:
import { registerMetadataGetter, unregisterMetadataGetter } from "@tiq/companion-sdk";
import { useEffect } from "react";
import { getUserId } from "your-auth-package"
export function Component(){
useEffect(() => {
const getterHandle = registerMetadataGetter(() => {
return {
userId: getUserId()
}
});
return () => {
unregisterMetadataGetter(getterHandle);
}
}, [])
return (<div> Hello Companion SDK! </div>)
}