1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-09 00:18:00 +01:00

refactor: use copy library and add explicit export

This commit is contained in:
Youssef 2022-02-11 15:15:17 +01:00
parent 8af7c5ea49
commit 99ab4ed67a
6 changed files with 26 additions and 47 deletions

View File

@ -31,7 +31,7 @@ import Dialogue from '../../../common/Dialogue';
import { CREATE_API_TOKEN_BUTTON } from '../../../../testIds'; import { CREATE_API_TOKEN_BUTTON } from '../../../../testIds';
import { Alert } from '@material-ui/lab'; import { Alert } from '@material-ui/lab';
import copy from 'copy-to-clipboard'; import copy from 'copy-to-clipboard';
import { useLocationSettings } from "../../../../hooks/useLocationSettings"; import { useLocationSettings } from '../../../../hooks/useLocationSettings';
interface IApiToken { interface IApiToken {
createdAt: Date; createdAt: Date;
@ -42,13 +42,13 @@ interface IApiToken {
environment: string; environment: string;
} }
const ApiTokenList = () => { export const ApiTokenList = () => {
const styles = useStyles(); const styles = useStyles();
const { hasAccess } = useContext(AccessContext); const { hasAccess } = useContext(AccessContext);
const { uiConfig } = useUiConfig(); const { uiConfig } = useUiConfig();
const [showDelete, setShowDelete] = useState(false); const [showDelete, setShowDelete] = useState(false);
const [delToken, setDeleteToken] = useState<IApiToken>(); const [delToken, setDeleteToken] = useState<IApiToken>();
const { locationSettings } = useLocationSettings() const { locationSettings } = useLocationSettings();
const { setToastData } = useToast(); const { setToastData } = useToast();
const { tokens, loading, refetch, error } = useApiTokens(); const { tokens, loading, refetch, error } = useApiTokens();
const { deleteToken } = useApiTokensApi(); const { deleteToken } = useApiTokensApi();
@ -315,5 +315,3 @@ const ApiTokenList = () => {
</div> </div>
); );
}; };
export default ApiTokenList;

View File

