@selfcommunity/react-ui 0.10.0-alpha.7 → 0.10.0-alpha.8

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, to: `${scContext.settings.portal}/platform/access?next=/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")
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(`/platform/access?next=/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, to: `${scContext.settings.portal}/platform/access?next=/moderation/user/?username=${scUser.username}`, onClick: handleClose }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.userActionIconButton.moderate", id: "ui.userActionIconButton.moderate" }) }), "moderate")
184
+ (0, jsx_runtime_1.jsx)(material_1.MenuItem, Object.assign({ component: react_core_1.Link, onClick: () => fetchPlatform(`/platform/access?next=/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, to: `${scContext.settings.portal}/platform/access?next=/moderation/user/?username=${scUser.username}` }, { children: _jsx(ListItemText, { primary: _jsx(FormattedMessage, { defaultMessage: "ui.userActionIconButton.moderate", id: "ui.userActionIconButton.moderate" }) }) })) }, "moderate")
164
+ _jsx(ListItem, { children: _jsx(ListItemButton, Object.assign({ component: Link, onClick: () => fetchPlatform(`/platform/access?next=/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, to: `${scContext.settings.portal}/platform/access?next=/moderation/user/?username=${scUser.username}`, onClick: handleClose }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.userActionIconButton.moderate", id: "ui.userActionIconButton.moderate" }) }), "moderate")
182
+ _jsx(MenuItem, Object.assign({ component: Link, onClick: () => fetchPlatform(`/platform/access?next=/moderation/user/?username=${scUser.username}`) }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.userActionIconButton.moderate", id: "ui.userActionIconButton.moderate" }) }), "moderate")
161
183
  ]
162
184
  : [])
163
185
  ])