
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
@thanksjs/react
Advanced tools
[ThanksJS React-Native](https://www.npmjs.com/package/@thanksjs/react-native-webview) | [ThanksJS React](https://www.npmjs.com/package/@thanksjs/react) | [ThanksJS Web](https://www.npmjs.com/package/@thanksjs/web) | [Integration Examples](https://github.c
ThanksJS React-Native | ThanksJS React | ThanksJS Web | Integration Examples
yarn add @thanksjs/react
import { ThanksWidget } from '@thanksjs/react';
/// somewhere in your code
<ThanksWidget partnerId="{your partner id}" />;
To close Widget just unmount <ThanksWidget/>
.
It's all comes with TypeScript support, dont worry.
Refer to the full Thanks API configuration documentation for more.
The important parts are:
email
. Strictly sha256 hash will be transferred during the widget lifecycle. No sensitive
information leaves your application without your permission.subject
and info
can be used to decide what information to send
subject
can be notification
or autofill
of visible UI elementsinfo.token
is a unique identifier for the request and can be used to trace PII flow further in our systemskeywords
, category
and items
are used to fine-tune ads to displayExample
<ThanksWidget
partnerId="{your partner id}"
// information for the first scren
statusText="Your order has been confirmed"
emailHash={{ sha256: customersEmailHash }}
// or
email={customerEmail}
onPersonalInformationRequest={(subject, info) => {
return {
email,
firstName: 'TestUser',
};
}}
onDisplay={() => {
console.log('widget displayed');
}}
onClose={() => {
console.log('widget closed');
}}
keywords={['violet', 'roses', 'blueberry']}
items={[
{
name: 'Flatwhite',
value: 4.0,
currency: 'AUD',
quantity: 2,
type: 'coffee',
category: 'drinks',
subcategory: 'australian-coffee',
},
]}
categories={['lifestyle']}
/>
By default, Thanks Widget does not send any personal information. The email
specified in configuration is always
converted into sha256 emailHash
before being sent to server. All other extended information provided is used only to
improve the efficiency of the widget and is not stored unless user performs an action. In such case the information will
kept until the action is settled, but no longer than 60 days.
However, there are situations when we need Partner to provide Personal Information:
In both case we are going to call onPersonalInformationRequest
function with subject
and info
arguments. Depending
on request you may decide to return some information, or return nothing.
onPersonalInformationRequest: (subject: 'notification' | 'autofill', info) => {
return {
email,
firstName: 'TestUser',
};
};
notification
will be used to send email notification to the user about the action just taken, for
example coupon code they just claimedautofill
will be used to prefill a form with user's data, making the subscription process friction
lessIn case of onPersonalInformationRequest
is not defined, but email
is provided as a part of configuraiton - nothing
will happen. The process of capturing PII information is always in the Partners hands.
💡It's not always known upfront if PII is required, so onPersonalInformationRequest
will be called more often than PII
information is being "consumed". In case it was not required, the information will be discarded.
While not every Ad requires PII, some Ads can have a "Promotion" attached to them, for example "Subscribe to XYZ newsletter to enter the draw". In case of user action PII information might not be used by a particular Ad, but will be used by Promotion to keep track of participation. The information will be redacted after the Promotion ends.
MIT
FAQs
[ThanksJS React-Native](https://www.npmjs.com/package/@thanksjs/react-native-webview) | [ThanksJS React](https://www.npmjs.com/package/@thanksjs/react) | [ThanksJS Web](https://www.npmjs.com/package/@thanksjs/web) | [Integration Examples](https://github.c
We found that @thanksjs/react demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.