@selfcommunity/react-ui 0.10.0-alpha.7 → 0.10.0-alpha.9
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.
|
@@ -6,6 +6,7 @@ const react_1 = tslib_1.__importStar(require("react"));
|
|
|
6
6
|
const styles_1 = require("@mui/material/styles");
|
|
7
7
|
const material_1 = require("@mui/material");
|
|
8
8
|
const react_core_1 = require("@selfcommunity/react-core");
|
|
9
|
+
const api_services_1 = require("@selfcommunity/api-services");
|
|
9
10
|
const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
10
11
|
const system_1 = require("@mui/system");
|
|
11
12
|
const react_intl_1 = require("react-intl");
|
|
@@ -118,6 +119,27 @@ function UserActionIconButton(inProps) {
|
|
|
118
119
|
const isMe = scUserContext.user && scUser.id === scUserContext.user.id;
|
|
119
120
|
const roles = (0, react_1.useMemo)(() => scUserContext.user && (scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user.role), [scUserContext.user]);
|
|
120
121
|
const canModerate = (0, react_1.useMemo)(() => roles && (roles.includes('admin') || roles.includes('moderator')) && !isMe, [roles, isMe]);
|
|
122
|
+
/**
|
|
123
|
+
* Fetches platform url
|
|
124
|
+
*/
|
|
125
|
+
function fetchPlatform(query) {
|
|
126
|
+
api_services_1.http
|
|
127
|
+
.request({
|
|
128
|
+
url: api_services_1.Endpoints.Platform.url(),
|
|
129
|
+
method: api_services_1.Endpoints.Platform.method,
|
|
130
|
+
params: {
|
|
131
|
+
next: query
|
|
132
|
+
}
|
|
133
|
+
})
|
|
134
|
+
.then((res) => {
|
|
135
|
+
handleClose();
|
|
136
|
+
const platformUrl = res.data.platform_url;
|
|
137
|
+
window.open(platformUrl, '_blank').focus();
|
|
138
|
+
})
|
|
139
|
+
.catch((error) => {
|
|
140
|
+
console.log(error);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
121
143
|
// EFFECTS
|
|
122
144
|
(0, react_1.useEffect)(() => {
|
|
123
145
|
if (anchorEl && hidden === null && scUser) {
|
|
@@ -141,7 +163,7 @@ function UserActionIconButton(inProps) {
|
|
|
141
163
|
...(canModerate
|
|
142
164
|
? [
|
|
143
165
|
(0, jsx_runtime_1.jsx)(material_1.Divider, {}, "divider_moderate"),
|
|
144
|
-
(0, jsx_runtime_1.jsx)(material_1.ListItem, { children: (0, jsx_runtime_1.jsx)(material_1.ListItemButton, Object.assign({ component: react_core_1.Link,
|
|
166
|
+
(0, jsx_runtime_1.jsx)(material_1.ListItem, { children: (0, jsx_runtime_1.jsx)(material_1.ListItemButton, Object.assign({ component: react_core_1.Link, onClick: () => fetchPlatform(`/moderation/user/?username=${scUser.username}`) }, { children: (0, jsx_runtime_1.jsx)(material_1.ListItemText, { primary: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.userActionIconButton.moderate", id: "ui.userActionIconButton.moderate" }) }) })) }, "moderate")
|
|
145
167
|
]
|
|
146
168
|
: [])
|
|
147
169
|
])
|
|
@@ -159,7 +181,7 @@ function UserActionIconButton(inProps) {
|
|
|
159
181
|
...(canModerate
|
|
160
182
|
? [
|
|
161
183
|
(0, jsx_runtime_1.jsx)(material_1.Divider, {}, "divider_moderate"),
|
|
162
|
-
(0, jsx_runtime_1.jsx)(material_1.MenuItem, Object.assign({ component: react_core_1.Link,
|
|
184
|
+
(0, jsx_runtime_1.jsx)(material_1.MenuItem, Object.assign({ component: react_core_1.Link, onClick: () => fetchPlatform(`/moderation/user/?username=${scUser.username}`) }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.userActionIconButton.moderate", id: "ui.userActionIconButton.moderate" }) }), "moderate")
|
|
163
185
|
]
|
|
164
186
|
: [])
|
|
165
187
|
])
|
|
@@ -4,6 +4,7 @@ import React, { useEffect, useMemo, useState } from 'react';
|
|
|
4
4
|
import { styled } from '@mui/material/styles';
|
|
5
5
|
import { Divider, Icon, IconButton, List, ListItem, ListItemButton, ListItemText, Menu, MenuItem, Slide, SwipeableDrawer, useMediaQuery, useTheme } from '@mui/material';
|
|
6
6
|
import { Link, UserUtils, useSCContext, useSCFetchUser, useSCUser } from '@selfcommunity/react-core';
|
|
7
|
+
import { http, Endpoints } from '@selfcommunity/api-services';
|
|
7
8
|
import classNames from 'classnames';
|
|
8
9
|
import { useThemeProps } from '@mui/system';
|
|
9
10
|
import { FormattedMessage } from 'react-intl';
|
|
@@ -116,6 +117,27 @@ export default function UserActionIconButton(inProps) {
|
|
|
116
117
|
const isMe = scUserContext.user && scUser.id === scUserContext.user.id;
|
|
117
118
|
const roles = useMemo(() => scUserContext.user && (scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user.role), [scUserContext.user]);
|
|
118
119
|
const canModerate = useMemo(() => roles && (roles.includes('admin') || roles.includes('moderator')) && !isMe, [roles, isMe]);
|
|
120
|
+
/**
|
|
121
|
+
* Fetches platform url
|
|
122
|
+
*/
|
|
123
|
+
function fetchPlatform(query) {
|
|
124
|
+
http
|
|
125
|
+
.request({
|
|
126
|
+
url: Endpoints.Platform.url(),
|
|
127
|
+
method: Endpoints.Platform.method,
|
|
128
|
+
params: {
|
|
129
|
+
next: query
|
|
130
|
+
}
|
|
131
|
+
})
|
|
132
|
+
.then((res) => {
|
|
133
|
+
handleClose();
|
|
134
|
+
const platformUrl = res.data.platform_url;
|
|
135
|
+
window.open(platformUrl, '_blank').focus();
|
|
136
|
+
})
|
|
137
|
+
.catch((error) => {
|
|
138
|
+
console.log(error);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
119
141
|
// EFFECTS
|
|
120
142
|
useEffect(() => {
|
|
121
143
|
if (anchorEl && hidden === null && scUser) {
|
|
@@ -139,7 +161,7 @@ export default function UserActionIconButton(inProps) {
|
|
|
139
161
|
...(canModerate
|
|
140
162
|
? [
|
|
141
163
|
_jsx(Divider, {}, "divider_moderate"),
|
|
142
|
-
_jsx(ListItem, { children: _jsx(ListItemButton, Object.assign({ component: Link,
|
|
164
|
+
_jsx(ListItem, { children: _jsx(ListItemButton, Object.assign({ component: Link, onClick: () => fetchPlatform(`/moderation/user/?username=${scUser.username}`) }, { children: _jsx(ListItemText, { primary: _jsx(FormattedMessage, { defaultMessage: "ui.userActionIconButton.moderate", id: "ui.userActionIconButton.moderate" }) }) })) }, "moderate")
|
|
143
165
|
]
|
|
144
166
|
: [])
|
|
145
167
|
])
|
|
@@ -157,7 +179,7 @@ export default function UserActionIconButton(inProps) {
|
|
|
157
179
|
...(canModerate
|
|
158
180
|
? [
|
|
159
181
|
_jsx(Divider, {}, "divider_moderate"),
|
|
160
|
-
_jsx(MenuItem, Object.assign({ component: Link,
|
|
182
|
+
_jsx(MenuItem, Object.assign({ component: Link, onClick: () => fetchPlatform(`/moderation/user/?username=${scUser.username}`) }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.userActionIconButton.moderate", id: "ui.userActionIconButton.moderate" }) }), "moderate")
|
|
161
183
|
]
|
|
162
184
|
: [])
|
|
163
185
|
])
|