utopia-ui 3.0.0-alpha.214 → 3.0.0-alpha.216
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/index.js +29 -26
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -962,16 +962,16 @@ var DialogModal = function (_a) {
|
|
962
962
|
|
963
963
|
function HeaderView(_a) {
|
964
964
|
var _this = this;
|
965
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k
|
966
|
-
var item = _a.item, api = _a.api, editCallback = _a.editCallback, deleteCallback = _a.deleteCallback, setPositionCallback = _a.setPositionCallback, itemNameField = _a.itemNameField, itemSubnameField = _a.itemSubnameField, itemAvatarField = _a.itemAvatarField, loading = _a.loading,
|
967
|
-
var
|
965
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
966
|
+
var item = _a.item, api = _a.api, editCallback = _a.editCallback, deleteCallback = _a.deleteCallback, setPositionCallback = _a.setPositionCallback, itemNameField = _a.itemNameField, itemSubnameField = _a.itemSubnameField, itemAvatarField = _a.itemAvatarField, loading = _a.loading, _l = _a.hideMenu, hideMenu = _l === void 0 ? false : _l, _m = _a.big, big = _m === void 0 ? false : _m, _o = _a.truncateSubname, truncateSubname = _o === void 0 ? true : _o, _p = _a.hideSubname, hideSubname = _p === void 0 ? false : _p, _q = _a.showAddress, showAddress = _q === void 0 ? false : _q;
|
967
|
+
var _r = React.useState(false), modalOpen = _r[0], setModalOpen = _r[1];
|
968
968
|
var hasUserPermission = useHasUserPermission();
|
969
969
|
var navigate = useNavigate();
|
970
970
|
var assetsApi = useAssetApi();
|
971
971
|
var avatar = itemAvatarField && getValue(item, itemAvatarField) ? assetsApi.url + getValue(item, itemAvatarField) + "".concat(big ? "?width=160&heigth=160" : "?width=80&heigth=80") : ((_b = item.layer) === null || _b === void 0 ? void 0 : _b.itemAvatarField) && item && getValue(item, (_c = item.layer) === null || _c === void 0 ? void 0 : _c.itemAvatarField) && assetsApi.url + getValue(item, (_d = item.layer) === null || _d === void 0 ? void 0 : _d.itemAvatarField) + "".concat(big ? "?width=160&heigth=160" : "?width=80&heigth=80");
|
972
972
|
var title = itemNameField ? getValue(item, itemNameField) : ((_e = item.layer) === null || _e === void 0 ? void 0 : _e.itemNameField) && item && getValue(item, (_f = item.layer) === null || _f === void 0 ? void 0 : _f.itemNameField);
|
973
973
|
var subtitle = itemSubnameField ? getValue(item, itemSubnameField) : ((_g = item.layer) === null || _g === void 0 ? void 0 : _g.itemSubnameField) && item && getValue(item, (_h = item.layer) === null || _h === void 0 ? void 0 : _h.itemSubnameField);
|
974
|
-
var
|
974
|
+
var _s = React.useState(""), address = _s[0]; _s[1];
|
975
975
|
var params = new URLSearchParams(window.location.search);
|
976
976
|
var openDeleteModal = function (event) { return __awaiter(_this, void 0, void 0, function () {
|
977
977
|
return __generator(this, function (_a) {
|
@@ -983,7 +983,7 @@ function HeaderView(_a) {
|
|
983
983
|
return (jsxs(Fragment, { children: [jsxs("div", __assign({ className: 'tw-flex tw-flex-row' }, { children: [jsx("div", __assign({ className: "tw-grow tw-max-w-[calc(100%-60px)] }" }, { children: jsxs("div", __assign({ className: "flex items-center" }, { children: [avatar && (jsx("div", __assign({ className: "tw-avatar" }, { children: jsx("div", __assign({ className: "".concat(big ? "tw-w-20" : "tw-w-10", " tw-inline tw-items-center tw-justify-center overflow-hidden") }, { children: jsx("img", { className: "tw-w-full tw-h-full tw-object-cover tw-rounded-full", src: avatar, alt: item.name + " logo" }) })) }))), jsxs("div", __assign({ className: "".concat(avatar ? "tw-ml-2" : "", " tw-overflow-hidden") }, { children: [jsx("div", __assign({ className: "".concat(big ? "xl:tw-text-3xl tw-text-2xl" : "tw-text-xl", " tw-font-semibold tw-truncate") }, { children: title })), showAddress && address && !hideSubname && jsx("div", __assign({ className: "tw-text-xs tw-text-gray-500 ".concat(truncateSubname && "tw-truncate") }, { children: address })), subtitle && !hideSubname && jsx("div", __assign({ className: "tw-text-xs tw-text-gray-500 ".concat(truncateSubname && "tw-truncate") }, { children: subtitle }))] }))] })) })), jsx("div", __assign({ onClick: function (e) { return e.stopPropagation(); }, className: "".concat(big ? "tw-mt-5" : "tw-mt-1") }, { children: ((api === null || api === void 0 ? void 0 : api.deleteItem) || ((_k = (_j = item.layer) === null || _j === void 0 ? void 0 : _j.api) === null || _k === void 0 ? void 0 : _k.updateItem))
|
984
984
|
&& (hasUserPermission(api === null || api === void 0 ? void 0 : api.collectionName, "delete", item) || hasUserPermission(api === null || api === void 0 ? void 0 : api.collectionName, "update", item))
|
985
985
|
&& !hideMenu &&
|
986
|
-
jsxs("div", __assign({ className: "tw-dropdown tw-dropdown-bottom" }, { children: [jsx("label", __assign({ tabIndex: 0, className: "tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6" }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" }, { children: jsx("path", { d: "M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" }) })) })), jsxs("ul", __assign({ tabIndex: 0, className: "tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000" }, { children: [(((api === null || api === void 0 ? void 0 : api.updateItem) && hasUserPermission(api.collectionName, "update", item))
|
986
|
+
jsxs("div", __assign({ className: "tw-dropdown tw-dropdown-bottom" }, { children: [jsx("label", __assign({ tabIndex: 0, className: "tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6" }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" }, { children: jsx("path", { d: "M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" }) })) })), jsxs("ul", __assign({ tabIndex: 0, className: "tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000" }, { children: [(((api === null || api === void 0 ? void 0 : api.updateItem) && hasUserPermission(api.collectionName, "update", item))) && editCallback && jsx("li", { children: jsx("a", __assign({ className: "!tw-text-base-content tw-cursor-pointer", onClick: function (e) { var _a; return ((_a = item.layer) === null || _a === void 0 ? void 0 : _a.customEditLink) ? navigate("".concat(item.layer.customEditLink).concat(item.layer.customEditParameter ? "/".concat(getValue(item, item.layer.customEditParameter)).concat(params && "?" + params) : "", " ")) : editCallback(e); } }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" }, { children: jsx("path", { d: "M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z" }) })) })) }), (((api === null || api === void 0 ? void 0 : api.updateItem) && hasUserPermission(api.collectionName, "update", item))) && setPositionCallback && jsx("li", { children: jsx("a", __assign({ className: "!tw-text-base-content tw-cursor-pointer", onClick: setPositionCallback }, { children: jsx("svg", __assign({ stroke: "currentColor", fill: "currentColor", strokeWidth: "0", viewBox: "0 0 512 512", className: "tw-w-5 tw-h-5", xmlns: "http://www.w3.org/2000/svg" }, { children: jsx("path", { d: "M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z" }) })) })) }), (api === null || api === void 0 ? void 0 : api.deleteItem) && hasUserPermission(api.collectionName, "delete", item) && deleteCallback && jsx("li", { children: jsx("a", __assign({ className: 'tw-cursor-pointer !tw-text-error', onClick: openDeleteModal }, { children: loading ? jsx("span", { className: "tw-loading tw-loading-spinner tw-loading-sm" })
|
987
987
|
:
|
988
988
|
jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" }, { children: jsx("path", { fillRule: "evenodd", d: "M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z", clipRule: "evenodd" }) })) })) })] }))] })) }))] })), jsx(DialogModal, __assign({ isOpened: modalOpen, title: "Are you sure?", showCloseButton: false, onClose: function () { return (setModalOpen(false)); } }, { children: jsxs("div", __assign({ onClick: function (e) { return e.stopPropagation(); } }, { children: [jsxs("span", { children: ["Do you want to delete ", jsx("b", { children: item.name }), "?"] }), jsx("div", __assign({ className: "tw-grid" }, { children: jsxs("div", __assign({ className: "tw-flex tw-justify-between" }, { children: [jsx("label", __assign({ className: "tw-btn tw-mt-4 tw-btn-error", onClick: function (e) { deleteCallback(e); setModalOpen(false); } }, { children: "Yes" })), jsx("label", __assign({ className: "tw-btn tw-mt-4", onClick: function () { return setModalOpen(false); } }, { children: "No" }))] })) }))] })) }))] }));
|
989
989
|
}
|
@@ -2858,35 +2858,38 @@ function usePermissionsManager(initialPermissions) {
|
|
2858
2858
|
});
|
2859
2859
|
}, []);
|
2860
2860
|
var hasUserPermission = useCallback(function (collectionName, action, item, layer) {
|
2861
|
+
var evaluateCondition = function (condition) {
|
2862
|
+
var _a, _b, _c;
|
2863
|
+
if (((_a = condition.user_created) === null || _a === void 0 ? void 0 : _a._eq) === "$CURRENT_USER") {
|
2864
|
+
return ((_b = item === null || item === void 0 ? void 0 : item.user_created) === null || _b === void 0 ? void 0 : _b.id) === (user === null || user === void 0 ? void 0 : user.id);
|
2865
|
+
}
|
2866
|
+
if (((_c = condition.public_edit) === null || _c === void 0 ? void 0 : _c._eq) === true) {
|
2867
|
+
return (item === null || item === void 0 ? void 0 : item.public_edit) === true;
|
2868
|
+
}
|
2869
|
+
return false;
|
2870
|
+
};
|
2871
|
+
var evaluatePermissions = function (permissionConditions) {
|
2872
|
+
var _a;
|
2873
|
+
return (_a = permissionConditions._and) === null || _a === void 0 ? void 0 : _a.every(function (andCondition) {
|
2874
|
+
return andCondition._or
|
2875
|
+
? andCondition._or.some(function (orCondition) { return evaluateCondition(orCondition); })
|
2876
|
+
: evaluateCondition(andCondition);
|
2877
|
+
});
|
2878
|
+
};
|
2861
2879
|
if (permissions.length === 0)
|
2862
2880
|
return true;
|
2863
2881
|
else if (user && user.role === adminRole)
|
2864
2882
|
return true;
|
2865
2883
|
else {
|
2866
2884
|
return permissions.some(function (p) {
|
2867
|
-
var _a
|
2885
|
+
var _a;
|
2868
2886
|
return p.action === action &&
|
2869
2887
|
p.collection === collectionName &&
|
2870
|
-
p.role === (user === null || user === void 0 ? void 0 : user.role) &&
|
2871
|
-
|
2872
|
-
|
2873
|
-
|
2874
|
-
|
2875
|
-
var _a;
|
2876
|
-
return condition.user_created &&
|
2877
|
-
condition.user_created._eq === "$CURRENT_USER" &&
|
2878
|
-
((_a = item.user_created) === null || _a === void 0 ? void 0 : _a.id) === (user === null || user === void 0 ? void 0 : user.id);
|
2879
|
-
}))
|
2880
|
-
|| (!user && p.role == null) &&
|
2881
|
-
((layer === null || layer === void 0 ? void 0 : layer.public_edit_items) || ((_a = item === null || item === void 0 ? void 0 : item.layer) === null || _a === void 0 ? void 0 : _a.public_edit_items)) &&
|
2882
|
-
(
|
2883
|
-
// Wenn 'item' nicht gesetzt ist, ignorieren wir die Überprüfung von 'public_edit'
|
2884
|
-
!item ||
|
2885
|
-
((_c = (_b = p.permissions) === null || _b === void 0 ? void 0 : _b._and) === null || _c === void 0 ? void 0 : _c.some(function (condition) {
|
2886
|
-
return condition.public_edit &&
|
2887
|
-
condition.public_edit._eq == true &&
|
2888
|
-
item.public_edit == true;
|
2889
|
-
})));
|
2888
|
+
((p.role === (user === null || user === void 0 ? void 0 : user.role) &&
|
2889
|
+
(!item || !p.permissions || evaluatePermissions(p.permissions))) ||
|
2890
|
+
(p.role == null &&
|
2891
|
+
(((layer === null || layer === void 0 ? void 0 : layer.public_edit_items) || ((_a = item === null || item === void 0 ? void 0 : item.layer) === null || _a === void 0 ? void 0 : _a.public_edit_items)) &&
|
2892
|
+
(!item || !p.permissions || evaluatePermissions(p.permissions)))));
|
2890
2893
|
});
|
2891
2894
|
}
|
2892
2895
|
}, [permissions, user]);
|