kwikid-components-react
Version:
KwikID's Component Library in React
75 lines (74 loc) • 3.11 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _kwikidToolkit = require("kwikid-toolkit");
var _react = _interopRequireDefault(require("react"));
var _Button = _interopRequireDefault(require("../../button/Button"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const KwikUITableLink = _ref => {
var _item$default$value, _item$default;
let {
id,
item,
value,
tableMeta,
updateValue
} = _ref;
if ((0, _kwikidToolkit.isNotEmptyValue)(value)) {
return /*#__PURE__*/_react.default.createElement(_Button.default, {
id: id,
size: "xs",
customStyles: {
background: "var(--primary)",
borderColor: "var(--primary)",
color: "white"
},
onClick: e => {
var _item$props;
if (item !== null && item !== void 0 && (_item$props = item.props) !== null && _item$props !== void 0 && _item$props.download) {
const downloadFileFallback = file_url => {
var _item$props2;
const a = document.createElement("a");
a.href = file_url;
if (item !== null && item !== void 0 && (_item$props2 = item.props) !== null && _item$props2 !== void 0 && _item$props2.downloadFileName) {
var _item$props3;
a.download = item === null || item === void 0 ? void 0 : (_item$props3 = item.props) === null || _item$props3 === void 0 ? void 0 : _item$props3.downloadFileName;
}
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
const downloadFile = async file_url => {
try {
var _item$props4;
const response = await fetch(file_url);
const blob = await response.blob();
const url = window.URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
if (item !== null && item !== void 0 && (_item$props4 = item.props) !== null && _item$props4 !== void 0 && _item$props4.downloadFileName) {
a.download = item.props.downloadFileName;
}
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
} catch (error) {
console.error("Error downloading file", error);
downloadFileFallback(value);
}
};
downloadFile(value);
} else {
window.open(value, "_blank");
}
}
}, item.label);
}
return /*#__PURE__*/_react.default.createElement("div", {
id: id
}, /*#__PURE__*/_react.default.createElement("i", null, (_item$default$value = item === null || item === void 0 ? void 0 : (_item$default = item.default) === null || _item$default === void 0 ? void 0 : _item$default.value) !== null && _item$default$value !== void 0 ? _item$default$value : "No Link"));
};
var _default = exports.default = KwikUITableLink;