@ -1,7 +1,7 @@
import { Typography } from '@material-ui/core'; import { Typography } from '@material-ui/core';
import { useCommonStyles } from '../../../../common.styles'; import { useCommonStyles } from '../../../../common.styles';
import Dialogue from '../../../common/Dialogue'; import Dialogue from '../../../common/Dialogue';
import UserToken from './UserToken/UserToken'; import { UserToken } from './UserToken/UserToken';
interface IConfirmUserLink { interface IConfirmUserLink {
open: boolean; open: boolean;
@ -9,7 +9,7 @@ interface IConfirmUserLink {
token: string; token: string;
} }
const ConfirmToken = ({ export const ConfirmToken = ({
open, open,
closeConfirm, closeConfirm,
token, token,
@ -31,5 +31,3 @@ const ConfirmToken = ({
</Dialogue> </Dialogue>
); );
}; };
export default ConfirmToken;

View File

@ -1,39 +1,29 @@
import { IconButton } from '@material-ui/core'; import { IconButton } from '@material-ui/core';
import CopyIcon from '@material-ui/icons/FileCopy'; import CopyIcon from '@material-ui/icons/FileCopy';
import copy from 'copy-to-clipboard';
import useToast from '../../../../../hooks/useToast'; import useToast from '../../../../../hooks/useToast';
interface IUserTokenProps { interface IUserTokenProps {
token: string; token: string;
} }
const UserToken = ({ token }: IUserTokenProps) => { export const UserToken = ({ token }: IUserTokenProps) => {
const { setToastData } = useToast(); const { setToastData } = useToast();
const handleCopy = () => { const copyToken = () => {
try { if (copy(token)) {
return navigator.clipboard setToastData({
.writeText(token) type: 'success',
.then(() => { title: 'Token copied',
setToastData({ text: `Token is copied to clipboard`,
type: 'success', });
title: 'Token copied', } else
text: `Token is copied to clipboard`, setToastData({
}); type: 'error',
}) title: 'Could not copy token',
.catch(() => { });
setError();
});
} catch (e) {
setError();
}
}; };
const setError = () =>
setToastData({
type: 'error',
title: 'Could not copy token',
});
return ( return (
<div <div
style={{ style={{
@ -48,11 +38,9 @@ const UserToken = ({ token }: IUserTokenProps) => {
}} }}
> >
{token} {token}
<IconButton onClick={handleCopy}> <IconButton onClick={copyToken}>
<CopyIcon /> <CopyIcon />
</IconButton> </IconButton>
</div> </div>
); );
}; };
export default UserToken;

View File

@ -7,11 +7,11 @@ import useToast from '../../../../hooks/useToast';
import useApiTokensApi from '../../../../hooks/api/actions/useApiTokensApi/useApiTokensApi'; import useApiTokensApi from '../../../../hooks/api/actions/useApiTokensApi/useApiTokensApi';
import PermissionButton from '../../../common/PermissionButton/PermissionButton'; import PermissionButton from '../../../common/PermissionButton/PermissionButton';
import { ADMIN } from '../../../providers/AccessProvider/permissions'; import { ADMIN } from '../../../providers/AccessProvider/permissions';
import ConfirmToken from '../ConfirmToken/ConfirmToken'; import { ConfirmToken } from '../ConfirmToken/ConfirmToken';
import { useState } from 'react'; import { useState } from 'react';
import { scrollToTop } from '../../../common/util'; import { scrollToTop } from '../../../common/util';
const CreateApiToken = () => { export const CreateApiToken = () => {
const { setToastApiError } = useToast(); const { setToastApiError } = useToast();
const { uiConfig } = useUiConfig(); const { uiConfig } = useUiConfig();
const history = useHistory(); const history = useHistory();
@ -95,10 +95,7 @@ const CreateApiToken = () => {
mode="Create" mode="Create"
clearErrors={clearErrors} clearErrors={clearErrors}
> >
<PermissionButton <PermissionButton permission={ADMIN} type="submit">
permission={ADMIN}
type="submit"
>
Create token Create token
</PermissionButton> </PermissionButton>
</ApiTokenForm> </ApiTokenForm>
@ -110,5 +107,3 @@ const CreateApiToken = () => {
</FormTemplate> </FormTemplate>
); );
}; };
export default CreateApiToken;

View File

@ -1,5 +1,5 @@
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import ApiTokenList from '../api-token/ApiTokenList/ApiTokenList'; import { ApiTokenList } from '../api-token/ApiTokenList/ApiTokenList';
import AdminMenu from '../menu/AdminMenu'; import AdminMenu from '../menu/AdminMenu';
import ConditionallyRender from '../../common/ConditionallyRender'; import ConditionallyRender from '../../common/ConditionallyRender';
import AccessContext from '../../../contexts/AccessContext'; import AccessContext from '../../../contexts/AccessContext';

View File

@ -27,7 +27,7 @@ import CreateProjectRole from '../admin/project-roles/CreateProjectRole/CreatePr
import EditProjectRole from '../admin/project-roles/EditProjectRole/EditProjectRole'; import EditProjectRole from '../admin/project-roles/EditProjectRole/EditProjectRole';
import CreateUser from '../admin/users/CreateUser/CreateUser'; import CreateUser from '../admin/users/CreateUser/CreateUser';
import EditUser from '../admin/users/EditUser/EditUser'; import EditUser from '../admin/users/EditUser/EditUser';
import CreateApiToken from '../admin/api-token/CreateApiToken/CreateApiToken'; import { CreateApiToken } from '../admin/api-token/CreateApiToken/CreateApiToken';
import CreateEnvironment from '../environments/CreateEnvironment/CreateEnvironment'; import CreateEnvironment from '../environments/CreateEnvironment/CreateEnvironment';
import EditEnvironment from '../environments/EditEnvironment/EditEnvironment'; import EditEnvironment from '../environments/EditEnvironment/EditEnvironment';
import CreateContext from '../context/CreateContext/CreateContext'; import CreateContext from '../context/CreateContext/CreateContext';