@lens-protocol/react-web
Version:
Lens Protocol SDK for React web applications
295 lines (276 loc) • 9.81 kB
JavaScript
'use client';
;
Object.defineProperty(exports, '__esModule', { value: true });
var react = require('@lens-protocol/react');
var createClass = require('./createClass-3c0c4869.cjs.prod.js');
var react$1 = require('react');
var sharedKernel = require('@lens-protocol/shared-kernel');
var jsxRuntime = require('react/jsx-runtime');
function _objectWithoutPropertiesLoose(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
return target;
}
function _objectWithoutProperties(source, excluded) {
if (source == null) return {};
var target = _objectWithoutPropertiesLoose(source, excluded);
var key, i;
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
target[key] = source[key];
}
}
return target;
}
var _ref, _ref2, _ref3, _maybe, _maybe2;
var safeGlobal = (_ref = (_ref2 = (_ref3 = (_maybe = sharedKernel.maybe(function () {
return globalThis;
})) !== null && _maybe !== void 0 ? _maybe : sharedKernel.maybe(function () {
return window;
})) !== null && _ref3 !== void 0 ? _ref3 : sharedKernel.maybe(function () {
return self;
})) !== null && _ref2 !== void 0 ? _ref2 : sharedKernel.maybe(function () {
return global;
})) !== null && _ref !== void 0 ? _ref : sharedKernel.never('Cannot resolve a global object.');
var window = (_maybe2 = sharedKernel.maybe(function () {
return safeGlobal.window;
})) !== null && _maybe2 !== void 0 ? _maybe2 : null;
var LocalStorageProvider = /*#__PURE__*/function () {
function LocalStorageProvider() {
var _this = this;
createClass._classCallCheck(this, LocalStorageProvider);
createClass._defineProperty(this, "subscribers", new Map());
createClass._defineProperty(this, "onStorageEvent", function (event) {
if (event.storageArea !== (window === null || window === void 0 ? void 0 : window.localStorage)) {
return;
}
if (event.key && _this.subscribers.has(event.key)) {
var _this$subscribers$get;
var subscribers = (_this$subscribers$get = _this.subscribers.get(event.key)) !== null && _this$subscribers$get !== void 0 ? _this$subscribers$get : [];
subscribers.forEach(function (subscriber) {
return subscriber(event.newValue, event.oldValue);
});
}
});
}
createClass._createClass(LocalStorageProvider, [{
key: "getItem",
value: function getItem(key) {
var _window$localStorage$;
return (_window$localStorage$ = window === null || window === void 0 ? void 0 : window.localStorage.getItem(key)) !== null && _window$localStorage$ !== void 0 ? _window$localStorage$ : null;
}
}, {
key: "setItem",
value: function setItem(key, value) {
window === null || window === void 0 || window.localStorage.setItem(key, value);
}
}, {
key: "removeItem",
value: function removeItem(key) {
window === null || window === void 0 || window.localStorage.removeItem(key);
}
}, {
key: "subscribe",
value: function subscribe(key, subscriber) {
var _this2 = this;
if (this.subscribers.has(key)) {
var _this$subscribers$get2;
(_this$subscribers$get2 = this.subscribers.get(key)) === null || _this$subscribers$get2 === void 0 || _this$subscribers$get2.push(subscriber);
} else {
this.subscribers.set(key, [subscriber]);
}
if (this.subscribers.size === 1) {
this.listenToStorageEvent();
}
return {
unsubscribe: function unsubscribe() {
var _this2$subscribers$ge;
var subscribers = (_this2$subscribers$ge = _this2.subscribers.get(key)) !== null && _this2$subscribers$ge !== void 0 ? _this2$subscribers$ge : [];
var index = subscribers.indexOf(subscriber);
if (index > -1) {
subscribers.splice(index, 1);
}
if (subscribers.length === 0) {
_this2.subscribers["delete"](key);
}
if (_this2.subscribers.size === 0) {
_this2.stopListeningToStorageEvent();
}
}
};
}
}, {
key: "listenToStorageEvent",
value: function listenToStorageEvent() {
window === null || window === void 0 || window.addEventListener('storage', this.onStorageEvent);
}
}, {
key: "stopListeningToStorageEvent",
value: function stopListeningToStorageEvent() {
window === null || window === void 0 || window.removeEventListener('storage', this.onStorageEvent);
}
}]);
return LocalStorageProvider;
}();
function localStorage() {
return new LocalStorageProvider();
}
var _excluded = ["config"];
var storage = localStorage();
/**
* Manages the lifecycle and internal state of the Lens SDK
*
* @group Components
* @param props - {@link LensProviderProps}
*
* @example
* ```tsx
* import { LensProvider, staging } from '@lens-protocol/react-web';
* import { bindings as wagmiBindings } from '@lens-protocol/wagmi';
*
* const lensConfig: LensConfig = {
* bindings: wagmiBindings(),
* environment: staging,
* };
*
* function App() {
* return (
* <LensProvider config={lensConfig}>
* // ...
* </LensProvider>
* );
* }
* ```
*/
function LensProvider(_ref) {
var config = _ref.config,
props = _objectWithoutProperties(_ref, _excluded);
var _useState = react$1.useState(function () {
var _config$storage;
return createClass._objectSpread2(createClass._objectSpread2({}, config), {}, {
storage: (_config$storage = config.storage) !== null && _config$storage !== void 0 ? _config$storage : storage
});
}),
_useState2 = createClass._slicedToArray(_useState, 1),
resolvedConfig = _useState2[0];
return /*#__PURE__*/jsxRuntime.jsx(react.BaseProvider, createClass._objectSpread2({
config: resolvedConfig
}, props));
}
function _setPrototypeOf(o, p) {
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function");
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
writable: true,
configurable: true
}
});
Object.defineProperty(subClass, "prototype", {
writable: false
});
if (superClass) _setPrototypeOf(subClass, superClass);
}
function _getPrototypeOf(o) {
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
return _getPrototypeOf(o);
}
function _isNativeReflectConstruct() {
try {
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
} catch (t) {}
return (_isNativeReflectConstruct = function () {
return !!t;
})();
}
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
function _possibleConstructorReturn(self, call) {
if (call && (typeof call === "object" || typeof call === "function")) {
return call;
} else if (call !== void 0) {
throw new TypeError("Derived constructors may only return object or undefined");
}
return _assertThisInitialized(self);
}
function _createSuper(Derived) {
var hasNativeReflectConstruct = _isNativeReflectConstruct();
return function _createSuperInternal() {
var Super = _getPrototypeOf(Derived),
result;
if (hasNativeReflectConstruct) {
var NewTarget = _getPrototypeOf(this).constructor;
result = Reflect.construct(Super, arguments, NewTarget);
} else {
result = Super.apply(this, arguments);
}
return _possibleConstructorReturn(this, result);
};
}
/**
* Creates a [Blob URI](https://w3c.github.io/FileAPI/#blob-url) from the given file.
*
* Internally it uses `URL.createObjectURL` and other internals to create a URI that
* can be referenced by a DOM attribute (e.g. `src` of an `img` tag), and at the same
* time retains some critical information about the file (e.g. its original name).
*
* @param file - a `File` object as obtained from an `input` element or a `FileList`
* @returns a Blob URI as a string
*/
function fileToUri(file) {
return URL.createObjectURL(file) + '#' + encodeURIComponent(file.name);
}
/**
* {@inheritDoc BaseUploader}
*/
var Uploader = /*#__PURE__*/function (_BaseUploader) {
_inherits(Uploader, _BaseUploader);
var _super = _createSuper(Uploader);
function Uploader() {
createClass._classCallCheck(this, Uploader);
return _super.apply(this, arguments);
}
createClass._createClass(Uploader, [{
key: "isLocalFile",
value: function isLocalFile(value) {
return !!value && value.startsWith('blob:');
}
}]);
return Uploader;
}(react.BaseUploader);
exports.LensProvider = LensProvider;
exports.Uploader = Uploader;
exports.fileToUri = fileToUri;
exports.localStorage = localStorage;
Object.keys(react).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return react[k]; }
});
});