@bigbinary/neeto-molecules 3.16.44 → 3.16.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ShareRecordingPane.js +18 -23
- package/dist/ShareRecordingPane.js.map +1 -1
- package/dist/ShareViaLink.js +22 -15
- package/dist/ShareViaLink.js.map +1 -1
- package/dist/cjs/ShareRecordingPane.js +18 -23
- package/dist/cjs/ShareRecordingPane.js.map +1 -1
- package/dist/cjs/ShareViaLink.js +20 -13
- package/dist/cjs/ShareViaLink.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/en.json +1 -0
- package/types/ShareRecordingPane.d.ts +6 -0
|
@@ -10,8 +10,8 @@ var reactI18next = require('react-i18next');
|
|
|
10
10
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
11
11
|
var React = require('react');
|
|
12
12
|
var utils = require('@bigbinary/neeto-commons-frontend/utils');
|
|
13
|
+
var Label = require('@bigbinary/neetoui/Label');
|
|
13
14
|
var Input = require('@bigbinary/neetoui/Input');
|
|
14
|
-
var Checkbox = require('@bigbinary/neetoui/Checkbox');
|
|
15
15
|
var Tooltip = require('@bigbinary/neetoui/Tooltip');
|
|
16
16
|
var ramda = require('ramda');
|
|
17
17
|
var CopyToClipboardButton = require('./CopyToClipboardButton.js');
|
|
@@ -70,13 +70,12 @@ var validateInput = function validateInput(input) {
|
|
|
70
70
|
return regex.test(input) && colons <= 2;
|
|
71
71
|
};
|
|
72
72
|
|
|
73
|
-
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
74
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
75
73
|
var SharePaneBody = function SharePaneBody(_ref) {
|
|
76
74
|
var recordingUrls = _ref.recordingUrls,
|
|
77
75
|
totalDuration = _ref.totalDuration,
|
|
78
76
|
getCurrentTimestamp = _ref.getCurrentTimestamp,
|
|
79
|
-
isOpen = _ref.isOpen
|
|
77
|
+
isOpen = _ref.isOpen,
|
|
78
|
+
Preview = _ref.preview;
|
|
80
79
|
var _useTranslation = reactI18next.useTranslation(),
|
|
81
80
|
t = _useTranslation.t;
|
|
82
81
|
var currentTimestamp = getCurrentTimestamp();
|
|
@@ -92,10 +91,6 @@ var SharePaneBody = function SharePaneBody(_ref) {
|
|
|
92
91
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
93
92
|
rawInput = _useState6[0],
|
|
94
93
|
setRawInput = _useState6[1];
|
|
95
|
-
var _useState7 = React.useState(currentTimestamp > 0),
|
|
96
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
97
|
-
isPlaybackTimeCheckboxChecked = _useState8[0],
|
|
98
|
-
setIsPlaybackTimeCheckboxChecked = _useState8[1];
|
|
99
94
|
var showHours = shouldRenderHoursInput(totalDuration);
|
|
100
95
|
var handlePlaybackTimestampChange = function handlePlaybackTimestampChange(e) {
|
|
101
96
|
var input = e.target.value;
|
|
@@ -117,18 +112,17 @@ var SharePaneBody = function SharePaneBody(_ref) {
|
|
|
117
112
|
};
|
|
118
113
|
React.useEffect(function () {
|
|
119
114
|
if (ramda.not(isOpen)) return;
|
|
120
|
-
setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);
|
|
121
115
|
setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);
|
|
122
116
|
setRawInput(formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours));
|
|
123
117
|
}, [isOpen, showHours, currentTimestamp]);
|
|
124
118
|
React.useEffect(function () {
|
|
125
119
|
var playbackUrls = recordingUrls.map(function (recordingUrl) {
|
|
126
|
-
return utils.buildUrl(recordingUrl,
|
|
120
|
+
return utils.buildUrl(recordingUrl, {
|
|
127
121
|
time: currentPlaybackTime
|
|
128
|
-
})
|
|
122
|
+
});
|
|
129
123
|
});
|
|
130
124
|
setShareLinks(playbackUrls);
|
|
131
|
-
}, [recordingUrls,
|
|
125
|
+
}, [recordingUrls, currentPlaybackTime]);
|
|
132
126
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
133
127
|
children: [shareLinks.map(function (shareLink, index) {
|
|
134
128
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
@@ -148,30 +142,29 @@ var SharePaneBody = function SharePaneBody(_ref) {
|
|
|
148
142
|
}, index);
|
|
149
143
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
150
144
|
className: "flex items-center gap-x-2",
|
|
151
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(
|
|
152
|
-
|
|
153
|
-
className: "grow-0",
|
|
154
|
-
"data-cy": "time-checkbox",
|
|
155
|
-
label: t("neetoMolecules.shareRecording.checkboxLabel"),
|
|
156
|
-
onChange: function onChange(_ref2) {
|
|
157
|
-
var checked = _ref2.target.checked;
|
|
158
|
-
return setIsPlaybackTimeCheckboxChecked(checked);
|
|
159
|
-
}
|
|
145
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
|
|
146
|
+
children: t("neetoMolecules.shareRecording.checkboxLabel")
|
|
160
147
|
}), /*#__PURE__*/jsxRuntime.jsx(Input, {
|
|
161
148
|
className: "w-40",
|
|
162
149
|
"data-cy": "time-input",
|
|
163
|
-
disabled: ramda.not(isPlaybackTimeCheckboxChecked),
|
|
164
150
|
placeholder: showHours ? "HH:MM:SS" : "MM:SS",
|
|
165
151
|
value: rawInput,
|
|
166
152
|
onBlur: formatAndSetTime,
|
|
167
153
|
onChange: handlePlaybackTimestampChange,
|
|
168
154
|
onKeyDown: handleKeyDown
|
|
169
155
|
})]
|
|
156
|
+
}), Preview && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
157
|
+
className: "flex flex-col gap-y-2 pt-2",
|
|
158
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
|
|
159
|
+
children: t("neetoMolecules.shareRecording.preview")
|
|
160
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Preview, {
|
|
161
|
+
currentPlaybackTime: currentPlaybackTime
|
|
162
|
+
})]
|
|
170
163
|
})]
|
|
171
164
|
});
|
|
172
165
|
};
|
|
173
166
|
|
|
174
|
-
var _excluded = ["recordingUrl", "recordingUrls", "totalDuration", "getCurrentTimestamp", "isOpen", "onClose", "isLoading"];
|
|
167
|
+
var _excluded = ["recordingUrl", "recordingUrls", "totalDuration", "getCurrentTimestamp", "isOpen", "onClose", "isLoading", "preview"];
|
|
175
168
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
176
169
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
177
170
|
var ShareRecordingPane = function ShareRecordingPane(_ref) {
|
|
@@ -185,6 +178,7 @@ var ShareRecordingPane = function ShareRecordingPane(_ref) {
|
|
|
185
178
|
onClose = _ref.onClose,
|
|
186
179
|
_ref$isLoading = _ref.isLoading,
|
|
187
180
|
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
181
|
+
preview = _ref.preview,
|
|
188
182
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
189
183
|
var _useTranslation = reactI18next.useTranslation(),
|
|
190
184
|
t = _useTranslation.t;
|
|
@@ -207,6 +201,7 @@ var ShareRecordingPane = function ShareRecordingPane(_ref) {
|
|
|
207
201
|
}) : /*#__PURE__*/jsxRuntime.jsx(SharePaneBody, {
|
|
208
202
|
getCurrentTimestamp: getCurrentTimestamp,
|
|
209
203
|
isOpen: isOpen,
|
|
204
|
+
preview: preview,
|
|
210
205
|
totalDuration: totalDuration,
|
|
211
206
|
recordingUrls: recordingUrlsToShare
|
|
212
207
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareRecordingPane.js","sources":["../../src/components/ShareRecordingPane/constants.js","../../src/components/ShareRecordingPane/utils.js","../../src/components/ShareRecordingPane/SharePaneBody.jsx","../../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Typography, Input, Checkbox, Tooltip } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrls,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n}) => {\n const { t } = useTranslation();\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLinks, setShareLinks] = useState([]);\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n const [rawInput, setRawInput] = useState(\"\");\n\n const [isPlaybackTimeCheckboxChecked, setIsPlaybackTimeCheckboxChecked] =\n useState(currentTimestamp > 0);\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (!(e.key === \"Enter\")) return;\n formatAndSetTime();\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);\n setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);\n setRawInput(\n formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours)\n );\n }, [isOpen, showHours, currentTimestamp]);\n\n useEffect(() => {\n const playbackUrls = recordingUrls.map(recordingUrl =>\n buildUrl(recordingUrl, {\n ...(isPlaybackTimeCheckboxChecked &&\n currentPlaybackTime > 0 && { time: currentPlaybackTime }),\n })\n );\n\n setShareLinks(playbackUrls);\n }, [recordingUrls, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);\n\n return (\n <>\n {shareLinks.map((shareLink, index) => (\n <div\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-2 flex w-full items-center justify-between gap-1 p-2\"\n key={index}\n >\n <Tooltip content={shareLink}>\n <Typography className=\"truncate\" style=\"body2\">\n {shareLink}\n </Typography>\n </Tooltip>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n ))}\n <div className=\"flex items-center gap-x-2\">\n <Checkbox\n checked={isPlaybackTimeCheckboxChecked}\n className=\"grow-0\"\n data-cy=\"time-checkbox\"\n label={t(\"neetoMolecules.shareRecording.checkboxLabel\")}\n onChange={({ target: { checked } }) =>\n setIsPlaybackTimeCheckboxChecked(checked)\n }\n />\n <Input\n className=\"w-40\"\n data-cy=\"time-input\"\n disabled={not(isPlaybackTimeCheckboxChecked)}\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n </>\n );\n};\n\nexport default SharePaneBody;\n","/* eslint-disable @bigbinary/neeto/no-dumb-components-with-use-translation */\nimport { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl = null,\n recordingUrls = [],\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const recordingUrlsToShare = isNotEmpty(recordingUrls)\n ? recordingUrls\n : [recordingUrl];\n\n return (\n <Pane\n {...{ isOpen, onClose, ...otherProps }}\n data-cy=\"share-pane\"\n size=\"large\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col space-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{ getCurrentTimestamp, isOpen, totalDuration }}\n recordingUrls={recordingUrlsToShare}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string,\n /**\n * Recording URLs used for building the share link.\n */\n recordingUrls: PropTypes.array,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrls","totalDuration","getCurrentTimestamp","isOpen","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLinks","setShareLinks","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","_useState6","rawInput","setRawInput","_useState7","_useState8","isPlaybackTimeCheckboxChecked","setIsPlaybackTimeCheckboxChecked","handlePlaybackTimestampChange","e","target","value","formatAndSetTime","handleKeyDown","key","useEffect","not","playbackUrls","recordingUrl","buildUrl","_objectSpread","time","_jsxs","_Fragment","children","shareLink","index","className","_jsx","Tooltip","content","Typography","style","CopyToClipboardButton","Checkbox","checked","label","onChange","_ref2","Input","disabled","placeholder","onBlur","onKeyDown","ShareRecordingPane","_ref$recordingUrl","_ref$recordingUrls","onClose","_ref$isLoading","isLoading","otherProps","_objectWithoutProperties","_excluded","recordingUrlsToShare","isNotEmpty","Pane","size","Header","Body","Spinner"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,UAAU,GAAG,CAAC,CAAA;AACpB,IAAMC,UAAU,GAAG,EAAE,GAAGD,UAAU,CAAA;AAClC,IAAME,QAAQ,GAAG,EAAE,GAAGD,UAAU;;ACAhC,IAAME,OAAO,GAAG,SAAVA,OAAOA,CAAIC,MAAM,EAAiB;AAAA,EAAA,IAAfC,MAAM,GAAAC,SAAA,CAAAD,MAAA,GAAA,CAAA,IAAAC,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AACxC,EAAA,IAAIE,MAAM,GAAGC,MAAM,CAACL,MAAM,CAAC,CAAA;EAC3B,IAAMM,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEP,MAAM,GAAG,CAAC,CAAC,CAAA;EAE1C,IAAID,MAAM,GAAGM,SAAS,EAAE;IACtB,OAAOD,MAAM,CAACC,SAAS,CAAC,CAACL,MAAM,GAAGG,MAAM,CAACH,MAAM,EAAE;AAC/CG,MAAAA,MAAM,GAAAK,GAAAA,CAAAA,MAAA,CAAOT,MAAM,CAAE,CAAA;AACvB,KAAA;AACF,GAAA;AAEA,EAAA,OAAOI,MAAM,CAAA;AACf,CAAC,CAAA;AAEM,IAAMM,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGC,QAAQ,EAAI;EAChD,IAAMC,KAAK,GAAGL,IAAI,CAACM,KAAK,CAACF,QAAQ,GAAGb,QAAQ,CAAC,CAAA;EAE7C,OAAOc,KAAK,GAAG,CAAC,CAAA;AAClB,CAAC,CAAA;AAEM,IAAME,UAAU,GAAG,SAAbA,UAAUA,CAAIC,aAAa,EAAEC,SAAS,EAAK;EACtD,IAAMJ,KAAK,GAAGL,IAAI,CAACM,KAAK,CAACE,aAAa,GAAGjB,QAAQ,CAAC,CAAA;EAClD,IAAMmB,OAAO,GAAGV,IAAI,CAACM,KAAK,CAAEE,aAAa,GAAGjB,QAAQ,GAAID,UAAU,CAAC,CAAA;AACnE,EAAA,IAAMqB,OAAO,GAAGH,aAAa,GAAGlB,UAAU,CAAA;AAE1C,EAAA,OAAOmB,SAAS,GAAAP,EAAAA,CAAAA,MAAA,CACTV,OAAO,CAACa,KAAK,CAAC,EAAAH,GAAAA,CAAAA,CAAAA,MAAA,CAAIV,OAAO,CAACkB,OAAO,CAAC,OAAAR,MAAA,CAAIV,OAAO,CAACmB,OAAO,CAAC,CAAA,GAAA,EAAA,CAAAT,MAAA,CACtDV,OAAO,CAACkB,OAAO,CAAC,EAAA,GAAA,CAAA,CAAAR,MAAA,CAAIV,OAAO,CAACmB,OAAO,CAAC,CAAE,CAAA;AAC/C,CAAC,CAAA;AAEM,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAGC,UAAU,EAAI;AACrC,EAAA,IAAMC,KAAK,GAAGD,UAAU,CACrBE,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAC,UAAAC,IAAI,EAAA;IAAA,OAAKA,IAAI,KAAK,EAAE,GAAGC,GAAG,GAAGC,QAAQ,CAACF,IAAI,EAAE,EAAE,CAAC,CAAA;AAAA,GAAC,CAAC,CAAA;AACxD,EAAA,IAAIH,KAAK,CAACM,IAAI,CAACC,KAAK,CAAC,IAAIP,KAAK,CAACpB,MAAM,GAAG,CAAC,EAAE;AACzC,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AAEA,EAAA,IAAIoB,KAAK,CAACpB,MAAM,KAAK,CAAC,EAAE;IACtB,OAAOoB,KAAK,CAAC,CAAC,CAAC,CAAA;AACjB,GAAC,MAAM,IAAIA,KAAK,CAACpB,MAAM,KAAK,CAAC,EAAE;IAC7B,OAAOoB,KAAK,CAAC,CAAC,CAAC,GAAGxB,UAAU,GAAGwB,KAAK,CAAC,CAAC,CAAC,CAAA;AACzC,GAAC,MAAM,IAAIA,KAAK,CAACpB,MAAM,KAAK,CAAC,EAAE;AAC7B,IAAA,OAAOoB,KAAK,CAAC,CAAC,CAAC,GAAGvB,QAAQ,GAAGuB,KAAK,CAAC,CAAC,CAAC,GAAGxB,UAAU,GAAGwB,KAAK,CAAC,CAAC,CAAC,CAAA;AAC/D,GAAA;AAEA,EAAA,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAEM,IAAMQ,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,KAAK,EAAI;EACpC,IAAMC,KAAK,GAAG,eAAe,CAAA;AAC7B,EAAA,IAAMC,MAAM,GAAG,CAACF,KAAK,CAACG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAEhC,MAAM,CAAA;EAE/C,OAAO8B,KAAK,CAACG,IAAI,CAACJ,KAAK,CAAC,IAAIE,MAAM,IAAI,CAAC,CAAA;AACzC,CAAC;;;;ACvCD,IAAMG,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAKb;AAAA,EAAA,IAJJC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,aAAa,GAAAF,IAAA,CAAbE,aAAa;IACbC,mBAAmB,GAAAH,IAAA,CAAnBG,mBAAmB;IACnBC,MAAM,GAAAJ,IAAA,CAANI,MAAM,CAAA;AAEN,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AACT,EAAA,IAAMC,gBAAgB,GAAGL,mBAAmB,EAAE,CAAA;AAE9C,EAAA,IAAAM,SAAA,GAAoCC,cAAQ,CAAC,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAzCI,IAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAAI,UAAA,GACEL,cAAQ,CAACF,gBAAgB,CAAC;IAAAQ,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AADrBE,IAAAA,mBAAmB,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,sBAAsB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAElD,EAAA,IAAAG,UAAA,GAAgCT,cAAQ,CAAC,EAAE,CAAC;IAAAU,UAAA,GAAAR,cAAA,CAAAO,UAAA,EAAA,CAAA,CAAA;AAArCE,IAAAA,QAAQ,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAE5B,EAAA,IAAAG,UAAA,GACEb,cAAQ,CAACF,gBAAgB,GAAG,CAAC,CAAC;IAAAgB,UAAA,GAAAZ,cAAA,CAAAW,UAAA,EAAA,CAAA,CAAA;AADzBE,IAAAA,6BAA6B,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,gCAAgC,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAGtE,EAAA,IAAM5C,SAAS,GAAGN,sBAAsB,CAAC4B,aAAa,CAAC,CAAA;AAEvD,EAAA,IAAMyB,6BAA6B,GAAG,SAAhCA,6BAA6BA,CAAGC,CAAC,EAAI;AACzC,IAAA,IAAMlC,KAAK,GAAGkC,CAAC,CAACC,MAAM,CAACC,KAAK,CAAA;AAC5B,IAAA,IAAIrC,aAAa,CAACC,KAAK,CAAC,EAAE;MACxB4B,WAAW,CAAC5B,KAAK,CAAC,CAAA;AACpB,KAAA;GACD,CAAA;AAED,EAAA,IAAMqC,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAS;AAC7B,IAAA,IAAIpD,aAAa,GAAGI,SAAS,CAACsC,QAAQ,CAAC,CAAA;IACvC,IAAI1C,aAAa,GAAGuB,aAAa,EAAE;AACjCvB,MAAAA,aAAa,GAAGuB,aAAa,CAAA;AAC/B,KAAA;IACAgB,sBAAsB,CAACvC,aAAa,CAAC,CAAA;AACrC2C,IAAAA,WAAW,CAAC5C,UAAU,CAACC,aAAa,EAAEC,SAAS,CAAC,CAAC,CAAA;GAClD,CAAA;AAED,EAAA,IAAMoD,aAAa,GAAG,SAAhBA,aAAaA,CAAGJ,CAAC,EAAI;AACzB,IAAA,IAAI,EAAEA,CAAC,CAACK,GAAG,KAAK,OAAO,CAAC,EAAE,OAAA;AAC1BF,IAAAA,gBAAgB,EAAE,CAAA;GACnB,CAAA;AAEDG,EAAAA,eAAS,CAAC,YAAM;AACd,IAAA,IAAIC,SAAG,CAAC/B,MAAM,CAAC,EAAE,OAAA;AAEjBsB,IAAAA,gCAAgC,CAAClB,gBAAgB,GAAG,CAAC,CAAC,CAAA;IACtDU,sBAAsB,CAACV,gBAAgB,GAAG,CAAC,GAAGA,gBAAgB,GAAG,CAAC,CAAC,CAAA;AACnEc,IAAAA,WAAW,CACT5C,UAAU,CAAC8B,gBAAgB,GAAG,CAAC,GAAGA,gBAAgB,GAAG,CAAC,EAAE5B,SAAS,CACnE,CAAC,CAAA;GACF,EAAE,CAACwB,MAAM,EAAExB,SAAS,EAAE4B,gBAAgB,CAAC,CAAC,CAAA;AAEzC0B,EAAAA,eAAS,CAAC,YAAM;AACd,IAAA,IAAME,YAAY,GAAGnC,aAAa,CAACd,GAAG,CAAC,UAAAkD,YAAY,EAAA;MAAA,OACjDC,cAAQ,CAACD,YAAY,EAAAE,eAAA,CACfd,EAAAA,EAAAA,6BAA6B,IAC/BR,mBAAmB,GAAG,CAAC,IAAI;AAAEuB,QAAAA,IAAI,EAAEvB,mBAAAA;AAAoB,OAAC,CAC3D,CAAC,CAAA;AAAA,KACJ,CAAC,CAAA;IAEDH,aAAa,CAACsB,YAAY,CAAC,CAAA;GAC5B,EAAE,CAACnC,aAAa,EAAEwB,6BAA6B,EAAER,mBAAmB,CAAC,CAAC,CAAA;EAEvE,oBACEwB,eAAA,CAAAC,mBAAA,EAAA;IAAAC,QAAA,EAAA,CACG9B,UAAU,CAAC1B,GAAG,CAAC,UAACyD,SAAS,EAAEC,KAAK,EAAA;AAAA,MAAA,oBAC/BJ,eAAA,CAAA,KAAA,EAAA;AACEK,QAAAA,SAAS,EAAC,kGAAkG;QAAAH,QAAA,EAAA,cAG5GI,cAAA,CAACC,OAAO,EAAA;AAACC,UAAAA,OAAO,EAAEL,SAAU;UAAAD,QAAA,eAC1BI,cAAA,CAACG,UAAU,EAAA;AAACJ,YAAAA,SAAS,EAAC,UAAU;AAACK,YAAAA,KAAK,EAAC,OAAO;AAAAR,YAAAA,QAAA,EAC3CC,SAAAA;WACS,CAAA;AAAC,SACN,CAAC,eACVG,cAAA,CAACK,qBAAqB,EAAA;AACpBN,UAAAA,SAAS,EAAC,eAAe;AACzBK,UAAAA,KAAK,EAAC,WAAW;AACjBrB,UAAAA,KAAK,EAAEc,SAAAA;AAAU,SAClB,CAAC,CAAA;AAAA,OAAA,EAXGC,KAYF,CAAC,CAAA;KACP,CAAC,eACFJ,eAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,2BAA2B;MAAAH,QAAA,EAAA,cACxCI,cAAA,CAACM,QAAQ,EAAA;AACPC,QAAAA,OAAO,EAAE7B,6BAA8B;AACvCqB,QAAAA,SAAS,EAAC,QAAQ;AAClB,QAAA,SAAA,EAAQ,eAAe;AACvBS,QAAAA,KAAK,EAAEhD,CAAC,CAAC,6CAA6C,CAAE;AACxDiD,QAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAAC,KAAA,EAAA;AAAA,UAAA,IAAeH,OAAO,GAAAG,KAAA,CAAjB5B,MAAM,CAAIyB,OAAO,CAAA;UAAA,OAC5B5B,gCAAgC,CAAC4B,OAAO,CAAC,CAAA;AAAA,SAAA;AAC1C,OACF,CAAC,eACFP,cAAA,CAACW,KAAK,EAAA;AACJZ,QAAAA,SAAS,EAAC,MAAM;AAChB,QAAA,SAAA,EAAQ,YAAY;AACpBa,QAAAA,QAAQ,EAAExB,SAAG,CAACV,6BAA6B,CAAE;AAC7CmC,QAAAA,WAAW,EAAEhF,SAAS,GAAG,UAAU,GAAG,OAAQ;AAC9CkD,QAAAA,KAAK,EAAET,QAAS;AAChBwC,QAAAA,MAAM,EAAE9B,gBAAiB;AACzByB,QAAAA,QAAQ,EAAE7B,6BAA8B;AACxCmC,QAAAA,SAAS,EAAE9B,aAAAA;AAAc,OAC1B,CAAC,CAAA;AAAA,KACC,CAAC,CAAA;AAAA,GACN,CAAC,CAAA;AAEP,CAAC;;;;;AC/GD,IAAM+B,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA/D,IAAA,EASlB;AAAA,EAAA,IAAAgE,iBAAA,GAAAhE,IAAA,CARJqC,YAAY;AAAZA,IAAAA,YAAY,GAAA2B,iBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,iBAAA;IAAAC,kBAAA,GAAAjE,IAAA,CACnBC,aAAa;AAAbA,IAAAA,aAAa,GAAAgE,kBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,kBAAA;IAClB/D,aAAa,GAAAF,IAAA,CAAbE,aAAa;IACbC,mBAAmB,GAAAH,IAAA,CAAnBG,mBAAmB;IACnBC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACN8D,OAAO,GAAAlE,IAAA,CAAPkE,OAAO;IAAAC,cAAA,GAAAnE,IAAA,CACPoE,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;AACdE,IAAAA,UAAU,GAAAC,wBAAA,CAAAtE,IAAA,EAAAuE,SAAA,CAAA,CAAA;AAEb,EAAA,IAAAlE,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;EAET,IAAMiE,oBAAoB,GAAGC,oBAAU,CAACxE,aAAa,CAAC,GAClDA,aAAa,GACb,CAACoC,YAAY,CAAC,CAAA;EAElB,oBACEI,eAAA,CAACiC,IAAI,EAAAnC,aAAA,CAAAA,aAAA,KAAAA,aAAA,CAAA;AACGnC,IAAAA,MAAM,EAANA,MAAM;AAAE8D,IAAAA,OAAO,EAAPA,OAAAA;AAAO,GAAA,EAAKG,UAAU,CAAA,CAAA,EAAA,EAAA,EAAA;AACpC,IAAA,SAAA,EAAQ,YAAY;AACpBM,IAAAA,IAAI,EAAC,OAAO;AAAAhC,IAAAA,QAAA,EAEZI,cAAAA,cAAA,CAAC2B,IAAI,CAACE,MAAM,EAAA;MAAAjC,QAAA,eACVI,cAAA,CAACG,UAAU,EAAA;AAACC,QAAAA,KAAK,EAAC,IAAI;QAAAR,QAAA,EACnBpC,CAAC,CAAC,qCAAqC,CAAA;OAC9B,CAAA;AAAC,KACF,CAAC,eACdwC,cAAA,CAAC2B,IAAI,CAACG,IAAI,EAAA;AAAC/B,MAAAA,SAAS,EAAC,yBAAyB;AAAAH,MAAAA,QAAA,EAC3CyB,SAAS,gBACRrB,cAAA,CAAC+B,OAAO,EAAA;AAAChC,QAAAA,SAAS,EAAC,SAAA;AAAS,OAAE,CAAC,gBAE/BC,cAAA,CAAChD,aAAa,EAAA;AACNI,QAAAA,mBAAmB,EAAnBA,mBAAmB;AAAEC,QAAAA,MAAM,EAANA,MAAM;AAAEF,QAAAA,aAAa,EAAbA,aAAa;AAChDD,QAAAA,aAAa,EAAEuE,oBAAAA;OAChB,CAAA;AACF,KACQ,CAAC,CAAA;AAAA,GAAA,CACR,CAAC,CAAA;AAEX;;;;"}
|
|
1
|
+
{"version":3,"file":"ShareRecordingPane.js","sources":["../../src/components/ShareRecordingPane/constants.js","../../src/components/ShareRecordingPane/utils.js","../../src/components/ShareRecordingPane/SharePaneBody.jsx","../../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Label, Typography, Input, Tooltip } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrls,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n preview: Preview,\n}) => {\n const { t } = useTranslation();\n\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLinks, setShareLinks] = useState([]);\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n const [rawInput, setRawInput] = useState(\"\");\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (!(e.key === \"Enter\")) return;\n formatAndSetTime();\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);\n setRawInput(\n formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours)\n );\n }, [isOpen, showHours, currentTimestamp]);\n\n useEffect(() => {\n const playbackUrls = recordingUrls.map(recordingUrl =>\n buildUrl(recordingUrl, { time: currentPlaybackTime })\n );\n\n setShareLinks(playbackUrls);\n }, [recordingUrls, currentPlaybackTime]);\n\n return (\n <>\n {shareLinks.map((shareLink, index) => (\n <div\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-2 flex w-full items-center justify-between gap-1 p-2\"\n key={index}\n >\n <Tooltip content={shareLink}>\n <Typography className=\"truncate\" style=\"body2\">\n {shareLink}\n </Typography>\n </Tooltip>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n ))}\n <div className=\"flex items-center gap-x-2\">\n <Label>{t(\"neetoMolecules.shareRecording.checkboxLabel\")}</Label>\n <Input\n className=\"w-40\"\n data-cy=\"time-input\"\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n {Preview && (\n <div className=\"flex flex-col gap-y-2 pt-2\">\n <Label>{t(\"neetoMolecules.shareRecording.preview\")}</Label>\n <Preview {...{ currentPlaybackTime }} />\n </div>\n )}\n </>\n );\n};\n\nexport default SharePaneBody;\n","/* eslint-disable @bigbinary/neeto/no-dumb-components-with-use-translation */\nimport { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl = null,\n recordingUrls = [],\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n preview,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const recordingUrlsToShare = isNotEmpty(recordingUrls)\n ? recordingUrls\n : [recordingUrl];\n\n return (\n <Pane\n {...{ isOpen, onClose, ...otherProps }}\n data-cy=\"share-pane\"\n size=\"large\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col space-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{ getCurrentTimestamp, isOpen, preview, totalDuration }}\n recordingUrls={recordingUrlsToShare}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string,\n /**\n * Recording URLs used for building the share link.\n */\n recordingUrls: PropTypes.array,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n /**\n * Component to render as a preview of the recording.\n */\n preview: PropTypes.elementType,\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrls","totalDuration","getCurrentTimestamp","isOpen","Preview","preview","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLinks","setShareLinks","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","_useState6","rawInput","setRawInput","handlePlaybackTimestampChange","e","target","value","formatAndSetTime","handleKeyDown","key","useEffect","not","playbackUrls","recordingUrl","buildUrl","time","_jsxs","_Fragment","children","shareLink","index","className","_jsx","Tooltip","content","Typography","style","CopyToClipboardButton","Label","Input","placeholder","onBlur","onChange","onKeyDown","ShareRecordingPane","_ref$recordingUrl","_ref$recordingUrls","onClose","_ref$isLoading","isLoading","otherProps","_objectWithoutProperties","_excluded","recordingUrlsToShare","isNotEmpty","Pane","_objectSpread","size","Header","Body","Spinner"],"mappings":"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"}
|
package/dist/cjs/ShareViaLink.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
4
|
+
var PrivateRoute = require('@bigbinary/neeto-commons-frontend/react-utils/PrivateRoute');
|
|
4
5
|
var reactRouterDom = require('react-router-dom');
|
|
5
6
|
var ErrorPage = require('./ErrorPage.js');
|
|
6
7
|
var classnames = require('classnames');
|
|
@@ -616,14 +617,17 @@ var ShareBlock = function ShareBlock(_ref) {
|
|
|
616
617
|
var hasMoreOptions = neetoCist.isPresent(moreOptions);
|
|
617
618
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
618
619
|
className: "neeto-ui-border-gray-200 mt-8 grid grid-cols-1 gap-4 border-t pt-8 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4",
|
|
619
|
-
children: [hasMoreOptions && moreOptions.
|
|
620
|
-
var
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
620
|
+
children: [hasMoreOptions && moreOptions.filter(function (_ref2) {
|
|
621
|
+
var permissions = _ref2.permissions;
|
|
622
|
+
return neetoCist.isNotPresent(permissions) || globalProps.permissions.some(ramda.includes(ramda.__, permissions));
|
|
623
|
+
}).map(function (_ref3) {
|
|
624
|
+
var title = _ref3.title,
|
|
625
|
+
link = _ref3.link,
|
|
626
|
+
Icon = _ref3.icon,
|
|
627
|
+
onClick = _ref3.onClick,
|
|
628
|
+
dataCy = _ref3.dataCy,
|
|
629
|
+
description = _ref3.description,
|
|
630
|
+
helpPopoverProps = _ref3.helpPopoverProps;
|
|
627
631
|
return /*#__PURE__*/React.createElement(Card, {
|
|
628
632
|
Icon: Icon,
|
|
629
633
|
description: description,
|
|
@@ -1823,13 +1827,16 @@ var ShareViaLink = function ShareViaLink(_ref) {
|
|
|
1823
1827
|
}), neetoCist.isPresent(moreOptions) && moreOptions.map(function (_ref2) {
|
|
1824
1828
|
var link = _ref2.link,
|
|
1825
1829
|
element = _ref2.element,
|
|
1826
|
-
path = _ref2.path
|
|
1830
|
+
path = _ref2.path,
|
|
1831
|
+
permissions = _ref2.permissions;
|
|
1827
1832
|
if (!link && !path) return null;
|
|
1828
|
-
return /*#__PURE__*/
|
|
1833
|
+
return /*#__PURE__*/React.createElement(PrivateRoute, {
|
|
1834
|
+
permissions: permissions,
|
|
1829
1835
|
exact: true,
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1836
|
+
component: element,
|
|
1837
|
+
key: link,
|
|
1838
|
+
path: path || link
|
|
1839
|
+
});
|
|
1833
1840
|
}), /*#__PURE__*/jsxRuntime.jsx(reactRouterDom.Route, {
|
|
1834
1841
|
component: ErrorPage,
|
|
1835
1842
|
path: "*"
|