@streambird/streambird-react
Version:
124 lines (123 loc) • 5.97 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Streambird = void 0;
var react_1 = __importStar(require("react"));
var streambird_js_1 = require("@streambird/streambird-js");
var useStreambirdFactory = function () {
var _a = __read((0, react_1.useState)(), 2), streambirdFactory = _a[0], setStreambirdFactory = _a[1];
(0, react_1.useEffect)(function () {
(0, streambird_js_1.loadStreambird)().then(function (globalStreambird) { return setStreambirdFactory(function () { return globalStreambird; }); });
}, []);
return streambirdFactory;
};
var Streambird = function (props) {
var StreambirdFactory = useStreambirdFactory();
var divId = 'streambird_io_login';
var publicToken = props.publicToken, config = props.config, callbacks = props.callbacks;
(0, react_1.useEffect)(function () {
if (!StreambirdFactory) {
return;
}
var streambird = StreambirdFactory(publicToken);
var getAutoVerify = function () {
if (config && config.emailMagicLink) {
if (config.emailMagicLink.hasOwnProperty('autoVerify')) {
return config.emailMagicLink.autoVerify;
}
}
return true;
};
var getRequiresVerification = function () {
if (config && config.emailMagicLink) {
if (config.emailMagicLink.hasOwnProperty('requiresVerification')) {
return config.emailMagicLink.requiresVerification;
}
}
return true;
};
var getShowHeaderText = function () {
if (config && config.componentStyle) {
if (config.componentStyle.hasOwnProperty('showHeaderText')) {
return config.componentStyle.showHeaderText;
}
}
return true;
};
var options = {
elementId: divId,
enabledProducts: [streambird_js_1.ProductTypes.EmailMagicLink],
config: {
emailMagicLink: {
loginRedirectUrl: config.emailMagicLink.loginRedirectUrl ? config.emailMagicLink.loginRedirectUrl : '',
registrationRedirectUrl: config.emailMagicLink.registrationRedirectUrl ? config.emailMagicLink.registrationRedirectUrl : '',
loginExpiresIn: config.emailMagicLink.loginExpiresIn ? config.emailMagicLink.loginExpiresIn : 5,
registrationExpireIn: config.emailMagicLink.registrationExpireIn ? config.emailMagicLink.registrationExpireIn : 5,
requiresVerification: getRequiresVerification(),
autoVerify: getAutoVerify()
},
componentStyle: {
width: config.componentStyle.width ? config.componentStyle.width : 500,
showHeaderText: getShowHeaderText(),
headerText: config.componentStyle.headerText ? config.componentStyle.headerText : 'Sign in or register',
headerTextColor: config.componentStyle.headerTextColor ? config.componentStyle.headerTextColor : '',
bodyText: config.componentStyle.bodyText ? config.componentStyle.bodyText : 'Please enter your email address and sign up with a magic link to start using decentralized applications.',
bodyTextColor: config.componentStyle.bodyTextColor ? config.componentStyle.bodyTextColor : '#333333',
buttonTextColor: config.componentStyle.buttonTextColor ? config.componentStyle.buttonTextColor : '#FFFFFF',
buttonColor: config.componentStyle.buttonColor ? config.componentStyle.buttonColor : '',
errMsgColor: config.componentStyle.errMsgColor ? config.componentStyle.errMsgColor : ''
}
},
callbacks: callbacks
};
if (config.wallet) {
options.config['wallet'] = {
walletType: config.wallet.walletType ? config.wallet.walletType : streambird_js_1.WalletType.Ethereum
};
}
if (config.apiHost && config.apiHost.length > 0) {
options.config['apiHost'] = config.apiHost;
}
streambird.init(options);
}, [StreambirdFactory, divId]);
return divId ? react_1.default.createElement("div", { id: divId }) : null;
};
exports.Streambird = Streambird;