@raona/components
Version:
React components used at Raona to work with SPFx
88 lines (87 loc) • 6.25 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var RelatedPeople_1 = require("../OtherComponents/RelatedPeople");
var icalendar_link_1 = require("@raona/icalendar-link");
var stylesConstants_1 = require("../stylesConstants");
var EventBanner = /** @class */ (function (_super) {
__extends(EventBanner, _super);
function EventBanner() {
return _super !== null && _super.apply(this, arguments) || this;
}
EventBanner.prototype.eventSubscribe = function () {
var _a = this.props, isAddSubscribe = _a.isAddSubscribe, showButtonSubscribe = _a.showButtonSubscribe, addSubscribeEvent = _a.addSubscribeEvent, item = _a.item;
if (showButtonSubscribe && addSubscribeEvent) {
return (React.createElement(React.Fragment, null, isAddSubscribe ? React.createElement("button", { className: "btn btn--gray", onClick: addSubscribeEvent }, item.cancelSubscriptionTranslated ? item.cancelSubscriptionTranslated : 'Cancel subscription') : React.createElement("button", { className: "btn btn--corp", onClick: addSubscribeEvent }, item.eventSubscriptionTranslated ? item.eventSubscriptionTranslated : 'Sign up for the event')));
}
};
EventBanner.prototype.render = function () {
var _a = this.props, item = _a.item, addToCalendar = _a.addToCalendar, generateIcs = _a.generateIcs, toggleShowVideo = _a.toggleShowVideo, openUserProfile = _a.openUserProfile, eventBannerStyles = _a.eventBannerStyles, showRelated = _a.showRelated;
var styles = eventBannerStyles ? __assign({}, eventBannerStyles) : __assign({}, stylesConstants_1.eventConstantBannerStyles); // Default Style for this component
return (React.createElement("div", { className: styles.header },
React.createElement("div", { className: styles.wrapper },
React.createElement("div", { className: styles.left },
React.createElement("p", { className: styles.category },
React.createElement("span", { className: styles.category_span }, item.category)),
React.createElement("p", { className: styles.title }, item.title),
React.createElement("div", { className: styles.info.info },
React.createElement("div", { className: styles.info.infoPart },
React.createElement("p", { className: styles.info.infoItem },
React.createElement("i", { className: styles.info.location }),
item.location),
React.createElement("p", { className: styles.info.infoItem },
React.createElement("i", { className: styles.info.date }),
item.date),
React.createElement("p", { className: styles.info.infoItem },
React.createElement("i", { className: styles.info.schedule }),
item.schedule))),
React.createElement("div", { className: styles.meta },
React.createElement("div", { className: styles.sub_col }, showRelated && item.relatedPeople && item.relatedPeople.length > 0 &&
React.createElement(RelatedPeople_1.default, { relatedPeople: item.relatedPeople, absoluteUrl: item.absoluteUrl, openUserProfile: openUserProfile })),
React.createElement("div", { className: styles.sub_col },
React.createElement("p", { className: styles.buttons },
this.eventSubscribe(),
addToCalendar && generateIcs &&
React.createElement(icalendar_link_1.default, { event: generateIcs(item) },
React.createElement("a", { className: styles.addToCalendar }, item.addToMyCalendarTranslated ? item.addToMyCalendarTranslated : 'Add to My Calendar')))))),
React.createElement("div", { className: styles.right }, item.imageUrl ?
item.urlVideo ?
!item.showVideo ?
React.createElement("img", { src: item.imageUrl, className: styles.img_video, onClick: function () { return toggleShowVideo && toggleShowVideo(item); } })
:
React.createElement("video", { className: styles.img, controls: true, autoPlay: true },
React.createElement("source", { src: item.urlVideo, type: "video/mp4" }))
:
React.createElement(React.Fragment, null,
React.createElement("img", { className: styles.img, src: item.imageUrl }),
React.createElement("span", { className: styles.img, style: { backgroundImage: "url(\"" + item.imageUrl + "\")" } }))
:
React.createElement(React.Fragment, null)))));
};
return EventBanner;
}(React.Component));
exports.default = EventBanner;